From 1f91bec60f715af6d549d66e940bb0acfa798a0d Mon Sep 17 00:00:00 2001 From: Mark Joshwel Date: Fri, 31 Jan 2025 14:37:02 +0800 Subject: [PATCH] game(deps/dda): the great supabase addition --- .../Performance URP Config.asset | 7 +- .../Quality URP Config.asset | 9 +- Game/Assets/Supabase.meta | 8 + ...soft.IdentityModel.Abstractions.7.0.3.meta | 8 + .../.signature.p7s | Bin 0 -> 24208 bytes ...oft.IdentityModel.Abstractions.7.0.3.nupkg | Bin 0 -> 110503 bytes ...dentityModel.Abstractions.7.0.3.nupkg.meta | 7 + .../lib.meta | 8 + .../lib/net461.meta | 8 + .../Microsoft.IdentityModel.Abstractions.dll | 3 + ...rosoft.IdentityModel.Abstractions.dll.meta | 33 + .../Microsoft.IdentityModel.Abstractions.xml | 297 + ...rosoft.IdentityModel.Abstractions.xml.meta | 7 + .../lib/net462.meta | 8 + .../Microsoft.IdentityModel.Abstractions.dll | 3 + ...rosoft.IdentityModel.Abstractions.dll.meta | 33 + .../Microsoft.IdentityModel.Abstractions.xml | 297 + ...rosoft.IdentityModel.Abstractions.xml.meta | 7 + .../lib/net472.meta | 8 + .../Microsoft.IdentityModel.Abstractions.dll | 3 + ...rosoft.IdentityModel.Abstractions.dll.meta | 33 + .../Microsoft.IdentityModel.Abstractions.xml | 297 + ...rosoft.IdentityModel.Abstractions.xml.meta | 7 + .../lib/net6.0.meta | 8 + .../Microsoft.IdentityModel.Abstractions.dll | 3 + ...rosoft.IdentityModel.Abstractions.dll.meta | 33 + .../Microsoft.IdentityModel.Abstractions.xml | 297 + ...rosoft.IdentityModel.Abstractions.xml.meta | 7 + .../lib/net8.0.meta | 8 + .../Microsoft.IdentityModel.Abstractions.dll | 3 + ...rosoft.IdentityModel.Abstractions.dll.meta | 33 + .../Microsoft.IdentityModel.Abstractions.xml | 297 + ...rosoft.IdentityModel.Abstractions.xml.meta | 7 + .../lib/netstandard2.0.meta | 8 + .../Microsoft.IdentityModel.Abstractions.dll | 3 + ...rosoft.IdentityModel.Abstractions.dll.meta | 33 + .../Microsoft.IdentityModel.Abstractions.xml | 297 + ...rosoft.IdentityModel.Abstractions.xml.meta | 7 + ...oft.IdentityModel.JsonWebTokens.7.0.3.meta | 8 + .../.signature.p7s | Bin 0 -> 24208 bytes ...ft.IdentityModel.JsonWebTokens.7.0.3.nupkg | Bin 0 -> 365085 bytes ...entityModel.JsonWebTokens.7.0.3.nupkg.meta | 7 + .../lib.meta | 8 + .../lib/net461.meta | 8 + .../Microsoft.IdentityModel.JsonWebTokens.dll | 3 + ...osoft.IdentityModel.JsonWebTokens.dll.meta | 33 + .../Microsoft.IdentityModel.JsonWebTokens.xml | 1413 + ...osoft.IdentityModel.JsonWebTokens.xml.meta | 7 + .../lib/net462.meta | 8 + .../Microsoft.IdentityModel.JsonWebTokens.dll | 3 + ...osoft.IdentityModel.JsonWebTokens.dll.meta | 33 + .../Microsoft.IdentityModel.JsonWebTokens.xml | 1413 + ...osoft.IdentityModel.JsonWebTokens.xml.meta | 7 + .../lib/net472.meta | 8 + .../Microsoft.IdentityModel.JsonWebTokens.dll | 3 + ...osoft.IdentityModel.JsonWebTokens.dll.meta | 33 + .../Microsoft.IdentityModel.JsonWebTokens.xml | 1413 + ...osoft.IdentityModel.JsonWebTokens.xml.meta | 7 + .../lib/net6.0.meta | 8 + .../Microsoft.IdentityModel.JsonWebTokens.dll | 3 + ...osoft.IdentityModel.JsonWebTokens.dll.meta | 33 + .../Microsoft.IdentityModel.JsonWebTokens.xml | 1413 + ...osoft.IdentityModel.JsonWebTokens.xml.meta | 7 + .../lib/net8.0.meta | 8 + .../Microsoft.IdentityModel.JsonWebTokens.dll | 3 + ...osoft.IdentityModel.JsonWebTokens.dll.meta | 33 + .../Microsoft.IdentityModel.JsonWebTokens.xml | 1413 + ...osoft.IdentityModel.JsonWebTokens.xml.meta | 7 + .../lib/netstandard2.0.meta | 8 + .../Microsoft.IdentityModel.JsonWebTokens.dll | 3 + ...osoft.IdentityModel.JsonWebTokens.dll.meta | 33 + .../Microsoft.IdentityModel.JsonWebTokens.xml | 1413 + ...osoft.IdentityModel.JsonWebTokens.xml.meta | 7 + ...Microsoft.IdentityModel.Logging.7.0.3.meta | 8 + .../.signature.p7s | Bin 0 -> 24208 bytes ...icrosoft.IdentityModel.Logging.7.0.3.nupkg | Bin 0 -> 168604 bytes ...oft.IdentityModel.Logging.7.0.3.nupkg.meta | 7 + .../lib.meta | 8 + .../lib/net461.meta | 8 + .../Microsoft.IdentityModel.Logging.dll | 3 + .../Microsoft.IdentityModel.Logging.dll.meta | 33 + .../Microsoft.IdentityModel.Logging.xml | 871 + .../Microsoft.IdentityModel.Logging.xml.meta | 7 + .../lib/net462.meta | 8 + .../Microsoft.IdentityModel.Logging.dll | 3 + .../Microsoft.IdentityModel.Logging.dll.meta | 33 + .../Microsoft.IdentityModel.Logging.xml | 871 + .../Microsoft.IdentityModel.Logging.xml.meta | 7 + .../lib/net472.meta | 8 + .../Microsoft.IdentityModel.Logging.dll | 3 + .../Microsoft.IdentityModel.Logging.dll.meta | 33 + .../Microsoft.IdentityModel.Logging.xml | 871 + .../Microsoft.IdentityModel.Logging.xml.meta | 7 + .../lib/net6.0.meta | 8 + .../Microsoft.IdentityModel.Logging.dll | 3 + .../Microsoft.IdentityModel.Logging.dll.meta | 33 + .../Microsoft.IdentityModel.Logging.xml | 666 + .../Microsoft.IdentityModel.Logging.xml.meta | 7 + .../lib/net8.0.meta | 8 + .../Microsoft.IdentityModel.Logging.dll | 3 + .../Microsoft.IdentityModel.Logging.dll.meta | 33 + .../Microsoft.IdentityModel.Logging.xml | 666 + .../Microsoft.IdentityModel.Logging.xml.meta | 7 + .../lib/netstandard2.0.meta | 8 + .../Microsoft.IdentityModel.Logging.dll | 3 + .../Microsoft.IdentityModel.Logging.dll.meta | 33 + .../Microsoft.IdentityModel.Logging.xml | 871 + .../Microsoft.IdentityModel.Logging.xml.meta | 7 + .../Microsoft.IdentityModel.Tokens.7.0.3.meta | 8 + .../.signature.p7s | Bin 0 -> 24207 bytes ...Microsoft.IdentityModel.Tokens.7.0.3.nupkg | Bin 0 -> 837006 bytes ...soft.IdentityModel.Tokens.7.0.3.nupkg.meta | 7 + .../lib.meta | 8 + .../lib/net461.meta | 8 + .../net461/Microsoft.IdentityModel.Tokens.dll | 3 + .../Microsoft.IdentityModel.Tokens.dll.meta | 33 + .../net461/Microsoft.IdentityModel.Tokens.xml | 5585 +++ .../Microsoft.IdentityModel.Tokens.xml.meta | 7 + .../lib/net462.meta | 8 + .../net462/Microsoft.IdentityModel.Tokens.dll | 3 + .../Microsoft.IdentityModel.Tokens.dll.meta | 33 + .../net462/Microsoft.IdentityModel.Tokens.xml | 5585 +++ .../Microsoft.IdentityModel.Tokens.xml.meta | 7 + .../lib/net472.meta | 8 + .../net472/Microsoft.IdentityModel.Tokens.dll | 3 + .../Microsoft.IdentityModel.Tokens.dll.meta | 33 + .../net472/Microsoft.IdentityModel.Tokens.xml | 5647 +++ .../Microsoft.IdentityModel.Tokens.xml.meta | 7 + .../lib/net6.0.meta | 8 + .../net6.0/Microsoft.IdentityModel.Tokens.dll | 3 + .../Microsoft.IdentityModel.Tokens.dll.meta | 33 + .../net6.0/Microsoft.IdentityModel.Tokens.xml | 5529 +++ .../Microsoft.IdentityModel.Tokens.xml.meta | 7 + .../lib/net8.0.meta | 8 + .../net8.0/Microsoft.IdentityModel.Tokens.dll | 3 + .../Microsoft.IdentityModel.Tokens.dll.meta | 33 + .../net8.0/Microsoft.IdentityModel.Tokens.xml | 5529 +++ .../Microsoft.IdentityModel.Tokens.xml.meta | 7 + .../lib/netstandard2.0.meta | 8 + .../Microsoft.IdentityModel.Tokens.dll | 3 + .../Microsoft.IdentityModel.Tokens.dll.meta | 33 + .../Microsoft.IdentityModel.Tokens.xml | 5507 +++ .../Microsoft.IdentityModel.Tokens.xml.meta | 7 + Game/Assets/Supabase/MimeMapping.2.0.0.meta | 8 + .../Supabase/MimeMapping.2.0.0/.signature.p7s | Bin 0 -> 11512 bytes .../MimeMapping.2.0.0/MimeMapping.2.0.0.nupkg | Bin 0 -> 239659 bytes .../MimeMapping.2.0.0.nupkg.meta | 7 + .../Supabase/MimeMapping.2.0.0/README.md | 43 + .../Supabase/MimeMapping.2.0.0/README.md.meta | 7 + .../Supabase/MimeMapping.2.0.0/lib.meta | 8 + .../MimeMapping.2.0.0/lib/net461.meta | 8 + .../lib/net461/MimeMapping.dll | 3 + .../lib/net461/MimeMapping.dll.meta | 33 + .../lib/net461/MimeMapping.xml | 7121 ++++ .../lib/net461/MimeMapping.xml.meta | 7 + .../MimeMapping.2.0.0/lib/netstandard2.0.meta | 8 + .../lib/netstandard2.0/MimeMapping.dll | 3 + .../lib/netstandard2.0/MimeMapping.dll.meta | 33 + .../lib/netstandard2.0/MimeMapping.xml | 7121 ++++ .../lib/netstandard2.0/MimeMapping.xml.meta | 7 + ...System.IdentityModel.Tokens.Jwt.7.0.3.meta | 8 + .../.signature.p7s | Bin 0 -> 24206 bytes ...ystem.IdentityModel.Tokens.Jwt.7.0.3.nupkg | Bin 0 -> 307327 bytes ....IdentityModel.Tokens.Jwt.7.0.3.nupkg.meta | 7 + .../lib.meta | 8 + .../lib/net461.meta | 8 + .../System.IdentityModel.Tokens.Jwt.dll | 3 + .../System.IdentityModel.Tokens.Jwt.dll.meta | 33 + .../System.IdentityModel.Tokens.Jwt.xml | 1548 + .../System.IdentityModel.Tokens.Jwt.xml.meta | 7 + .../lib/net462.meta | 8 + .../System.IdentityModel.Tokens.Jwt.dll | 3 + .../System.IdentityModel.Tokens.Jwt.dll.meta | 33 + .../System.IdentityModel.Tokens.Jwt.xml | 1548 + .../System.IdentityModel.Tokens.Jwt.xml.meta | 7 + .../lib/net472.meta | 8 + .../System.IdentityModel.Tokens.Jwt.dll | 3 + .../System.IdentityModel.Tokens.Jwt.dll.meta | 33 + .../System.IdentityModel.Tokens.Jwt.xml | 1548 + .../System.IdentityModel.Tokens.Jwt.xml.meta | 7 + .../lib/net6.0.meta | 8 + .../System.IdentityModel.Tokens.Jwt.dll | 3 + .../System.IdentityModel.Tokens.Jwt.dll.meta | 33 + .../System.IdentityModel.Tokens.Jwt.xml | 1548 + .../System.IdentityModel.Tokens.Jwt.xml.meta | 7 + .../lib/net8.0.meta | 8 + .../System.IdentityModel.Tokens.Jwt.dll | 3 + .../System.IdentityModel.Tokens.Jwt.dll.meta | 33 + .../System.IdentityModel.Tokens.Jwt.xml | 1548 + .../System.IdentityModel.Tokens.Jwt.xml.meta | 7 + .../lib/netstandard2.0.meta | 8 + .../System.IdentityModel.Tokens.Jwt.dll | 3 + .../System.IdentityModel.Tokens.Jwt.dll.meta | 33 + .../System.IdentityModel.Tokens.Jwt.xml | 1548 + .../System.IdentityModel.Tokens.Jwt.xml.meta | 7 + .../Supabase/System.Reactive.5.0.0.meta | 8 + .../System.Reactive.5.0.0/.signature.p7s | Bin 0 -> 18538 bytes .../System.Reactive.5.0.0.nupkg | Bin 0 -> 3929643 bytes .../System.Reactive.5.0.0.nupkg.meta | 7 + .../Supabase/System.Reactive.5.0.0/build.meta | 8 + .../System.Reactive.5.0.0/build/net5.0.meta | 8 + .../System.Reactive.5.0.0/build/net5.0/_._ | 0 .../build/net5.0/_._.meta | 7 + .../build/netcoreapp3.1.meta | 8 + .../build/netcoreapp3.1/System.Reactive.dll | 3 + .../netcoreapp3.1/System.Reactive.dll.meta | 33 + .../netcoreapp3.1/System.Reactive.targets | 12 + .../System.Reactive.targets.meta | 7 + .../build/netcoreapp3.1/System.Reactive.xml | 28078 +++++++++++++++ .../netcoreapp3.1/System.Reactive.xml.meta | 7 + .../buildTransitive.meta | 8 + .../buildTransitive/net5.0.meta | 8 + .../buildTransitive/net5.0/_._ | 0 .../buildTransitive/net5.0/_._.meta | 7 + .../buildTransitive/netcoreapp3.1.meta | 8 + .../netcoreapp3.1/System.Reactive.targets | 12 + .../System.Reactive.targets.meta | 7 + .../Supabase/System.Reactive.5.0.0/lib.meta | 8 + .../System.Reactive.5.0.0/lib/net472.meta | 8 + .../lib/net472/System.Reactive.dll | 3 + .../lib/net472/System.Reactive.dll.meta | 33 + .../lib/net472/System.Reactive.xml | 28230 +++++++++++++++ .../lib/net472/System.Reactive.xml.meta | 7 + .../lib/net5.0-windows10.0.19041.meta | 8 + .../System.Reactive.dll | 3 + .../System.Reactive.dll.meta | 33 + .../System.Reactive.xml | 28554 ++++++++++++++++ .../System.Reactive.xml.meta | 7 + .../System.Reactive.5.0.0/lib/net5.0.meta | 8 + .../lib/net5.0/System.Reactive.dll | 3 + .../lib/net5.0/System.Reactive.dll.meta | 33 + .../lib/net5.0/System.Reactive.xml | 27719 +++++++++++++++ .../lib/net5.0/System.Reactive.xml.meta | 7 + .../lib/netcoreapp3.1.meta | 8 + .../lib/netcoreapp3.1/_._ | 0 .../lib/netcoreapp3.1/_._.meta | 7 + .../lib/netstandard2.0.meta | 8 + .../lib/netstandard2.0/System.Reactive.dll | 3 + .../netstandard2.0/System.Reactive.dll.meta | 33 + .../lib/netstandard2.0/System.Reactive.xml | 27828 +++++++++++++++ .../netstandard2.0/System.Reactive.xml.meta | 7 + .../lib/uap10.0.16299.meta | 8 + .../lib/uap10.0.16299/System.Reactive.dll | 3 + .../uap10.0.16299/System.Reactive.dll.meta | 33 + .../lib/uap10.0.16299/System.Reactive.pri | Bin 0 -> 688 bytes .../uap10.0.16299/System.Reactive.pri.meta | 7 + .../lib/uap10.0.16299/System.Reactive.xml | 28397 +++++++++++++++ .../uap10.0.16299/System.Reactive.xml.meta | 7 + ...Runtime.CompilerServices.Unsafe.4.7.1.meta | 8 + .../.signature.p7s | Bin 0 -> 18702 bytes .../Icon.png | 3 + .../Icon.png.meta | 114 + .../LICENSE.TXT | 23 + .../LICENSE.TXT.meta | 7 + ...untime.CompilerServices.Unsafe.4.7.1.nupkg | Bin 0 -> 106815 bytes ...e.CompilerServices.Unsafe.4.7.1.nupkg.meta | 7 + .../THIRD-PARTY-NOTICES.TXT | 375 + .../THIRD-PARTY-NOTICES.TXT.meta | 7 + .../lib.meta | 8 + .../lib/net461.meta | 8 + ...System.Runtime.CompilerServices.Unsafe.dll | 3 + ...m.Runtime.CompilerServices.Unsafe.dll.meta | 33 + ...System.Runtime.CompilerServices.Unsafe.xml | 244 + ...m.Runtime.CompilerServices.Unsafe.xml.meta | 7 + .../lib/netcoreapp2.0.meta | 8 + ...System.Runtime.CompilerServices.Unsafe.dll | 3 + ...m.Runtime.CompilerServices.Unsafe.dll.meta | 33 + ...System.Runtime.CompilerServices.Unsafe.xml | 244 + ...m.Runtime.CompilerServices.Unsafe.xml.meta | 7 + .../lib/netstandard1.0.meta | 8 + ...System.Runtime.CompilerServices.Unsafe.dll | 3 + ...m.Runtime.CompilerServices.Unsafe.dll.meta | 33 + ...System.Runtime.CompilerServices.Unsafe.xml | 244 + ...m.Runtime.CompilerServices.Unsafe.xml.meta | 7 + .../lib/netstandard2.0.meta | 8 + ...System.Runtime.CompilerServices.Unsafe.dll | 3 + ...m.Runtime.CompilerServices.Unsafe.dll.meta | 33 + ...System.Runtime.CompilerServices.Unsafe.xml | 244 + ...m.Runtime.CompilerServices.Unsafe.xml.meta | 7 + .../ref.meta | 8 + .../ref/net461.meta | 8 + ...System.Runtime.CompilerServices.Unsafe.dll | 3 + ...m.Runtime.CompilerServices.Unsafe.dll.meta | 33 + ...System.Runtime.CompilerServices.Unsafe.xml | 244 + ...m.Runtime.CompilerServices.Unsafe.xml.meta | 7 + .../ref/netstandard1.0.meta | 8 + ...System.Runtime.CompilerServices.Unsafe.dll | 3 + ...m.Runtime.CompilerServices.Unsafe.dll.meta | 33 + ...System.Runtime.CompilerServices.Unsafe.xml | 244 + ...m.Runtime.CompilerServices.Unsafe.xml.meta | 7 + .../ref/netstandard2.0.meta | 8 + ...System.Runtime.CompilerServices.Unsafe.dll | 3 + ...m.Runtime.CompilerServices.Unsafe.dll.meta | 33 + ...System.Runtime.CompilerServices.Unsafe.xml | 244 + ...m.Runtime.CompilerServices.Unsafe.xml.meta | 7 + .../useSharedDesignerContext.txt | 0 .../useSharedDesignerContext.txt.meta | 7 + .../version.txt | 1 + .../version.txt.meta | 7 + .../System.Text.Encodings.Web.4.7.2.meta | 8 + .../.signature.p7s | Bin 0 -> 18703 bytes .../System.Text.Encodings.Web.4.7.2/Icon.png | 3 + .../Icon.png.meta | 114 + .../LICENSE.TXT | 23 + .../LICENSE.TXT.meta | 7 + .../System.Text.Encodings.Web.4.7.2.nupkg | Bin 0 -> 155238 bytes ...System.Text.Encodings.Web.4.7.2.nupkg.meta | 7 + .../THIRD-PARTY-NOTICES.TXT | 375 + .../THIRD-PARTY-NOTICES.TXT.meta | 7 + .../System.Text.Encodings.Web.4.7.2/lib.meta | 8 + .../lib/net461.meta | 8 + .../lib/net461/System.Text.Encodings.Web.dll | 3 + .../net461/System.Text.Encodings.Web.dll.meta | 33 + .../lib/net461/System.Text.Encodings.Web.xml | 932 + .../net461/System.Text.Encodings.Web.xml.meta | 7 + .../lib/netstandard1.0.meta | 8 + .../System.Text.Encodings.Web.dll | 3 + .../System.Text.Encodings.Web.dll.meta | 33 + .../System.Text.Encodings.Web.xml | 866 + .../System.Text.Encodings.Web.xml.meta | 7 + .../lib/netstandard2.0.meta | 8 + .../System.Text.Encodings.Web.dll | 3 + .../System.Text.Encodings.Web.dll.meta | 33 + .../System.Text.Encodings.Web.xml | 932 + .../System.Text.Encodings.Web.xml.meta | 7 + .../lib/netstandard2.1.meta | 8 + .../System.Text.Encodings.Web.dll | 3 + .../System.Text.Encodings.Web.dll.meta | 33 + .../System.Text.Encodings.Web.xml | 932 + .../System.Text.Encodings.Web.xml.meta | 7 + .../useSharedDesignerContext.txt | 0 .../useSharedDesignerContext.txt.meta | 7 + .../version.txt | 1 + .../version.txt.meta | 7 + .../Supabase/System.Text.Json.4.7.2.meta | 8 + .../System.Text.Json.4.7.2/.signature.p7s | Bin 0 -> 18703 bytes .../Supabase/System.Text.Json.4.7.2/Icon.png | 3 + .../System.Text.Json.4.7.2/Icon.png.meta | 114 + .../System.Text.Json.4.7.2/LICENSE.TXT | 23 + .../System.Text.Json.4.7.2/LICENSE.TXT.meta | 7 + .../System.Text.Json.4.7.2.nupkg | Bin 0 -> 402931 bytes .../System.Text.Json.4.7.2.nupkg.meta | 7 + .../THIRD-PARTY-NOTICES.TXT | 375 + .../THIRD-PARTY-NOTICES.TXT.meta | 7 + .../Supabase/System.Text.Json.4.7.2/lib.meta | 8 + .../System.Text.Json.4.7.2/lib/net461.meta | 8 + .../lib/net461/System.Text.Json.dll | 3 + .../lib/net461/System.Text.Json.dll.meta | 33 + .../lib/net461/System.Text.Json.xml | 2346 ++ .../lib/net461/System.Text.Json.xml.meta | 7 + .../lib/netcoreapp3.0.meta | 8 + .../lib/netcoreapp3.0/System.Text.Json.dll | 3 + .../netcoreapp3.0/System.Text.Json.dll.meta | 33 + .../lib/netcoreapp3.0/System.Text.Json.xml | 2346 ++ .../netcoreapp3.0/System.Text.Json.xml.meta | 7 + .../lib/netstandard2.0.meta | 8 + .../lib/netstandard2.0/System.Text.Json.dll | 3 + .../netstandard2.0/System.Text.Json.dll.meta | 33 + .../lib/netstandard2.0/System.Text.Json.xml | 2346 ++ .../netstandard2.0/System.Text.Json.xml.meta | 7 + .../useSharedDesignerContext.txt | 0 .../useSharedDesignerContext.txt.meta | 7 + .../System.Text.Json.4.7.2/version.txt | 1 + .../System.Text.Json.4.7.2/version.txt.meta | 7 + .../System.Threading.Channels.5.0.0.meta | 8 + .../.signature.p7s | Bin 0 -> 18702 bytes .../System.Threading.Channels.5.0.0/Icon.png | 3 + .../Icon.png.meta | 114 + .../LICENSE.TXT | 23 + .../LICENSE.TXT.meta | 7 + .../System.Threading.Channels.5.0.0.nupkg | Bin 0 -> 174140 bytes ...System.Threading.Channels.5.0.0.nupkg.meta | 7 + .../THIRD-PARTY-NOTICES.TXT | 884 + .../THIRD-PARTY-NOTICES.TXT.meta | 7 + .../System.Threading.Channels.5.0.0/lib.meta | 8 + .../lib/net461.meta | 8 + .../lib/net461/System.Threading.Channels.dll | 3 + .../net461/System.Threading.Channels.dll.meta | 33 + .../lib/net461/System.Threading.Channels.xml | 225 + .../net461/System.Threading.Channels.xml.meta | 7 + .../lib/netcoreapp3.0.meta | 8 + .../System.Threading.Channels.dll | 3 + .../System.Threading.Channels.dll.meta | 33 + .../System.Threading.Channels.xml | 225 + .../System.Threading.Channels.xml.meta | 7 + .../lib/netstandard1.3.meta | 8 + .../System.Threading.Channels.dll | 3 + .../System.Threading.Channels.dll.meta | 33 + .../System.Threading.Channels.xml | 225 + .../System.Threading.Channels.xml.meta | 7 + .../lib/netstandard2.0.meta | 8 + .../System.Threading.Channels.dll | 3 + .../System.Threading.Channels.dll.meta | 33 + .../System.Threading.Channels.xml | 225 + .../System.Threading.Channels.xml.meta | 7 + .../lib/netstandard2.1.meta | 8 + .../System.Threading.Channels.dll | 3 + .../System.Threading.Channels.dll.meta | 33 + .../System.Threading.Channels.xml | 225 + .../System.Threading.Channels.xml.meta | 7 + .../useSharedDesignerContext.txt | 0 .../useSharedDesignerContext.txt.meta | 7 + .../version.txt | 1 + .../version.txt.meta | 7 + ...stem.Threading.Tasks.Extensions.4.5.4.meta | 8 + .../.signature.p7s | Bin 0 -> 18703 bytes .../LICENSE.TXT | 23 + .../LICENSE.TXT.meta | 7 + ...tem.Threading.Tasks.Extensions.4.5.4.nupkg | Bin 0 -> 89582 bytes ...hreading.Tasks.Extensions.4.5.4.nupkg.meta | 7 + .../THIRD-PARTY-NOTICES.TXT | 309 + .../THIRD-PARTY-NOTICES.TXT.meta | 7 + .../lib.meta | 8 + .../lib/MonoAndroid10.meta | 8 + .../lib/MonoAndroid10/_._ | 0 .../lib/MonoAndroid10/_._.meta | 7 + .../lib/MonoTouch10.meta | 8 + .../lib/MonoTouch10/_._ | 0 .../lib/MonoTouch10/_._.meta | 7 + .../lib/net461.meta | 8 + .../System.Threading.Tasks.Extensions.dll | 3 + ...System.Threading.Tasks.Extensions.dll.meta | 33 + .../System.Threading.Tasks.Extensions.xml | 166 + ...System.Threading.Tasks.Extensions.xml.meta | 7 + .../lib/netcoreapp2.1.meta | 8 + .../lib/netcoreapp2.1/_._ | 0 .../lib/netcoreapp2.1/_._.meta | 7 + .../lib/netstandard1.0.meta | 8 + .../System.Threading.Tasks.Extensions.dll | 3 + ...System.Threading.Tasks.Extensions.dll.meta | 33 + .../System.Threading.Tasks.Extensions.xml | 166 + ...System.Threading.Tasks.Extensions.xml.meta | 7 + .../lib/netstandard2.0.meta | 8 + .../System.Threading.Tasks.Extensions.dll | 3 + ...System.Threading.Tasks.Extensions.dll.meta | 33 + .../System.Threading.Tasks.Extensions.xml | 166 + ...System.Threading.Tasks.Extensions.xml.meta | 7 + .../lib/portable-net45+win8+wp8+wpa81.meta | 8 + .../System.Threading.Tasks.Extensions.dll | 3 + ...System.Threading.Tasks.Extensions.dll.meta | 33 + .../System.Threading.Tasks.Extensions.xml | 166 + ...System.Threading.Tasks.Extensions.xml.meta | 7 + .../lib/xamarinios10.meta | 8 + .../lib/xamarinios10/_._ | 0 .../lib/xamarinios10/_._.meta | 7 + .../lib/xamarinmac20.meta | 8 + .../lib/xamarinmac20/_._ | 0 .../lib/xamarinmac20/_._.meta | 7 + .../lib/xamarintvos10.meta | 8 + .../lib/xamarintvos10/_._ | 0 .../lib/xamarintvos10/_._.meta | 7 + .../lib/xamarinwatchos10.meta | 8 + .../lib/xamarinwatchos10/_._ | 0 .../lib/xamarinwatchos10/_._.meta | 7 + .../ref.meta | 8 + .../ref/MonoAndroid10.meta | 8 + .../ref/MonoAndroid10/_._ | 0 .../ref/MonoAndroid10/_._.meta | 7 + .../ref/MonoTouch10.meta | 8 + .../ref/MonoTouch10/_._ | 0 .../ref/MonoTouch10/_._.meta | 7 + .../ref/netcoreapp2.1.meta | 8 + .../ref/netcoreapp2.1/_._ | 0 .../ref/netcoreapp2.1/_._.meta | 7 + .../ref/xamarinios10.meta | 8 + .../ref/xamarinios10/_._ | 0 .../ref/xamarinios10/_._.meta | 7 + .../ref/xamarinmac20.meta | 8 + .../ref/xamarinmac20/_._ | 0 .../ref/xamarinmac20/_._.meta | 7 + .../ref/xamarintvos10.meta | 8 + .../ref/xamarintvos10/_._ | 0 .../ref/xamarintvos10/_._.meta | 7 + .../ref/xamarinwatchos10.meta | 8 + .../ref/xamarinwatchos10/_._ | 0 .../ref/xamarinwatchos10/_._.meta | 7 + .../useSharedDesignerContext.txt | 0 .../useSharedDesignerContext.txt.meta | 7 + .../version.txt | 1 + .../version.txt.meta | 7 + .../Supabase/Websocket.Client.4.6.1.meta | 8 + .../Websocket.Client.4.6.1/.signature.p7s | Bin 0 -> 11512 bytes .../Supabase/Websocket.Client.4.6.1/README.md | 231 + .../Websocket.Client.4.6.1/README.md.meta | 7 + .../Websocket.Client.4.6.1.nupkg | Bin 0 -> 173866 bytes .../Websocket.Client.4.6.1.nupkg.meta | 7 + .../Supabase/Websocket.Client.4.6.1/icon.png | 3 + .../Websocket.Client.4.6.1/icon.png.meta | 114 + .../Supabase/Websocket.Client.4.6.1/lib.meta | 8 + .../Websocket.Client.4.6.1/lib/net5.0.meta | 8 + .../lib/net5.0/Websocket.Client.dll | 3 + .../lib/net5.0/Websocket.Client.dll.meta | 33 + .../lib/net5.0/Websocket.Client.xml | 1262 + .../lib/net5.0/Websocket.Client.xml.meta | 7 + .../Websocket.Client.4.6.1/lib/net6.0.meta | 8 + .../lib/net6.0/Websocket.Client.dll | 3 + .../lib/net6.0/Websocket.Client.dll.meta | 33 + .../lib/net6.0/Websocket.Client.xml | 1262 + .../lib/net6.0/Websocket.Client.xml.meta | 7 + .../lib/netstandard2.0.meta | 8 + .../lib/netstandard2.0/Websocket.Client.dll | 3 + .../netstandard2.0/Websocket.Client.dll.meta | 33 + .../lib/netstandard2.0/Websocket.Client.xml | 1262 + .../netstandard2.0/Websocket.Client.xml.meta | 7 + .../lib/netstandard2.1.meta | 8 + .../lib/netstandard2.1/Websocket.Client.dll | 3 + .../netstandard2.1/Websocket.Client.dll.meta | 33 + .../lib/netstandard2.1/Websocket.Client.xml | 1262 + .../netstandard2.1/Websocket.Client.xml.meta | 7 + .../Supabase/functions-csharp.1.3.2.meta | 8 + .../functions-csharp.1.3.2/.signature.p7s | Bin 0 -> 11513 bytes .../Supabase/functions-csharp.1.3.2/README.md | 35 + .../functions-csharp.1.3.2/README.md.meta | 7 + .../functions-csharp.1.3.2.nupkg | Bin 0 -> 28683 bytes .../functions-csharp.1.3.2.nupkg.meta | 7 + .../Supabase/functions-csharp.1.3.2/icon.png | 3 + .../functions-csharp.1.3.2/icon.png.meta | 114 + .../Supabase/functions-csharp.1.3.2/lib.meta | 8 + .../lib/netstandard2.0.meta | 8 + .../lib/netstandard2.0/Supabase.Functions.dll | 3 + .../Supabase.Functions.dll.meta | 33 + .../lib/netstandard2.0/Supabase.Functions.xml | 201 + .../Supabase.Functions.xml.meta | 7 + Game/Assets/Supabase/gotrue-csharp.4.2.7.meta | 8 + .../gotrue-csharp.4.2.7/.signature.p7s | Bin 0 -> 11513 bytes .../Supabase/gotrue-csharp.4.2.7/README.md | 296 + .../gotrue-csharp.4.2.7/README.md.meta | 7 + .../gotrue-csharp.4.2.7.nupkg | Bin 0 -> 79731 bytes .../gotrue-csharp.4.2.7.nupkg.meta | 7 + .../Supabase/gotrue-csharp.4.2.7/icon.png | 3 + .../gotrue-csharp.4.2.7/icon.png.meta | 114 + .../Supabase/gotrue-csharp.4.2.7/lib.meta | 8 + .../lib/netstandard2.0.meta | 8 + .../lib/netstandard2.0/Supabase.Gotrue.dll | 3 + .../netstandard2.0/Supabase.Gotrue.dll.meta | 33 + .../lib/netstandard2.0/Supabase.Gotrue.xml | 2378 ++ .../netstandard2.0/Supabase.Gotrue.xml.meta | 7 + .../Supabase/postgrest-csharp.3.5.1.meta | 8 + .../postgrest-csharp.3.5.1/.signature.p7s | Bin 0 -> 11513 bytes .../Supabase/postgrest-csharp.3.5.1/README.md | 360 + .../postgrest-csharp.3.5.1/README.md.meta | 7 + .../Supabase/postgrest-csharp.3.5.1/icon.png | 3 + .../postgrest-csharp.3.5.1/icon.png.meta | 114 + .../Supabase/postgrest-csharp.3.5.1/lib.meta | 8 + .../lib/netstandard2.0.meta | 8 + .../lib/netstandard2.0/Supabase.Postgrest.dll | 3 + .../Supabase.Postgrest.dll.meta | 33 + .../lib/netstandard2.0/Supabase.Postgrest.xml | 1879 + .../Supabase.Postgrest.xml.meta | 7 + .../postgrest-csharp.3.5.1.nupkg | Bin 0 -> 69499 bytes .../postgrest-csharp.3.5.1.nupkg.meta | 7 + .../Supabase/realtime-csharp.6.0.4.meta | 8 + .../realtime-csharp.6.0.4/.signature.p7s | Bin 0 -> 11512 bytes .../Supabase/realtime-csharp.6.0.4/README.md | 298 + .../realtime-csharp.6.0.4/README.md.meta | 7 + .../Supabase/realtime-csharp.6.0.4/icon.png | 3 + .../realtime-csharp.6.0.4/icon.png.meta | 114 + .../Supabase/realtime-csharp.6.0.4/lib.meta | 8 + .../lib/netstandard2.0.meta | 8 + .../lib/netstandard2.0/Supabase.Realtime.dll | 3 + .../netstandard2.0/Supabase.Realtime.dll.meta | 33 + .../lib/netstandard2.0/Supabase.Realtime.xml | 2676 ++ .../netstandard2.0/Supabase.Realtime.xml.meta | 7 + .../realtime-csharp.6.0.4.nupkg | Bin 0 -> 68425 bytes .../realtime-csharp.6.0.4.nupkg.meta | 7 + Game/Assets/Supabase/supabase-core.0.0.3.meta | 8 + .../supabase-core.0.0.3/.signature.p7s | Bin 0 -> 11511 bytes .../Supabase/supabase-core.0.0.3/README.md | 25 + .../supabase-core.0.0.3/README.md.meta | 7 + .../Supabase/supabase-core.0.0.3/icon.png | 3 + .../supabase-core.0.0.3/icon.png.meta | 114 + .../Supabase/supabase-core.0.0.3/lib.meta | 8 + .../lib/netstandard2.0.meta | 8 + .../lib/netstandard2.0/Supabase.Core.dll | 3 + .../lib/netstandard2.0/Supabase.Core.dll.meta | 33 + .../lib/netstandard2.0/Supabase.Core.xml | 13 + .../lib/netstandard2.0/Supabase.Core.xml.meta | 7 + .../supabase-core.0.0.3.nupkg | Bin 0 -> 23835 bytes .../supabase-core.0.0.3.nupkg.meta | 7 + .../Supabase/supabase-csharp.0.16.2.meta | 8 + .../supabase-csharp.0.16.2/.signature.p7s | Bin 0 -> 11525 bytes .../Supabase/supabase-csharp.0.16.2/README.md | 68 + .../supabase-csharp.0.16.2/README.md.meta | 7 + .../Supabase/supabase-csharp.0.16.2/icon.png | 3 + .../supabase-csharp.0.16.2/icon.png.meta | 114 + .../Supabase/supabase-csharp.0.16.2/lib.meta | 8 + .../lib/netstandard2.0.meta | 8 + .../lib/netstandard2.0/Supabase.dll | 3 + .../lib/netstandard2.0/Supabase.dll.meta | 33 + .../lib/netstandard2.0/Supabase.xml | 370 + .../lib/netstandard2.0/Supabase.xml.meta | 7 + .../supabase-csharp.0.16.2.nupkg | Bin 0 -> 33169 bytes .../supabase-csharp.0.16.2.nupkg.meta | 7 + .../supabase-storage-csharp.1.4.0.meta | 8 + .../.signature.p7s | Bin 0 -> 11513 bytes .../supabase-storage-csharp.1.4.0/README.md | 66 + .../README.md.meta | 7 + .../supabase-storage-csharp.1.4.0/icon.png | 3 + .../icon.png.meta | 114 + .../supabase-storage-csharp.1.4.0/lib.meta | 8 + .../lib/netstandard2.0.meta | 8 + .../lib/netstandard2.0/Supabase.Storage.dll | 3 + .../netstandard2.0/Supabase.Storage.dll.meta | 33 + .../lib/netstandard2.0/Supabase.Storage.xml | 435 + .../netstandard2.0/Supabase.Storage.xml.meta | 7 + .../supabase-storage-csharp.1.4.0.nupkg | Bin 0 -> 46488 bytes .../supabase-storage-csharp.1.4.0.nupkg.meta | 7 + Game/Packages/manifest.json | 1 + Game/Packages/packages-lock.json | 7 + Game/ProjectSettings/ProjectSettings.asset | 4 +- .../UnityConnectSettings.asset | 4 +- 611 files changed, 277964 insertions(+), 6 deletions(-) create mode 100644 Game/Assets/Supabase.meta create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3.meta create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/.signature.p7s create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/Microsoft.IdentityModel.Abstractions.7.0.3.nupkg create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/Microsoft.IdentityModel.Abstractions.7.0.3.nupkg.meta create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/lib.meta create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/lib/net461.meta create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/lib/net461/Microsoft.IdentityModel.Abstractions.dll create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/lib/net461/Microsoft.IdentityModel.Abstractions.dll.meta create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/lib/net461/Microsoft.IdentityModel.Abstractions.xml create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/lib/net461/Microsoft.IdentityModel.Abstractions.xml.meta create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/lib/net462.meta create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/lib/net462/Microsoft.IdentityModel.Abstractions.dll create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/lib/net462/Microsoft.IdentityModel.Abstractions.dll.meta create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/lib/net462/Microsoft.IdentityModel.Abstractions.xml create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/lib/net462/Microsoft.IdentityModel.Abstractions.xml.meta create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/lib/net472.meta create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/lib/net472/Microsoft.IdentityModel.Abstractions.dll create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/lib/net472/Microsoft.IdentityModel.Abstractions.dll.meta create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/lib/net472/Microsoft.IdentityModel.Abstractions.xml create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/lib/net472/Microsoft.IdentityModel.Abstractions.xml.meta create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/lib/net6.0.meta create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/lib/net6.0/Microsoft.IdentityModel.Abstractions.dll create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/lib/net6.0/Microsoft.IdentityModel.Abstractions.dll.meta create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/lib/net6.0/Microsoft.IdentityModel.Abstractions.xml create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/lib/net6.0/Microsoft.IdentityModel.Abstractions.xml.meta create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/lib/net8.0.meta create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/lib/net8.0/Microsoft.IdentityModel.Abstractions.dll create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/lib/net8.0/Microsoft.IdentityModel.Abstractions.dll.meta create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/lib/net8.0/Microsoft.IdentityModel.Abstractions.xml create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/lib/net8.0/Microsoft.IdentityModel.Abstractions.xml.meta create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/lib/netstandard2.0.meta create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/lib/netstandard2.0/Microsoft.IdentityModel.Abstractions.dll create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/lib/netstandard2.0/Microsoft.IdentityModel.Abstractions.dll.meta create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/lib/netstandard2.0/Microsoft.IdentityModel.Abstractions.xml create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/lib/netstandard2.0/Microsoft.IdentityModel.Abstractions.xml.meta create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3.meta create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/.signature.p7s create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/Microsoft.IdentityModel.JsonWebTokens.7.0.3.nupkg create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/Microsoft.IdentityModel.JsonWebTokens.7.0.3.nupkg.meta create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/lib.meta create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/lib/net461.meta create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/lib/net461/Microsoft.IdentityModel.JsonWebTokens.dll create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/lib/net461/Microsoft.IdentityModel.JsonWebTokens.dll.meta create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/lib/net461/Microsoft.IdentityModel.JsonWebTokens.xml create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/lib/net461/Microsoft.IdentityModel.JsonWebTokens.xml.meta create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/lib/net462.meta create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/lib/net462/Microsoft.IdentityModel.JsonWebTokens.dll create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/lib/net462/Microsoft.IdentityModel.JsonWebTokens.dll.meta create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/lib/net462/Microsoft.IdentityModel.JsonWebTokens.xml create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/lib/net462/Microsoft.IdentityModel.JsonWebTokens.xml.meta create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/lib/net472.meta create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/lib/net472/Microsoft.IdentityModel.JsonWebTokens.dll create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/lib/net472/Microsoft.IdentityModel.JsonWebTokens.dll.meta create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/lib/net472/Microsoft.IdentityModel.JsonWebTokens.xml create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/lib/net472/Microsoft.IdentityModel.JsonWebTokens.xml.meta create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/lib/net6.0.meta create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/lib/net6.0/Microsoft.IdentityModel.JsonWebTokens.dll create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/lib/net6.0/Microsoft.IdentityModel.JsonWebTokens.dll.meta create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/lib/net6.0/Microsoft.IdentityModel.JsonWebTokens.xml create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/lib/net6.0/Microsoft.IdentityModel.JsonWebTokens.xml.meta create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/lib/net8.0.meta create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/lib/net8.0/Microsoft.IdentityModel.JsonWebTokens.dll create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/lib/net8.0/Microsoft.IdentityModel.JsonWebTokens.dll.meta create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/lib/net8.0/Microsoft.IdentityModel.JsonWebTokens.xml create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/lib/net8.0/Microsoft.IdentityModel.JsonWebTokens.xml.meta create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/lib/netstandard2.0.meta create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/lib/netstandard2.0/Microsoft.IdentityModel.JsonWebTokens.dll create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/lib/netstandard2.0/Microsoft.IdentityModel.JsonWebTokens.dll.meta create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/lib/netstandard2.0/Microsoft.IdentityModel.JsonWebTokens.xml create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/lib/netstandard2.0/Microsoft.IdentityModel.JsonWebTokens.xml.meta create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3.meta create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/.signature.p7s create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/Microsoft.IdentityModel.Logging.7.0.3.nupkg create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/Microsoft.IdentityModel.Logging.7.0.3.nupkg.meta create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib.meta create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/net461.meta create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/net461/Microsoft.IdentityModel.Logging.dll create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/net461/Microsoft.IdentityModel.Logging.dll.meta create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/net461/Microsoft.IdentityModel.Logging.xml create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/net461/Microsoft.IdentityModel.Logging.xml.meta create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/net462.meta create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/net462/Microsoft.IdentityModel.Logging.dll create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/net462/Microsoft.IdentityModel.Logging.dll.meta create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/net462/Microsoft.IdentityModel.Logging.xml create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/net462/Microsoft.IdentityModel.Logging.xml.meta create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/net472.meta create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/net472/Microsoft.IdentityModel.Logging.dll create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/net472/Microsoft.IdentityModel.Logging.dll.meta create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/net472/Microsoft.IdentityModel.Logging.xml create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/net472/Microsoft.IdentityModel.Logging.xml.meta create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/net6.0.meta create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/net6.0/Microsoft.IdentityModel.Logging.dll create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/net6.0/Microsoft.IdentityModel.Logging.dll.meta create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/net6.0/Microsoft.IdentityModel.Logging.xml create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/net6.0/Microsoft.IdentityModel.Logging.xml.meta create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/net8.0.meta create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/net8.0/Microsoft.IdentityModel.Logging.dll create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/net8.0/Microsoft.IdentityModel.Logging.dll.meta create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/net8.0/Microsoft.IdentityModel.Logging.xml create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/net8.0/Microsoft.IdentityModel.Logging.xml.meta create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/netstandard2.0.meta create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/netstandard2.0/Microsoft.IdentityModel.Logging.dll create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/netstandard2.0/Microsoft.IdentityModel.Logging.dll.meta create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/netstandard2.0/Microsoft.IdentityModel.Logging.xml create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/netstandard2.0/Microsoft.IdentityModel.Logging.xml.meta create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3.meta create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/.signature.p7s create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/Microsoft.IdentityModel.Tokens.7.0.3.nupkg create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/Microsoft.IdentityModel.Tokens.7.0.3.nupkg.meta create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/lib.meta create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/lib/net461.meta create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/lib/net461/Microsoft.IdentityModel.Tokens.dll create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/lib/net461/Microsoft.IdentityModel.Tokens.dll.meta create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/lib/net461/Microsoft.IdentityModel.Tokens.xml create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/lib/net461/Microsoft.IdentityModel.Tokens.xml.meta create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/lib/net462.meta create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/lib/net462/Microsoft.IdentityModel.Tokens.dll create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/lib/net462/Microsoft.IdentityModel.Tokens.dll.meta create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/lib/net462/Microsoft.IdentityModel.Tokens.xml create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/lib/net462/Microsoft.IdentityModel.Tokens.xml.meta create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/lib/net472.meta create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/lib/net472/Microsoft.IdentityModel.Tokens.dll create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/lib/net472/Microsoft.IdentityModel.Tokens.dll.meta create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/lib/net472/Microsoft.IdentityModel.Tokens.xml create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/lib/net472/Microsoft.IdentityModel.Tokens.xml.meta create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/lib/net6.0.meta create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/lib/net6.0/Microsoft.IdentityModel.Tokens.dll create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/lib/net6.0/Microsoft.IdentityModel.Tokens.dll.meta create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/lib/net6.0/Microsoft.IdentityModel.Tokens.xml create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/lib/net6.0/Microsoft.IdentityModel.Tokens.xml.meta create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/lib/net8.0.meta create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/lib/net8.0/Microsoft.IdentityModel.Tokens.dll create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/lib/net8.0/Microsoft.IdentityModel.Tokens.dll.meta create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/lib/net8.0/Microsoft.IdentityModel.Tokens.xml create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/lib/net8.0/Microsoft.IdentityModel.Tokens.xml.meta create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/lib/netstandard2.0.meta create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/lib/netstandard2.0/Microsoft.IdentityModel.Tokens.dll create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/lib/netstandard2.0/Microsoft.IdentityModel.Tokens.dll.meta create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/lib/netstandard2.0/Microsoft.IdentityModel.Tokens.xml create mode 100644 Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/lib/netstandard2.0/Microsoft.IdentityModel.Tokens.xml.meta create mode 100644 Game/Assets/Supabase/MimeMapping.2.0.0.meta create mode 100644 Game/Assets/Supabase/MimeMapping.2.0.0/.signature.p7s create mode 100644 Game/Assets/Supabase/MimeMapping.2.0.0/MimeMapping.2.0.0.nupkg create mode 100644 Game/Assets/Supabase/MimeMapping.2.0.0/MimeMapping.2.0.0.nupkg.meta create mode 100644 Game/Assets/Supabase/MimeMapping.2.0.0/README.md create mode 100644 Game/Assets/Supabase/MimeMapping.2.0.0/README.md.meta create mode 100644 Game/Assets/Supabase/MimeMapping.2.0.0/lib.meta create mode 100644 Game/Assets/Supabase/MimeMapping.2.0.0/lib/net461.meta create mode 100644 Game/Assets/Supabase/MimeMapping.2.0.0/lib/net461/MimeMapping.dll create mode 100644 Game/Assets/Supabase/MimeMapping.2.0.0/lib/net461/MimeMapping.dll.meta create mode 100644 Game/Assets/Supabase/MimeMapping.2.0.0/lib/net461/MimeMapping.xml create mode 100644 Game/Assets/Supabase/MimeMapping.2.0.0/lib/net461/MimeMapping.xml.meta create mode 100644 Game/Assets/Supabase/MimeMapping.2.0.0/lib/netstandard2.0.meta create mode 100644 Game/Assets/Supabase/MimeMapping.2.0.0/lib/netstandard2.0/MimeMapping.dll create mode 100644 Game/Assets/Supabase/MimeMapping.2.0.0/lib/netstandard2.0/MimeMapping.dll.meta create mode 100644 Game/Assets/Supabase/MimeMapping.2.0.0/lib/netstandard2.0/MimeMapping.xml create mode 100644 Game/Assets/Supabase/MimeMapping.2.0.0/lib/netstandard2.0/MimeMapping.xml.meta create mode 100644 Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3.meta create mode 100644 Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/.signature.p7s create mode 100644 Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/System.IdentityModel.Tokens.Jwt.7.0.3.nupkg create mode 100644 Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/System.IdentityModel.Tokens.Jwt.7.0.3.nupkg.meta create mode 100644 Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib.meta create mode 100644 Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/net461.meta create mode 100644 Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/net461/System.IdentityModel.Tokens.Jwt.dll create mode 100644 Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/net461/System.IdentityModel.Tokens.Jwt.dll.meta create mode 100644 Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/net461/System.IdentityModel.Tokens.Jwt.xml create mode 100644 Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/net461/System.IdentityModel.Tokens.Jwt.xml.meta create mode 100644 Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/net462.meta create mode 100644 Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/net462/System.IdentityModel.Tokens.Jwt.dll create mode 100644 Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/net462/System.IdentityModel.Tokens.Jwt.dll.meta create mode 100644 Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/net462/System.IdentityModel.Tokens.Jwt.xml create mode 100644 Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/net462/System.IdentityModel.Tokens.Jwt.xml.meta create mode 100644 Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/net472.meta create mode 100644 Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/net472/System.IdentityModel.Tokens.Jwt.dll create mode 100644 Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/net472/System.IdentityModel.Tokens.Jwt.dll.meta create mode 100644 Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/net472/System.IdentityModel.Tokens.Jwt.xml create mode 100644 Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/net472/System.IdentityModel.Tokens.Jwt.xml.meta create mode 100644 Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/net6.0.meta create mode 100644 Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/net6.0/System.IdentityModel.Tokens.Jwt.dll create mode 100644 Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/net6.0/System.IdentityModel.Tokens.Jwt.dll.meta create mode 100644 Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/net6.0/System.IdentityModel.Tokens.Jwt.xml create mode 100644 Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/net6.0/System.IdentityModel.Tokens.Jwt.xml.meta create mode 100644 Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/net8.0.meta create mode 100644 Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/net8.0/System.IdentityModel.Tokens.Jwt.dll create mode 100644 Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/net8.0/System.IdentityModel.Tokens.Jwt.dll.meta create mode 100644 Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/net8.0/System.IdentityModel.Tokens.Jwt.xml create mode 100644 Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/net8.0/System.IdentityModel.Tokens.Jwt.xml.meta create mode 100644 Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/netstandard2.0.meta create mode 100644 Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/netstandard2.0/System.IdentityModel.Tokens.Jwt.dll create mode 100644 Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/netstandard2.0/System.IdentityModel.Tokens.Jwt.dll.meta create mode 100644 Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/netstandard2.0/System.IdentityModel.Tokens.Jwt.xml create mode 100644 Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/netstandard2.0/System.IdentityModel.Tokens.Jwt.xml.meta create mode 100644 Game/Assets/Supabase/System.Reactive.5.0.0.meta create mode 100644 Game/Assets/Supabase/System.Reactive.5.0.0/.signature.p7s create mode 100644 Game/Assets/Supabase/System.Reactive.5.0.0/System.Reactive.5.0.0.nupkg create mode 100644 Game/Assets/Supabase/System.Reactive.5.0.0/System.Reactive.5.0.0.nupkg.meta create mode 100644 Game/Assets/Supabase/System.Reactive.5.0.0/build.meta create mode 100644 Game/Assets/Supabase/System.Reactive.5.0.0/build/net5.0.meta create mode 100644 Game/Assets/Supabase/System.Reactive.5.0.0/build/net5.0/_._ create mode 100644 Game/Assets/Supabase/System.Reactive.5.0.0/build/net5.0/_._.meta create mode 100644 Game/Assets/Supabase/System.Reactive.5.0.0/build/netcoreapp3.1.meta create mode 100644 Game/Assets/Supabase/System.Reactive.5.0.0/build/netcoreapp3.1/System.Reactive.dll create mode 100644 Game/Assets/Supabase/System.Reactive.5.0.0/build/netcoreapp3.1/System.Reactive.dll.meta create mode 100644 Game/Assets/Supabase/System.Reactive.5.0.0/build/netcoreapp3.1/System.Reactive.targets create mode 100644 Game/Assets/Supabase/System.Reactive.5.0.0/build/netcoreapp3.1/System.Reactive.targets.meta create mode 100644 Game/Assets/Supabase/System.Reactive.5.0.0/build/netcoreapp3.1/System.Reactive.xml create mode 100644 Game/Assets/Supabase/System.Reactive.5.0.0/build/netcoreapp3.1/System.Reactive.xml.meta create mode 100644 Game/Assets/Supabase/System.Reactive.5.0.0/buildTransitive.meta create mode 100644 Game/Assets/Supabase/System.Reactive.5.0.0/buildTransitive/net5.0.meta create mode 100644 Game/Assets/Supabase/System.Reactive.5.0.0/buildTransitive/net5.0/_._ create mode 100644 Game/Assets/Supabase/System.Reactive.5.0.0/buildTransitive/net5.0/_._.meta create mode 100644 Game/Assets/Supabase/System.Reactive.5.0.0/buildTransitive/netcoreapp3.1.meta create mode 100644 Game/Assets/Supabase/System.Reactive.5.0.0/buildTransitive/netcoreapp3.1/System.Reactive.targets create mode 100644 Game/Assets/Supabase/System.Reactive.5.0.0/buildTransitive/netcoreapp3.1/System.Reactive.targets.meta create mode 100644 Game/Assets/Supabase/System.Reactive.5.0.0/lib.meta create mode 100644 Game/Assets/Supabase/System.Reactive.5.0.0/lib/net472.meta create mode 100644 Game/Assets/Supabase/System.Reactive.5.0.0/lib/net472/System.Reactive.dll create mode 100644 Game/Assets/Supabase/System.Reactive.5.0.0/lib/net472/System.Reactive.dll.meta create mode 100644 Game/Assets/Supabase/System.Reactive.5.0.0/lib/net472/System.Reactive.xml create mode 100644 Game/Assets/Supabase/System.Reactive.5.0.0/lib/net472/System.Reactive.xml.meta create mode 100644 Game/Assets/Supabase/System.Reactive.5.0.0/lib/net5.0-windows10.0.19041.meta create mode 100644 Game/Assets/Supabase/System.Reactive.5.0.0/lib/net5.0-windows10.0.19041/System.Reactive.dll create mode 100644 Game/Assets/Supabase/System.Reactive.5.0.0/lib/net5.0-windows10.0.19041/System.Reactive.dll.meta create mode 100644 Game/Assets/Supabase/System.Reactive.5.0.0/lib/net5.0-windows10.0.19041/System.Reactive.xml create mode 100644 Game/Assets/Supabase/System.Reactive.5.0.0/lib/net5.0-windows10.0.19041/System.Reactive.xml.meta create mode 100644 Game/Assets/Supabase/System.Reactive.5.0.0/lib/net5.0.meta create mode 100644 Game/Assets/Supabase/System.Reactive.5.0.0/lib/net5.0/System.Reactive.dll create mode 100644 Game/Assets/Supabase/System.Reactive.5.0.0/lib/net5.0/System.Reactive.dll.meta create mode 100644 Game/Assets/Supabase/System.Reactive.5.0.0/lib/net5.0/System.Reactive.xml create mode 100644 Game/Assets/Supabase/System.Reactive.5.0.0/lib/net5.0/System.Reactive.xml.meta create mode 100644 Game/Assets/Supabase/System.Reactive.5.0.0/lib/netcoreapp3.1.meta create mode 100644 Game/Assets/Supabase/System.Reactive.5.0.0/lib/netcoreapp3.1/_._ create mode 100644 Game/Assets/Supabase/System.Reactive.5.0.0/lib/netcoreapp3.1/_._.meta create mode 100644 Game/Assets/Supabase/System.Reactive.5.0.0/lib/netstandard2.0.meta create mode 100644 Game/Assets/Supabase/System.Reactive.5.0.0/lib/netstandard2.0/System.Reactive.dll create mode 100644 Game/Assets/Supabase/System.Reactive.5.0.0/lib/netstandard2.0/System.Reactive.dll.meta create mode 100644 Game/Assets/Supabase/System.Reactive.5.0.0/lib/netstandard2.0/System.Reactive.xml create mode 100644 Game/Assets/Supabase/System.Reactive.5.0.0/lib/netstandard2.0/System.Reactive.xml.meta create mode 100644 Game/Assets/Supabase/System.Reactive.5.0.0/lib/uap10.0.16299.meta create mode 100644 Game/Assets/Supabase/System.Reactive.5.0.0/lib/uap10.0.16299/System.Reactive.dll create mode 100644 Game/Assets/Supabase/System.Reactive.5.0.0/lib/uap10.0.16299/System.Reactive.dll.meta create mode 100644 Game/Assets/Supabase/System.Reactive.5.0.0/lib/uap10.0.16299/System.Reactive.pri create mode 100644 Game/Assets/Supabase/System.Reactive.5.0.0/lib/uap10.0.16299/System.Reactive.pri.meta create mode 100644 Game/Assets/Supabase/System.Reactive.5.0.0/lib/uap10.0.16299/System.Reactive.xml create mode 100644 Game/Assets/Supabase/System.Reactive.5.0.0/lib/uap10.0.16299/System.Reactive.xml.meta create mode 100644 Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1.meta create mode 100644 Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/.signature.p7s create mode 100644 Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/Icon.png create mode 100644 Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/Icon.png.meta create mode 100644 Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/LICENSE.TXT create mode 100644 Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/LICENSE.TXT.meta create mode 100644 Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/System.Runtime.CompilerServices.Unsafe.4.7.1.nupkg create mode 100644 Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/System.Runtime.CompilerServices.Unsafe.4.7.1.nupkg.meta create mode 100644 Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/THIRD-PARTY-NOTICES.TXT create mode 100644 Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/THIRD-PARTY-NOTICES.TXT.meta create mode 100644 Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/lib.meta create mode 100644 Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/lib/net461.meta create mode 100644 Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/lib/net461/System.Runtime.CompilerServices.Unsafe.dll create mode 100644 Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/lib/net461/System.Runtime.CompilerServices.Unsafe.dll.meta create mode 100644 Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/lib/net461/System.Runtime.CompilerServices.Unsafe.xml create mode 100644 Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/lib/net461/System.Runtime.CompilerServices.Unsafe.xml.meta create mode 100644 Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/lib/netcoreapp2.0.meta create mode 100644 Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/lib/netcoreapp2.0/System.Runtime.CompilerServices.Unsafe.dll create mode 100644 Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/lib/netcoreapp2.0/System.Runtime.CompilerServices.Unsafe.dll.meta create mode 100644 Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/lib/netcoreapp2.0/System.Runtime.CompilerServices.Unsafe.xml create mode 100644 Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/lib/netcoreapp2.0/System.Runtime.CompilerServices.Unsafe.xml.meta create mode 100644 Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/lib/netstandard1.0.meta create mode 100644 Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/lib/netstandard1.0/System.Runtime.CompilerServices.Unsafe.dll create mode 100644 Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/lib/netstandard1.0/System.Runtime.CompilerServices.Unsafe.dll.meta create mode 100644 Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/lib/netstandard1.0/System.Runtime.CompilerServices.Unsafe.xml create mode 100644 Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/lib/netstandard1.0/System.Runtime.CompilerServices.Unsafe.xml.meta create mode 100644 Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/lib/netstandard2.0.meta create mode 100644 Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/lib/netstandard2.0/System.Runtime.CompilerServices.Unsafe.dll create mode 100644 Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/lib/netstandard2.0/System.Runtime.CompilerServices.Unsafe.dll.meta create mode 100644 Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/lib/netstandard2.0/System.Runtime.CompilerServices.Unsafe.xml create mode 100644 Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/lib/netstandard2.0/System.Runtime.CompilerServices.Unsafe.xml.meta create mode 100644 Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/ref.meta create mode 100644 Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/ref/net461.meta create mode 100644 Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/ref/net461/System.Runtime.CompilerServices.Unsafe.dll create mode 100644 Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/ref/net461/System.Runtime.CompilerServices.Unsafe.dll.meta create mode 100644 Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/ref/net461/System.Runtime.CompilerServices.Unsafe.xml create mode 100644 Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/ref/net461/System.Runtime.CompilerServices.Unsafe.xml.meta create mode 100644 Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/ref/netstandard1.0.meta create mode 100644 Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/ref/netstandard1.0/System.Runtime.CompilerServices.Unsafe.dll create mode 100644 Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/ref/netstandard1.0/System.Runtime.CompilerServices.Unsafe.dll.meta create mode 100644 Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/ref/netstandard1.0/System.Runtime.CompilerServices.Unsafe.xml create mode 100644 Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/ref/netstandard1.0/System.Runtime.CompilerServices.Unsafe.xml.meta create mode 100644 Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/ref/netstandard2.0.meta create mode 100644 Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/ref/netstandard2.0/System.Runtime.CompilerServices.Unsafe.dll create mode 100644 Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/ref/netstandard2.0/System.Runtime.CompilerServices.Unsafe.dll.meta create mode 100644 Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/ref/netstandard2.0/System.Runtime.CompilerServices.Unsafe.xml create mode 100644 Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/ref/netstandard2.0/System.Runtime.CompilerServices.Unsafe.xml.meta create mode 100644 Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/useSharedDesignerContext.txt create mode 100644 Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/useSharedDesignerContext.txt.meta create mode 100644 Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/version.txt create mode 100644 Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/version.txt.meta create mode 100644 Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2.meta create mode 100644 Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/.signature.p7s create mode 100644 Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/Icon.png create mode 100644 Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/Icon.png.meta create mode 100644 Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/LICENSE.TXT create mode 100644 Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/LICENSE.TXT.meta create mode 100644 Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/System.Text.Encodings.Web.4.7.2.nupkg create mode 100644 Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/System.Text.Encodings.Web.4.7.2.nupkg.meta create mode 100644 Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/THIRD-PARTY-NOTICES.TXT create mode 100644 Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/THIRD-PARTY-NOTICES.TXT.meta create mode 100644 Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/lib.meta create mode 100644 Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/lib/net461.meta create mode 100644 Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/lib/net461/System.Text.Encodings.Web.dll create mode 100644 Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/lib/net461/System.Text.Encodings.Web.dll.meta create mode 100644 Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/lib/net461/System.Text.Encodings.Web.xml create mode 100644 Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/lib/net461/System.Text.Encodings.Web.xml.meta create mode 100644 Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/lib/netstandard1.0.meta create mode 100644 Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/lib/netstandard1.0/System.Text.Encodings.Web.dll create mode 100644 Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/lib/netstandard1.0/System.Text.Encodings.Web.dll.meta create mode 100644 Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/lib/netstandard1.0/System.Text.Encodings.Web.xml create mode 100644 Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/lib/netstandard1.0/System.Text.Encodings.Web.xml.meta create mode 100644 Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/lib/netstandard2.0.meta create mode 100644 Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/lib/netstandard2.0/System.Text.Encodings.Web.dll create mode 100644 Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/lib/netstandard2.0/System.Text.Encodings.Web.dll.meta create mode 100644 Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/lib/netstandard2.0/System.Text.Encodings.Web.xml create mode 100644 Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/lib/netstandard2.0/System.Text.Encodings.Web.xml.meta create mode 100644 Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/lib/netstandard2.1.meta create mode 100644 Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/lib/netstandard2.1/System.Text.Encodings.Web.dll create mode 100644 Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/lib/netstandard2.1/System.Text.Encodings.Web.dll.meta create mode 100644 Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/lib/netstandard2.1/System.Text.Encodings.Web.xml create mode 100644 Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/lib/netstandard2.1/System.Text.Encodings.Web.xml.meta create mode 100644 Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/useSharedDesignerContext.txt create mode 100644 Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/useSharedDesignerContext.txt.meta create mode 100644 Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/version.txt create mode 100644 Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/version.txt.meta create mode 100644 Game/Assets/Supabase/System.Text.Json.4.7.2.meta create mode 100644 Game/Assets/Supabase/System.Text.Json.4.7.2/.signature.p7s create mode 100644 Game/Assets/Supabase/System.Text.Json.4.7.2/Icon.png create mode 100644 Game/Assets/Supabase/System.Text.Json.4.7.2/Icon.png.meta create mode 100644 Game/Assets/Supabase/System.Text.Json.4.7.2/LICENSE.TXT create mode 100644 Game/Assets/Supabase/System.Text.Json.4.7.2/LICENSE.TXT.meta create mode 100644 Game/Assets/Supabase/System.Text.Json.4.7.2/System.Text.Json.4.7.2.nupkg create mode 100644 Game/Assets/Supabase/System.Text.Json.4.7.2/System.Text.Json.4.7.2.nupkg.meta create mode 100644 Game/Assets/Supabase/System.Text.Json.4.7.2/THIRD-PARTY-NOTICES.TXT create mode 100644 Game/Assets/Supabase/System.Text.Json.4.7.2/THIRD-PARTY-NOTICES.TXT.meta create mode 100644 Game/Assets/Supabase/System.Text.Json.4.7.2/lib.meta create mode 100644 Game/Assets/Supabase/System.Text.Json.4.7.2/lib/net461.meta create mode 100644 Game/Assets/Supabase/System.Text.Json.4.7.2/lib/net461/System.Text.Json.dll create mode 100644 Game/Assets/Supabase/System.Text.Json.4.7.2/lib/net461/System.Text.Json.dll.meta create mode 100644 Game/Assets/Supabase/System.Text.Json.4.7.2/lib/net461/System.Text.Json.xml create mode 100644 Game/Assets/Supabase/System.Text.Json.4.7.2/lib/net461/System.Text.Json.xml.meta create mode 100644 Game/Assets/Supabase/System.Text.Json.4.7.2/lib/netcoreapp3.0.meta create mode 100644 Game/Assets/Supabase/System.Text.Json.4.7.2/lib/netcoreapp3.0/System.Text.Json.dll create mode 100644 Game/Assets/Supabase/System.Text.Json.4.7.2/lib/netcoreapp3.0/System.Text.Json.dll.meta create mode 100644 Game/Assets/Supabase/System.Text.Json.4.7.2/lib/netcoreapp3.0/System.Text.Json.xml create mode 100644 Game/Assets/Supabase/System.Text.Json.4.7.2/lib/netcoreapp3.0/System.Text.Json.xml.meta create mode 100644 Game/Assets/Supabase/System.Text.Json.4.7.2/lib/netstandard2.0.meta create mode 100644 Game/Assets/Supabase/System.Text.Json.4.7.2/lib/netstandard2.0/System.Text.Json.dll create mode 100644 Game/Assets/Supabase/System.Text.Json.4.7.2/lib/netstandard2.0/System.Text.Json.dll.meta create mode 100644 Game/Assets/Supabase/System.Text.Json.4.7.2/lib/netstandard2.0/System.Text.Json.xml create mode 100644 Game/Assets/Supabase/System.Text.Json.4.7.2/lib/netstandard2.0/System.Text.Json.xml.meta create mode 100644 Game/Assets/Supabase/System.Text.Json.4.7.2/useSharedDesignerContext.txt create mode 100644 Game/Assets/Supabase/System.Text.Json.4.7.2/useSharedDesignerContext.txt.meta create mode 100644 Game/Assets/Supabase/System.Text.Json.4.7.2/version.txt create mode 100644 Game/Assets/Supabase/System.Text.Json.4.7.2/version.txt.meta create mode 100644 Game/Assets/Supabase/System.Threading.Channels.5.0.0.meta create mode 100644 Game/Assets/Supabase/System.Threading.Channels.5.0.0/.signature.p7s create mode 100644 Game/Assets/Supabase/System.Threading.Channels.5.0.0/Icon.png create mode 100644 Game/Assets/Supabase/System.Threading.Channels.5.0.0/Icon.png.meta create mode 100644 Game/Assets/Supabase/System.Threading.Channels.5.0.0/LICENSE.TXT create mode 100644 Game/Assets/Supabase/System.Threading.Channels.5.0.0/LICENSE.TXT.meta create mode 100644 Game/Assets/Supabase/System.Threading.Channels.5.0.0/System.Threading.Channels.5.0.0.nupkg create mode 100644 Game/Assets/Supabase/System.Threading.Channels.5.0.0/System.Threading.Channels.5.0.0.nupkg.meta create mode 100644 Game/Assets/Supabase/System.Threading.Channels.5.0.0/THIRD-PARTY-NOTICES.TXT create mode 100644 Game/Assets/Supabase/System.Threading.Channels.5.0.0/THIRD-PARTY-NOTICES.TXT.meta create mode 100644 Game/Assets/Supabase/System.Threading.Channels.5.0.0/lib.meta create mode 100644 Game/Assets/Supabase/System.Threading.Channels.5.0.0/lib/net461.meta create mode 100644 Game/Assets/Supabase/System.Threading.Channels.5.0.0/lib/net461/System.Threading.Channels.dll create mode 100644 Game/Assets/Supabase/System.Threading.Channels.5.0.0/lib/net461/System.Threading.Channels.dll.meta create mode 100644 Game/Assets/Supabase/System.Threading.Channels.5.0.0/lib/net461/System.Threading.Channels.xml create mode 100644 Game/Assets/Supabase/System.Threading.Channels.5.0.0/lib/net461/System.Threading.Channels.xml.meta create mode 100644 Game/Assets/Supabase/System.Threading.Channels.5.0.0/lib/netcoreapp3.0.meta create mode 100644 Game/Assets/Supabase/System.Threading.Channels.5.0.0/lib/netcoreapp3.0/System.Threading.Channels.dll create mode 100644 Game/Assets/Supabase/System.Threading.Channels.5.0.0/lib/netcoreapp3.0/System.Threading.Channels.dll.meta create mode 100644 Game/Assets/Supabase/System.Threading.Channels.5.0.0/lib/netcoreapp3.0/System.Threading.Channels.xml create mode 100644 Game/Assets/Supabase/System.Threading.Channels.5.0.0/lib/netcoreapp3.0/System.Threading.Channels.xml.meta create mode 100644 Game/Assets/Supabase/System.Threading.Channels.5.0.0/lib/netstandard1.3.meta create mode 100644 Game/Assets/Supabase/System.Threading.Channels.5.0.0/lib/netstandard1.3/System.Threading.Channels.dll create mode 100644 Game/Assets/Supabase/System.Threading.Channels.5.0.0/lib/netstandard1.3/System.Threading.Channels.dll.meta create mode 100644 Game/Assets/Supabase/System.Threading.Channels.5.0.0/lib/netstandard1.3/System.Threading.Channels.xml create mode 100644 Game/Assets/Supabase/System.Threading.Channels.5.0.0/lib/netstandard1.3/System.Threading.Channels.xml.meta create mode 100644 Game/Assets/Supabase/System.Threading.Channels.5.0.0/lib/netstandard2.0.meta create mode 100644 Game/Assets/Supabase/System.Threading.Channels.5.0.0/lib/netstandard2.0/System.Threading.Channels.dll create mode 100644 Game/Assets/Supabase/System.Threading.Channels.5.0.0/lib/netstandard2.0/System.Threading.Channels.dll.meta create mode 100644 Game/Assets/Supabase/System.Threading.Channels.5.0.0/lib/netstandard2.0/System.Threading.Channels.xml create mode 100644 Game/Assets/Supabase/System.Threading.Channels.5.0.0/lib/netstandard2.0/System.Threading.Channels.xml.meta create mode 100644 Game/Assets/Supabase/System.Threading.Channels.5.0.0/lib/netstandard2.1.meta create mode 100644 Game/Assets/Supabase/System.Threading.Channels.5.0.0/lib/netstandard2.1/System.Threading.Channels.dll create mode 100644 Game/Assets/Supabase/System.Threading.Channels.5.0.0/lib/netstandard2.1/System.Threading.Channels.dll.meta create mode 100644 Game/Assets/Supabase/System.Threading.Channels.5.0.0/lib/netstandard2.1/System.Threading.Channels.xml create mode 100644 Game/Assets/Supabase/System.Threading.Channels.5.0.0/lib/netstandard2.1/System.Threading.Channels.xml.meta create mode 100644 Game/Assets/Supabase/System.Threading.Channels.5.0.0/useSharedDesignerContext.txt create mode 100644 Game/Assets/Supabase/System.Threading.Channels.5.0.0/useSharedDesignerContext.txt.meta create mode 100644 Game/Assets/Supabase/System.Threading.Channels.5.0.0/version.txt create mode 100644 Game/Assets/Supabase/System.Threading.Channels.5.0.0/version.txt.meta create mode 100644 Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4.meta create mode 100644 Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/.signature.p7s create mode 100644 Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/LICENSE.TXT create mode 100644 Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/LICENSE.TXT.meta create mode 100644 Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/System.Threading.Tasks.Extensions.4.5.4.nupkg create mode 100644 Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/System.Threading.Tasks.Extensions.4.5.4.nupkg.meta create mode 100644 Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/THIRD-PARTY-NOTICES.TXT create mode 100644 Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/THIRD-PARTY-NOTICES.TXT.meta create mode 100644 Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib.meta create mode 100644 Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/MonoAndroid10.meta create mode 100644 Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/MonoAndroid10/_._ create mode 100644 Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/MonoAndroid10/_._.meta create mode 100644 Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/MonoTouch10.meta create mode 100644 Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/MonoTouch10/_._ create mode 100644 Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/MonoTouch10/_._.meta create mode 100644 Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/net461.meta create mode 100644 Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/net461/System.Threading.Tasks.Extensions.dll create mode 100644 Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/net461/System.Threading.Tasks.Extensions.dll.meta create mode 100644 Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/net461/System.Threading.Tasks.Extensions.xml create mode 100644 Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/net461/System.Threading.Tasks.Extensions.xml.meta create mode 100644 Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/netcoreapp2.1.meta create mode 100644 Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/netcoreapp2.1/_._ create mode 100644 Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/netcoreapp2.1/_._.meta create mode 100644 Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/netstandard1.0.meta create mode 100644 Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/netstandard1.0/System.Threading.Tasks.Extensions.dll create mode 100644 Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/netstandard1.0/System.Threading.Tasks.Extensions.dll.meta create mode 100644 Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/netstandard1.0/System.Threading.Tasks.Extensions.xml create mode 100644 Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/netstandard1.0/System.Threading.Tasks.Extensions.xml.meta create mode 100644 Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/netstandard2.0.meta create mode 100644 Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/netstandard2.0/System.Threading.Tasks.Extensions.dll create mode 100644 Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/netstandard2.0/System.Threading.Tasks.Extensions.dll.meta create mode 100644 Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/netstandard2.0/System.Threading.Tasks.Extensions.xml create mode 100644 Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/netstandard2.0/System.Threading.Tasks.Extensions.xml.meta create mode 100644 Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/portable-net45+win8+wp8+wpa81.meta create mode 100644 Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/portable-net45+win8+wp8+wpa81/System.Threading.Tasks.Extensions.dll create mode 100644 Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/portable-net45+win8+wp8+wpa81/System.Threading.Tasks.Extensions.dll.meta create mode 100644 Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/portable-net45+win8+wp8+wpa81/System.Threading.Tasks.Extensions.xml create mode 100644 Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/portable-net45+win8+wp8+wpa81/System.Threading.Tasks.Extensions.xml.meta create mode 100644 Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/xamarinios10.meta create mode 100644 Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/xamarinios10/_._ create mode 100644 Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/xamarinios10/_._.meta create mode 100644 Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/xamarinmac20.meta create mode 100644 Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/xamarinmac20/_._ create mode 100644 Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/xamarinmac20/_._.meta create mode 100644 Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/xamarintvos10.meta create mode 100644 Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/xamarintvos10/_._ create mode 100644 Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/xamarintvos10/_._.meta create mode 100644 Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/xamarinwatchos10.meta create mode 100644 Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/xamarinwatchos10/_._ create mode 100644 Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/xamarinwatchos10/_._.meta create mode 100644 Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/ref.meta create mode 100644 Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/ref/MonoAndroid10.meta create mode 100644 Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/ref/MonoAndroid10/_._ create mode 100644 Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/ref/MonoAndroid10/_._.meta create mode 100644 Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/ref/MonoTouch10.meta create mode 100644 Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/ref/MonoTouch10/_._ create mode 100644 Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/ref/MonoTouch10/_._.meta create mode 100644 Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/ref/netcoreapp2.1.meta create mode 100644 Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/ref/netcoreapp2.1/_._ create mode 100644 Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/ref/netcoreapp2.1/_._.meta create mode 100644 Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/ref/xamarinios10.meta create mode 100644 Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/ref/xamarinios10/_._ create mode 100644 Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/ref/xamarinios10/_._.meta create mode 100644 Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/ref/xamarinmac20.meta create mode 100644 Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/ref/xamarinmac20/_._ create mode 100644 Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/ref/xamarinmac20/_._.meta create mode 100644 Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/ref/xamarintvos10.meta create mode 100644 Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/ref/xamarintvos10/_._ create mode 100644 Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/ref/xamarintvos10/_._.meta create mode 100644 Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/ref/xamarinwatchos10.meta create mode 100644 Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/ref/xamarinwatchos10/_._ create mode 100644 Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/ref/xamarinwatchos10/_._.meta create mode 100644 Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/useSharedDesignerContext.txt create mode 100644 Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/useSharedDesignerContext.txt.meta create mode 100644 Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/version.txt create mode 100644 Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/version.txt.meta create mode 100644 Game/Assets/Supabase/Websocket.Client.4.6.1.meta create mode 100644 Game/Assets/Supabase/Websocket.Client.4.6.1/.signature.p7s create mode 100644 Game/Assets/Supabase/Websocket.Client.4.6.1/README.md create mode 100644 Game/Assets/Supabase/Websocket.Client.4.6.1/README.md.meta create mode 100644 Game/Assets/Supabase/Websocket.Client.4.6.1/Websocket.Client.4.6.1.nupkg create mode 100644 Game/Assets/Supabase/Websocket.Client.4.6.1/Websocket.Client.4.6.1.nupkg.meta create mode 100644 Game/Assets/Supabase/Websocket.Client.4.6.1/icon.png create mode 100644 Game/Assets/Supabase/Websocket.Client.4.6.1/icon.png.meta create mode 100644 Game/Assets/Supabase/Websocket.Client.4.6.1/lib.meta create mode 100644 Game/Assets/Supabase/Websocket.Client.4.6.1/lib/net5.0.meta create mode 100644 Game/Assets/Supabase/Websocket.Client.4.6.1/lib/net5.0/Websocket.Client.dll create mode 100644 Game/Assets/Supabase/Websocket.Client.4.6.1/lib/net5.0/Websocket.Client.dll.meta create mode 100644 Game/Assets/Supabase/Websocket.Client.4.6.1/lib/net5.0/Websocket.Client.xml create mode 100644 Game/Assets/Supabase/Websocket.Client.4.6.1/lib/net5.0/Websocket.Client.xml.meta create mode 100644 Game/Assets/Supabase/Websocket.Client.4.6.1/lib/net6.0.meta create mode 100644 Game/Assets/Supabase/Websocket.Client.4.6.1/lib/net6.0/Websocket.Client.dll create mode 100644 Game/Assets/Supabase/Websocket.Client.4.6.1/lib/net6.0/Websocket.Client.dll.meta create mode 100644 Game/Assets/Supabase/Websocket.Client.4.6.1/lib/net6.0/Websocket.Client.xml create mode 100644 Game/Assets/Supabase/Websocket.Client.4.6.1/lib/net6.0/Websocket.Client.xml.meta create mode 100644 Game/Assets/Supabase/Websocket.Client.4.6.1/lib/netstandard2.0.meta create mode 100644 Game/Assets/Supabase/Websocket.Client.4.6.1/lib/netstandard2.0/Websocket.Client.dll create mode 100644 Game/Assets/Supabase/Websocket.Client.4.6.1/lib/netstandard2.0/Websocket.Client.dll.meta create mode 100644 Game/Assets/Supabase/Websocket.Client.4.6.1/lib/netstandard2.0/Websocket.Client.xml create mode 100644 Game/Assets/Supabase/Websocket.Client.4.6.1/lib/netstandard2.0/Websocket.Client.xml.meta create mode 100644 Game/Assets/Supabase/Websocket.Client.4.6.1/lib/netstandard2.1.meta create mode 100644 Game/Assets/Supabase/Websocket.Client.4.6.1/lib/netstandard2.1/Websocket.Client.dll create mode 100644 Game/Assets/Supabase/Websocket.Client.4.6.1/lib/netstandard2.1/Websocket.Client.dll.meta create mode 100644 Game/Assets/Supabase/Websocket.Client.4.6.1/lib/netstandard2.1/Websocket.Client.xml create mode 100644 Game/Assets/Supabase/Websocket.Client.4.6.1/lib/netstandard2.1/Websocket.Client.xml.meta create mode 100644 Game/Assets/Supabase/functions-csharp.1.3.2.meta create mode 100644 Game/Assets/Supabase/functions-csharp.1.3.2/.signature.p7s create mode 100644 Game/Assets/Supabase/functions-csharp.1.3.2/README.md create mode 100644 Game/Assets/Supabase/functions-csharp.1.3.2/README.md.meta create mode 100644 Game/Assets/Supabase/functions-csharp.1.3.2/functions-csharp.1.3.2.nupkg create mode 100644 Game/Assets/Supabase/functions-csharp.1.3.2/functions-csharp.1.3.2.nupkg.meta create mode 100644 Game/Assets/Supabase/functions-csharp.1.3.2/icon.png create mode 100644 Game/Assets/Supabase/functions-csharp.1.3.2/icon.png.meta create mode 100644 Game/Assets/Supabase/functions-csharp.1.3.2/lib.meta create mode 100644 Game/Assets/Supabase/functions-csharp.1.3.2/lib/netstandard2.0.meta create mode 100644 Game/Assets/Supabase/functions-csharp.1.3.2/lib/netstandard2.0/Supabase.Functions.dll create mode 100644 Game/Assets/Supabase/functions-csharp.1.3.2/lib/netstandard2.0/Supabase.Functions.dll.meta create mode 100644 Game/Assets/Supabase/functions-csharp.1.3.2/lib/netstandard2.0/Supabase.Functions.xml create mode 100644 Game/Assets/Supabase/functions-csharp.1.3.2/lib/netstandard2.0/Supabase.Functions.xml.meta create mode 100644 Game/Assets/Supabase/gotrue-csharp.4.2.7.meta create mode 100644 Game/Assets/Supabase/gotrue-csharp.4.2.7/.signature.p7s create mode 100644 Game/Assets/Supabase/gotrue-csharp.4.2.7/README.md create mode 100644 Game/Assets/Supabase/gotrue-csharp.4.2.7/README.md.meta create mode 100644 Game/Assets/Supabase/gotrue-csharp.4.2.7/gotrue-csharp.4.2.7.nupkg create mode 100644 Game/Assets/Supabase/gotrue-csharp.4.2.7/gotrue-csharp.4.2.7.nupkg.meta create mode 100644 Game/Assets/Supabase/gotrue-csharp.4.2.7/icon.png create mode 100644 Game/Assets/Supabase/gotrue-csharp.4.2.7/icon.png.meta create mode 100644 Game/Assets/Supabase/gotrue-csharp.4.2.7/lib.meta create mode 100644 Game/Assets/Supabase/gotrue-csharp.4.2.7/lib/netstandard2.0.meta create mode 100644 Game/Assets/Supabase/gotrue-csharp.4.2.7/lib/netstandard2.0/Supabase.Gotrue.dll create mode 100644 Game/Assets/Supabase/gotrue-csharp.4.2.7/lib/netstandard2.0/Supabase.Gotrue.dll.meta create mode 100644 Game/Assets/Supabase/gotrue-csharp.4.2.7/lib/netstandard2.0/Supabase.Gotrue.xml create mode 100644 Game/Assets/Supabase/gotrue-csharp.4.2.7/lib/netstandard2.0/Supabase.Gotrue.xml.meta create mode 100644 Game/Assets/Supabase/postgrest-csharp.3.5.1.meta create mode 100644 Game/Assets/Supabase/postgrest-csharp.3.5.1/.signature.p7s create mode 100644 Game/Assets/Supabase/postgrest-csharp.3.5.1/README.md create mode 100644 Game/Assets/Supabase/postgrest-csharp.3.5.1/README.md.meta create mode 100644 Game/Assets/Supabase/postgrest-csharp.3.5.1/icon.png create mode 100644 Game/Assets/Supabase/postgrest-csharp.3.5.1/icon.png.meta create mode 100644 Game/Assets/Supabase/postgrest-csharp.3.5.1/lib.meta create mode 100644 Game/Assets/Supabase/postgrest-csharp.3.5.1/lib/netstandard2.0.meta create mode 100644 Game/Assets/Supabase/postgrest-csharp.3.5.1/lib/netstandard2.0/Supabase.Postgrest.dll create mode 100644 Game/Assets/Supabase/postgrest-csharp.3.5.1/lib/netstandard2.0/Supabase.Postgrest.dll.meta create mode 100644 Game/Assets/Supabase/postgrest-csharp.3.5.1/lib/netstandard2.0/Supabase.Postgrest.xml create mode 100644 Game/Assets/Supabase/postgrest-csharp.3.5.1/lib/netstandard2.0/Supabase.Postgrest.xml.meta create mode 100644 Game/Assets/Supabase/postgrest-csharp.3.5.1/postgrest-csharp.3.5.1.nupkg create mode 100644 Game/Assets/Supabase/postgrest-csharp.3.5.1/postgrest-csharp.3.5.1.nupkg.meta create mode 100644 Game/Assets/Supabase/realtime-csharp.6.0.4.meta create mode 100644 Game/Assets/Supabase/realtime-csharp.6.0.4/.signature.p7s create mode 100644 Game/Assets/Supabase/realtime-csharp.6.0.4/README.md create mode 100644 Game/Assets/Supabase/realtime-csharp.6.0.4/README.md.meta create mode 100644 Game/Assets/Supabase/realtime-csharp.6.0.4/icon.png create mode 100644 Game/Assets/Supabase/realtime-csharp.6.0.4/icon.png.meta create mode 100644 Game/Assets/Supabase/realtime-csharp.6.0.4/lib.meta create mode 100644 Game/Assets/Supabase/realtime-csharp.6.0.4/lib/netstandard2.0.meta create mode 100644 Game/Assets/Supabase/realtime-csharp.6.0.4/lib/netstandard2.0/Supabase.Realtime.dll create mode 100644 Game/Assets/Supabase/realtime-csharp.6.0.4/lib/netstandard2.0/Supabase.Realtime.dll.meta create mode 100644 Game/Assets/Supabase/realtime-csharp.6.0.4/lib/netstandard2.0/Supabase.Realtime.xml create mode 100644 Game/Assets/Supabase/realtime-csharp.6.0.4/lib/netstandard2.0/Supabase.Realtime.xml.meta create mode 100644 Game/Assets/Supabase/realtime-csharp.6.0.4/realtime-csharp.6.0.4.nupkg create mode 100644 Game/Assets/Supabase/realtime-csharp.6.0.4/realtime-csharp.6.0.4.nupkg.meta create mode 100644 Game/Assets/Supabase/supabase-core.0.0.3.meta create mode 100644 Game/Assets/Supabase/supabase-core.0.0.3/.signature.p7s create mode 100644 Game/Assets/Supabase/supabase-core.0.0.3/README.md create mode 100644 Game/Assets/Supabase/supabase-core.0.0.3/README.md.meta create mode 100644 Game/Assets/Supabase/supabase-core.0.0.3/icon.png create mode 100644 Game/Assets/Supabase/supabase-core.0.0.3/icon.png.meta create mode 100644 Game/Assets/Supabase/supabase-core.0.0.3/lib.meta create mode 100644 Game/Assets/Supabase/supabase-core.0.0.3/lib/netstandard2.0.meta create mode 100644 Game/Assets/Supabase/supabase-core.0.0.3/lib/netstandard2.0/Supabase.Core.dll create mode 100644 Game/Assets/Supabase/supabase-core.0.0.3/lib/netstandard2.0/Supabase.Core.dll.meta create mode 100644 Game/Assets/Supabase/supabase-core.0.0.3/lib/netstandard2.0/Supabase.Core.xml create mode 100644 Game/Assets/Supabase/supabase-core.0.0.3/lib/netstandard2.0/Supabase.Core.xml.meta create mode 100644 Game/Assets/Supabase/supabase-core.0.0.3/supabase-core.0.0.3.nupkg create mode 100644 Game/Assets/Supabase/supabase-core.0.0.3/supabase-core.0.0.3.nupkg.meta create mode 100644 Game/Assets/Supabase/supabase-csharp.0.16.2.meta create mode 100644 Game/Assets/Supabase/supabase-csharp.0.16.2/.signature.p7s create mode 100644 Game/Assets/Supabase/supabase-csharp.0.16.2/README.md create mode 100644 Game/Assets/Supabase/supabase-csharp.0.16.2/README.md.meta create mode 100644 Game/Assets/Supabase/supabase-csharp.0.16.2/icon.png create mode 100644 Game/Assets/Supabase/supabase-csharp.0.16.2/icon.png.meta create mode 100644 Game/Assets/Supabase/supabase-csharp.0.16.2/lib.meta create mode 100644 Game/Assets/Supabase/supabase-csharp.0.16.2/lib/netstandard2.0.meta create mode 100644 Game/Assets/Supabase/supabase-csharp.0.16.2/lib/netstandard2.0/Supabase.dll create mode 100644 Game/Assets/Supabase/supabase-csharp.0.16.2/lib/netstandard2.0/Supabase.dll.meta create mode 100644 Game/Assets/Supabase/supabase-csharp.0.16.2/lib/netstandard2.0/Supabase.xml create mode 100644 Game/Assets/Supabase/supabase-csharp.0.16.2/lib/netstandard2.0/Supabase.xml.meta create mode 100644 Game/Assets/Supabase/supabase-csharp.0.16.2/supabase-csharp.0.16.2.nupkg create mode 100644 Game/Assets/Supabase/supabase-csharp.0.16.2/supabase-csharp.0.16.2.nupkg.meta create mode 100644 Game/Assets/Supabase/supabase-storage-csharp.1.4.0.meta create mode 100644 Game/Assets/Supabase/supabase-storage-csharp.1.4.0/.signature.p7s create mode 100644 Game/Assets/Supabase/supabase-storage-csharp.1.4.0/README.md create mode 100644 Game/Assets/Supabase/supabase-storage-csharp.1.4.0/README.md.meta create mode 100644 Game/Assets/Supabase/supabase-storage-csharp.1.4.0/icon.png create mode 100644 Game/Assets/Supabase/supabase-storage-csharp.1.4.0/icon.png.meta create mode 100644 Game/Assets/Supabase/supabase-storage-csharp.1.4.0/lib.meta create mode 100644 Game/Assets/Supabase/supabase-storage-csharp.1.4.0/lib/netstandard2.0.meta create mode 100644 Game/Assets/Supabase/supabase-storage-csharp.1.4.0/lib/netstandard2.0/Supabase.Storage.dll create mode 100644 Game/Assets/Supabase/supabase-storage-csharp.1.4.0/lib/netstandard2.0/Supabase.Storage.dll.meta create mode 100644 Game/Assets/Supabase/supabase-storage-csharp.1.4.0/lib/netstandard2.0/Supabase.Storage.xml create mode 100644 Game/Assets/Supabase/supabase-storage-csharp.1.4.0/lib/netstandard2.0/Supabase.Storage.xml.meta create mode 100644 Game/Assets/Supabase/supabase-storage-csharp.1.4.0/supabase-storage-csharp.1.4.0.nupkg create mode 100644 Game/Assets/Supabase/supabase-storage-csharp.1.4.0/supabase-storage-csharp.1.4.0.nupkg.meta diff --git a/Game/Assets/Settings/Project Configuration/Performance URP Config.asset b/Game/Assets/Settings/Project Configuration/Performance URP Config.asset index 042aabe..78a1ce6 100644 --- a/Game/Assets/Settings/Project Configuration/Performance URP Config.asset +++ b/Game/Assets/Settings/Project Configuration/Performance URP Config.asset @@ -72,6 +72,7 @@ MonoBehaviour: m_ColorGradingMode: 0 m_ColorGradingLutSize: 32 m_UseFastSRGBLinearConversion: 0 + m_SupportDataDrivenLensFlare: 1 m_ShadowType: 1 m_LocalShadowsSupported: 0 m_LocalShadowsAtlasResolution: 256 @@ -83,7 +84,7 @@ MonoBehaviour: bayerMatrixTex: {fileID: 2800000, guid: f9ee4ed84c1d10c49aabb9b210b0fc44, type: 3} m_PrefilteringModeMainLightShadows: 3 m_PrefilteringModeAdditionalLight: 0 - m_PrefilteringModeAdditionalLightShadows: 2 + m_PrefilteringModeAdditionalLightShadows: 0 m_PrefilterXRKeywords: 0 m_PrefilteringModeForwardPlus: 0 m_PrefilteringModeDeferredRendering: 0 @@ -103,6 +104,10 @@ MonoBehaviour: m_PrefilterDBufferMRT1: 1 m_PrefilterDBufferMRT2: 1 m_PrefilterDBufferMRT3: 1 + m_PrefilterSoftShadowsQualityLow: 1 + m_PrefilterSoftShadowsQualityMedium: 1 + m_PrefilterSoftShadowsQualityHigh: 1 + m_PrefilterSoftShadows: 0 m_PrefilterScreenCoord: 1 m_PrefilterNativeRenderPass: 1 m_ShaderVariantLogLevel: 0 diff --git a/Game/Assets/Settings/Project Configuration/Quality URP Config.asset b/Game/Assets/Settings/Project Configuration/Quality URP Config.asset index 3a34687..ee8c7bc 100644 --- a/Game/Assets/Settings/Project Configuration/Quality URP Config.asset +++ b/Game/Assets/Settings/Project Configuration/Quality URP Config.asset @@ -72,6 +72,7 @@ MonoBehaviour: m_ColorGradingMode: 0 m_ColorGradingLutSize: 32 m_UseFastSRGBLinearConversion: 0 + m_SupportDataDrivenLensFlare: 1 m_ShadowType: 1 m_LocalShadowsSupported: 0 m_LocalShadowsAtlasResolution: 256 @@ -82,8 +83,8 @@ MonoBehaviour: blueNoise64LTex: {fileID: 2800000, guid: e3d24661c1e055f45a7560c033dbb837, type: 3} bayerMatrixTex: {fileID: 2800000, guid: f9ee4ed84c1d10c49aabb9b210b0fc44, type: 3} m_PrefilteringModeMainLightShadows: 3 - m_PrefilteringModeAdditionalLight: 4 - m_PrefilteringModeAdditionalLightShadows: 2 + m_PrefilteringModeAdditionalLight: 3 + m_PrefilteringModeAdditionalLightShadows: 0 m_PrefilterXRKeywords: 0 m_PrefilteringModeForwardPlus: 0 m_PrefilteringModeDeferredRendering: 0 @@ -103,6 +104,10 @@ MonoBehaviour: m_PrefilterDBufferMRT1: 1 m_PrefilterDBufferMRT2: 1 m_PrefilterDBufferMRT3: 1 + m_PrefilterSoftShadowsQualityLow: 1 + m_PrefilterSoftShadowsQualityMedium: 1 + m_PrefilterSoftShadowsQualityHigh: 1 + m_PrefilterSoftShadows: 0 m_PrefilterScreenCoord: 1 m_PrefilterNativeRenderPass: 1 m_ShaderVariantLogLevel: 0 diff --git a/Game/Assets/Supabase.meta b/Game/Assets/Supabase.meta new file mode 100644 index 0000000..0330795 --- /dev/null +++ b/Game/Assets/Supabase.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e404107146418f44daf810d7f6af56fe +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3.meta b/Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3.meta new file mode 100644 index 0000000..ae26d1a --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: dee345ad5bde74e47a35df68438ef8fe +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/.signature.p7s b/Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/.signature.p7s new file mode 100644 index 0000000000000000000000000000000000000000..7f2535fb354ce783f497472abd9492b0f2d20794 GIT binary patch literal 24208 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�t+wzh&30TCmB|$T$2MveT`?q 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 + + + Microsoft.IdentityModel.Abstractions + + + +

+ Defines Event Log Levels. + + + + + No level filtering is done on this log level. Log messages of all levels will be logged. + + + + + Logs that describe an unrecoverable application or system crash, or a catastrophic failure that requires + immediate attention. + + + + + Logs that highlight when the current flow of execution is stopped due to a failure. These should indicate a + failure in the current activity, not an application-wide failure. + + + + + Logs that highlight an abnormal or unexpected event in the application flow, but do not otherwise cause the + application execution to stop. + + + + + Logs that track the general flow of the application. These logs should have long-term value. + + + + + Logs that are used for interactive investigation during development. These logs should primarily contain + information useful for debugging and have no long-term value. + + + + + Interface that needs to be implemented by classes providing logging in Microsoft identity libraries. + + + + + Checks to see if logging is enabled at given . + + Log level of a message. + + + + Writes a log entry. + + Defines a structured message to be logged at the provided . + + + + Interface for Telemetry tracking. + + + + + Gets or sets the application or client ID that telemetry is being sent for. + + + + + Perform any necessary bootstrapping for the telemetry client. + + + The expectation is that this should only be called once for the lifetime of the object however the + implementation should be idempotent. + + + + + Checks to see if telemetry is enabled all up. + + + Returns if telemetry should be sent; otherwise. + + + This check should be used to gate any resource intensive operations to generate telemetry as well. + + + + + Checks to see if telemetry is enabled for the named event. + + Name of the event to check. + + Returns if telemetry should be sent for ; + otherwise. + + + This check should be used to gate any resource intensive operations to generate telemetry as well. + + + + + Tracks an instance of a named event. + + Details of the event to track. + + + + Tracks an instance of a named event. + + Name of the event to track. Should be unique per scenario. + Key value pair of strings to long with the event. + Key value pair of longs to long with the event. + Key value pair of bools to long with the event. + Key value pair of DateTimes to long with the event. + Key value pair of doubles to long with the event. + Key value pair of Guids to long with the event. + + + + Defines the structure of a log entry. + + + + + Defines the . + + + + + Message to be logged. + + + + + A unique identifier for a request that can help with diagnostics across components. + + + Also referred to as ActivityId in Microsoft.IdentityModel.Tokens.CallContext. + + + + + A minimalistic implementation that is disabled by default and doesn't log. + + + + + Default instance of . + + + + + + + + + + + The default implementation of the interface which swallows all telemetry signals. + + + + + + + + Singleton instance of . + + + + + Initializes an instance of . + + + Private constructor to prevent the default constructor being exposed. + + + + + + + + + + + + + + + + + + + + Common class containing observability constants to be used as well known metric keys. + + + + + String used for the name of the property indicating if the call was successful. + + + + + String used for the name of the property indicating the call in Duration (ms). + + + + + String used for the name of the property indicating the call's Activity Id/Correlation Id. + + + + + String used for the name of the property indicating the caller's ClientId. + + + + + Details of the telemetry event. + + + This implementation is not meant to be thread-safe. This implementation would either need to be overridden or + usage should not be concurrently operated on. + + + + + The underlying properties making up the . + + + + + Name of the telemetry event, should be unique between events. + + + + + Properties which describe the event. + + + + + Sets a property on the event details. + + Property key. + Property value. + 'key' is null. + + + + Sets a property on the event details. + + Property key. + Property value. + 'key' is null. + + + + Sets a property on the event details. + + Property key. + Property value. + 'key' is null. + + + + Sets a property on the event details. + + Property key. + Property value. + 'key' is null. + + + + Sets a property on the event details. + + Property key. + Property value. + 'key' is null. + + + + Sets a property on the event details. + + Property key. + Property value. + 'key' is null. + + + diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/lib/net461/Microsoft.IdentityModel.Abstractions.xml.meta b/Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/lib/net461/Microsoft.IdentityModel.Abstractions.xml.meta new file mode 100644 index 0000000..61f0a4c --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/lib/net461/Microsoft.IdentityModel.Abstractions.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 1a4479113780bf0478c3847732887132 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/lib/net462.meta b/Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/lib/net462.meta new file mode 100644 index 0000000..53b01c4 --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/lib/net462.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d4919694ccfdb684990dec07a8d90d4e +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/lib/net462/Microsoft.IdentityModel.Abstractions.dll b/Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/lib/net462/Microsoft.IdentityModel.Abstractions.dll new file mode 100644 index 0000000..ab9a06c --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/lib/net462/Microsoft.IdentityModel.Abstractions.dll @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:019e24c15657bf194e17cecbcabbd6d642988a3a1e2f88504b8885109da00e41 +size 19904 diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/lib/net462/Microsoft.IdentityModel.Abstractions.dll.meta b/Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/lib/net462/Microsoft.IdentityModel.Abstractions.dll.meta new file mode 100644 index 0000000..8ed7eb8 --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/lib/net462/Microsoft.IdentityModel.Abstractions.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: 7c00a5bb161ae374ca5707d34429cb7f +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/lib/net462/Microsoft.IdentityModel.Abstractions.xml b/Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/lib/net462/Microsoft.IdentityModel.Abstractions.xml new file mode 100644 index 0000000..1cfe0ea --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/lib/net462/Microsoft.IdentityModel.Abstractions.xml @@ -0,0 +1,297 @@ + + + + Microsoft.IdentityModel.Abstractions + + + + + Defines Event Log Levels. + + + + + No level filtering is done on this log level. Log messages of all levels will be logged. + + + + + Logs that describe an unrecoverable application or system crash, or a catastrophic failure that requires + immediate attention. + + + + + Logs that highlight when the current flow of execution is stopped due to a failure. These should indicate a + failure in the current activity, not an application-wide failure. + + + + + Logs that highlight an abnormal or unexpected event in the application flow, but do not otherwise cause the + application execution to stop. + + + + + Logs that track the general flow of the application. These logs should have long-term value. + + + + + Logs that are used for interactive investigation during development. These logs should primarily contain + information useful for debugging and have no long-term value. + + + + + Interface that needs to be implemented by classes providing logging in Microsoft identity libraries. + + + + + Checks to see if logging is enabled at given . + + Log level of a message. + + + + Writes a log entry. + + Defines a structured message to be logged at the provided . + + + + Interface for Telemetry tracking. + + + + + Gets or sets the application or client ID that telemetry is being sent for. + + + + + Perform any necessary bootstrapping for the telemetry client. + + + The expectation is that this should only be called once for the lifetime of the object however the + implementation should be idempotent. + + + + + Checks to see if telemetry is enabled all up. + + + Returns if telemetry should be sent; otherwise. + + + This check should be used to gate any resource intensive operations to generate telemetry as well. + + + + + Checks to see if telemetry is enabled for the named event. + + Name of the event to check. + + Returns if telemetry should be sent for ; + otherwise. + + + This check should be used to gate any resource intensive operations to generate telemetry as well. + + + + + Tracks an instance of a named event. + + Details of the event to track. + + + + Tracks an instance of a named event. + + Name of the event to track. Should be unique per scenario. + Key value pair of strings to long with the event. + Key value pair of longs to long with the event. + Key value pair of bools to long with the event. + Key value pair of DateTimes to long with the event. + Key value pair of doubles to long with the event. + Key value pair of Guids to long with the event. + + + + Defines the structure of a log entry. + + + + + Defines the . + + + + + Message to be logged. + + + + + A unique identifier for a request that can help with diagnostics across components. + + + Also referred to as ActivityId in Microsoft.IdentityModel.Tokens.CallContext. + + + + + A minimalistic implementation that is disabled by default and doesn't log. + + + + + Default instance of . + + + + + + + + + + + The default implementation of the interface which swallows all telemetry signals. + + + + + + + + Singleton instance of . + + + + + Initializes an instance of . + + + Private constructor to prevent the default constructor being exposed. + + + + + + + + + + + + + + + + + + + + Common class containing observability constants to be used as well known metric keys. + + + + + String used for the name of the property indicating if the call was successful. + + + + + String used for the name of the property indicating the call in Duration (ms). + + + + + String used for the name of the property indicating the call's Activity Id/Correlation Id. + + + + + String used for the name of the property indicating the caller's ClientId. + + + + + Details of the telemetry event. + + + This implementation is not meant to be thread-safe. This implementation would either need to be overridden or + usage should not be concurrently operated on. + + + + + The underlying properties making up the . + + + + + Name of the telemetry event, should be unique between events. + + + + + Properties which describe the event. + + + + + Sets a property on the event details. + + Property key. + Property value. + 'key' is null. + + + + Sets a property on the event details. + + Property key. + Property value. + 'key' is null. + + + + Sets a property on the event details. + + Property key. + Property value. + 'key' is null. + + + + Sets a property on the event details. + + Property key. + Property value. + 'key' is null. + + + + Sets a property on the event details. + + Property key. + Property value. + 'key' is null. + + + + Sets a property on the event details. + + Property key. + Property value. + 'key' is null. + + + diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/lib/net462/Microsoft.IdentityModel.Abstractions.xml.meta b/Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/lib/net462/Microsoft.IdentityModel.Abstractions.xml.meta new file mode 100644 index 0000000..e9708c2 --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/lib/net462/Microsoft.IdentityModel.Abstractions.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 71f002f792e477b4788e3f8a57914c74 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/lib/net472.meta b/Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/lib/net472.meta new file mode 100644 index 0000000..d58544e --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/lib/net472.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0ed82cec90fb59b41a2d6fef76fdb0cb +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/lib/net472/Microsoft.IdentityModel.Abstractions.dll b/Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/lib/net472/Microsoft.IdentityModel.Abstractions.dll new file mode 100644 index 0000000..e2fd943 --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/lib/net472/Microsoft.IdentityModel.Abstractions.dll @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d2df4a4f1d6d74bccad8f7aeb5b3fd5bc299e4e4d5b14f5bb40a6e4d418231b9 +size 20000 diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/lib/net472/Microsoft.IdentityModel.Abstractions.dll.meta b/Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/lib/net472/Microsoft.IdentityModel.Abstractions.dll.meta new file mode 100644 index 0000000..6c970c7 --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/lib/net472/Microsoft.IdentityModel.Abstractions.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: ae168da38ad18e94581ce2fa603dd839 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/lib/net472/Microsoft.IdentityModel.Abstractions.xml b/Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/lib/net472/Microsoft.IdentityModel.Abstractions.xml new file mode 100644 index 0000000..1cfe0ea --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/lib/net472/Microsoft.IdentityModel.Abstractions.xml @@ -0,0 +1,297 @@ + + + + Microsoft.IdentityModel.Abstractions + + + + + Defines Event Log Levels. + + + + + No level filtering is done on this log level. Log messages of all levels will be logged. + + + + + Logs that describe an unrecoverable application or system crash, or a catastrophic failure that requires + immediate attention. + + + + + Logs that highlight when the current flow of execution is stopped due to a failure. These should indicate a + failure in the current activity, not an application-wide failure. + + + + + Logs that highlight an abnormal or unexpected event in the application flow, but do not otherwise cause the + application execution to stop. + + + + + Logs that track the general flow of the application. These logs should have long-term value. + + + + + Logs that are used for interactive investigation during development. These logs should primarily contain + information useful for debugging and have no long-term value. + + + + + Interface that needs to be implemented by classes providing logging in Microsoft identity libraries. + + + + + Checks to see if logging is enabled at given . + + Log level of a message. + + + + Writes a log entry. + + Defines a structured message to be logged at the provided . + + + + Interface for Telemetry tracking. + + + + + Gets or sets the application or client ID that telemetry is being sent for. + + + + + Perform any necessary bootstrapping for the telemetry client. + + + The expectation is that this should only be called once for the lifetime of the object however the + implementation should be idempotent. + + + + + Checks to see if telemetry is enabled all up. + + + Returns if telemetry should be sent; otherwise. + + + This check should be used to gate any resource intensive operations to generate telemetry as well. + + + + + Checks to see if telemetry is enabled for the named event. + + Name of the event to check. + + Returns if telemetry should be sent for ; + otherwise. + + + This check should be used to gate any resource intensive operations to generate telemetry as well. + + + + + Tracks an instance of a named event. + + Details of the event to track. + + + + Tracks an instance of a named event. + + Name of the event to track. Should be unique per scenario. + Key value pair of strings to long with the event. + Key value pair of longs to long with the event. + Key value pair of bools to long with the event. + Key value pair of DateTimes to long with the event. + Key value pair of doubles to long with the event. + Key value pair of Guids to long with the event. + + + + Defines the structure of a log entry. + + + + + Defines the . + + + + + Message to be logged. + + + + + A unique identifier for a request that can help with diagnostics across components. + + + Also referred to as ActivityId in Microsoft.IdentityModel.Tokens.CallContext. + + + + + A minimalistic implementation that is disabled by default and doesn't log. + + + + + Default instance of . + + + + + + + + + + + The default implementation of the interface which swallows all telemetry signals. + + + + + + + + Singleton instance of . + + + + + Initializes an instance of . + + + Private constructor to prevent the default constructor being exposed. + + + + + + + + + + + + + + + + + + + + Common class containing observability constants to be used as well known metric keys. + + + + + String used for the name of the property indicating if the call was successful. + + + + + String used for the name of the property indicating the call in Duration (ms). + + + + + String used for the name of the property indicating the call's Activity Id/Correlation Id. + + + + + String used for the name of the property indicating the caller's ClientId. + + + + + Details of the telemetry event. + + + This implementation is not meant to be thread-safe. This implementation would either need to be overridden or + usage should not be concurrently operated on. + + + + + The underlying properties making up the . + + + + + Name of the telemetry event, should be unique between events. + + + + + Properties which describe the event. + + + + + Sets a property on the event details. + + Property key. + Property value. + 'key' is null. + + + + Sets a property on the event details. + + Property key. + Property value. + 'key' is null. + + + + Sets a property on the event details. + + Property key. + Property value. + 'key' is null. + + + + Sets a property on the event details. + + Property key. + Property value. + 'key' is null. + + + + Sets a property on the event details. + + Property key. + Property value. + 'key' is null. + + + + Sets a property on the event details. + + Property key. + Property value. + 'key' is null. + + + diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/lib/net472/Microsoft.IdentityModel.Abstractions.xml.meta b/Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/lib/net472/Microsoft.IdentityModel.Abstractions.xml.meta new file mode 100644 index 0000000..2834f13 --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/lib/net472/Microsoft.IdentityModel.Abstractions.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 50a21714d555b384584c53bafb4e53ee +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/lib/net6.0.meta b/Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/lib/net6.0.meta new file mode 100644 index 0000000..e5b488c --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/lib/net6.0.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d019edaf14cc72542ad11ab635c41a96 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/lib/net6.0/Microsoft.IdentityModel.Abstractions.dll b/Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/lib/net6.0/Microsoft.IdentityModel.Abstractions.dll new file mode 100644 index 0000000..adf07a9 --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/lib/net6.0/Microsoft.IdentityModel.Abstractions.dll @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c7b16f8133f8f9e21a5b540f8afd74bbabb943ebb85df07570e1290b360c5c2f +size 19888 diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/lib/net6.0/Microsoft.IdentityModel.Abstractions.dll.meta b/Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/lib/net6.0/Microsoft.IdentityModel.Abstractions.dll.meta new file mode 100644 index 0000000..d50ced2 --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/lib/net6.0/Microsoft.IdentityModel.Abstractions.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: 6cf6ba1ba966d894c961082b42668fa4 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/lib/net6.0/Microsoft.IdentityModel.Abstractions.xml b/Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/lib/net6.0/Microsoft.IdentityModel.Abstractions.xml new file mode 100644 index 0000000..1cfe0ea --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/lib/net6.0/Microsoft.IdentityModel.Abstractions.xml @@ -0,0 +1,297 @@ + + + + Microsoft.IdentityModel.Abstractions + + + + + Defines Event Log Levels. + + + + + No level filtering is done on this log level. Log messages of all levels will be logged. + + + + + Logs that describe an unrecoverable application or system crash, or a catastrophic failure that requires + immediate attention. + + + + + Logs that highlight when the current flow of execution is stopped due to a failure. These should indicate a + failure in the current activity, not an application-wide failure. + + + + + Logs that highlight an abnormal or unexpected event in the application flow, but do not otherwise cause the + application execution to stop. + + + + + Logs that track the general flow of the application. These logs should have long-term value. + + + + + Logs that are used for interactive investigation during development. These logs should primarily contain + information useful for debugging and have no long-term value. + + + + + Interface that needs to be implemented by classes providing logging in Microsoft identity libraries. + + + + + Checks to see if logging is enabled at given . + + Log level of a message. + + + + Writes a log entry. + + Defines a structured message to be logged at the provided . + + + + Interface for Telemetry tracking. + + + + + Gets or sets the application or client ID that telemetry is being sent for. + + + + + Perform any necessary bootstrapping for the telemetry client. + + + The expectation is that this should only be called once for the lifetime of the object however the + implementation should be idempotent. + + + + + Checks to see if telemetry is enabled all up. + + + Returns if telemetry should be sent; otherwise. + + + This check should be used to gate any resource intensive operations to generate telemetry as well. + + + + + Checks to see if telemetry is enabled for the named event. + + Name of the event to check. + + Returns if telemetry should be sent for ; + otherwise. + + + This check should be used to gate any resource intensive operations to generate telemetry as well. + + + + + Tracks an instance of a named event. + + Details of the event to track. + + + + Tracks an instance of a named event. + + Name of the event to track. Should be unique per scenario. + Key value pair of strings to long with the event. + Key value pair of longs to long with the event. + Key value pair of bools to long with the event. + Key value pair of DateTimes to long with the event. + Key value pair of doubles to long with the event. + Key value pair of Guids to long with the event. + + + + Defines the structure of a log entry. + + + + + Defines the . + + + + + Message to be logged. + + + + + A unique identifier for a request that can help with diagnostics across components. + + + Also referred to as ActivityId in Microsoft.IdentityModel.Tokens.CallContext. + + + + + A minimalistic implementation that is disabled by default and doesn't log. + + + + + Default instance of . + + + + + + + + + + + The default implementation of the interface which swallows all telemetry signals. + + + + + + + + Singleton instance of . + + + + + Initializes an instance of . + + + Private constructor to prevent the default constructor being exposed. + + + + + + + + + + + + + + + + + + + + Common class containing observability constants to be used as well known metric keys. + + + + + String used for the name of the property indicating if the call was successful. + + + + + String used for the name of the property indicating the call in Duration (ms). + + + + + String used for the name of the property indicating the call's Activity Id/Correlation Id. + + + + + String used for the name of the property indicating the caller's ClientId. + + + + + Details of the telemetry event. + + + This implementation is not meant to be thread-safe. This implementation would either need to be overridden or + usage should not be concurrently operated on. + + + + + The underlying properties making up the . + + + + + Name of the telemetry event, should be unique between events. + + + + + Properties which describe the event. + + + + + Sets a property on the event details. + + Property key. + Property value. + 'key' is null. + + + + Sets a property on the event details. + + Property key. + Property value. + 'key' is null. + + + + Sets a property on the event details. + + Property key. + Property value. + 'key' is null. + + + + Sets a property on the event details. + + Property key. + Property value. + 'key' is null. + + + + Sets a property on the event details. + + Property key. + Property value. + 'key' is null. + + + + Sets a property on the event details. + + Property key. + Property value. + 'key' is null. + + + diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/lib/net6.0/Microsoft.IdentityModel.Abstractions.xml.meta b/Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/lib/net6.0/Microsoft.IdentityModel.Abstractions.xml.meta new file mode 100644 index 0000000..2252c45 --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/lib/net6.0/Microsoft.IdentityModel.Abstractions.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 2db846ebe6b418448b253dfb1548b285 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/lib/net8.0.meta b/Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/lib/net8.0.meta new file mode 100644 index 0000000..1d1d7f5 --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/lib/net8.0.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 65f09f047e7433f4aae21b4754619f46 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/lib/net8.0/Microsoft.IdentityModel.Abstractions.dll b/Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/lib/net8.0/Microsoft.IdentityModel.Abstractions.dll new file mode 100644 index 0000000..f57985f --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/lib/net8.0/Microsoft.IdentityModel.Abstractions.dll @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9e1af1ef9eeec095f6923a4801cfc68117c204c767be4bcc13112f3c7894cc36 +size 19392 diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/lib/net8.0/Microsoft.IdentityModel.Abstractions.dll.meta b/Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/lib/net8.0/Microsoft.IdentityModel.Abstractions.dll.meta new file mode 100644 index 0000000..6276313 --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/lib/net8.0/Microsoft.IdentityModel.Abstractions.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: 548e3b00c33481f45b746c434ace782e +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/lib/net8.0/Microsoft.IdentityModel.Abstractions.xml b/Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/lib/net8.0/Microsoft.IdentityModel.Abstractions.xml new file mode 100644 index 0000000..1cfe0ea --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/lib/net8.0/Microsoft.IdentityModel.Abstractions.xml @@ -0,0 +1,297 @@ + + + + Microsoft.IdentityModel.Abstractions + + + + + Defines Event Log Levels. + + + + + No level filtering is done on this log level. Log messages of all levels will be logged. + + + + + Logs that describe an unrecoverable application or system crash, or a catastrophic failure that requires + immediate attention. + + + + + Logs that highlight when the current flow of execution is stopped due to a failure. These should indicate a + failure in the current activity, not an application-wide failure. + + + + + Logs that highlight an abnormal or unexpected event in the application flow, but do not otherwise cause the + application execution to stop. + + + + + Logs that track the general flow of the application. These logs should have long-term value. + + + + + Logs that are used for interactive investigation during development. These logs should primarily contain + information useful for debugging and have no long-term value. + + + + + Interface that needs to be implemented by classes providing logging in Microsoft identity libraries. + + + + + Checks to see if logging is enabled at given . + + Log level of a message. + + + + Writes a log entry. + + Defines a structured message to be logged at the provided . + + + + Interface for Telemetry tracking. + + + + + Gets or sets the application or client ID that telemetry is being sent for. + + + + + Perform any necessary bootstrapping for the telemetry client. + + + The expectation is that this should only be called once for the lifetime of the object however the + implementation should be idempotent. + + + + + Checks to see if telemetry is enabled all up. + + + Returns if telemetry should be sent; otherwise. + + + This check should be used to gate any resource intensive operations to generate telemetry as well. + + + + + Checks to see if telemetry is enabled for the named event. + + Name of the event to check. + + Returns if telemetry should be sent for ; + otherwise. + + + This check should be used to gate any resource intensive operations to generate telemetry as well. + + + + + Tracks an instance of a named event. + + Details of the event to track. + + + + Tracks an instance of a named event. + + Name of the event to track. Should be unique per scenario. + Key value pair of strings to long with the event. + Key value pair of longs to long with the event. + Key value pair of bools to long with the event. + Key value pair of DateTimes to long with the event. + Key value pair of doubles to long with the event. + Key value pair of Guids to long with the event. + + + + Defines the structure of a log entry. + + + + + Defines the . + + + + + Message to be logged. + + + + + A unique identifier for a request that can help with diagnostics across components. + + + Also referred to as ActivityId in Microsoft.IdentityModel.Tokens.CallContext. + + + + + A minimalistic implementation that is disabled by default and doesn't log. + + + + + Default instance of . + + + + + + + + + + + The default implementation of the interface which swallows all telemetry signals. + + + + + + + + Singleton instance of . + + + + + Initializes an instance of . + + + Private constructor to prevent the default constructor being exposed. + + + + + + + + + + + + + + + + + + + + Common class containing observability constants to be used as well known metric keys. + + + + + String used for the name of the property indicating if the call was successful. + + + + + String used for the name of the property indicating the call in Duration (ms). + + + + + String used for the name of the property indicating the call's Activity Id/Correlation Id. + + + + + String used for the name of the property indicating the caller's ClientId. + + + + + Details of the telemetry event. + + + This implementation is not meant to be thread-safe. This implementation would either need to be overridden or + usage should not be concurrently operated on. + + + + + The underlying properties making up the . + + + + + Name of the telemetry event, should be unique between events. + + + + + Properties which describe the event. + + + + + Sets a property on the event details. + + Property key. + Property value. + 'key' is null. + + + + Sets a property on the event details. + + Property key. + Property value. + 'key' is null. + + + + Sets a property on the event details. + + Property key. + Property value. + 'key' is null. + + + + Sets a property on the event details. + + Property key. + Property value. + 'key' is null. + + + + Sets a property on the event details. + + Property key. + Property value. + 'key' is null. + + + + Sets a property on the event details. + + Property key. + Property value. + 'key' is null. + + + diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/lib/net8.0/Microsoft.IdentityModel.Abstractions.xml.meta b/Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/lib/net8.0/Microsoft.IdentityModel.Abstractions.xml.meta new file mode 100644 index 0000000..647a119 --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/lib/net8.0/Microsoft.IdentityModel.Abstractions.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 036e29c3c64c0d0448c704f1561ff1fc +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/lib/netstandard2.0.meta b/Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/lib/netstandard2.0.meta new file mode 100644 index 0000000..04c8018 --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/lib/netstandard2.0.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9c0e241eb6962f843a3983b0b3ea30ad +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/lib/netstandard2.0/Microsoft.IdentityModel.Abstractions.dll b/Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/lib/netstandard2.0/Microsoft.IdentityModel.Abstractions.dll new file mode 100644 index 0000000..d87fc6d --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/lib/netstandard2.0/Microsoft.IdentityModel.Abstractions.dll @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d7801f6777bae26e25a41f91c7549e9d2efd12583e6070adb0d62a05ca414c96 +size 19896 diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/lib/netstandard2.0/Microsoft.IdentityModel.Abstractions.dll.meta b/Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/lib/netstandard2.0/Microsoft.IdentityModel.Abstractions.dll.meta new file mode 100644 index 0000000..ec4c816 --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/lib/netstandard2.0/Microsoft.IdentityModel.Abstractions.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: 32168a3342ff03745931d11901ab8e8d +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/lib/netstandard2.0/Microsoft.IdentityModel.Abstractions.xml b/Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/lib/netstandard2.0/Microsoft.IdentityModel.Abstractions.xml new file mode 100644 index 0000000..1cfe0ea --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/lib/netstandard2.0/Microsoft.IdentityModel.Abstractions.xml @@ -0,0 +1,297 @@ + + + + Microsoft.IdentityModel.Abstractions + + + + + Defines Event Log Levels. + + + + + No level filtering is done on this log level. Log messages of all levels will be logged. + + + + + Logs that describe an unrecoverable application or system crash, or a catastrophic failure that requires + immediate attention. + + + + + Logs that highlight when the current flow of execution is stopped due to a failure. These should indicate a + failure in the current activity, not an application-wide failure. + + + + + Logs that highlight an abnormal or unexpected event in the application flow, but do not otherwise cause the + application execution to stop. + + + + + Logs that track the general flow of the application. These logs should have long-term value. + + + + + Logs that are used for interactive investigation during development. These logs should primarily contain + information useful for debugging and have no long-term value. + + + + + Interface that needs to be implemented by classes providing logging in Microsoft identity libraries. + + + + + Checks to see if logging is enabled at given . + + Log level of a message. + + + + Writes a log entry. + + Defines a structured message to be logged at the provided . + + + + Interface for Telemetry tracking. + + + + + Gets or sets the application or client ID that telemetry is being sent for. + + + + + Perform any necessary bootstrapping for the telemetry client. + + + The expectation is that this should only be called once for the lifetime of the object however the + implementation should be idempotent. + + + + + Checks to see if telemetry is enabled all up. + + + Returns if telemetry should be sent; otherwise. + + + This check should be used to gate any resource intensive operations to generate telemetry as well. + + + + + Checks to see if telemetry is enabled for the named event. + + Name of the event to check. + + Returns if telemetry should be sent for ; + otherwise. + + + This check should be used to gate any resource intensive operations to generate telemetry as well. + + + + + Tracks an instance of a named event. + + Details of the event to track. + + + + Tracks an instance of a named event. + + Name of the event to track. Should be unique per scenario. + Key value pair of strings to long with the event. + Key value pair of longs to long with the event. + Key value pair of bools to long with the event. + Key value pair of DateTimes to long with the event. + Key value pair of doubles to long with the event. + Key value pair of Guids to long with the event. + + + + Defines the structure of a log entry. + + + + + Defines the . + + + + + Message to be logged. + + + + + A unique identifier for a request that can help with diagnostics across components. + + + Also referred to as ActivityId in Microsoft.IdentityModel.Tokens.CallContext. + + + + + A minimalistic implementation that is disabled by default and doesn't log. + + + + + Default instance of . + + + + + + + + + + + The default implementation of the interface which swallows all telemetry signals. + + + + + + + + Singleton instance of . + + + + + Initializes an instance of . + + + Private constructor to prevent the default constructor being exposed. + + + + + + + + + + + + + + + + + + + + Common class containing observability constants to be used as well known metric keys. + + + + + String used for the name of the property indicating if the call was successful. + + + + + String used for the name of the property indicating the call in Duration (ms). + + + + + String used for the name of the property indicating the call's Activity Id/Correlation Id. + + + + + String used for the name of the property indicating the caller's ClientId. + + + + + Details of the telemetry event. + + + This implementation is not meant to be thread-safe. This implementation would either need to be overridden or + usage should not be concurrently operated on. + + + + + The underlying properties making up the . + + + + + Name of the telemetry event, should be unique between events. + + + + + Properties which describe the event. + + + + + Sets a property on the event details. + + Property key. + Property value. + 'key' is null. + + + + Sets a property on the event details. + + Property key. + Property value. + 'key' is null. + + + + Sets a property on the event details. + + Property key. + Property value. + 'key' is null. + + + + Sets a property on the event details. + + Property key. + Property value. + 'key' is null. + + + + Sets a property on the event details. + + Property key. + Property value. + 'key' is null. + + + + Sets a property on the event details. + + Property key. + Property value. + 'key' is null. + + + diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/lib/netstandard2.0/Microsoft.IdentityModel.Abstractions.xml.meta b/Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/lib/netstandard2.0/Microsoft.IdentityModel.Abstractions.xml.meta new file mode 100644 index 0000000..dfd514d --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.Abstractions.7.0.3/lib/netstandard2.0/Microsoft.IdentityModel.Abstractions.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 8e20c7ff971de0d43afd32adb7a5cb0c +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3.meta b/Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3.meta new file mode 100644 index 0000000..d58b1d7 --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 96965ee60b1532947a05955b307b350a +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/.signature.p7s b/Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/.signature.p7s new file mode 100644 index 0000000000000000000000000000000000000000..75d408cd8f95abec6041f554caa86e5ea33a7ad6 GIT binary patch literal 24208 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 G+W!YU_SsVa literal 0 HcmV?d00001 diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/Microsoft.IdentityModel.JsonWebTokens.7.0.3.nupkg b/Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/Microsoft.IdentityModel.JsonWebTokens.7.0.3.nupkg new file mode 100644 index 0000000000000000000000000000000000000000..5a614acd834b5b13957f954774c4d2c3097dfd61 GIT binary patch literal 365085 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

7ej-RI8(a&EmAU^1mwDJLqFf(!}JBpdW70O~J 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 + + + Microsoft.IdentityModel.JsonWebTokens + + + +

+ Initializes static members of the class. + + + + + Gets the InboundClaimTypeMap used by JwtSecurityTokenHandler when producing claims from jwt. + + + + + Gets the OutboundClaimTypeMap is used by JwtSecurityTokenHandler to shorten claim types when creating a jwt. + + + + + Constants that indicate how the should be evaluated. + + + + + A value that indicates the is a Json object. + + When creating a from Json if the value was not a simple type {String, Null, True, False, Number} + then will contain the Json value. If the Json was a JsonObject, the will be set to "JSON". + + + + A value that indicates the is a Json object. + + When creating a from Json if the value was not a simple type {String, Null, True, False, Number} + then will contain the Json value. If the Json was a JsonArray, the will be set to "JSON_ARRAY". + + + + A value that indicates the is Json null. + + When creating a the cannot be null. If the Json value was null, then the + will be set to and the will be set to "JSON_NULL". + + + + A designed for representing a JSON Web Token (JWT). + + + + + Initializes a new instance of from a string in JWS or JWE Compact serialized format. + + A JSON Web Token that has been serialized in JWS or JWE Compact serialized format. + 'jwtEncodedString' is null or empty. + 'jwtEncodedString' is not in JWS or JWE Compact serialization format. + + see: https://datatracker.ietf.org/doc/html/rfc7519 (JWT) + see: https://datatracker.ietf.org/doc/html/rfc7515 (JWS) + see: https://datatracker.ietf.org/doc/html/rfc7516 (JWE) + + The contents of the returned have not been validated, the JSON Web Token is simply decoded. Validation can be accomplished using the validation methods in + + + + + + Initializes a new instance of the class where the header contains the crypto algorithms applied to the encoded header and payload. + + A string containing JSON which represents the cryptographic operations applied to the JWT and optionally any additional properties of the JWT. + A string containing JSON which represents the claims contained in the JWT. Each claim is a JSON object of the form { Name, Value }. + + see: https://datatracker.ietf.org/doc/html/rfc7519 (JWT) + see: https://datatracker.ietf.org/doc/html/rfc7515 (JWS) + see: https://datatracker.ietf.org/doc/html/rfc7516 (JWE) + + The contents of the returned have not been validated, the JSON Web Token is simply decoded. Validation can be accomplished using the validation methods in + + + 'header' is null. + 'payload' is null. + + + + Gets the AuthenticationTag from the original raw data of this instance when it was created. + + + Contains the results of a Authentication Encryption with Associated Data (AEAD). + see: https://datatracker.ietf.org/doc/html/rfc7516#section-2 + + If this JWT is not encrypted with an algorithms that uses an Authentication Tag, an empty string will be returned. + + + + + + + + + + + Gets the Ciphertext representing the encrypted JWT in the original raw data. + + + When decrypted using values in the JWE header will contain the plaintext payload. + see: https://datatracker.ietf.org/doc/html/rfc7516#section-2 + + If this JWT is not encrypted, an empty string will be returned. + + + + + + + + + + + Gets the EncodedHeader from the original raw data of this instance when it was created. + + + The original Base64UrlEncoded string of the JWT header. + + + + + Gets the Encrypted Content Encryption Key. + + + For some algorithms this value may be null even though the JWT was encrypted. + see: https://datatracker.ietf.org/doc/html/rfc7516#section-2 + + If not found, an empty string is returned. + + + + + + Gets the EncodedPayload from the original raw data of this instance when it was created. + + + The original Base64UrlEncoded of the JWT payload, for JWE this will an empty string. + + + + + Gets the EncodedSignature from the original raw data of this instance when it was created. + + + The original Base64UrlEncoded of the JWT signature. + If the JWT was not signed or a JWE, an empty string is returned. + + + + + Gets the original raw data of this instance when it was created. + + + The original Base64UrlEncoded of the JWT. + + + + + Gets the Initialization Vector used when encrypting the plaintext. + + + see: https://datatracker.ietf.org/doc/html/rfc7516#appendix-A-1-4 + + Some algorithms may not use an Initialization Vector. + If not found an empty string is returned. + + + + + + Gets the associated with this instance. + + + see: https://datatracker.ietf.org/doc/html/rfc7516#section-2 + For encrypted tokens {JWE}, this represents the JWT that was encrypted. + + If the JWT is not encrypted, this value will be null. + + + + + + Returns true if this JsonWebToken was encrypted a JWE. + + + + + Returns true if this JsonWebToken was signed a JWS. + + + + + Not implemented. + + + + + Gets or sets the that was used to sign this token. + + + If the JWT was not signed or validated, this value will be null. + + + + + Converts a string into an instance of . + + A 'JSON Web Token' (JWT) in JWS or JWE Compact Serialization Format. + if is malformed, a valid JWT should have either 2 dots (JWS) or 4 dots (JWE). + if does not have an non-empty authentication tag after the 4th dot for a JWE. + if has more than 4 dots. + + + + Returns the encoded token without signature or authentication tag. + + Encoded token string without signature or authentication tag. + + + + + + + Gets a where each claim in the JWT { name, value } is returned as a . + + + A requires each value to be represented as a string. If the value was not a string, then contains the json type. + and to determine the json type. + + + + + Gets a representing the { key, 'value' } pair corresponding to the provided . + + + A requires each value to be represented as a string. If the value was not a string, then contains the json type. + and to determine the json type. + + If the key has no corresponding value, this method will throw. + + + + + + Try to get a representing the { key, 'value' } pair corresponding to the provided . + The value is obtained from the Payload. + + + A requires each value to be represented as a string. If the value was not a string, then contains the json type. + and to determine the json type. + + true if successful, false otherwise. + + + + Gets the 'value' corresponding to key from the JWT header transformed as type 'T'. + + + The expectation is that the 'value' corresponds to a type are expected in a JWT token. + The 5 basic types: number, string, true / false, nil, array (of basic types). + This is not a general purpose translation layer for complex types. + + The value as . + if claim is not found or a transformation to cannot be made. + + + + Gets the 'value' corresponding to key from the JWT payload transformed as type 'T'. + + + The expectation is that the 'value' corresponds to a type are expected in a JWT token. + The 5 basic types: number, string, true / false, nil, array (of basic types). + This is not a general purpose translation layer for complex types. + + The value as . + if claim is not found or a transformation to cannot be made. + + + + Tries to get the claim from the JWT payload. + + + The 'value' a type T if possible. + + true if successful, false otherwise. + + + + Tries to get the value corresponding to the provided key from the JWT header { key, 'value' }. + + + The expectation is that the 'value' corresponds to a type expected in a JWT token. + The 5 basic types: number, string, true / false, nil, array (of basic types). + This is not a general purpose translation layer for complex types. + + true if successful, false otherwise. + + + + Try to get the 'value' corresponding to key from the JWT payload transformed as type 'T'. + + + The expectation is that the 'value' corresponds to a type are expected in a JWT token. + The 5 basic types: number, string, true / false, nil, array (of basic types). + This is not a general purpose translation layer for complex types. + + true if successful, false otherwise. + + + + Gets the 'value' of the 'alg' claim from the header. + + + Identifies the cryptographic algorithm used to encrypt or determine the value of the Content Encryption Key. + Applicable to an encrypted JWT {JWE}. + see: https://datatracker.ietf.org/doc/html/rfc7516#section-4-1-1 + + If the 'alg' claim is not found, an empty string is returned. + + + + + + Gets the 'value' of the 'cty' claim from the header. + + + Used by JWS applications to declare the media type[IANA.MediaTypes] of the secured content (the payload). + see: https://datatracker.ietf.org/doc/html/rfc7516#section-4.1.12 (JWE) + see: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.10 (JWS) + + If the 'cty' claim is not found, an empty string is returned. + + + + + + Gets the 'value' of the 'enc' claim from the header. + + + Identifies the content encryption algorithm used to perform authenticated encryption + on the plaintext to produce the ciphertext and the Authentication Tag. + see: https://datatracker.ietf.org/doc/html/rfc7516#section-4.1.2 + + + + + Gets the 'value' of the 'kid' claim from the header. + + + 'kid'is a hint indicating which key was used to secure the JWS. + see: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.4 (JWS) + see: https://datatracker.ietf.org/doc/html/rfc7516#section-4.1.6 (JWE) + + If the 'kid' claim is not found, an empty string is returned. + + + + + + Gets the 'value' of the 'typ' claim from the header. + + + Is used by JWT applications to declare the media type. + see: https://datatracker.ietf.org/doc/html/rfc7519#section-5.1 + + If the 'typ' claim is not found, an empty string is returned. + + + + + + Gets the 'value' of the 'x5t' claim from the header. + + + Is the base64url-encoded SHA-1 thumbprint(a.k.a.digest) of the DER encoding of the X.509 certificate used to sign this token. + see: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.7 + + If the 'x5t' claim is not found, an empty string is returned. + + + + + + Gets the 'value' of the 'zip' claim from the header. + + + The "zip" (compression algorithm) applied to the plaintext before encryption, if any. + see: https://datatracker.ietf.org/doc/html/rfc7516#section-4.1.3 + + If the 'zip' claim is not found, an empty string is returned. + + + + + + Gets the 'value' of the 'actort' claim the payload. + + + If the 'actort' claim is not found, an empty string is returned. + + + + + Gets the list of 'aud' claims from the payload. + + + Identifies the recipients that the JWT is intended for. + see: https://datatracker.ietf.org/doc/html/rfc7519#section-4-1-3 + + If the 'aud' claim is not found, enumeration will be empty. + + + + + + Gets the 'azp' claim from the payload. + + + Identifies the authorized party for the id_token. + see: https://openid.net/specs/openid-connect-core-1_0.html + + + + + Gets the 'value' of the 'iat' claim converted to a from the payload. + + + Identifies the time at which the JWT was issued. + see: https://datatracker.ietf.org/doc/html/rfc7519#section-4.1.6 + + If the 'iat' claim is not found, then is returned. + + + + + + Gets the 'value' of the 'iss' claim from the payload. + + + Identifies the principal that issued the JWT. + see: https://datatracker.ietf.org/doc/html/rfc7519#section-4.1.1 + + If the 'iss' claim is not found, an empty string is returned. + + + + + + Gets the 'value' of the 'jti' claim from the payload. + + + Provides a unique identifier for the JWT. + see: https://datatracker.ietf.org/doc/html/rfc7519#section-4.1.7 + + If the 'jti' claim is not found, an empty string is returned. + + + + + + Gets the 'value' of the 'sub' claim from the payload. + + + see: https://datatracker.ietf.org/doc/html/rfc7519#section-4.1.2 + Identifies the principal that is the subject of the JWT. + + If the 'sub' claim is not found, an empty string is returned. + + + + + + Gets the 'value' of the 'nbf' claim converted to a from the payload. + + + Identifies the time before which the JWT MUST NOT be accepted for processing. + see: https://datatracker.ietf.org/doc/html/rfc7519#section-4.1.5 + + If the 'nbf' claim is not found, then is returned. + + + + + + Gets the 'value' of the 'exp' claim converted to a from the payload. + + + Identifies the expiration time on or after which the JWT MUST NOT be accepted for processing. + see: https://datatracker.ietf.org/doc/html/rfc7519#section-4.1.4 + + If the 'exp' claim is not found, then is returned. + + + + + + A designed for creating and validating Json Web Tokens. + See: https://datatracker.ietf.org/doc/html/rfc7519 and http://www.rfc-editor.org/info/rfc7515. + + + + + Default claim type mapping for inbound claims. + + + + + Default value for the flag that determines whether or not the InboundClaimTypeMap is used. + + + + + Gets the Base64Url encoded string representation of the following JWT header: + { , }. + + The Base64Url encoded string representation of the unsigned JWT header. + + + + Initializes a new instance of the class. + + + + + Gets the type of the . + + The type of + + + + Gets or sets the property name of the will contain the original JSON claim 'name' if a mapping occurred when the (s) were created. + + If .IsNullOrWhiteSpace('value') is true. + + + + Gets or sets the property which is used when determining whether or not to map claim types that are extracted when validating a . + If this is set to true, the is set to the JSON claim 'name' after translating using this mapping. Otherwise, no mapping occurs. + The default value is false. + + + + + Gets or sets the which is used when setting the for claims in the extracted when validating a . + The is set to the JSON claim 'name' after translating using this mapping. + The default value is ClaimTypeMapping.InboundClaimTypeMap. + + 'value' is null. + + + + Determines if the string is a well formed Json Web Token (JWT). + See: https://datatracker.ietf.org/doc/html/rfc7519 + + String that should represent a valid JWT. + Uses matching: + JWS: @"^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$" + JWE: (dir): @"^[A-Za-z0-9-_]+\.\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$" + JWE: (wrappedkey): @"^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]$" + + + 'false' if the token is null or whitespace. + 'false' if token.Length is greater than . + 'true' if the token is in JSON compact serialization format. + + + + + Returns a value that indicates if this handler can validate a . + + 'true', indicating this instance can validate a . + + + + Creates an unsigned JWS (Json Web Signature). + + A string containing JSON which represents the JWT token payload. + if is null. + A JWS in Compact Serialization Format. + + + + Creates an unsigned JWS (Json Web Signature). + + A string containing JSON which represents the JWT token payload. + Defines the dictionary containing any custom header claims that need to be added to the JWT token header. + if is null. + if is null. + A JWS in Compact Serialization Format. + + + + Creates a JWS (Json Web Signature). + + A string containing JSON which represents the JWT token payload. + Defines the security key and algorithm that will be used to sign the JWS. + if is null. + if is null. + A JWS in Compact Serialization Format. + + + + Creates a JWS (Json Web Signature). + + A string containing JSON which represents the JWT token payload. + Defines the security key and algorithm that will be used to sign the JWS. + Defines the dictionary containing any custom header claims that need to be added to the JWT token header. + if is null. + if is null. + if is null. + if , + , , and/or + are present inside of . + A JWS in Compact Serialization Format. + + + + Creates a JWS(Json Web Signature). + + A that contains details of contents of the token. + A JWS in Compact Serialization Format. + + + + Creates a JWE (Json Web Encryption). + + A string containing JSON which represents the JWT token payload. + Defines the security key and algorithm that will be used to encrypt the JWT. + A JWE in compact serialization format. + + + + Creates a JWE (Json Web Encryption). + + A string containing JSON which represents the JWT token payload. + Defines the security key and algorithm that will be used to encrypt the JWT. + Defines the dictionary containing any custom header claims that need to be added to the outer JWT token header. + if is null. + if is null. + if is null. + if , + , , and/or + are present inside of . + A JWS in Compact Serialization Format. + + + + Creates a JWE (Json Web Encryption). + + A string containing JSON which represents the JWT token payload. + Defines the security key and algorithm that will be used to sign the JWT. + Defines the security key and algorithm that will be used to encrypt the JWT. + if is null. + if is null. + if is null. + A JWE in compact serialization format. + + + + Creates a JWE (Json Web Encryption). + + A string containing JSON which represents the JWT token payload. + Defines the security key and algorithm that will be used to sign the JWT. + Defines the security key and algorithm that will be used to encrypt the JWT. + Defines the dictionary containing any custom header claims that need to be added to the outer JWT token header. + if is null. + if is null. + if is null. + if is null. + if , + , , and/or + are present inside of . + A JWE in compact serialization format. + + + + Creates a JWE (Json Web Encryption). + + A string containing JSON which represents the JWT token payload. + Defines the security key and algorithm that will be used to encrypt the JWT. + Defines the compression algorithm that will be used to compress the JWT token payload. + A JWE in compact serialization format. + + + + Creates a JWE (Json Web Encryption). + + A string containing JSON which represents the JWT token payload. + Defines the security key and algorithm that will be used to sign the JWT. + Defines the security key and algorithm that will be used to encrypt the JWT. + Defines the compression algorithm that will be used to compress the JWT token payload. + if is null. + if is null. + if is null. + if is null. + A JWE in compact serialization format. + + + + Creates a JWE (Json Web Encryption). + + A string containing JSON which represents the JWT token payload. + Defines the security key and algorithm that will be used to sign the JWT. + Defines the security key and algorithm that will be used to encrypt the JWT. + Defines the compression algorithm that will be used to compress the JWT token payload. + Defines the dictionary containing any custom header claims that need to be added to the outer JWT token header. + Defines the dictionary containing any custom header claims that need to be added to the inner JWT token header. + if is null. + if is null. + if is null. + if is null. + if is null. + if , + , , and/or + are present inside of . + A JWE in compact serialization format. + + + + Creates a JWE (Json Web Encryption). + + A string containing JSON which represents the JWT token payload. + Defines the security key and algorithm that will be used to sign the JWT. + Defines the security key and algorithm that will be used to encrypt the JWT. + Defines the compression algorithm that will be used to compress the JWT token payload. + Defines the dictionary containing any custom header claims that need to be added to the outer JWT token header. + if is null. + if is null. + if is null. + if is null. + if is null. + if , + , , and/or + are present inside of . + A JWE in compact serialization format. + + + + Creates a from a . + + The to use as a source. + Contains parameters for validating the token. + A containing the . + + + + Creates a from a with the specified issuer. + + The to use as a source. + Contains parameters for validating the token. + Specifies the issuer for the . + A containing the . + + + + Decrypts a JWE and returns the clear text + + the JWE that contains the cypher text. + contains crypto material. + the decoded / cleartext contents of the JWE. + if is null. + if is null. + if ' .Enc' is null or empty. + if decompression failed. + if ' .Kid' is not null AND decryption fails. + if the JWE was not able to be decrypted. + + + + Encrypts a JWS. + + A 'JSON Web Token' (JWT) in JWS Compact Serialization Format. + Defines the security key and algorithm that will be used to encrypt the . + if is null or empty. + if is null. + if both and . are null. + if the CryptoProviderFactory being used does not support the (algorithm), pair. + if unable to create a token encryption provider for the (algorithm), pair. + if encryption fails using the (algorithm), pair. + if not using one of the supported content encryption key (CEK) algorithms: 128, 384 or 512 AesCbcHmac (this applies in the case of key wrap only, not direct encryption). + + + + Encrypts a JWS. + + A 'JSON Web Token' (JWT) in JWS Compact Serialization Format. + Defines the security key and algorithm that will be used to encrypt the . + Defines the dictionary containing any custom header claims that need to be added to the outer JWT token header. + if is null or empty. + if is null. + if is null. + if both and . are null. + if the CryptoProviderFactory being used does not support the (algorithm), pair. + if unable to create a token encryption provider for the (algorithm), pair. + if encryption fails using the (algorithm), pair. + if not using one of the supported content encryption key (CEK) algorithms: 128, 384 or 512 AesCbcHmac (this applies in the case of key wrap only, not direct encryption). + + + + Encrypts a JWS. + + A 'JSON Web Token' (JWT) in JWS Compact Serialization Format. + Defines the security key and algorithm that will be used to encrypt the . + Defines the compression algorithm that will be used to compress the 'innerJwt'. + if is null or empty. + if is null. + if is null or empty. + if both and . are null. + if the CryptoProviderFactory being used does not support the (algorithm), pair. + if unable to create a token encryption provider for the (algorithm), pair. + if compression using fails. + if encryption fails using the (algorithm), pair. + if not using one of the supported content encryption key (CEK) algorithms: 128, 384 or 512 AesCbcHmac (this applies in the case of key wrap only, not direct encryption). + + + + Encrypts a JWS. + + A 'JSON Web Token' (JWT) in JWS Compact Serialization Format. + Defines the security key and algorithm that will be used to encrypt the . + Defines the compression algorithm that will be used to compress the + Defines the dictionary containing any custom header claims that need to be added to the outer JWT token header. + if is null or empty. + if is null. + if is null or empty. + if is null or empty. + if both and . are null. + if the CryptoProviderFactory being used does not support the (algorithm), pair. + if unable to create a token encryption provider for the (algorithm), pair. + if compression using 'algorithm' fails. + if encryption fails using the (algorithm), pair. + if not using one of the supported content encryption key (CEK) algorithms: 128, 384 or 512 AesCbcHmac (this applies in the case of key wrap only, not direct encryption). + + + + Returns a to use when decrypting a JWE. + + The the token that is being decrypted. + The that is being decrypted. + A required for validation. + Returns a to use for signature validation. + If key fails to resolve, then null is returned + + + + Converts a string into an instance of . + + A 'JSON Web Token' (JWT) in JWS or JWE Compact Serialization Format. + A + is null or empty. + 'token.Length' is greater than . + If the is in JWE Compact Serialization format, only the protected header will be deserialized. + This method is unable to decrypt the payload. Use to obtain the payload. + The token is NOT validated and no security decisions should be made about the contents. + Use or to ensure the token is acceptable. + + + + Converts a string into an instance of . + + A 'JSON Web Token' (JWT) in JWS or JWE Compact Serialization Format. + A + is null or empty. + 'token.Length' is greater than . + The token is NOT validated and no security decisions should be made about the contents. + Use or to ensure the token is acceptable. + + + + Validates a JWS or a JWE. + + A 'JSON Web Token' (JWT) in JWS or JWE Compact Serialization Format. + A required for validation. + A + + + + Validates a token. + On a validation failure, no exception will be thrown; instead, the exception will be set in the returned TokenValidationResult.Exception property. + Callers should always check the TokenValidationResult.IsValid property to verify the validity of the result. + + The token to be validated. + A required for validation. + A + + TokenValidationResult.Exception will be set to one of the following exceptions if the is invalid. + if is null or empty. + if is null. + 'token.Length' is greater than . + if is not a valid , + if the validationParameters.TokenReader delegate is not able to parse/read the token as a valid , + + + + + + + + Converts a string into an instance of . + + A 'JSON Web Token' (JWT) in JWS or JWE Compact Serialization Format. + A whose TokenReader, if set, will be used to read a JWT. + A + if the validationParameters.TokenReader delegate is not able to parse/read the token as a valid . + if is not a valid JWT, . + + + + Private method for token validation, responsible for: + (1) Obtaining a configuration from the . + (2) Revalidating using the Last Known Good Configuration (if present), and obtaining a refreshed configuration (if necessary) and revalidating using it. + + The JWT token + The to be used for validation. + + + + + Validates the JWT signature. + + + + + This class provides an abstraction over the json parser for net461+ using System.Text.Json. + will delegate to this class to get values. + + + + + The goal here is return types that are expected in a JWT token. + The 5 basic types: number, string, true / false, nil, array (of basic types). + This is not a general purpose translation layer for complex types. + For that we would need to provide a way to hook a JsonConverter to for complex types. + + + + if this is called from TryGetValue then we don't want to throw. + + + + + + The return types that are expected in a JWT token. + The 5 basic types: number, string, true / false, nil, array (of basic types). + This is not a general purpose translation layer for complex types. + For that we would need to provide a way to hook a JsonConverter to for complex types. + + + + + + + + + Constants for Json Web Tokens. + + + + + Short header type. + + + + + Long header type. + + + + + Short token type. + + + + + Long token type. + + + + + JWS - Token format: 'header.payload.signature'. Signature is optional, but '.' is required. + + + + + JWE - Token format: 'protectedheader.encryptedkey.iv.cyphertext.authenticationtag'. + + + + + The number of parts in a JWE token. + + + + + The number of parts in a JWS token. + + + + + The maximum number of parts in a JWT. + + + + + JWE header alg indicating a shared symmetric key is directly used as CEK. + + + + + List of header parameter names see: https://datatracker.ietf.org/doc/html/rfc7519#section-5. + + + + + See: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.1 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7518#section-4.6.1.2 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7518#section-4.6.1.3 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7518#section-4.6.1.1 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.10 + Also: https://datatracker.ietf.org/doc/html/rfc7519#section-5.2 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7516#section-4.1.2 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7518#section-4.7.1.1 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.2 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.3 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.4 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.9 + Also: https://datatracker.ietf.org/doc/html/rfc7519#section-5.1 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.6 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7515#page-12 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.5 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7516#section-4.1.3 + + + + + Parameter names for JsonWebToken header values as UTF8 bytes. + Used by UTF8JsonReader/Writer for performance gains. + + + + + List of registered claims from different sources + https://datatracker.ietf.org/doc/html/rfc7519#section-4 + http://openid.net/specs/openid-connect-core-1_0.html#IDToken + + + + + + + + + http://openid.net/specs/openid-connect-core-1_0.html#IDToken + + + + + http://openid.net/specs/openid-connect-core-1_0.html#IDToken + + + + + https://datatracker.ietf.org/doc/html/rfc7519#section-4 + + + + + http://openid.net/specs/openid-connect-core-1_0.html#IDToken + + + + + http://openid.net/specs/openid-connect-core-1_0.html#IDToken + + + + + https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims + + + + + https://openid.net/specs/openid-connect-core-1_0.html#HybridIDToken + + + + + http://openid.net/specs/openid-connect-core-1_0.html#CodeIDToken + + + + + https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims + + + + + https://datatracker.ietf.org/doc/html/rfc7519#section-4 + + + + + https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims + + + + + https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims + + + + + https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims + + + + + https://datatracker.ietf.org/doc/html/rfc7519#section-4 + + + + + https://datatracker.ietf.org/doc/html/rfc7519#section-4 + + + + + https://datatracker.ietf.org/doc/html/rfc7519#section-4 + + + + + https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims + + + + + + + + + https://openid.net/specs/openid-connect-core-1_0.html#AuthRequest + + + + + https://datatracker.ietf.org/doc/html/rfc7519#section-4 + + + + + https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims + + + + + https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims + + + + + + + + + http://openid.net/specs/openid-connect-frontchannel-1_0.html#OPLogout + + + + + https://datatracker.ietf.org/doc/html/rfc7519#section-4 + + + + + https://datatracker.ietf.org/doc/html/rfc7519#section-5 + + + + + + + + + + + + + Parameter names for JsonWebToken registered claim names in UTF8 bytes. + Used by UTF8JsonReader/Writer for performance gains. + + + + + Represents the parameters needed to decrypt a JSON Web Token + The JwtSecurityTokenHandler uses this as a helper when decrypting a JwtSecurityToken, the JsonWebTokenHandler sets the JsonWebToken property. + + + + + Gets or sets signature algorithm that was used to create the signature. + + + + + Gets or sets the AuthenticationTag from the original raw data of this instance when it was created. + + + + + Gets or sets the Ciphertext from the original raw data of this instance when it was created. + + + + + Gets or sets the function used to attempt decompression with. + + + + + Gets or sets the encryption algorithm (Enc) of the token. + + + + + Gets the EncodedHeader from the original raw data of this instance when it was created. + + + + + Gets or sets the EncodedHeader from the original raw data of this instance when it was created. + + + + + Gets or sets the InitializationVector from the original raw data of this instance when it was created. + + + + + Gets or sets the collection of s to attempt to decrypt with. + + + + + Gets or sets the 'value' of the 'zip' claim. + + + + + A class which contains useful methods for processing JWT tokens. + + + + + Regex that is used to figure out if a token is in JWS format. + + + + + Regex that is used to figure out if a token is in JWE format. + + + + + Produces a signature over the . + + String to be signed + The that contain crypto specs used to sign the token. + The base 64 url encoded signature over the bytes obtained from UTF8Encoding.GetBytes( 'input' ). + 'input' or 'signingCredentials' is null. + + + + Produces a signature over the . + + String to be signed + The that contain crypto specs used to sign the token. + should the be cached. + The base 64 url encoded signature over the bytes obtained from UTF8Encoding.GetBytes( 'input' ). + or is null. + + + + Decompress JWT token bytes. + + + + if is null. + if is null. + if the decompression is not supported. + if decompression using fails. + Decompressed JWT token + + + + Decrypts a Json Web Token. + + The Json Web Token, could be a JwtSecurityToken or JsonWebToken + The validation parameters containing cryptographic material. + The decryption parameters container. + The decrypted, and if the 'zip' claim is set, decompressed string representation of the token. + + + + Generates key bytes. + + + + + Gets all decryption keys. + + + + + Returns a to use when validating the signature of a token. + + The kid field of the token being validated + The x5t field of the token being validated + A required for validation. + The that will be used along with the to resolve the signing key + Returns a to use for signature validation. + Resolve the signing key using configuration then the validationParameters until a key is resolved. If key fails to resolve, then null is returned. + + + + Returns a to use when validating the signature of a token. + + The kid field of the token being validated + The x5t field of the token being validated + A collection of a signing key to be resolved from. + Returns a to use for signature validation. + If key fails to resolve, then null is returned + + + + Counts the number of Jwt Token segments. + + The Jwt Token. + The maximum number of segments to count up to. + The number of segments up to . + + + + Log messages and codes + + + + diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/lib/net461/Microsoft.IdentityModel.JsonWebTokens.xml.meta b/Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/lib/net461/Microsoft.IdentityModel.JsonWebTokens.xml.meta new file mode 100644 index 0000000..f838c71 --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/lib/net461/Microsoft.IdentityModel.JsonWebTokens.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 18ad189478765e44a909aadc74714828 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/lib/net462.meta b/Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/lib/net462.meta new file mode 100644 index 0000000..73c7741 --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/lib/net462.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 2a02a96f11b0e03489461005f4ea7d11 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/lib/net462/Microsoft.IdentityModel.JsonWebTokens.dll b/Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/lib/net462/Microsoft.IdentityModel.JsonWebTokens.dll new file mode 100644 index 0000000..fe130d9 --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/lib/net462/Microsoft.IdentityModel.JsonWebTokens.dll @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c3460739c028720efff1744567f74f327e7da34fbfeb5e937d45747f2275bf7e +size 122912 diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/lib/net462/Microsoft.IdentityModel.JsonWebTokens.dll.meta b/Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/lib/net462/Microsoft.IdentityModel.JsonWebTokens.dll.meta new file mode 100644 index 0000000..2d17719 --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/lib/net462/Microsoft.IdentityModel.JsonWebTokens.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: 36994f63e05a3e449993e7db66976111 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/lib/net462/Microsoft.IdentityModel.JsonWebTokens.xml b/Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/lib/net462/Microsoft.IdentityModel.JsonWebTokens.xml new file mode 100644 index 0000000..4f51b85 --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/lib/net462/Microsoft.IdentityModel.JsonWebTokens.xml @@ -0,0 +1,1413 @@ + + + + Microsoft.IdentityModel.JsonWebTokens + + + + + Initializes static members of the class. + + + + + Gets the InboundClaimTypeMap used by JwtSecurityTokenHandler when producing claims from jwt. + + + + + Gets the OutboundClaimTypeMap is used by JwtSecurityTokenHandler to shorten claim types when creating a jwt. + + + + + Constants that indicate how the should be evaluated. + + + + + A value that indicates the is a Json object. + + When creating a from Json if the value was not a simple type {String, Null, True, False, Number} + then will contain the Json value. If the Json was a JsonObject, the will be set to "JSON". + + + + A value that indicates the is a Json object. + + When creating a from Json if the value was not a simple type {String, Null, True, False, Number} + then will contain the Json value. If the Json was a JsonArray, the will be set to "JSON_ARRAY". + + + + A value that indicates the is Json null. + + When creating a the cannot be null. If the Json value was null, then the + will be set to and the will be set to "JSON_NULL". + + + + A designed for representing a JSON Web Token (JWT). + + + + + Initializes a new instance of from a string in JWS or JWE Compact serialized format. + + A JSON Web Token that has been serialized in JWS or JWE Compact serialized format. + 'jwtEncodedString' is null or empty. + 'jwtEncodedString' is not in JWS or JWE Compact serialization format. + + see: https://datatracker.ietf.org/doc/html/rfc7519 (JWT) + see: https://datatracker.ietf.org/doc/html/rfc7515 (JWS) + see: https://datatracker.ietf.org/doc/html/rfc7516 (JWE) + + The contents of the returned have not been validated, the JSON Web Token is simply decoded. Validation can be accomplished using the validation methods in + + + + + + Initializes a new instance of the class where the header contains the crypto algorithms applied to the encoded header and payload. + + A string containing JSON which represents the cryptographic operations applied to the JWT and optionally any additional properties of the JWT. + A string containing JSON which represents the claims contained in the JWT. Each claim is a JSON object of the form { Name, Value }. + + see: https://datatracker.ietf.org/doc/html/rfc7519 (JWT) + see: https://datatracker.ietf.org/doc/html/rfc7515 (JWS) + see: https://datatracker.ietf.org/doc/html/rfc7516 (JWE) + + The contents of the returned have not been validated, the JSON Web Token is simply decoded. Validation can be accomplished using the validation methods in + + + 'header' is null. + 'payload' is null. + + + + Gets the AuthenticationTag from the original raw data of this instance when it was created. + + + Contains the results of a Authentication Encryption with Associated Data (AEAD). + see: https://datatracker.ietf.org/doc/html/rfc7516#section-2 + + If this JWT is not encrypted with an algorithms that uses an Authentication Tag, an empty string will be returned. + + + + + + + + + + + Gets the Ciphertext representing the encrypted JWT in the original raw data. + + + When decrypted using values in the JWE header will contain the plaintext payload. + see: https://datatracker.ietf.org/doc/html/rfc7516#section-2 + + If this JWT is not encrypted, an empty string will be returned. + + + + + + + + + + + Gets the EncodedHeader from the original raw data of this instance when it was created. + + + The original Base64UrlEncoded string of the JWT header. + + + + + Gets the Encrypted Content Encryption Key. + + + For some algorithms this value may be null even though the JWT was encrypted. + see: https://datatracker.ietf.org/doc/html/rfc7516#section-2 + + If not found, an empty string is returned. + + + + + + Gets the EncodedPayload from the original raw data of this instance when it was created. + + + The original Base64UrlEncoded of the JWT payload, for JWE this will an empty string. + + + + + Gets the EncodedSignature from the original raw data of this instance when it was created. + + + The original Base64UrlEncoded of the JWT signature. + If the JWT was not signed or a JWE, an empty string is returned. + + + + + Gets the original raw data of this instance when it was created. + + + The original Base64UrlEncoded of the JWT. + + + + + Gets the Initialization Vector used when encrypting the plaintext. + + + see: https://datatracker.ietf.org/doc/html/rfc7516#appendix-A-1-4 + + Some algorithms may not use an Initialization Vector. + If not found an empty string is returned. + + + + + + Gets the associated with this instance. + + + see: https://datatracker.ietf.org/doc/html/rfc7516#section-2 + For encrypted tokens {JWE}, this represents the JWT that was encrypted. + + If the JWT is not encrypted, this value will be null. + + + + + + Returns true if this JsonWebToken was encrypted a JWE. + + + + + Returns true if this JsonWebToken was signed a JWS. + + + + + Not implemented. + + + + + Gets or sets the that was used to sign this token. + + + If the JWT was not signed or validated, this value will be null. + + + + + Converts a string into an instance of . + + A 'JSON Web Token' (JWT) in JWS or JWE Compact Serialization Format. + if is malformed, a valid JWT should have either 2 dots (JWS) or 4 dots (JWE). + if does not have an non-empty authentication tag after the 4th dot for a JWE. + if has more than 4 dots. + + + + Returns the encoded token without signature or authentication tag. + + Encoded token string without signature or authentication tag. + + + + + + + Gets a where each claim in the JWT { name, value } is returned as a . + + + A requires each value to be represented as a string. If the value was not a string, then contains the json type. + and to determine the json type. + + + + + Gets a representing the { key, 'value' } pair corresponding to the provided . + + + A requires each value to be represented as a string. If the value was not a string, then contains the json type. + and to determine the json type. + + If the key has no corresponding value, this method will throw. + + + + + + Try to get a representing the { key, 'value' } pair corresponding to the provided . + The value is obtained from the Payload. + + + A requires each value to be represented as a string. If the value was not a string, then contains the json type. + and to determine the json type. + + true if successful, false otherwise. + + + + Gets the 'value' corresponding to key from the JWT header transformed as type 'T'. + + + The expectation is that the 'value' corresponds to a type are expected in a JWT token. + The 5 basic types: number, string, true / false, nil, array (of basic types). + This is not a general purpose translation layer for complex types. + + The value as . + if claim is not found or a transformation to cannot be made. + + + + Gets the 'value' corresponding to key from the JWT payload transformed as type 'T'. + + + The expectation is that the 'value' corresponds to a type are expected in a JWT token. + The 5 basic types: number, string, true / false, nil, array (of basic types). + This is not a general purpose translation layer for complex types. + + The value as . + if claim is not found or a transformation to cannot be made. + + + + Tries to get the claim from the JWT payload. + + + The 'value' a type T if possible. + + true if successful, false otherwise. + + + + Tries to get the value corresponding to the provided key from the JWT header { key, 'value' }. + + + The expectation is that the 'value' corresponds to a type expected in a JWT token. + The 5 basic types: number, string, true / false, nil, array (of basic types). + This is not a general purpose translation layer for complex types. + + true if successful, false otherwise. + + + + Try to get the 'value' corresponding to key from the JWT payload transformed as type 'T'. + + + The expectation is that the 'value' corresponds to a type are expected in a JWT token. + The 5 basic types: number, string, true / false, nil, array (of basic types). + This is not a general purpose translation layer for complex types. + + true if successful, false otherwise. + + + + Gets the 'value' of the 'alg' claim from the header. + + + Identifies the cryptographic algorithm used to encrypt or determine the value of the Content Encryption Key. + Applicable to an encrypted JWT {JWE}. + see: https://datatracker.ietf.org/doc/html/rfc7516#section-4-1-1 + + If the 'alg' claim is not found, an empty string is returned. + + + + + + Gets the 'value' of the 'cty' claim from the header. + + + Used by JWS applications to declare the media type[IANA.MediaTypes] of the secured content (the payload). + see: https://datatracker.ietf.org/doc/html/rfc7516#section-4.1.12 (JWE) + see: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.10 (JWS) + + If the 'cty' claim is not found, an empty string is returned. + + + + + + Gets the 'value' of the 'enc' claim from the header. + + + Identifies the content encryption algorithm used to perform authenticated encryption + on the plaintext to produce the ciphertext and the Authentication Tag. + see: https://datatracker.ietf.org/doc/html/rfc7516#section-4.1.2 + + + + + Gets the 'value' of the 'kid' claim from the header. + + + 'kid'is a hint indicating which key was used to secure the JWS. + see: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.4 (JWS) + see: https://datatracker.ietf.org/doc/html/rfc7516#section-4.1.6 (JWE) + + If the 'kid' claim is not found, an empty string is returned. + + + + + + Gets the 'value' of the 'typ' claim from the header. + + + Is used by JWT applications to declare the media type. + see: https://datatracker.ietf.org/doc/html/rfc7519#section-5.1 + + If the 'typ' claim is not found, an empty string is returned. + + + + + + Gets the 'value' of the 'x5t' claim from the header. + + + Is the base64url-encoded SHA-1 thumbprint(a.k.a.digest) of the DER encoding of the X.509 certificate used to sign this token. + see: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.7 + + If the 'x5t' claim is not found, an empty string is returned. + + + + + + Gets the 'value' of the 'zip' claim from the header. + + + The "zip" (compression algorithm) applied to the plaintext before encryption, if any. + see: https://datatracker.ietf.org/doc/html/rfc7516#section-4.1.3 + + If the 'zip' claim is not found, an empty string is returned. + + + + + + Gets the 'value' of the 'actort' claim the payload. + + + If the 'actort' claim is not found, an empty string is returned. + + + + + Gets the list of 'aud' claims from the payload. + + + Identifies the recipients that the JWT is intended for. + see: https://datatracker.ietf.org/doc/html/rfc7519#section-4-1-3 + + If the 'aud' claim is not found, enumeration will be empty. + + + + + + Gets the 'azp' claim from the payload. + + + Identifies the authorized party for the id_token. + see: https://openid.net/specs/openid-connect-core-1_0.html + + + + + Gets the 'value' of the 'iat' claim converted to a from the payload. + + + Identifies the time at which the JWT was issued. + see: https://datatracker.ietf.org/doc/html/rfc7519#section-4.1.6 + + If the 'iat' claim is not found, then is returned. + + + + + + Gets the 'value' of the 'iss' claim from the payload. + + + Identifies the principal that issued the JWT. + see: https://datatracker.ietf.org/doc/html/rfc7519#section-4.1.1 + + If the 'iss' claim is not found, an empty string is returned. + + + + + + Gets the 'value' of the 'jti' claim from the payload. + + + Provides a unique identifier for the JWT. + see: https://datatracker.ietf.org/doc/html/rfc7519#section-4.1.7 + + If the 'jti' claim is not found, an empty string is returned. + + + + + + Gets the 'value' of the 'sub' claim from the payload. + + + see: https://datatracker.ietf.org/doc/html/rfc7519#section-4.1.2 + Identifies the principal that is the subject of the JWT. + + If the 'sub' claim is not found, an empty string is returned. + + + + + + Gets the 'value' of the 'nbf' claim converted to a from the payload. + + + Identifies the time before which the JWT MUST NOT be accepted for processing. + see: https://datatracker.ietf.org/doc/html/rfc7519#section-4.1.5 + + If the 'nbf' claim is not found, then is returned. + + + + + + Gets the 'value' of the 'exp' claim converted to a from the payload. + + + Identifies the expiration time on or after which the JWT MUST NOT be accepted for processing. + see: https://datatracker.ietf.org/doc/html/rfc7519#section-4.1.4 + + If the 'exp' claim is not found, then is returned. + + + + + + A designed for creating and validating Json Web Tokens. + See: https://datatracker.ietf.org/doc/html/rfc7519 and http://www.rfc-editor.org/info/rfc7515. + + + + + Default claim type mapping for inbound claims. + + + + + Default value for the flag that determines whether or not the InboundClaimTypeMap is used. + + + + + Gets the Base64Url encoded string representation of the following JWT header: + { , }. + + The Base64Url encoded string representation of the unsigned JWT header. + + + + Initializes a new instance of the class. + + + + + Gets the type of the . + + The type of + + + + Gets or sets the property name of the will contain the original JSON claim 'name' if a mapping occurred when the (s) were created. + + If .IsNullOrWhiteSpace('value') is true. + + + + Gets or sets the property which is used when determining whether or not to map claim types that are extracted when validating a . + If this is set to true, the is set to the JSON claim 'name' after translating using this mapping. Otherwise, no mapping occurs. + The default value is false. + + + + + Gets or sets the which is used when setting the for claims in the extracted when validating a . + The is set to the JSON claim 'name' after translating using this mapping. + The default value is ClaimTypeMapping.InboundClaimTypeMap. + + 'value' is null. + + + + Determines if the string is a well formed Json Web Token (JWT). + See: https://datatracker.ietf.org/doc/html/rfc7519 + + String that should represent a valid JWT. + Uses matching: + JWS: @"^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$" + JWE: (dir): @"^[A-Za-z0-9-_]+\.\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$" + JWE: (wrappedkey): @"^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]$" + + + 'false' if the token is null or whitespace. + 'false' if token.Length is greater than . + 'true' if the token is in JSON compact serialization format. + + + + + Returns a value that indicates if this handler can validate a . + + 'true', indicating this instance can validate a . + + + + Creates an unsigned JWS (Json Web Signature). + + A string containing JSON which represents the JWT token payload. + if is null. + A JWS in Compact Serialization Format. + + + + Creates an unsigned JWS (Json Web Signature). + + A string containing JSON which represents the JWT token payload. + Defines the dictionary containing any custom header claims that need to be added to the JWT token header. + if is null. + if is null. + A JWS in Compact Serialization Format. + + + + Creates a JWS (Json Web Signature). + + A string containing JSON which represents the JWT token payload. + Defines the security key and algorithm that will be used to sign the JWS. + if is null. + if is null. + A JWS in Compact Serialization Format. + + + + Creates a JWS (Json Web Signature). + + A string containing JSON which represents the JWT token payload. + Defines the security key and algorithm that will be used to sign the JWS. + Defines the dictionary containing any custom header claims that need to be added to the JWT token header. + if is null. + if is null. + if is null. + if , + , , and/or + are present inside of . + A JWS in Compact Serialization Format. + + + + Creates a JWS(Json Web Signature). + + A that contains details of contents of the token. + A JWS in Compact Serialization Format. + + + + Creates a JWE (Json Web Encryption). + + A string containing JSON which represents the JWT token payload. + Defines the security key and algorithm that will be used to encrypt the JWT. + A JWE in compact serialization format. + + + + Creates a JWE (Json Web Encryption). + + A string containing JSON which represents the JWT token payload. + Defines the security key and algorithm that will be used to encrypt the JWT. + Defines the dictionary containing any custom header claims that need to be added to the outer JWT token header. + if is null. + if is null. + if is null. + if , + , , and/or + are present inside of . + A JWS in Compact Serialization Format. + + + + Creates a JWE (Json Web Encryption). + + A string containing JSON which represents the JWT token payload. + Defines the security key and algorithm that will be used to sign the JWT. + Defines the security key and algorithm that will be used to encrypt the JWT. + if is null. + if is null. + if is null. + A JWE in compact serialization format. + + + + Creates a JWE (Json Web Encryption). + + A string containing JSON which represents the JWT token payload. + Defines the security key and algorithm that will be used to sign the JWT. + Defines the security key and algorithm that will be used to encrypt the JWT. + Defines the dictionary containing any custom header claims that need to be added to the outer JWT token header. + if is null. + if is null. + if is null. + if is null. + if , + , , and/or + are present inside of . + A JWE in compact serialization format. + + + + Creates a JWE (Json Web Encryption). + + A string containing JSON which represents the JWT token payload. + Defines the security key and algorithm that will be used to encrypt the JWT. + Defines the compression algorithm that will be used to compress the JWT token payload. + A JWE in compact serialization format. + + + + Creates a JWE (Json Web Encryption). + + A string containing JSON which represents the JWT token payload. + Defines the security key and algorithm that will be used to sign the JWT. + Defines the security key and algorithm that will be used to encrypt the JWT. + Defines the compression algorithm that will be used to compress the JWT token payload. + if is null. + if is null. + if is null. + if is null. + A JWE in compact serialization format. + + + + Creates a JWE (Json Web Encryption). + + A string containing JSON which represents the JWT token payload. + Defines the security key and algorithm that will be used to sign the JWT. + Defines the security key and algorithm that will be used to encrypt the JWT. + Defines the compression algorithm that will be used to compress the JWT token payload. + Defines the dictionary containing any custom header claims that need to be added to the outer JWT token header. + Defines the dictionary containing any custom header claims that need to be added to the inner JWT token header. + if is null. + if is null. + if is null. + if is null. + if is null. + if , + , , and/or + are present inside of . + A JWE in compact serialization format. + + + + Creates a JWE (Json Web Encryption). + + A string containing JSON which represents the JWT token payload. + Defines the security key and algorithm that will be used to sign the JWT. + Defines the security key and algorithm that will be used to encrypt the JWT. + Defines the compression algorithm that will be used to compress the JWT token payload. + Defines the dictionary containing any custom header claims that need to be added to the outer JWT token header. + if is null. + if is null. + if is null. + if is null. + if is null. + if , + , , and/or + are present inside of . + A JWE in compact serialization format. + + + + Creates a from a . + + The to use as a source. + Contains parameters for validating the token. + A containing the . + + + + Creates a from a with the specified issuer. + + The to use as a source. + Contains parameters for validating the token. + Specifies the issuer for the . + A containing the . + + + + Decrypts a JWE and returns the clear text + + the JWE that contains the cypher text. + contains crypto material. + the decoded / cleartext contents of the JWE. + if is null. + if is null. + if ' .Enc' is null or empty. + if decompression failed. + if ' .Kid' is not null AND decryption fails. + if the JWE was not able to be decrypted. + + + + Encrypts a JWS. + + A 'JSON Web Token' (JWT) in JWS Compact Serialization Format. + Defines the security key and algorithm that will be used to encrypt the . + if is null or empty. + if is null. + if both and . are null. + if the CryptoProviderFactory being used does not support the (algorithm), pair. + if unable to create a token encryption provider for the (algorithm), pair. + if encryption fails using the (algorithm), pair. + if not using one of the supported content encryption key (CEK) algorithms: 128, 384 or 512 AesCbcHmac (this applies in the case of key wrap only, not direct encryption). + + + + Encrypts a JWS. + + A 'JSON Web Token' (JWT) in JWS Compact Serialization Format. + Defines the security key and algorithm that will be used to encrypt the . + Defines the dictionary containing any custom header claims that need to be added to the outer JWT token header. + if is null or empty. + if is null. + if is null. + if both and . are null. + if the CryptoProviderFactory being used does not support the (algorithm), pair. + if unable to create a token encryption provider for the (algorithm), pair. + if encryption fails using the (algorithm), pair. + if not using one of the supported content encryption key (CEK) algorithms: 128, 384 or 512 AesCbcHmac (this applies in the case of key wrap only, not direct encryption). + + + + Encrypts a JWS. + + A 'JSON Web Token' (JWT) in JWS Compact Serialization Format. + Defines the security key and algorithm that will be used to encrypt the . + Defines the compression algorithm that will be used to compress the 'innerJwt'. + if is null or empty. + if is null. + if is null or empty. + if both and . are null. + if the CryptoProviderFactory being used does not support the (algorithm), pair. + if unable to create a token encryption provider for the (algorithm), pair. + if compression using fails. + if encryption fails using the (algorithm), pair. + if not using one of the supported content encryption key (CEK) algorithms: 128, 384 or 512 AesCbcHmac (this applies in the case of key wrap only, not direct encryption). + + + + Encrypts a JWS. + + A 'JSON Web Token' (JWT) in JWS Compact Serialization Format. + Defines the security key and algorithm that will be used to encrypt the . + Defines the compression algorithm that will be used to compress the + Defines the dictionary containing any custom header claims that need to be added to the outer JWT token header. + if is null or empty. + if is null. + if is null or empty. + if is null or empty. + if both and . are null. + if the CryptoProviderFactory being used does not support the (algorithm), pair. + if unable to create a token encryption provider for the (algorithm), pair. + if compression using 'algorithm' fails. + if encryption fails using the (algorithm), pair. + if not using one of the supported content encryption key (CEK) algorithms: 128, 384 or 512 AesCbcHmac (this applies in the case of key wrap only, not direct encryption). + + + + Returns a to use when decrypting a JWE. + + The the token that is being decrypted. + The that is being decrypted. + A required for validation. + Returns a to use for signature validation. + If key fails to resolve, then null is returned + + + + Converts a string into an instance of . + + A 'JSON Web Token' (JWT) in JWS or JWE Compact Serialization Format. + A + is null or empty. + 'token.Length' is greater than . + If the is in JWE Compact Serialization format, only the protected header will be deserialized. + This method is unable to decrypt the payload. Use to obtain the payload. + The token is NOT validated and no security decisions should be made about the contents. + Use or to ensure the token is acceptable. + + + + Converts a string into an instance of . + + A 'JSON Web Token' (JWT) in JWS or JWE Compact Serialization Format. + A + is null or empty. + 'token.Length' is greater than . + The token is NOT validated and no security decisions should be made about the contents. + Use or to ensure the token is acceptable. + + + + Validates a JWS or a JWE. + + A 'JSON Web Token' (JWT) in JWS or JWE Compact Serialization Format. + A required for validation. + A + + + + Validates a token. + On a validation failure, no exception will be thrown; instead, the exception will be set in the returned TokenValidationResult.Exception property. + Callers should always check the TokenValidationResult.IsValid property to verify the validity of the result. + + The token to be validated. + A required for validation. + A + + TokenValidationResult.Exception will be set to one of the following exceptions if the is invalid. + if is null or empty. + if is null. + 'token.Length' is greater than . + if is not a valid , + if the validationParameters.TokenReader delegate is not able to parse/read the token as a valid , + + + + + + + + Converts a string into an instance of . + + A 'JSON Web Token' (JWT) in JWS or JWE Compact Serialization Format. + A whose TokenReader, if set, will be used to read a JWT. + A + if the validationParameters.TokenReader delegate is not able to parse/read the token as a valid . + if is not a valid JWT, . + + + + Private method for token validation, responsible for: + (1) Obtaining a configuration from the . + (2) Revalidating using the Last Known Good Configuration (if present), and obtaining a refreshed configuration (if necessary) and revalidating using it. + + The JWT token + The to be used for validation. + + + + + Validates the JWT signature. + + + + + This class provides an abstraction over the json parser for net461+ using System.Text.Json. + will delegate to this class to get values. + + + + + The goal here is return types that are expected in a JWT token. + The 5 basic types: number, string, true / false, nil, array (of basic types). + This is not a general purpose translation layer for complex types. + For that we would need to provide a way to hook a JsonConverter to for complex types. + + + + if this is called from TryGetValue then we don't want to throw. + + + + + + The return types that are expected in a JWT token. + The 5 basic types: number, string, true / false, nil, array (of basic types). + This is not a general purpose translation layer for complex types. + For that we would need to provide a way to hook a JsonConverter to for complex types. + + + + + + + + + Constants for Json Web Tokens. + + + + + Short header type. + + + + + Long header type. + + + + + Short token type. + + + + + Long token type. + + + + + JWS - Token format: 'header.payload.signature'. Signature is optional, but '.' is required. + + + + + JWE - Token format: 'protectedheader.encryptedkey.iv.cyphertext.authenticationtag'. + + + + + The number of parts in a JWE token. + + + + + The number of parts in a JWS token. + + + + + The maximum number of parts in a JWT. + + + + + JWE header alg indicating a shared symmetric key is directly used as CEK. + + + + + List of header parameter names see: https://datatracker.ietf.org/doc/html/rfc7519#section-5. + + + + + See: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.1 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7518#section-4.6.1.2 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7518#section-4.6.1.3 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7518#section-4.6.1.1 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.10 + Also: https://datatracker.ietf.org/doc/html/rfc7519#section-5.2 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7516#section-4.1.2 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7518#section-4.7.1.1 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.2 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.3 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.4 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.9 + Also: https://datatracker.ietf.org/doc/html/rfc7519#section-5.1 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.6 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7515#page-12 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.5 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7516#section-4.1.3 + + + + + Parameter names for JsonWebToken header values as UTF8 bytes. + Used by UTF8JsonReader/Writer for performance gains. + + + + + List of registered claims from different sources + https://datatracker.ietf.org/doc/html/rfc7519#section-4 + http://openid.net/specs/openid-connect-core-1_0.html#IDToken + + + + + + + + + http://openid.net/specs/openid-connect-core-1_0.html#IDToken + + + + + http://openid.net/specs/openid-connect-core-1_0.html#IDToken + + + + + https://datatracker.ietf.org/doc/html/rfc7519#section-4 + + + + + http://openid.net/specs/openid-connect-core-1_0.html#IDToken + + + + + http://openid.net/specs/openid-connect-core-1_0.html#IDToken + + + + + https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims + + + + + https://openid.net/specs/openid-connect-core-1_0.html#HybridIDToken + + + + + http://openid.net/specs/openid-connect-core-1_0.html#CodeIDToken + + + + + https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims + + + + + https://datatracker.ietf.org/doc/html/rfc7519#section-4 + + + + + https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims + + + + + https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims + + + + + https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims + + + + + https://datatracker.ietf.org/doc/html/rfc7519#section-4 + + + + + https://datatracker.ietf.org/doc/html/rfc7519#section-4 + + + + + https://datatracker.ietf.org/doc/html/rfc7519#section-4 + + + + + https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims + + + + + + + + + https://openid.net/specs/openid-connect-core-1_0.html#AuthRequest + + + + + https://datatracker.ietf.org/doc/html/rfc7519#section-4 + + + + + https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims + + + + + https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims + + + + + + + + + http://openid.net/specs/openid-connect-frontchannel-1_0.html#OPLogout + + + + + https://datatracker.ietf.org/doc/html/rfc7519#section-4 + + + + + https://datatracker.ietf.org/doc/html/rfc7519#section-5 + + + + + + + + + + + + + Parameter names for JsonWebToken registered claim names in UTF8 bytes. + Used by UTF8JsonReader/Writer for performance gains. + + + + + Represents the parameters needed to decrypt a JSON Web Token + The JwtSecurityTokenHandler uses this as a helper when decrypting a JwtSecurityToken, the JsonWebTokenHandler sets the JsonWebToken property. + + + + + Gets or sets signature algorithm that was used to create the signature. + + + + + Gets or sets the AuthenticationTag from the original raw data of this instance when it was created. + + + + + Gets or sets the Ciphertext from the original raw data of this instance when it was created. + + + + + Gets or sets the function used to attempt decompression with. + + + + + Gets or sets the encryption algorithm (Enc) of the token. + + + + + Gets the EncodedHeader from the original raw data of this instance when it was created. + + + + + Gets or sets the EncodedHeader from the original raw data of this instance when it was created. + + + + + Gets or sets the InitializationVector from the original raw data of this instance when it was created. + + + + + Gets or sets the collection of s to attempt to decrypt with. + + + + + Gets or sets the 'value' of the 'zip' claim. + + + + + A class which contains useful methods for processing JWT tokens. + + + + + Regex that is used to figure out if a token is in JWS format. + + + + + Regex that is used to figure out if a token is in JWE format. + + + + + Produces a signature over the . + + String to be signed + The that contain crypto specs used to sign the token. + The base 64 url encoded signature over the bytes obtained from UTF8Encoding.GetBytes( 'input' ). + 'input' or 'signingCredentials' is null. + + + + Produces a signature over the . + + String to be signed + The that contain crypto specs used to sign the token. + should the be cached. + The base 64 url encoded signature over the bytes obtained from UTF8Encoding.GetBytes( 'input' ). + or is null. + + + + Decompress JWT token bytes. + + + + if is null. + if is null. + if the decompression is not supported. + if decompression using fails. + Decompressed JWT token + + + + Decrypts a Json Web Token. + + The Json Web Token, could be a JwtSecurityToken or JsonWebToken + The validation parameters containing cryptographic material. + The decryption parameters container. + The decrypted, and if the 'zip' claim is set, decompressed string representation of the token. + + + + Generates key bytes. + + + + + Gets all decryption keys. + + + + + Returns a to use when validating the signature of a token. + + The kid field of the token being validated + The x5t field of the token being validated + A required for validation. + The that will be used along with the to resolve the signing key + Returns a to use for signature validation. + Resolve the signing key using configuration then the validationParameters until a key is resolved. If key fails to resolve, then null is returned. + + + + Returns a to use when validating the signature of a token. + + The kid field of the token being validated + The x5t field of the token being validated + A collection of a signing key to be resolved from. + Returns a to use for signature validation. + If key fails to resolve, then null is returned + + + + Counts the number of Jwt Token segments. + + The Jwt Token. + The maximum number of segments to count up to. + The number of segments up to . + + + + Log messages and codes + + + + diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/lib/net462/Microsoft.IdentityModel.JsonWebTokens.xml.meta b/Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/lib/net462/Microsoft.IdentityModel.JsonWebTokens.xml.meta new file mode 100644 index 0000000..b7fbc96 --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/lib/net462/Microsoft.IdentityModel.JsonWebTokens.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: ff98be4ad9e341e468465fab1324ea9b +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/lib/net472.meta b/Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/lib/net472.meta new file mode 100644 index 0000000..532ba0e --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/lib/net472.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e046dfd24f33c744bafbd6dc80176fac +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/lib/net472/Microsoft.IdentityModel.JsonWebTokens.dll b/Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/lib/net472/Microsoft.IdentityModel.JsonWebTokens.dll new file mode 100644 index 0000000..94d41af --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/lib/net472/Microsoft.IdentityModel.JsonWebTokens.dll @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:176a6a99fa385583a0044dc4c2307df333de2bc0096474ec631efbefedbdebf6 +size 123936 diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/lib/net472/Microsoft.IdentityModel.JsonWebTokens.dll.meta b/Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/lib/net472/Microsoft.IdentityModel.JsonWebTokens.dll.meta new file mode 100644 index 0000000..876b02b --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/lib/net472/Microsoft.IdentityModel.JsonWebTokens.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: f1722d6cd7256214ca4c8bcf74b15e13 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/lib/net472/Microsoft.IdentityModel.JsonWebTokens.xml b/Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/lib/net472/Microsoft.IdentityModel.JsonWebTokens.xml new file mode 100644 index 0000000..4f51b85 --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/lib/net472/Microsoft.IdentityModel.JsonWebTokens.xml @@ -0,0 +1,1413 @@ + + + + Microsoft.IdentityModel.JsonWebTokens + + + + + Initializes static members of the class. + + + + + Gets the InboundClaimTypeMap used by JwtSecurityTokenHandler when producing claims from jwt. + + + + + Gets the OutboundClaimTypeMap is used by JwtSecurityTokenHandler to shorten claim types when creating a jwt. + + + + + Constants that indicate how the should be evaluated. + + + + + A value that indicates the is a Json object. + + When creating a from Json if the value was not a simple type {String, Null, True, False, Number} + then will contain the Json value. If the Json was a JsonObject, the will be set to "JSON". + + + + A value that indicates the is a Json object. + + When creating a from Json if the value was not a simple type {String, Null, True, False, Number} + then will contain the Json value. If the Json was a JsonArray, the will be set to "JSON_ARRAY". + + + + A value that indicates the is Json null. + + When creating a the cannot be null. If the Json value was null, then the + will be set to and the will be set to "JSON_NULL". + + + + A designed for representing a JSON Web Token (JWT). + + + + + Initializes a new instance of from a string in JWS or JWE Compact serialized format. + + A JSON Web Token that has been serialized in JWS or JWE Compact serialized format. + 'jwtEncodedString' is null or empty. + 'jwtEncodedString' is not in JWS or JWE Compact serialization format. + + see: https://datatracker.ietf.org/doc/html/rfc7519 (JWT) + see: https://datatracker.ietf.org/doc/html/rfc7515 (JWS) + see: https://datatracker.ietf.org/doc/html/rfc7516 (JWE) + + The contents of the returned have not been validated, the JSON Web Token is simply decoded. Validation can be accomplished using the validation methods in + + + + + + Initializes a new instance of the class where the header contains the crypto algorithms applied to the encoded header and payload. + + A string containing JSON which represents the cryptographic operations applied to the JWT and optionally any additional properties of the JWT. + A string containing JSON which represents the claims contained in the JWT. Each claim is a JSON object of the form { Name, Value }. + + see: https://datatracker.ietf.org/doc/html/rfc7519 (JWT) + see: https://datatracker.ietf.org/doc/html/rfc7515 (JWS) + see: https://datatracker.ietf.org/doc/html/rfc7516 (JWE) + + The contents of the returned have not been validated, the JSON Web Token is simply decoded. Validation can be accomplished using the validation methods in + + + 'header' is null. + 'payload' is null. + + + + Gets the AuthenticationTag from the original raw data of this instance when it was created. + + + Contains the results of a Authentication Encryption with Associated Data (AEAD). + see: https://datatracker.ietf.org/doc/html/rfc7516#section-2 + + If this JWT is not encrypted with an algorithms that uses an Authentication Tag, an empty string will be returned. + + + + + + + + + + + Gets the Ciphertext representing the encrypted JWT in the original raw data. + + + When decrypted using values in the JWE header will contain the plaintext payload. + see: https://datatracker.ietf.org/doc/html/rfc7516#section-2 + + If this JWT is not encrypted, an empty string will be returned. + + + + + + + + + + + Gets the EncodedHeader from the original raw data of this instance when it was created. + + + The original Base64UrlEncoded string of the JWT header. + + + + + Gets the Encrypted Content Encryption Key. + + + For some algorithms this value may be null even though the JWT was encrypted. + see: https://datatracker.ietf.org/doc/html/rfc7516#section-2 + + If not found, an empty string is returned. + + + + + + Gets the EncodedPayload from the original raw data of this instance when it was created. + + + The original Base64UrlEncoded of the JWT payload, for JWE this will an empty string. + + + + + Gets the EncodedSignature from the original raw data of this instance when it was created. + + + The original Base64UrlEncoded of the JWT signature. + If the JWT was not signed or a JWE, an empty string is returned. + + + + + Gets the original raw data of this instance when it was created. + + + The original Base64UrlEncoded of the JWT. + + + + + Gets the Initialization Vector used when encrypting the plaintext. + + + see: https://datatracker.ietf.org/doc/html/rfc7516#appendix-A-1-4 + + Some algorithms may not use an Initialization Vector. + If not found an empty string is returned. + + + + + + Gets the associated with this instance. + + + see: https://datatracker.ietf.org/doc/html/rfc7516#section-2 + For encrypted tokens {JWE}, this represents the JWT that was encrypted. + + If the JWT is not encrypted, this value will be null. + + + + + + Returns true if this JsonWebToken was encrypted a JWE. + + + + + Returns true if this JsonWebToken was signed a JWS. + + + + + Not implemented. + + + + + Gets or sets the that was used to sign this token. + + + If the JWT was not signed or validated, this value will be null. + + + + + Converts a string into an instance of . + + A 'JSON Web Token' (JWT) in JWS or JWE Compact Serialization Format. + if is malformed, a valid JWT should have either 2 dots (JWS) or 4 dots (JWE). + if does not have an non-empty authentication tag after the 4th dot for a JWE. + if has more than 4 dots. + + + + Returns the encoded token without signature or authentication tag. + + Encoded token string without signature or authentication tag. + + + + + + + Gets a where each claim in the JWT { name, value } is returned as a . + + + A requires each value to be represented as a string. If the value was not a string, then contains the json type. + and to determine the json type. + + + + + Gets a representing the { key, 'value' } pair corresponding to the provided . + + + A requires each value to be represented as a string. If the value was not a string, then contains the json type. + and to determine the json type. + + If the key has no corresponding value, this method will throw. + + + + + + Try to get a representing the { key, 'value' } pair corresponding to the provided . + The value is obtained from the Payload. + + + A requires each value to be represented as a string. If the value was not a string, then contains the json type. + and to determine the json type. + + true if successful, false otherwise. + + + + Gets the 'value' corresponding to key from the JWT header transformed as type 'T'. + + + The expectation is that the 'value' corresponds to a type are expected in a JWT token. + The 5 basic types: number, string, true / false, nil, array (of basic types). + This is not a general purpose translation layer for complex types. + + The value as . + if claim is not found or a transformation to cannot be made. + + + + Gets the 'value' corresponding to key from the JWT payload transformed as type 'T'. + + + The expectation is that the 'value' corresponds to a type are expected in a JWT token. + The 5 basic types: number, string, true / false, nil, array (of basic types). + This is not a general purpose translation layer for complex types. + + The value as . + if claim is not found or a transformation to cannot be made. + + + + Tries to get the claim from the JWT payload. + + + The 'value' a type T if possible. + + true if successful, false otherwise. + + + + Tries to get the value corresponding to the provided key from the JWT header { key, 'value' }. + + + The expectation is that the 'value' corresponds to a type expected in a JWT token. + The 5 basic types: number, string, true / false, nil, array (of basic types). + This is not a general purpose translation layer for complex types. + + true if successful, false otherwise. + + + + Try to get the 'value' corresponding to key from the JWT payload transformed as type 'T'. + + + The expectation is that the 'value' corresponds to a type are expected in a JWT token. + The 5 basic types: number, string, true / false, nil, array (of basic types). + This is not a general purpose translation layer for complex types. + + true if successful, false otherwise. + + + + Gets the 'value' of the 'alg' claim from the header. + + + Identifies the cryptographic algorithm used to encrypt or determine the value of the Content Encryption Key. + Applicable to an encrypted JWT {JWE}. + see: https://datatracker.ietf.org/doc/html/rfc7516#section-4-1-1 + + If the 'alg' claim is not found, an empty string is returned. + + + + + + Gets the 'value' of the 'cty' claim from the header. + + + Used by JWS applications to declare the media type[IANA.MediaTypes] of the secured content (the payload). + see: https://datatracker.ietf.org/doc/html/rfc7516#section-4.1.12 (JWE) + see: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.10 (JWS) + + If the 'cty' claim is not found, an empty string is returned. + + + + + + Gets the 'value' of the 'enc' claim from the header. + + + Identifies the content encryption algorithm used to perform authenticated encryption + on the plaintext to produce the ciphertext and the Authentication Tag. + see: https://datatracker.ietf.org/doc/html/rfc7516#section-4.1.2 + + + + + Gets the 'value' of the 'kid' claim from the header. + + + 'kid'is a hint indicating which key was used to secure the JWS. + see: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.4 (JWS) + see: https://datatracker.ietf.org/doc/html/rfc7516#section-4.1.6 (JWE) + + If the 'kid' claim is not found, an empty string is returned. + + + + + + Gets the 'value' of the 'typ' claim from the header. + + + Is used by JWT applications to declare the media type. + see: https://datatracker.ietf.org/doc/html/rfc7519#section-5.1 + + If the 'typ' claim is not found, an empty string is returned. + + + + + + Gets the 'value' of the 'x5t' claim from the header. + + + Is the base64url-encoded SHA-1 thumbprint(a.k.a.digest) of the DER encoding of the X.509 certificate used to sign this token. + see: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.7 + + If the 'x5t' claim is not found, an empty string is returned. + + + + + + Gets the 'value' of the 'zip' claim from the header. + + + The "zip" (compression algorithm) applied to the plaintext before encryption, if any. + see: https://datatracker.ietf.org/doc/html/rfc7516#section-4.1.3 + + If the 'zip' claim is not found, an empty string is returned. + + + + + + Gets the 'value' of the 'actort' claim the payload. + + + If the 'actort' claim is not found, an empty string is returned. + + + + + Gets the list of 'aud' claims from the payload. + + + Identifies the recipients that the JWT is intended for. + see: https://datatracker.ietf.org/doc/html/rfc7519#section-4-1-3 + + If the 'aud' claim is not found, enumeration will be empty. + + + + + + Gets the 'azp' claim from the payload. + + + Identifies the authorized party for the id_token. + see: https://openid.net/specs/openid-connect-core-1_0.html + + + + + Gets the 'value' of the 'iat' claim converted to a from the payload. + + + Identifies the time at which the JWT was issued. + see: https://datatracker.ietf.org/doc/html/rfc7519#section-4.1.6 + + If the 'iat' claim is not found, then is returned. + + + + + + Gets the 'value' of the 'iss' claim from the payload. + + + Identifies the principal that issued the JWT. + see: https://datatracker.ietf.org/doc/html/rfc7519#section-4.1.1 + + If the 'iss' claim is not found, an empty string is returned. + + + + + + Gets the 'value' of the 'jti' claim from the payload. + + + Provides a unique identifier for the JWT. + see: https://datatracker.ietf.org/doc/html/rfc7519#section-4.1.7 + + If the 'jti' claim is not found, an empty string is returned. + + + + + + Gets the 'value' of the 'sub' claim from the payload. + + + see: https://datatracker.ietf.org/doc/html/rfc7519#section-4.1.2 + Identifies the principal that is the subject of the JWT. + + If the 'sub' claim is not found, an empty string is returned. + + + + + + Gets the 'value' of the 'nbf' claim converted to a from the payload. + + + Identifies the time before which the JWT MUST NOT be accepted for processing. + see: https://datatracker.ietf.org/doc/html/rfc7519#section-4.1.5 + + If the 'nbf' claim is not found, then is returned. + + + + + + Gets the 'value' of the 'exp' claim converted to a from the payload. + + + Identifies the expiration time on or after which the JWT MUST NOT be accepted for processing. + see: https://datatracker.ietf.org/doc/html/rfc7519#section-4.1.4 + + If the 'exp' claim is not found, then is returned. + + + + + + A designed for creating and validating Json Web Tokens. + See: https://datatracker.ietf.org/doc/html/rfc7519 and http://www.rfc-editor.org/info/rfc7515. + + + + + Default claim type mapping for inbound claims. + + + + + Default value for the flag that determines whether or not the InboundClaimTypeMap is used. + + + + + Gets the Base64Url encoded string representation of the following JWT header: + { , }. + + The Base64Url encoded string representation of the unsigned JWT header. + + + + Initializes a new instance of the class. + + + + + Gets the type of the . + + The type of + + + + Gets or sets the property name of the will contain the original JSON claim 'name' if a mapping occurred when the (s) were created. + + If .IsNullOrWhiteSpace('value') is true. + + + + Gets or sets the property which is used when determining whether or not to map claim types that are extracted when validating a . + If this is set to true, the is set to the JSON claim 'name' after translating using this mapping. Otherwise, no mapping occurs. + The default value is false. + + + + + Gets or sets the which is used when setting the for claims in the extracted when validating a . + The is set to the JSON claim 'name' after translating using this mapping. + The default value is ClaimTypeMapping.InboundClaimTypeMap. + + 'value' is null. + + + + Determines if the string is a well formed Json Web Token (JWT). + See: https://datatracker.ietf.org/doc/html/rfc7519 + + String that should represent a valid JWT. + Uses matching: + JWS: @"^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$" + JWE: (dir): @"^[A-Za-z0-9-_]+\.\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$" + JWE: (wrappedkey): @"^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]$" + + + 'false' if the token is null or whitespace. + 'false' if token.Length is greater than . + 'true' if the token is in JSON compact serialization format. + + + + + Returns a value that indicates if this handler can validate a . + + 'true', indicating this instance can validate a . + + + + Creates an unsigned JWS (Json Web Signature). + + A string containing JSON which represents the JWT token payload. + if is null. + A JWS in Compact Serialization Format. + + + + Creates an unsigned JWS (Json Web Signature). + + A string containing JSON which represents the JWT token payload. + Defines the dictionary containing any custom header claims that need to be added to the JWT token header. + if is null. + if is null. + A JWS in Compact Serialization Format. + + + + Creates a JWS (Json Web Signature). + + A string containing JSON which represents the JWT token payload. + Defines the security key and algorithm that will be used to sign the JWS. + if is null. + if is null. + A JWS in Compact Serialization Format. + + + + Creates a JWS (Json Web Signature). + + A string containing JSON which represents the JWT token payload. + Defines the security key and algorithm that will be used to sign the JWS. + Defines the dictionary containing any custom header claims that need to be added to the JWT token header. + if is null. + if is null. + if is null. + if , + , , and/or + are present inside of . + A JWS in Compact Serialization Format. + + + + Creates a JWS(Json Web Signature). + + A that contains details of contents of the token. + A JWS in Compact Serialization Format. + + + + Creates a JWE (Json Web Encryption). + + A string containing JSON which represents the JWT token payload. + Defines the security key and algorithm that will be used to encrypt the JWT. + A JWE in compact serialization format. + + + + Creates a JWE (Json Web Encryption). + + A string containing JSON which represents the JWT token payload. + Defines the security key and algorithm that will be used to encrypt the JWT. + Defines the dictionary containing any custom header claims that need to be added to the outer JWT token header. + if is null. + if is null. + if is null. + if , + , , and/or + are present inside of . + A JWS in Compact Serialization Format. + + + + Creates a JWE (Json Web Encryption). + + A string containing JSON which represents the JWT token payload. + Defines the security key and algorithm that will be used to sign the JWT. + Defines the security key and algorithm that will be used to encrypt the JWT. + if is null. + if is null. + if is null. + A JWE in compact serialization format. + + + + Creates a JWE (Json Web Encryption). + + A string containing JSON which represents the JWT token payload. + Defines the security key and algorithm that will be used to sign the JWT. + Defines the security key and algorithm that will be used to encrypt the JWT. + Defines the dictionary containing any custom header claims that need to be added to the outer JWT token header. + if is null. + if is null. + if is null. + if is null. + if , + , , and/or + are present inside of . + A JWE in compact serialization format. + + + + Creates a JWE (Json Web Encryption). + + A string containing JSON which represents the JWT token payload. + Defines the security key and algorithm that will be used to encrypt the JWT. + Defines the compression algorithm that will be used to compress the JWT token payload. + A JWE in compact serialization format. + + + + Creates a JWE (Json Web Encryption). + + A string containing JSON which represents the JWT token payload. + Defines the security key and algorithm that will be used to sign the JWT. + Defines the security key and algorithm that will be used to encrypt the JWT. + Defines the compression algorithm that will be used to compress the JWT token payload. + if is null. + if is null. + if is null. + if is null. + A JWE in compact serialization format. + + + + Creates a JWE (Json Web Encryption). + + A string containing JSON which represents the JWT token payload. + Defines the security key and algorithm that will be used to sign the JWT. + Defines the security key and algorithm that will be used to encrypt the JWT. + Defines the compression algorithm that will be used to compress the JWT token payload. + Defines the dictionary containing any custom header claims that need to be added to the outer JWT token header. + Defines the dictionary containing any custom header claims that need to be added to the inner JWT token header. + if is null. + if is null. + if is null. + if is null. + if is null. + if , + , , and/or + are present inside of . + A JWE in compact serialization format. + + + + Creates a JWE (Json Web Encryption). + + A string containing JSON which represents the JWT token payload. + Defines the security key and algorithm that will be used to sign the JWT. + Defines the security key and algorithm that will be used to encrypt the JWT. + Defines the compression algorithm that will be used to compress the JWT token payload. + Defines the dictionary containing any custom header claims that need to be added to the outer JWT token header. + if is null. + if is null. + if is null. + if is null. + if is null. + if , + , , and/or + are present inside of . + A JWE in compact serialization format. + + + + Creates a from a . + + The to use as a source. + Contains parameters for validating the token. + A containing the . + + + + Creates a from a with the specified issuer. + + The to use as a source. + Contains parameters for validating the token. + Specifies the issuer for the . + A containing the . + + + + Decrypts a JWE and returns the clear text + + the JWE that contains the cypher text. + contains crypto material. + the decoded / cleartext contents of the JWE. + if is null. + if is null. + if ' .Enc' is null or empty. + if decompression failed. + if ' .Kid' is not null AND decryption fails. + if the JWE was not able to be decrypted. + + + + Encrypts a JWS. + + A 'JSON Web Token' (JWT) in JWS Compact Serialization Format. + Defines the security key and algorithm that will be used to encrypt the . + if is null or empty. + if is null. + if both and . are null. + if the CryptoProviderFactory being used does not support the (algorithm), pair. + if unable to create a token encryption provider for the (algorithm), pair. + if encryption fails using the (algorithm), pair. + if not using one of the supported content encryption key (CEK) algorithms: 128, 384 or 512 AesCbcHmac (this applies in the case of key wrap only, not direct encryption). + + + + Encrypts a JWS. + + A 'JSON Web Token' (JWT) in JWS Compact Serialization Format. + Defines the security key and algorithm that will be used to encrypt the . + Defines the dictionary containing any custom header claims that need to be added to the outer JWT token header. + if is null or empty. + if is null. + if is null. + if both and . are null. + if the CryptoProviderFactory being used does not support the (algorithm), pair. + if unable to create a token encryption provider for the (algorithm), pair. + if encryption fails using the (algorithm), pair. + if not using one of the supported content encryption key (CEK) algorithms: 128, 384 or 512 AesCbcHmac (this applies in the case of key wrap only, not direct encryption). + + + + Encrypts a JWS. + + A 'JSON Web Token' (JWT) in JWS Compact Serialization Format. + Defines the security key and algorithm that will be used to encrypt the . + Defines the compression algorithm that will be used to compress the 'innerJwt'. + if is null or empty. + if is null. + if is null or empty. + if both and . are null. + if the CryptoProviderFactory being used does not support the (algorithm), pair. + if unable to create a token encryption provider for the (algorithm), pair. + if compression using fails. + if encryption fails using the (algorithm), pair. + if not using one of the supported content encryption key (CEK) algorithms: 128, 384 or 512 AesCbcHmac (this applies in the case of key wrap only, not direct encryption). + + + + Encrypts a JWS. + + A 'JSON Web Token' (JWT) in JWS Compact Serialization Format. + Defines the security key and algorithm that will be used to encrypt the . + Defines the compression algorithm that will be used to compress the + Defines the dictionary containing any custom header claims that need to be added to the outer JWT token header. + if is null or empty. + if is null. + if is null or empty. + if is null or empty. + if both and . are null. + if the CryptoProviderFactory being used does not support the (algorithm), pair. + if unable to create a token encryption provider for the (algorithm), pair. + if compression using 'algorithm' fails. + if encryption fails using the (algorithm), pair. + if not using one of the supported content encryption key (CEK) algorithms: 128, 384 or 512 AesCbcHmac (this applies in the case of key wrap only, not direct encryption). + + + + Returns a to use when decrypting a JWE. + + The the token that is being decrypted. + The that is being decrypted. + A required for validation. + Returns a to use for signature validation. + If key fails to resolve, then null is returned + + + + Converts a string into an instance of . + + A 'JSON Web Token' (JWT) in JWS or JWE Compact Serialization Format. + A + is null or empty. + 'token.Length' is greater than . + If the is in JWE Compact Serialization format, only the protected header will be deserialized. + This method is unable to decrypt the payload. Use to obtain the payload. + The token is NOT validated and no security decisions should be made about the contents. + Use or to ensure the token is acceptable. + + + + Converts a string into an instance of . + + A 'JSON Web Token' (JWT) in JWS or JWE Compact Serialization Format. + A + is null or empty. + 'token.Length' is greater than . + The token is NOT validated and no security decisions should be made about the contents. + Use or to ensure the token is acceptable. + + + + Validates a JWS or a JWE. + + A 'JSON Web Token' (JWT) in JWS or JWE Compact Serialization Format. + A required for validation. + A + + + + Validates a token. + On a validation failure, no exception will be thrown; instead, the exception will be set in the returned TokenValidationResult.Exception property. + Callers should always check the TokenValidationResult.IsValid property to verify the validity of the result. + + The token to be validated. + A required for validation. + A + + TokenValidationResult.Exception will be set to one of the following exceptions if the is invalid. + if is null or empty. + if is null. + 'token.Length' is greater than . + if is not a valid , + if the validationParameters.TokenReader delegate is not able to parse/read the token as a valid , + + + + + + + + Converts a string into an instance of . + + A 'JSON Web Token' (JWT) in JWS or JWE Compact Serialization Format. + A whose TokenReader, if set, will be used to read a JWT. + A + if the validationParameters.TokenReader delegate is not able to parse/read the token as a valid . + if is not a valid JWT, . + + + + Private method for token validation, responsible for: + (1) Obtaining a configuration from the . + (2) Revalidating using the Last Known Good Configuration (if present), and obtaining a refreshed configuration (if necessary) and revalidating using it. + + The JWT token + The to be used for validation. + + + + + Validates the JWT signature. + + + + + This class provides an abstraction over the json parser for net461+ using System.Text.Json. + will delegate to this class to get values. + + + + + The goal here is return types that are expected in a JWT token. + The 5 basic types: number, string, true / false, nil, array (of basic types). + This is not a general purpose translation layer for complex types. + For that we would need to provide a way to hook a JsonConverter to for complex types. + + + + if this is called from TryGetValue then we don't want to throw. + + + + + + The return types that are expected in a JWT token. + The 5 basic types: number, string, true / false, nil, array (of basic types). + This is not a general purpose translation layer for complex types. + For that we would need to provide a way to hook a JsonConverter to for complex types. + + + + + + + + + Constants for Json Web Tokens. + + + + + Short header type. + + + + + Long header type. + + + + + Short token type. + + + + + Long token type. + + + + + JWS - Token format: 'header.payload.signature'. Signature is optional, but '.' is required. + + + + + JWE - Token format: 'protectedheader.encryptedkey.iv.cyphertext.authenticationtag'. + + + + + The number of parts in a JWE token. + + + + + The number of parts in a JWS token. + + + + + The maximum number of parts in a JWT. + + + + + JWE header alg indicating a shared symmetric key is directly used as CEK. + + + + + List of header parameter names see: https://datatracker.ietf.org/doc/html/rfc7519#section-5. + + + + + See: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.1 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7518#section-4.6.1.2 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7518#section-4.6.1.3 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7518#section-4.6.1.1 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.10 + Also: https://datatracker.ietf.org/doc/html/rfc7519#section-5.2 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7516#section-4.1.2 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7518#section-4.7.1.1 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.2 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.3 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.4 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.9 + Also: https://datatracker.ietf.org/doc/html/rfc7519#section-5.1 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.6 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7515#page-12 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.5 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7516#section-4.1.3 + + + + + Parameter names for JsonWebToken header values as UTF8 bytes. + Used by UTF8JsonReader/Writer for performance gains. + + + + + List of registered claims from different sources + https://datatracker.ietf.org/doc/html/rfc7519#section-4 + http://openid.net/specs/openid-connect-core-1_0.html#IDToken + + + + + + + + + http://openid.net/specs/openid-connect-core-1_0.html#IDToken + + + + + http://openid.net/specs/openid-connect-core-1_0.html#IDToken + + + + + https://datatracker.ietf.org/doc/html/rfc7519#section-4 + + + + + http://openid.net/specs/openid-connect-core-1_0.html#IDToken + + + + + http://openid.net/specs/openid-connect-core-1_0.html#IDToken + + + + + https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims + + + + + https://openid.net/specs/openid-connect-core-1_0.html#HybridIDToken + + + + + http://openid.net/specs/openid-connect-core-1_0.html#CodeIDToken + + + + + https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims + + + + + https://datatracker.ietf.org/doc/html/rfc7519#section-4 + + + + + https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims + + + + + https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims + + + + + https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims + + + + + https://datatracker.ietf.org/doc/html/rfc7519#section-4 + + + + + https://datatracker.ietf.org/doc/html/rfc7519#section-4 + + + + + https://datatracker.ietf.org/doc/html/rfc7519#section-4 + + + + + https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims + + + + + + + + + https://openid.net/specs/openid-connect-core-1_0.html#AuthRequest + + + + + https://datatracker.ietf.org/doc/html/rfc7519#section-4 + + + + + https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims + + + + + https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims + + + + + + + + + http://openid.net/specs/openid-connect-frontchannel-1_0.html#OPLogout + + + + + https://datatracker.ietf.org/doc/html/rfc7519#section-4 + + + + + https://datatracker.ietf.org/doc/html/rfc7519#section-5 + + + + + + + + + + + + + Parameter names for JsonWebToken registered claim names in UTF8 bytes. + Used by UTF8JsonReader/Writer for performance gains. + + + + + Represents the parameters needed to decrypt a JSON Web Token + The JwtSecurityTokenHandler uses this as a helper when decrypting a JwtSecurityToken, the JsonWebTokenHandler sets the JsonWebToken property. + + + + + Gets or sets signature algorithm that was used to create the signature. + + + + + Gets or sets the AuthenticationTag from the original raw data of this instance when it was created. + + + + + Gets or sets the Ciphertext from the original raw data of this instance when it was created. + + + + + Gets or sets the function used to attempt decompression with. + + + + + Gets or sets the encryption algorithm (Enc) of the token. + + + + + Gets the EncodedHeader from the original raw data of this instance when it was created. + + + + + Gets or sets the EncodedHeader from the original raw data of this instance when it was created. + + + + + Gets or sets the InitializationVector from the original raw data of this instance when it was created. + + + + + Gets or sets the collection of s to attempt to decrypt with. + + + + + Gets or sets the 'value' of the 'zip' claim. + + + + + A class which contains useful methods for processing JWT tokens. + + + + + Regex that is used to figure out if a token is in JWS format. + + + + + Regex that is used to figure out if a token is in JWE format. + + + + + Produces a signature over the . + + String to be signed + The that contain crypto specs used to sign the token. + The base 64 url encoded signature over the bytes obtained from UTF8Encoding.GetBytes( 'input' ). + 'input' or 'signingCredentials' is null. + + + + Produces a signature over the . + + String to be signed + The that contain crypto specs used to sign the token. + should the be cached. + The base 64 url encoded signature over the bytes obtained from UTF8Encoding.GetBytes( 'input' ). + or is null. + + + + Decompress JWT token bytes. + + + + if is null. + if is null. + if the decompression is not supported. + if decompression using fails. + Decompressed JWT token + + + + Decrypts a Json Web Token. + + The Json Web Token, could be a JwtSecurityToken or JsonWebToken + The validation parameters containing cryptographic material. + The decryption parameters container. + The decrypted, and if the 'zip' claim is set, decompressed string representation of the token. + + + + Generates key bytes. + + + + + Gets all decryption keys. + + + + + Returns a to use when validating the signature of a token. + + The kid field of the token being validated + The x5t field of the token being validated + A required for validation. + The that will be used along with the to resolve the signing key + Returns a to use for signature validation. + Resolve the signing key using configuration then the validationParameters until a key is resolved. If key fails to resolve, then null is returned. + + + + Returns a to use when validating the signature of a token. + + The kid field of the token being validated + The x5t field of the token being validated + A collection of a signing key to be resolved from. + Returns a to use for signature validation. + If key fails to resolve, then null is returned + + + + Counts the number of Jwt Token segments. + + The Jwt Token. + The maximum number of segments to count up to. + The number of segments up to . + + + + Log messages and codes + + + + diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/lib/net472/Microsoft.IdentityModel.JsonWebTokens.xml.meta b/Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/lib/net472/Microsoft.IdentityModel.JsonWebTokens.xml.meta new file mode 100644 index 0000000..9b03033 --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/lib/net472/Microsoft.IdentityModel.JsonWebTokens.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: bdfdf53a11a800842868159bdce895c9 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/lib/net6.0.meta b/Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/lib/net6.0.meta new file mode 100644 index 0000000..4fc6ed7 --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/lib/net6.0.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: caa2642b84e5ff940a429c2434417819 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/lib/net6.0/Microsoft.IdentityModel.JsonWebTokens.dll b/Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/lib/net6.0/Microsoft.IdentityModel.JsonWebTokens.dll new file mode 100644 index 0000000..8a5adce --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/lib/net6.0/Microsoft.IdentityModel.JsonWebTokens.dll @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:65c793f95c97ad5302090c7b821373e015dba4290e6701d34a43e2924d6d61f8 +size 123936 diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/lib/net6.0/Microsoft.IdentityModel.JsonWebTokens.dll.meta b/Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/lib/net6.0/Microsoft.IdentityModel.JsonWebTokens.dll.meta new file mode 100644 index 0000000..af6f397 --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/lib/net6.0/Microsoft.IdentityModel.JsonWebTokens.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: 31bb726b8153c61429f0b3aae357c97a +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/lib/net6.0/Microsoft.IdentityModel.JsonWebTokens.xml b/Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/lib/net6.0/Microsoft.IdentityModel.JsonWebTokens.xml new file mode 100644 index 0000000..4f51b85 --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/lib/net6.0/Microsoft.IdentityModel.JsonWebTokens.xml @@ -0,0 +1,1413 @@ + + + + Microsoft.IdentityModel.JsonWebTokens + + + + + Initializes static members of the class. + + + + + Gets the InboundClaimTypeMap used by JwtSecurityTokenHandler when producing claims from jwt. + + + + + Gets the OutboundClaimTypeMap is used by JwtSecurityTokenHandler to shorten claim types when creating a jwt. + + + + + Constants that indicate how the should be evaluated. + + + + + A value that indicates the is a Json object. + + When creating a from Json if the value was not a simple type {String, Null, True, False, Number} + then will contain the Json value. If the Json was a JsonObject, the will be set to "JSON". + + + + A value that indicates the is a Json object. + + When creating a from Json if the value was not a simple type {String, Null, True, False, Number} + then will contain the Json value. If the Json was a JsonArray, the will be set to "JSON_ARRAY". + + + + A value that indicates the is Json null. + + When creating a the cannot be null. If the Json value was null, then the + will be set to and the will be set to "JSON_NULL". + + + + A designed for representing a JSON Web Token (JWT). + + + + + Initializes a new instance of from a string in JWS or JWE Compact serialized format. + + A JSON Web Token that has been serialized in JWS or JWE Compact serialized format. + 'jwtEncodedString' is null or empty. + 'jwtEncodedString' is not in JWS or JWE Compact serialization format. + + see: https://datatracker.ietf.org/doc/html/rfc7519 (JWT) + see: https://datatracker.ietf.org/doc/html/rfc7515 (JWS) + see: https://datatracker.ietf.org/doc/html/rfc7516 (JWE) + + The contents of the returned have not been validated, the JSON Web Token is simply decoded. Validation can be accomplished using the validation methods in + + + + + + Initializes a new instance of the class where the header contains the crypto algorithms applied to the encoded header and payload. + + A string containing JSON which represents the cryptographic operations applied to the JWT and optionally any additional properties of the JWT. + A string containing JSON which represents the claims contained in the JWT. Each claim is a JSON object of the form { Name, Value }. + + see: https://datatracker.ietf.org/doc/html/rfc7519 (JWT) + see: https://datatracker.ietf.org/doc/html/rfc7515 (JWS) + see: https://datatracker.ietf.org/doc/html/rfc7516 (JWE) + + The contents of the returned have not been validated, the JSON Web Token is simply decoded. Validation can be accomplished using the validation methods in + + + 'header' is null. + 'payload' is null. + + + + Gets the AuthenticationTag from the original raw data of this instance when it was created. + + + Contains the results of a Authentication Encryption with Associated Data (AEAD). + see: https://datatracker.ietf.org/doc/html/rfc7516#section-2 + + If this JWT is not encrypted with an algorithms that uses an Authentication Tag, an empty string will be returned. + + + + + + + + + + + Gets the Ciphertext representing the encrypted JWT in the original raw data. + + + When decrypted using values in the JWE header will contain the plaintext payload. + see: https://datatracker.ietf.org/doc/html/rfc7516#section-2 + + If this JWT is not encrypted, an empty string will be returned. + + + + + + + + + + + Gets the EncodedHeader from the original raw data of this instance when it was created. + + + The original Base64UrlEncoded string of the JWT header. + + + + + Gets the Encrypted Content Encryption Key. + + + For some algorithms this value may be null even though the JWT was encrypted. + see: https://datatracker.ietf.org/doc/html/rfc7516#section-2 + + If not found, an empty string is returned. + + + + + + Gets the EncodedPayload from the original raw data of this instance when it was created. + + + The original Base64UrlEncoded of the JWT payload, for JWE this will an empty string. + + + + + Gets the EncodedSignature from the original raw data of this instance when it was created. + + + The original Base64UrlEncoded of the JWT signature. + If the JWT was not signed or a JWE, an empty string is returned. + + + + + Gets the original raw data of this instance when it was created. + + + The original Base64UrlEncoded of the JWT. + + + + + Gets the Initialization Vector used when encrypting the plaintext. + + + see: https://datatracker.ietf.org/doc/html/rfc7516#appendix-A-1-4 + + Some algorithms may not use an Initialization Vector. + If not found an empty string is returned. + + + + + + Gets the associated with this instance. + + + see: https://datatracker.ietf.org/doc/html/rfc7516#section-2 + For encrypted tokens {JWE}, this represents the JWT that was encrypted. + + If the JWT is not encrypted, this value will be null. + + + + + + Returns true if this JsonWebToken was encrypted a JWE. + + + + + Returns true if this JsonWebToken was signed a JWS. + + + + + Not implemented. + + + + + Gets or sets the that was used to sign this token. + + + If the JWT was not signed or validated, this value will be null. + + + + + Converts a string into an instance of . + + A 'JSON Web Token' (JWT) in JWS or JWE Compact Serialization Format. + if is malformed, a valid JWT should have either 2 dots (JWS) or 4 dots (JWE). + if does not have an non-empty authentication tag after the 4th dot for a JWE. + if has more than 4 dots. + + + + Returns the encoded token without signature or authentication tag. + + Encoded token string without signature or authentication tag. + + + + + + + Gets a where each claim in the JWT { name, value } is returned as a . + + + A requires each value to be represented as a string. If the value was not a string, then contains the json type. + and to determine the json type. + + + + + Gets a representing the { key, 'value' } pair corresponding to the provided . + + + A requires each value to be represented as a string. If the value was not a string, then contains the json type. + and to determine the json type. + + If the key has no corresponding value, this method will throw. + + + + + + Try to get a representing the { key, 'value' } pair corresponding to the provided . + The value is obtained from the Payload. + + + A requires each value to be represented as a string. If the value was not a string, then contains the json type. + and to determine the json type. + + true if successful, false otherwise. + + + + Gets the 'value' corresponding to key from the JWT header transformed as type 'T'. + + + The expectation is that the 'value' corresponds to a type are expected in a JWT token. + The 5 basic types: number, string, true / false, nil, array (of basic types). + This is not a general purpose translation layer for complex types. + + The value as . + if claim is not found or a transformation to cannot be made. + + + + Gets the 'value' corresponding to key from the JWT payload transformed as type 'T'. + + + The expectation is that the 'value' corresponds to a type are expected in a JWT token. + The 5 basic types: number, string, true / false, nil, array (of basic types). + This is not a general purpose translation layer for complex types. + + The value as . + if claim is not found or a transformation to cannot be made. + + + + Tries to get the claim from the JWT payload. + + + The 'value' a type T if possible. + + true if successful, false otherwise. + + + + Tries to get the value corresponding to the provided key from the JWT header { key, 'value' }. + + + The expectation is that the 'value' corresponds to a type expected in a JWT token. + The 5 basic types: number, string, true / false, nil, array (of basic types). + This is not a general purpose translation layer for complex types. + + true if successful, false otherwise. + + + + Try to get the 'value' corresponding to key from the JWT payload transformed as type 'T'. + + + The expectation is that the 'value' corresponds to a type are expected in a JWT token. + The 5 basic types: number, string, true / false, nil, array (of basic types). + This is not a general purpose translation layer for complex types. + + true if successful, false otherwise. + + + + Gets the 'value' of the 'alg' claim from the header. + + + Identifies the cryptographic algorithm used to encrypt or determine the value of the Content Encryption Key. + Applicable to an encrypted JWT {JWE}. + see: https://datatracker.ietf.org/doc/html/rfc7516#section-4-1-1 + + If the 'alg' claim is not found, an empty string is returned. + + + + + + Gets the 'value' of the 'cty' claim from the header. + + + Used by JWS applications to declare the media type[IANA.MediaTypes] of the secured content (the payload). + see: https://datatracker.ietf.org/doc/html/rfc7516#section-4.1.12 (JWE) + see: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.10 (JWS) + + If the 'cty' claim is not found, an empty string is returned. + + + + + + Gets the 'value' of the 'enc' claim from the header. + + + Identifies the content encryption algorithm used to perform authenticated encryption + on the plaintext to produce the ciphertext and the Authentication Tag. + see: https://datatracker.ietf.org/doc/html/rfc7516#section-4.1.2 + + + + + Gets the 'value' of the 'kid' claim from the header. + + + 'kid'is a hint indicating which key was used to secure the JWS. + see: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.4 (JWS) + see: https://datatracker.ietf.org/doc/html/rfc7516#section-4.1.6 (JWE) + + If the 'kid' claim is not found, an empty string is returned. + + + + + + Gets the 'value' of the 'typ' claim from the header. + + + Is used by JWT applications to declare the media type. + see: https://datatracker.ietf.org/doc/html/rfc7519#section-5.1 + + If the 'typ' claim is not found, an empty string is returned. + + + + + + Gets the 'value' of the 'x5t' claim from the header. + + + Is the base64url-encoded SHA-1 thumbprint(a.k.a.digest) of the DER encoding of the X.509 certificate used to sign this token. + see: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.7 + + If the 'x5t' claim is not found, an empty string is returned. + + + + + + Gets the 'value' of the 'zip' claim from the header. + + + The "zip" (compression algorithm) applied to the plaintext before encryption, if any. + see: https://datatracker.ietf.org/doc/html/rfc7516#section-4.1.3 + + If the 'zip' claim is not found, an empty string is returned. + + + + + + Gets the 'value' of the 'actort' claim the payload. + + + If the 'actort' claim is not found, an empty string is returned. + + + + + Gets the list of 'aud' claims from the payload. + + + Identifies the recipients that the JWT is intended for. + see: https://datatracker.ietf.org/doc/html/rfc7519#section-4-1-3 + + If the 'aud' claim is not found, enumeration will be empty. + + + + + + Gets the 'azp' claim from the payload. + + + Identifies the authorized party for the id_token. + see: https://openid.net/specs/openid-connect-core-1_0.html + + + + + Gets the 'value' of the 'iat' claim converted to a from the payload. + + + Identifies the time at which the JWT was issued. + see: https://datatracker.ietf.org/doc/html/rfc7519#section-4.1.6 + + If the 'iat' claim is not found, then is returned. + + + + + + Gets the 'value' of the 'iss' claim from the payload. + + + Identifies the principal that issued the JWT. + see: https://datatracker.ietf.org/doc/html/rfc7519#section-4.1.1 + + If the 'iss' claim is not found, an empty string is returned. + + + + + + Gets the 'value' of the 'jti' claim from the payload. + + + Provides a unique identifier for the JWT. + see: https://datatracker.ietf.org/doc/html/rfc7519#section-4.1.7 + + If the 'jti' claim is not found, an empty string is returned. + + + + + + Gets the 'value' of the 'sub' claim from the payload. + + + see: https://datatracker.ietf.org/doc/html/rfc7519#section-4.1.2 + Identifies the principal that is the subject of the JWT. + + If the 'sub' claim is not found, an empty string is returned. + + + + + + Gets the 'value' of the 'nbf' claim converted to a from the payload. + + + Identifies the time before which the JWT MUST NOT be accepted for processing. + see: https://datatracker.ietf.org/doc/html/rfc7519#section-4.1.5 + + If the 'nbf' claim is not found, then is returned. + + + + + + Gets the 'value' of the 'exp' claim converted to a from the payload. + + + Identifies the expiration time on or after which the JWT MUST NOT be accepted for processing. + see: https://datatracker.ietf.org/doc/html/rfc7519#section-4.1.4 + + If the 'exp' claim is not found, then is returned. + + + + + + A designed for creating and validating Json Web Tokens. + See: https://datatracker.ietf.org/doc/html/rfc7519 and http://www.rfc-editor.org/info/rfc7515. + + + + + Default claim type mapping for inbound claims. + + + + + Default value for the flag that determines whether or not the InboundClaimTypeMap is used. + + + + + Gets the Base64Url encoded string representation of the following JWT header: + { , }. + + The Base64Url encoded string representation of the unsigned JWT header. + + + + Initializes a new instance of the class. + + + + + Gets the type of the . + + The type of + + + + Gets or sets the property name of the will contain the original JSON claim 'name' if a mapping occurred when the (s) were created. + + If .IsNullOrWhiteSpace('value') is true. + + + + Gets or sets the property which is used when determining whether or not to map claim types that are extracted when validating a . + If this is set to true, the is set to the JSON claim 'name' after translating using this mapping. Otherwise, no mapping occurs. + The default value is false. + + + + + Gets or sets the which is used when setting the for claims in the extracted when validating a . + The is set to the JSON claim 'name' after translating using this mapping. + The default value is ClaimTypeMapping.InboundClaimTypeMap. + + 'value' is null. + + + + Determines if the string is a well formed Json Web Token (JWT). + See: https://datatracker.ietf.org/doc/html/rfc7519 + + String that should represent a valid JWT. + Uses matching: + JWS: @"^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$" + JWE: (dir): @"^[A-Za-z0-9-_]+\.\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$" + JWE: (wrappedkey): @"^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]$" + + + 'false' if the token is null or whitespace. + 'false' if token.Length is greater than . + 'true' if the token is in JSON compact serialization format. + + + + + Returns a value that indicates if this handler can validate a . + + 'true', indicating this instance can validate a . + + + + Creates an unsigned JWS (Json Web Signature). + + A string containing JSON which represents the JWT token payload. + if is null. + A JWS in Compact Serialization Format. + + + + Creates an unsigned JWS (Json Web Signature). + + A string containing JSON which represents the JWT token payload. + Defines the dictionary containing any custom header claims that need to be added to the JWT token header. + if is null. + if is null. + A JWS in Compact Serialization Format. + + + + Creates a JWS (Json Web Signature). + + A string containing JSON which represents the JWT token payload. + Defines the security key and algorithm that will be used to sign the JWS. + if is null. + if is null. + A JWS in Compact Serialization Format. + + + + Creates a JWS (Json Web Signature). + + A string containing JSON which represents the JWT token payload. + Defines the security key and algorithm that will be used to sign the JWS. + Defines the dictionary containing any custom header claims that need to be added to the JWT token header. + if is null. + if is null. + if is null. + if , + , , and/or + are present inside of . + A JWS in Compact Serialization Format. + + + + Creates a JWS(Json Web Signature). + + A that contains details of contents of the token. + A JWS in Compact Serialization Format. + + + + Creates a JWE (Json Web Encryption). + + A string containing JSON which represents the JWT token payload. + Defines the security key and algorithm that will be used to encrypt the JWT. + A JWE in compact serialization format. + + + + Creates a JWE (Json Web Encryption). + + A string containing JSON which represents the JWT token payload. + Defines the security key and algorithm that will be used to encrypt the JWT. + Defines the dictionary containing any custom header claims that need to be added to the outer JWT token header. + if is null. + if is null. + if is null. + if , + , , and/or + are present inside of . + A JWS in Compact Serialization Format. + + + + Creates a JWE (Json Web Encryption). + + A string containing JSON which represents the JWT token payload. + Defines the security key and algorithm that will be used to sign the JWT. + Defines the security key and algorithm that will be used to encrypt the JWT. + if is null. + if is null. + if is null. + A JWE in compact serialization format. + + + + Creates a JWE (Json Web Encryption). + + A string containing JSON which represents the JWT token payload. + Defines the security key and algorithm that will be used to sign the JWT. + Defines the security key and algorithm that will be used to encrypt the JWT. + Defines the dictionary containing any custom header claims that need to be added to the outer JWT token header. + if is null. + if is null. + if is null. + if is null. + if , + , , and/or + are present inside of . + A JWE in compact serialization format. + + + + Creates a JWE (Json Web Encryption). + + A string containing JSON which represents the JWT token payload. + Defines the security key and algorithm that will be used to encrypt the JWT. + Defines the compression algorithm that will be used to compress the JWT token payload. + A JWE in compact serialization format. + + + + Creates a JWE (Json Web Encryption). + + A string containing JSON which represents the JWT token payload. + Defines the security key and algorithm that will be used to sign the JWT. + Defines the security key and algorithm that will be used to encrypt the JWT. + Defines the compression algorithm that will be used to compress the JWT token payload. + if is null. + if is null. + if is null. + if is null. + A JWE in compact serialization format. + + + + Creates a JWE (Json Web Encryption). + + A string containing JSON which represents the JWT token payload. + Defines the security key and algorithm that will be used to sign the JWT. + Defines the security key and algorithm that will be used to encrypt the JWT. + Defines the compression algorithm that will be used to compress the JWT token payload. + Defines the dictionary containing any custom header claims that need to be added to the outer JWT token header. + Defines the dictionary containing any custom header claims that need to be added to the inner JWT token header. + if is null. + if is null. + if is null. + if is null. + if is null. + if , + , , and/or + are present inside of . + A JWE in compact serialization format. + + + + Creates a JWE (Json Web Encryption). + + A string containing JSON which represents the JWT token payload. + Defines the security key and algorithm that will be used to sign the JWT. + Defines the security key and algorithm that will be used to encrypt the JWT. + Defines the compression algorithm that will be used to compress the JWT token payload. + Defines the dictionary containing any custom header claims that need to be added to the outer JWT token header. + if is null. + if is null. + if is null. + if is null. + if is null. + if , + , , and/or + are present inside of . + A JWE in compact serialization format. + + + + Creates a from a . + + The to use as a source. + Contains parameters for validating the token. + A containing the . + + + + Creates a from a with the specified issuer. + + The to use as a source. + Contains parameters for validating the token. + Specifies the issuer for the . + A containing the . + + + + Decrypts a JWE and returns the clear text + + the JWE that contains the cypher text. + contains crypto material. + the decoded / cleartext contents of the JWE. + if is null. + if is null. + if ' .Enc' is null or empty. + if decompression failed. + if ' .Kid' is not null AND decryption fails. + if the JWE was not able to be decrypted. + + + + Encrypts a JWS. + + A 'JSON Web Token' (JWT) in JWS Compact Serialization Format. + Defines the security key and algorithm that will be used to encrypt the . + if is null or empty. + if is null. + if both and . are null. + if the CryptoProviderFactory being used does not support the (algorithm), pair. + if unable to create a token encryption provider for the (algorithm), pair. + if encryption fails using the (algorithm), pair. + if not using one of the supported content encryption key (CEK) algorithms: 128, 384 or 512 AesCbcHmac (this applies in the case of key wrap only, not direct encryption). + + + + Encrypts a JWS. + + A 'JSON Web Token' (JWT) in JWS Compact Serialization Format. + Defines the security key and algorithm that will be used to encrypt the . + Defines the dictionary containing any custom header claims that need to be added to the outer JWT token header. + if is null or empty. + if is null. + if is null. + if both and . are null. + if the CryptoProviderFactory being used does not support the (algorithm), pair. + if unable to create a token encryption provider for the (algorithm), pair. + if encryption fails using the (algorithm), pair. + if not using one of the supported content encryption key (CEK) algorithms: 128, 384 or 512 AesCbcHmac (this applies in the case of key wrap only, not direct encryption). + + + + Encrypts a JWS. + + A 'JSON Web Token' (JWT) in JWS Compact Serialization Format. + Defines the security key and algorithm that will be used to encrypt the . + Defines the compression algorithm that will be used to compress the 'innerJwt'. + if is null or empty. + if is null. + if is null or empty. + if both and . are null. + if the CryptoProviderFactory being used does not support the (algorithm), pair. + if unable to create a token encryption provider for the (algorithm), pair. + if compression using fails. + if encryption fails using the (algorithm), pair. + if not using one of the supported content encryption key (CEK) algorithms: 128, 384 or 512 AesCbcHmac (this applies in the case of key wrap only, not direct encryption). + + + + Encrypts a JWS. + + A 'JSON Web Token' (JWT) in JWS Compact Serialization Format. + Defines the security key and algorithm that will be used to encrypt the . + Defines the compression algorithm that will be used to compress the + Defines the dictionary containing any custom header claims that need to be added to the outer JWT token header. + if is null or empty. + if is null. + if is null or empty. + if is null or empty. + if both and . are null. + if the CryptoProviderFactory being used does not support the (algorithm), pair. + if unable to create a token encryption provider for the (algorithm), pair. + if compression using 'algorithm' fails. + if encryption fails using the (algorithm), pair. + if not using one of the supported content encryption key (CEK) algorithms: 128, 384 or 512 AesCbcHmac (this applies in the case of key wrap only, not direct encryption). + + + + Returns a to use when decrypting a JWE. + + The the token that is being decrypted. + The that is being decrypted. + A required for validation. + Returns a to use for signature validation. + If key fails to resolve, then null is returned + + + + Converts a string into an instance of . + + A 'JSON Web Token' (JWT) in JWS or JWE Compact Serialization Format. + A + is null or empty. + 'token.Length' is greater than . + If the is in JWE Compact Serialization format, only the protected header will be deserialized. + This method is unable to decrypt the payload. Use to obtain the payload. + The token is NOT validated and no security decisions should be made about the contents. + Use or to ensure the token is acceptable. + + + + Converts a string into an instance of . + + A 'JSON Web Token' (JWT) in JWS or JWE Compact Serialization Format. + A + is null or empty. + 'token.Length' is greater than . + The token is NOT validated and no security decisions should be made about the contents. + Use or to ensure the token is acceptable. + + + + Validates a JWS or a JWE. + + A 'JSON Web Token' (JWT) in JWS or JWE Compact Serialization Format. + A required for validation. + A + + + + Validates a token. + On a validation failure, no exception will be thrown; instead, the exception will be set in the returned TokenValidationResult.Exception property. + Callers should always check the TokenValidationResult.IsValid property to verify the validity of the result. + + The token to be validated. + A required for validation. + A + + TokenValidationResult.Exception will be set to one of the following exceptions if the is invalid. + if is null or empty. + if is null. + 'token.Length' is greater than . + if is not a valid , + if the validationParameters.TokenReader delegate is not able to parse/read the token as a valid , + + + + + + + + Converts a string into an instance of . + + A 'JSON Web Token' (JWT) in JWS or JWE Compact Serialization Format. + A whose TokenReader, if set, will be used to read a JWT. + A + if the validationParameters.TokenReader delegate is not able to parse/read the token as a valid . + if is not a valid JWT, . + + + + Private method for token validation, responsible for: + (1) Obtaining a configuration from the . + (2) Revalidating using the Last Known Good Configuration (if present), and obtaining a refreshed configuration (if necessary) and revalidating using it. + + The JWT token + The to be used for validation. + + + + + Validates the JWT signature. + + + + + This class provides an abstraction over the json parser for net461+ using System.Text.Json. + will delegate to this class to get values. + + + + + The goal here is return types that are expected in a JWT token. + The 5 basic types: number, string, true / false, nil, array (of basic types). + This is not a general purpose translation layer for complex types. + For that we would need to provide a way to hook a JsonConverter to for complex types. + + + + if this is called from TryGetValue then we don't want to throw. + + + + + + The return types that are expected in a JWT token. + The 5 basic types: number, string, true / false, nil, array (of basic types). + This is not a general purpose translation layer for complex types. + For that we would need to provide a way to hook a JsonConverter to for complex types. + + + + + + + + + Constants for Json Web Tokens. + + + + + Short header type. + + + + + Long header type. + + + + + Short token type. + + + + + Long token type. + + + + + JWS - Token format: 'header.payload.signature'. Signature is optional, but '.' is required. + + + + + JWE - Token format: 'protectedheader.encryptedkey.iv.cyphertext.authenticationtag'. + + + + + The number of parts in a JWE token. + + + + + The number of parts in a JWS token. + + + + + The maximum number of parts in a JWT. + + + + + JWE header alg indicating a shared symmetric key is directly used as CEK. + + + + + List of header parameter names see: https://datatracker.ietf.org/doc/html/rfc7519#section-5. + + + + + See: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.1 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7518#section-4.6.1.2 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7518#section-4.6.1.3 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7518#section-4.6.1.1 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.10 + Also: https://datatracker.ietf.org/doc/html/rfc7519#section-5.2 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7516#section-4.1.2 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7518#section-4.7.1.1 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.2 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.3 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.4 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.9 + Also: https://datatracker.ietf.org/doc/html/rfc7519#section-5.1 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.6 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7515#page-12 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.5 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7516#section-4.1.3 + + + + + Parameter names for JsonWebToken header values as UTF8 bytes. + Used by UTF8JsonReader/Writer for performance gains. + + + + + List of registered claims from different sources + https://datatracker.ietf.org/doc/html/rfc7519#section-4 + http://openid.net/specs/openid-connect-core-1_0.html#IDToken + + + + + + + + + http://openid.net/specs/openid-connect-core-1_0.html#IDToken + + + + + http://openid.net/specs/openid-connect-core-1_0.html#IDToken + + + + + https://datatracker.ietf.org/doc/html/rfc7519#section-4 + + + + + http://openid.net/specs/openid-connect-core-1_0.html#IDToken + + + + + http://openid.net/specs/openid-connect-core-1_0.html#IDToken + + + + + https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims + + + + + https://openid.net/specs/openid-connect-core-1_0.html#HybridIDToken + + + + + http://openid.net/specs/openid-connect-core-1_0.html#CodeIDToken + + + + + https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims + + + + + https://datatracker.ietf.org/doc/html/rfc7519#section-4 + + + + + https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims + + + + + https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims + + + + + https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims + + + + + https://datatracker.ietf.org/doc/html/rfc7519#section-4 + + + + + https://datatracker.ietf.org/doc/html/rfc7519#section-4 + + + + + https://datatracker.ietf.org/doc/html/rfc7519#section-4 + + + + + https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims + + + + + + + + + https://openid.net/specs/openid-connect-core-1_0.html#AuthRequest + + + + + https://datatracker.ietf.org/doc/html/rfc7519#section-4 + + + + + https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims + + + + + https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims + + + + + + + + + http://openid.net/specs/openid-connect-frontchannel-1_0.html#OPLogout + + + + + https://datatracker.ietf.org/doc/html/rfc7519#section-4 + + + + + https://datatracker.ietf.org/doc/html/rfc7519#section-5 + + + + + + + + + + + + + Parameter names for JsonWebToken registered claim names in UTF8 bytes. + Used by UTF8JsonReader/Writer for performance gains. + + + + + Represents the parameters needed to decrypt a JSON Web Token + The JwtSecurityTokenHandler uses this as a helper when decrypting a JwtSecurityToken, the JsonWebTokenHandler sets the JsonWebToken property. + + + + + Gets or sets signature algorithm that was used to create the signature. + + + + + Gets or sets the AuthenticationTag from the original raw data of this instance when it was created. + + + + + Gets or sets the Ciphertext from the original raw data of this instance when it was created. + + + + + Gets or sets the function used to attempt decompression with. + + + + + Gets or sets the encryption algorithm (Enc) of the token. + + + + + Gets the EncodedHeader from the original raw data of this instance when it was created. + + + + + Gets or sets the EncodedHeader from the original raw data of this instance when it was created. + + + + + Gets or sets the InitializationVector from the original raw data of this instance when it was created. + + + + + Gets or sets the collection of s to attempt to decrypt with. + + + + + Gets or sets the 'value' of the 'zip' claim. + + + + + A class which contains useful methods for processing JWT tokens. + + + + + Regex that is used to figure out if a token is in JWS format. + + + + + Regex that is used to figure out if a token is in JWE format. + + + + + Produces a signature over the . + + String to be signed + The that contain crypto specs used to sign the token. + The base 64 url encoded signature over the bytes obtained from UTF8Encoding.GetBytes( 'input' ). + 'input' or 'signingCredentials' is null. + + + + Produces a signature over the . + + String to be signed + The that contain crypto specs used to sign the token. + should the be cached. + The base 64 url encoded signature over the bytes obtained from UTF8Encoding.GetBytes( 'input' ). + or is null. + + + + Decompress JWT token bytes. + + + + if is null. + if is null. + if the decompression is not supported. + if decompression using fails. + Decompressed JWT token + + + + Decrypts a Json Web Token. + + The Json Web Token, could be a JwtSecurityToken or JsonWebToken + The validation parameters containing cryptographic material. + The decryption parameters container. + The decrypted, and if the 'zip' claim is set, decompressed string representation of the token. + + + + Generates key bytes. + + + + + Gets all decryption keys. + + + + + Returns a to use when validating the signature of a token. + + The kid field of the token being validated + The x5t field of the token being validated + A required for validation. + The that will be used along with the to resolve the signing key + Returns a to use for signature validation. + Resolve the signing key using configuration then the validationParameters until a key is resolved. If key fails to resolve, then null is returned. + + + + Returns a to use when validating the signature of a token. + + The kid field of the token being validated + The x5t field of the token being validated + A collection of a signing key to be resolved from. + Returns a to use for signature validation. + If key fails to resolve, then null is returned + + + + Counts the number of Jwt Token segments. + + The Jwt Token. + The maximum number of segments to count up to. + The number of segments up to . + + + + Log messages and codes + + + + diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/lib/net6.0/Microsoft.IdentityModel.JsonWebTokens.xml.meta b/Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/lib/net6.0/Microsoft.IdentityModel.JsonWebTokens.xml.meta new file mode 100644 index 0000000..c580b6d --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/lib/net6.0/Microsoft.IdentityModel.JsonWebTokens.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: e781848fe04f1ac42acc2f047e2b5491 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/lib/net8.0.meta b/Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/lib/net8.0.meta new file mode 100644 index 0000000..edc1799 --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/lib/net8.0.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0a7301a9f839624449af53ef4b2c9c12 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/lib/net8.0/Microsoft.IdentityModel.JsonWebTokens.dll b/Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/lib/net8.0/Microsoft.IdentityModel.JsonWebTokens.dll new file mode 100644 index 0000000..b67e15f --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/lib/net8.0/Microsoft.IdentityModel.JsonWebTokens.dll @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:01e583d57d1b4c667db7ca2e9324947e7d90b611791fe14188486714a2ff3e18 +size 123432 diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/lib/net8.0/Microsoft.IdentityModel.JsonWebTokens.dll.meta b/Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/lib/net8.0/Microsoft.IdentityModel.JsonWebTokens.dll.meta new file mode 100644 index 0000000..2e570c0 --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/lib/net8.0/Microsoft.IdentityModel.JsonWebTokens.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: 5a57024bdaf4bf14cb25450136d9260d +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/lib/net8.0/Microsoft.IdentityModel.JsonWebTokens.xml b/Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/lib/net8.0/Microsoft.IdentityModel.JsonWebTokens.xml new file mode 100644 index 0000000..4f51b85 --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/lib/net8.0/Microsoft.IdentityModel.JsonWebTokens.xml @@ -0,0 +1,1413 @@ + + + + Microsoft.IdentityModel.JsonWebTokens + + + + + Initializes static members of the class. + + + + + Gets the InboundClaimTypeMap used by JwtSecurityTokenHandler when producing claims from jwt. + + + + + Gets the OutboundClaimTypeMap is used by JwtSecurityTokenHandler to shorten claim types when creating a jwt. + + + + + Constants that indicate how the should be evaluated. + + + + + A value that indicates the is a Json object. + + When creating a from Json if the value was not a simple type {String, Null, True, False, Number} + then will contain the Json value. If the Json was a JsonObject, the will be set to "JSON". + + + + A value that indicates the is a Json object. + + When creating a from Json if the value was not a simple type {String, Null, True, False, Number} + then will contain the Json value. If the Json was a JsonArray, the will be set to "JSON_ARRAY". + + + + A value that indicates the is Json null. + + When creating a the cannot be null. If the Json value was null, then the + will be set to and the will be set to "JSON_NULL". + + + + A designed for representing a JSON Web Token (JWT). + + + + + Initializes a new instance of from a string in JWS or JWE Compact serialized format. + + A JSON Web Token that has been serialized in JWS or JWE Compact serialized format. + 'jwtEncodedString' is null or empty. + 'jwtEncodedString' is not in JWS or JWE Compact serialization format. + + see: https://datatracker.ietf.org/doc/html/rfc7519 (JWT) + see: https://datatracker.ietf.org/doc/html/rfc7515 (JWS) + see: https://datatracker.ietf.org/doc/html/rfc7516 (JWE) + + The contents of the returned have not been validated, the JSON Web Token is simply decoded. Validation can be accomplished using the validation methods in + + + + + + Initializes a new instance of the class where the header contains the crypto algorithms applied to the encoded header and payload. + + A string containing JSON which represents the cryptographic operations applied to the JWT and optionally any additional properties of the JWT. + A string containing JSON which represents the claims contained in the JWT. Each claim is a JSON object of the form { Name, Value }. + + see: https://datatracker.ietf.org/doc/html/rfc7519 (JWT) + see: https://datatracker.ietf.org/doc/html/rfc7515 (JWS) + see: https://datatracker.ietf.org/doc/html/rfc7516 (JWE) + + The contents of the returned have not been validated, the JSON Web Token is simply decoded. Validation can be accomplished using the validation methods in + + + 'header' is null. + 'payload' is null. + + + + Gets the AuthenticationTag from the original raw data of this instance when it was created. + + + Contains the results of a Authentication Encryption with Associated Data (AEAD). + see: https://datatracker.ietf.org/doc/html/rfc7516#section-2 + + If this JWT is not encrypted with an algorithms that uses an Authentication Tag, an empty string will be returned. + + + + + + + + + + + Gets the Ciphertext representing the encrypted JWT in the original raw data. + + + When decrypted using values in the JWE header will contain the plaintext payload. + see: https://datatracker.ietf.org/doc/html/rfc7516#section-2 + + If this JWT is not encrypted, an empty string will be returned. + + + + + + + + + + + Gets the EncodedHeader from the original raw data of this instance when it was created. + + + The original Base64UrlEncoded string of the JWT header. + + + + + Gets the Encrypted Content Encryption Key. + + + For some algorithms this value may be null even though the JWT was encrypted. + see: https://datatracker.ietf.org/doc/html/rfc7516#section-2 + + If not found, an empty string is returned. + + + + + + Gets the EncodedPayload from the original raw data of this instance when it was created. + + + The original Base64UrlEncoded of the JWT payload, for JWE this will an empty string. + + + + + Gets the EncodedSignature from the original raw data of this instance when it was created. + + + The original Base64UrlEncoded of the JWT signature. + If the JWT was not signed or a JWE, an empty string is returned. + + + + + Gets the original raw data of this instance when it was created. + + + The original Base64UrlEncoded of the JWT. + + + + + Gets the Initialization Vector used when encrypting the plaintext. + + + see: https://datatracker.ietf.org/doc/html/rfc7516#appendix-A-1-4 + + Some algorithms may not use an Initialization Vector. + If not found an empty string is returned. + + + + + + Gets the associated with this instance. + + + see: https://datatracker.ietf.org/doc/html/rfc7516#section-2 + For encrypted tokens {JWE}, this represents the JWT that was encrypted. + + If the JWT is not encrypted, this value will be null. + + + + + + Returns true if this JsonWebToken was encrypted a JWE. + + + + + Returns true if this JsonWebToken was signed a JWS. + + + + + Not implemented. + + + + + Gets or sets the that was used to sign this token. + + + If the JWT was not signed or validated, this value will be null. + + + + + Converts a string into an instance of . + + A 'JSON Web Token' (JWT) in JWS or JWE Compact Serialization Format. + if is malformed, a valid JWT should have either 2 dots (JWS) or 4 dots (JWE). + if does not have an non-empty authentication tag after the 4th dot for a JWE. + if has more than 4 dots. + + + + Returns the encoded token without signature or authentication tag. + + Encoded token string without signature or authentication tag. + + + + + + + Gets a where each claim in the JWT { name, value } is returned as a . + + + A requires each value to be represented as a string. If the value was not a string, then contains the json type. + and to determine the json type. + + + + + Gets a representing the { key, 'value' } pair corresponding to the provided . + + + A requires each value to be represented as a string. If the value was not a string, then contains the json type. + and to determine the json type. + + If the key has no corresponding value, this method will throw. + + + + + + Try to get a representing the { key, 'value' } pair corresponding to the provided . + The value is obtained from the Payload. + + + A requires each value to be represented as a string. If the value was not a string, then contains the json type. + and to determine the json type. + + true if successful, false otherwise. + + + + Gets the 'value' corresponding to key from the JWT header transformed as type 'T'. + + + The expectation is that the 'value' corresponds to a type are expected in a JWT token. + The 5 basic types: number, string, true / false, nil, array (of basic types). + This is not a general purpose translation layer for complex types. + + The value as . + if claim is not found or a transformation to cannot be made. + + + + Gets the 'value' corresponding to key from the JWT payload transformed as type 'T'. + + + The expectation is that the 'value' corresponds to a type are expected in a JWT token. + The 5 basic types: number, string, true / false, nil, array (of basic types). + This is not a general purpose translation layer for complex types. + + The value as . + if claim is not found or a transformation to cannot be made. + + + + Tries to get the claim from the JWT payload. + + + The 'value' a type T if possible. + + true if successful, false otherwise. + + + + Tries to get the value corresponding to the provided key from the JWT header { key, 'value' }. + + + The expectation is that the 'value' corresponds to a type expected in a JWT token. + The 5 basic types: number, string, true / false, nil, array (of basic types). + This is not a general purpose translation layer for complex types. + + true if successful, false otherwise. + + + + Try to get the 'value' corresponding to key from the JWT payload transformed as type 'T'. + + + The expectation is that the 'value' corresponds to a type are expected in a JWT token. + The 5 basic types: number, string, true / false, nil, array (of basic types). + This is not a general purpose translation layer for complex types. + + true if successful, false otherwise. + + + + Gets the 'value' of the 'alg' claim from the header. + + + Identifies the cryptographic algorithm used to encrypt or determine the value of the Content Encryption Key. + Applicable to an encrypted JWT {JWE}. + see: https://datatracker.ietf.org/doc/html/rfc7516#section-4-1-1 + + If the 'alg' claim is not found, an empty string is returned. + + + + + + Gets the 'value' of the 'cty' claim from the header. + + + Used by JWS applications to declare the media type[IANA.MediaTypes] of the secured content (the payload). + see: https://datatracker.ietf.org/doc/html/rfc7516#section-4.1.12 (JWE) + see: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.10 (JWS) + + If the 'cty' claim is not found, an empty string is returned. + + + + + + Gets the 'value' of the 'enc' claim from the header. + + + Identifies the content encryption algorithm used to perform authenticated encryption + on the plaintext to produce the ciphertext and the Authentication Tag. + see: https://datatracker.ietf.org/doc/html/rfc7516#section-4.1.2 + + + + + Gets the 'value' of the 'kid' claim from the header. + + + 'kid'is a hint indicating which key was used to secure the JWS. + see: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.4 (JWS) + see: https://datatracker.ietf.org/doc/html/rfc7516#section-4.1.6 (JWE) + + If the 'kid' claim is not found, an empty string is returned. + + + + + + Gets the 'value' of the 'typ' claim from the header. + + + Is used by JWT applications to declare the media type. + see: https://datatracker.ietf.org/doc/html/rfc7519#section-5.1 + + If the 'typ' claim is not found, an empty string is returned. + + + + + + Gets the 'value' of the 'x5t' claim from the header. + + + Is the base64url-encoded SHA-1 thumbprint(a.k.a.digest) of the DER encoding of the X.509 certificate used to sign this token. + see: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.7 + + If the 'x5t' claim is not found, an empty string is returned. + + + + + + Gets the 'value' of the 'zip' claim from the header. + + + The "zip" (compression algorithm) applied to the plaintext before encryption, if any. + see: https://datatracker.ietf.org/doc/html/rfc7516#section-4.1.3 + + If the 'zip' claim is not found, an empty string is returned. + + + + + + Gets the 'value' of the 'actort' claim the payload. + + + If the 'actort' claim is not found, an empty string is returned. + + + + + Gets the list of 'aud' claims from the payload. + + + Identifies the recipients that the JWT is intended for. + see: https://datatracker.ietf.org/doc/html/rfc7519#section-4-1-3 + + If the 'aud' claim is not found, enumeration will be empty. + + + + + + Gets the 'azp' claim from the payload. + + + Identifies the authorized party for the id_token. + see: https://openid.net/specs/openid-connect-core-1_0.html + + + + + Gets the 'value' of the 'iat' claim converted to a from the payload. + + + Identifies the time at which the JWT was issued. + see: https://datatracker.ietf.org/doc/html/rfc7519#section-4.1.6 + + If the 'iat' claim is not found, then is returned. + + + + + + Gets the 'value' of the 'iss' claim from the payload. + + + Identifies the principal that issued the JWT. + see: https://datatracker.ietf.org/doc/html/rfc7519#section-4.1.1 + + If the 'iss' claim is not found, an empty string is returned. + + + + + + Gets the 'value' of the 'jti' claim from the payload. + + + Provides a unique identifier for the JWT. + see: https://datatracker.ietf.org/doc/html/rfc7519#section-4.1.7 + + If the 'jti' claim is not found, an empty string is returned. + + + + + + Gets the 'value' of the 'sub' claim from the payload. + + + see: https://datatracker.ietf.org/doc/html/rfc7519#section-4.1.2 + Identifies the principal that is the subject of the JWT. + + If the 'sub' claim is not found, an empty string is returned. + + + + + + Gets the 'value' of the 'nbf' claim converted to a from the payload. + + + Identifies the time before which the JWT MUST NOT be accepted for processing. + see: https://datatracker.ietf.org/doc/html/rfc7519#section-4.1.5 + + If the 'nbf' claim is not found, then is returned. + + + + + + Gets the 'value' of the 'exp' claim converted to a from the payload. + + + Identifies the expiration time on or after which the JWT MUST NOT be accepted for processing. + see: https://datatracker.ietf.org/doc/html/rfc7519#section-4.1.4 + + If the 'exp' claim is not found, then is returned. + + + + + + A designed for creating and validating Json Web Tokens. + See: https://datatracker.ietf.org/doc/html/rfc7519 and http://www.rfc-editor.org/info/rfc7515. + + + + + Default claim type mapping for inbound claims. + + + + + Default value for the flag that determines whether or not the InboundClaimTypeMap is used. + + + + + Gets the Base64Url encoded string representation of the following JWT header: + { , }. + + The Base64Url encoded string representation of the unsigned JWT header. + + + + Initializes a new instance of the class. + + + + + Gets the type of the . + + The type of + + + + Gets or sets the property name of the will contain the original JSON claim 'name' if a mapping occurred when the (s) were created. + + If .IsNullOrWhiteSpace('value') is true. + + + + Gets or sets the property which is used when determining whether or not to map claim types that are extracted when validating a . + If this is set to true, the is set to the JSON claim 'name' after translating using this mapping. Otherwise, no mapping occurs. + The default value is false. + + + + + Gets or sets the which is used when setting the for claims in the extracted when validating a . + The is set to the JSON claim 'name' after translating using this mapping. + The default value is ClaimTypeMapping.InboundClaimTypeMap. + + 'value' is null. + + + + Determines if the string is a well formed Json Web Token (JWT). + See: https://datatracker.ietf.org/doc/html/rfc7519 + + String that should represent a valid JWT. + Uses matching: + JWS: @"^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$" + JWE: (dir): @"^[A-Za-z0-9-_]+\.\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$" + JWE: (wrappedkey): @"^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]$" + + + 'false' if the token is null or whitespace. + 'false' if token.Length is greater than . + 'true' if the token is in JSON compact serialization format. + + + + + Returns a value that indicates if this handler can validate a . + + 'true', indicating this instance can validate a . + + + + Creates an unsigned JWS (Json Web Signature). + + A string containing JSON which represents the JWT token payload. + if is null. + A JWS in Compact Serialization Format. + + + + Creates an unsigned JWS (Json Web Signature). + + A string containing JSON which represents the JWT token payload. + Defines the dictionary containing any custom header claims that need to be added to the JWT token header. + if is null. + if is null. + A JWS in Compact Serialization Format. + + + + Creates a JWS (Json Web Signature). + + A string containing JSON which represents the JWT token payload. + Defines the security key and algorithm that will be used to sign the JWS. + if is null. + if is null. + A JWS in Compact Serialization Format. + + + + Creates a JWS (Json Web Signature). + + A string containing JSON which represents the JWT token payload. + Defines the security key and algorithm that will be used to sign the JWS. + Defines the dictionary containing any custom header claims that need to be added to the JWT token header. + if is null. + if is null. + if is null. + if , + , , and/or + are present inside of . + A JWS in Compact Serialization Format. + + + + Creates a JWS(Json Web Signature). + + A that contains details of contents of the token. + A JWS in Compact Serialization Format. + + + + Creates a JWE (Json Web Encryption). + + A string containing JSON which represents the JWT token payload. + Defines the security key and algorithm that will be used to encrypt the JWT. + A JWE in compact serialization format. + + + + Creates a JWE (Json Web Encryption). + + A string containing JSON which represents the JWT token payload. + Defines the security key and algorithm that will be used to encrypt the JWT. + Defines the dictionary containing any custom header claims that need to be added to the outer JWT token header. + if is null. + if is null. + if is null. + if , + , , and/or + are present inside of . + A JWS in Compact Serialization Format. + + + + Creates a JWE (Json Web Encryption). + + A string containing JSON which represents the JWT token payload. + Defines the security key and algorithm that will be used to sign the JWT. + Defines the security key and algorithm that will be used to encrypt the JWT. + if is null. + if is null. + if is null. + A JWE in compact serialization format. + + + + Creates a JWE (Json Web Encryption). + + A string containing JSON which represents the JWT token payload. + Defines the security key and algorithm that will be used to sign the JWT. + Defines the security key and algorithm that will be used to encrypt the JWT. + Defines the dictionary containing any custom header claims that need to be added to the outer JWT token header. + if is null. + if is null. + if is null. + if is null. + if , + , , and/or + are present inside of . + A JWE in compact serialization format. + + + + Creates a JWE (Json Web Encryption). + + A string containing JSON which represents the JWT token payload. + Defines the security key and algorithm that will be used to encrypt the JWT. + Defines the compression algorithm that will be used to compress the JWT token payload. + A JWE in compact serialization format. + + + + Creates a JWE (Json Web Encryption). + + A string containing JSON which represents the JWT token payload. + Defines the security key and algorithm that will be used to sign the JWT. + Defines the security key and algorithm that will be used to encrypt the JWT. + Defines the compression algorithm that will be used to compress the JWT token payload. + if is null. + if is null. + if is null. + if is null. + A JWE in compact serialization format. + + + + Creates a JWE (Json Web Encryption). + + A string containing JSON which represents the JWT token payload. + Defines the security key and algorithm that will be used to sign the JWT. + Defines the security key and algorithm that will be used to encrypt the JWT. + Defines the compression algorithm that will be used to compress the JWT token payload. + Defines the dictionary containing any custom header claims that need to be added to the outer JWT token header. + Defines the dictionary containing any custom header claims that need to be added to the inner JWT token header. + if is null. + if is null. + if is null. + if is null. + if is null. + if , + , , and/or + are present inside of . + A JWE in compact serialization format. + + + + Creates a JWE (Json Web Encryption). + + A string containing JSON which represents the JWT token payload. + Defines the security key and algorithm that will be used to sign the JWT. + Defines the security key and algorithm that will be used to encrypt the JWT. + Defines the compression algorithm that will be used to compress the JWT token payload. + Defines the dictionary containing any custom header claims that need to be added to the outer JWT token header. + if is null. + if is null. + if is null. + if is null. + if is null. + if , + , , and/or + are present inside of . + A JWE in compact serialization format. + + + + Creates a from a . + + The to use as a source. + Contains parameters for validating the token. + A containing the . + + + + Creates a from a with the specified issuer. + + The to use as a source. + Contains parameters for validating the token. + Specifies the issuer for the . + A containing the . + + + + Decrypts a JWE and returns the clear text + + the JWE that contains the cypher text. + contains crypto material. + the decoded / cleartext contents of the JWE. + if is null. + if is null. + if ' .Enc' is null or empty. + if decompression failed. + if ' .Kid' is not null AND decryption fails. + if the JWE was not able to be decrypted. + + + + Encrypts a JWS. + + A 'JSON Web Token' (JWT) in JWS Compact Serialization Format. + Defines the security key and algorithm that will be used to encrypt the . + if is null or empty. + if is null. + if both and . are null. + if the CryptoProviderFactory being used does not support the (algorithm), pair. + if unable to create a token encryption provider for the (algorithm), pair. + if encryption fails using the (algorithm), pair. + if not using one of the supported content encryption key (CEK) algorithms: 128, 384 or 512 AesCbcHmac (this applies in the case of key wrap only, not direct encryption). + + + + Encrypts a JWS. + + A 'JSON Web Token' (JWT) in JWS Compact Serialization Format. + Defines the security key and algorithm that will be used to encrypt the . + Defines the dictionary containing any custom header claims that need to be added to the outer JWT token header. + if is null or empty. + if is null. + if is null. + if both and . are null. + if the CryptoProviderFactory being used does not support the (algorithm), pair. + if unable to create a token encryption provider for the (algorithm), pair. + if encryption fails using the (algorithm), pair. + if not using one of the supported content encryption key (CEK) algorithms: 128, 384 or 512 AesCbcHmac (this applies in the case of key wrap only, not direct encryption). + + + + Encrypts a JWS. + + A 'JSON Web Token' (JWT) in JWS Compact Serialization Format. + Defines the security key and algorithm that will be used to encrypt the . + Defines the compression algorithm that will be used to compress the 'innerJwt'. + if is null or empty. + if is null. + if is null or empty. + if both and . are null. + if the CryptoProviderFactory being used does not support the (algorithm), pair. + if unable to create a token encryption provider for the (algorithm), pair. + if compression using fails. + if encryption fails using the (algorithm), pair. + if not using one of the supported content encryption key (CEK) algorithms: 128, 384 or 512 AesCbcHmac (this applies in the case of key wrap only, not direct encryption). + + + + Encrypts a JWS. + + A 'JSON Web Token' (JWT) in JWS Compact Serialization Format. + Defines the security key and algorithm that will be used to encrypt the . + Defines the compression algorithm that will be used to compress the + Defines the dictionary containing any custom header claims that need to be added to the outer JWT token header. + if is null or empty. + if is null. + if is null or empty. + if is null or empty. + if both and . are null. + if the CryptoProviderFactory being used does not support the (algorithm), pair. + if unable to create a token encryption provider for the (algorithm), pair. + if compression using 'algorithm' fails. + if encryption fails using the (algorithm), pair. + if not using one of the supported content encryption key (CEK) algorithms: 128, 384 or 512 AesCbcHmac (this applies in the case of key wrap only, not direct encryption). + + + + Returns a to use when decrypting a JWE. + + The the token that is being decrypted. + The that is being decrypted. + A required for validation. + Returns a to use for signature validation. + If key fails to resolve, then null is returned + + + + Converts a string into an instance of . + + A 'JSON Web Token' (JWT) in JWS or JWE Compact Serialization Format. + A + is null or empty. + 'token.Length' is greater than . + If the is in JWE Compact Serialization format, only the protected header will be deserialized. + This method is unable to decrypt the payload. Use to obtain the payload. + The token is NOT validated and no security decisions should be made about the contents. + Use or to ensure the token is acceptable. + + + + Converts a string into an instance of . + + A 'JSON Web Token' (JWT) in JWS or JWE Compact Serialization Format. + A + is null or empty. + 'token.Length' is greater than . + The token is NOT validated and no security decisions should be made about the contents. + Use or to ensure the token is acceptable. + + + + Validates a JWS or a JWE. + + A 'JSON Web Token' (JWT) in JWS or JWE Compact Serialization Format. + A required for validation. + A + + + + Validates a token. + On a validation failure, no exception will be thrown; instead, the exception will be set in the returned TokenValidationResult.Exception property. + Callers should always check the TokenValidationResult.IsValid property to verify the validity of the result. + + The token to be validated. + A required for validation. + A + + TokenValidationResult.Exception will be set to one of the following exceptions if the is invalid. + if is null or empty. + if is null. + 'token.Length' is greater than . + if is not a valid , + if the validationParameters.TokenReader delegate is not able to parse/read the token as a valid , + + + + + + + + Converts a string into an instance of . + + A 'JSON Web Token' (JWT) in JWS or JWE Compact Serialization Format. + A whose TokenReader, if set, will be used to read a JWT. + A + if the validationParameters.TokenReader delegate is not able to parse/read the token as a valid . + if is not a valid JWT, . + + + + Private method for token validation, responsible for: + (1) Obtaining a configuration from the . + (2) Revalidating using the Last Known Good Configuration (if present), and obtaining a refreshed configuration (if necessary) and revalidating using it. + + The JWT token + The to be used for validation. + + + + + Validates the JWT signature. + + + + + This class provides an abstraction over the json parser for net461+ using System.Text.Json. + will delegate to this class to get values. + + + + + The goal here is return types that are expected in a JWT token. + The 5 basic types: number, string, true / false, nil, array (of basic types). + This is not a general purpose translation layer for complex types. + For that we would need to provide a way to hook a JsonConverter to for complex types. + + + + if this is called from TryGetValue then we don't want to throw. + + + + + + The return types that are expected in a JWT token. + The 5 basic types: number, string, true / false, nil, array (of basic types). + This is not a general purpose translation layer for complex types. + For that we would need to provide a way to hook a JsonConverter to for complex types. + + + + + + + + + Constants for Json Web Tokens. + + + + + Short header type. + + + + + Long header type. + + + + + Short token type. + + + + + Long token type. + + + + + JWS - Token format: 'header.payload.signature'. Signature is optional, but '.' is required. + + + + + JWE - Token format: 'protectedheader.encryptedkey.iv.cyphertext.authenticationtag'. + + + + + The number of parts in a JWE token. + + + + + The number of parts in a JWS token. + + + + + The maximum number of parts in a JWT. + + + + + JWE header alg indicating a shared symmetric key is directly used as CEK. + + + + + List of header parameter names see: https://datatracker.ietf.org/doc/html/rfc7519#section-5. + + + + + See: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.1 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7518#section-4.6.1.2 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7518#section-4.6.1.3 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7518#section-4.6.1.1 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.10 + Also: https://datatracker.ietf.org/doc/html/rfc7519#section-5.2 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7516#section-4.1.2 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7518#section-4.7.1.1 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.2 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.3 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.4 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.9 + Also: https://datatracker.ietf.org/doc/html/rfc7519#section-5.1 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.6 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7515#page-12 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.5 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7516#section-4.1.3 + + + + + Parameter names for JsonWebToken header values as UTF8 bytes. + Used by UTF8JsonReader/Writer for performance gains. + + + + + List of registered claims from different sources + https://datatracker.ietf.org/doc/html/rfc7519#section-4 + http://openid.net/specs/openid-connect-core-1_0.html#IDToken + + + + + + + + + http://openid.net/specs/openid-connect-core-1_0.html#IDToken + + + + + http://openid.net/specs/openid-connect-core-1_0.html#IDToken + + + + + https://datatracker.ietf.org/doc/html/rfc7519#section-4 + + + + + http://openid.net/specs/openid-connect-core-1_0.html#IDToken + + + + + http://openid.net/specs/openid-connect-core-1_0.html#IDToken + + + + + https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims + + + + + https://openid.net/specs/openid-connect-core-1_0.html#HybridIDToken + + + + + http://openid.net/specs/openid-connect-core-1_0.html#CodeIDToken + + + + + https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims + + + + + https://datatracker.ietf.org/doc/html/rfc7519#section-4 + + + + + https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims + + + + + https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims + + + + + https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims + + + + + https://datatracker.ietf.org/doc/html/rfc7519#section-4 + + + + + https://datatracker.ietf.org/doc/html/rfc7519#section-4 + + + + + https://datatracker.ietf.org/doc/html/rfc7519#section-4 + + + + + https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims + + + + + + + + + https://openid.net/specs/openid-connect-core-1_0.html#AuthRequest + + + + + https://datatracker.ietf.org/doc/html/rfc7519#section-4 + + + + + https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims + + + + + https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims + + + + + + + + + http://openid.net/specs/openid-connect-frontchannel-1_0.html#OPLogout + + + + + https://datatracker.ietf.org/doc/html/rfc7519#section-4 + + + + + https://datatracker.ietf.org/doc/html/rfc7519#section-5 + + + + + + + + + + + + + Parameter names for JsonWebToken registered claim names in UTF8 bytes. + Used by UTF8JsonReader/Writer for performance gains. + + + + + Represents the parameters needed to decrypt a JSON Web Token + The JwtSecurityTokenHandler uses this as a helper when decrypting a JwtSecurityToken, the JsonWebTokenHandler sets the JsonWebToken property. + + + + + Gets or sets signature algorithm that was used to create the signature. + + + + + Gets or sets the AuthenticationTag from the original raw data of this instance when it was created. + + + + + Gets or sets the Ciphertext from the original raw data of this instance when it was created. + + + + + Gets or sets the function used to attempt decompression with. + + + + + Gets or sets the encryption algorithm (Enc) of the token. + + + + + Gets the EncodedHeader from the original raw data of this instance when it was created. + + + + + Gets or sets the EncodedHeader from the original raw data of this instance when it was created. + + + + + Gets or sets the InitializationVector from the original raw data of this instance when it was created. + + + + + Gets or sets the collection of s to attempt to decrypt with. + + + + + Gets or sets the 'value' of the 'zip' claim. + + + + + A class which contains useful methods for processing JWT tokens. + + + + + Regex that is used to figure out if a token is in JWS format. + + + + + Regex that is used to figure out if a token is in JWE format. + + + + + Produces a signature over the . + + String to be signed + The that contain crypto specs used to sign the token. + The base 64 url encoded signature over the bytes obtained from UTF8Encoding.GetBytes( 'input' ). + 'input' or 'signingCredentials' is null. + + + + Produces a signature over the . + + String to be signed + The that contain crypto specs used to sign the token. + should the be cached. + The base 64 url encoded signature over the bytes obtained from UTF8Encoding.GetBytes( 'input' ). + or is null. + + + + Decompress JWT token bytes. + + + + if is null. + if is null. + if the decompression is not supported. + if decompression using fails. + Decompressed JWT token + + + + Decrypts a Json Web Token. + + The Json Web Token, could be a JwtSecurityToken or JsonWebToken + The validation parameters containing cryptographic material. + The decryption parameters container. + The decrypted, and if the 'zip' claim is set, decompressed string representation of the token. + + + + Generates key bytes. + + + + + Gets all decryption keys. + + + + + Returns a to use when validating the signature of a token. + + The kid field of the token being validated + The x5t field of the token being validated + A required for validation. + The that will be used along with the to resolve the signing key + Returns a to use for signature validation. + Resolve the signing key using configuration then the validationParameters until a key is resolved. If key fails to resolve, then null is returned. + + + + Returns a to use when validating the signature of a token. + + The kid field of the token being validated + The x5t field of the token being validated + A collection of a signing key to be resolved from. + Returns a to use for signature validation. + If key fails to resolve, then null is returned + + + + Counts the number of Jwt Token segments. + + The Jwt Token. + The maximum number of segments to count up to. + The number of segments up to . + + + + Log messages and codes + + + + diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/lib/net8.0/Microsoft.IdentityModel.JsonWebTokens.xml.meta b/Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/lib/net8.0/Microsoft.IdentityModel.JsonWebTokens.xml.meta new file mode 100644 index 0000000..3accef2 --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/lib/net8.0/Microsoft.IdentityModel.JsonWebTokens.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: f51e28a173bdef6409fc8bc24c869285 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/lib/netstandard2.0.meta b/Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/lib/netstandard2.0.meta new file mode 100644 index 0000000..644f4b0 --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/lib/netstandard2.0.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 24a2511635d26614ba73035e64a0f105 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/lib/netstandard2.0/Microsoft.IdentityModel.JsonWebTokens.dll b/Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/lib/netstandard2.0/Microsoft.IdentityModel.JsonWebTokens.dll new file mode 100644 index 0000000..1b5c95e --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/lib/netstandard2.0/Microsoft.IdentityModel.JsonWebTokens.dll @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2ca375e221e11ccdadf11f50f410ba772b4cb307df84f0a782b3390091b16bea +size 122928 diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/lib/netstandard2.0/Microsoft.IdentityModel.JsonWebTokens.dll.meta b/Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/lib/netstandard2.0/Microsoft.IdentityModel.JsonWebTokens.dll.meta new file mode 100644 index 0000000..0cbc689 --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/lib/netstandard2.0/Microsoft.IdentityModel.JsonWebTokens.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: 8effec40ca9c0cb4c9b39c053fb80ac0 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/lib/netstandard2.0/Microsoft.IdentityModel.JsonWebTokens.xml b/Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/lib/netstandard2.0/Microsoft.IdentityModel.JsonWebTokens.xml new file mode 100644 index 0000000..4f51b85 --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/lib/netstandard2.0/Microsoft.IdentityModel.JsonWebTokens.xml @@ -0,0 +1,1413 @@ + + + + Microsoft.IdentityModel.JsonWebTokens + + + + + Initializes static members of the class. + + + + + Gets the InboundClaimTypeMap used by JwtSecurityTokenHandler when producing claims from jwt. + + + + + Gets the OutboundClaimTypeMap is used by JwtSecurityTokenHandler to shorten claim types when creating a jwt. + + + + + Constants that indicate how the should be evaluated. + + + + + A value that indicates the is a Json object. + + When creating a from Json if the value was not a simple type {String, Null, True, False, Number} + then will contain the Json value. If the Json was a JsonObject, the will be set to "JSON". + + + + A value that indicates the is a Json object. + + When creating a from Json if the value was not a simple type {String, Null, True, False, Number} + then will contain the Json value. If the Json was a JsonArray, the will be set to "JSON_ARRAY". + + + + A value that indicates the is Json null. + + When creating a the cannot be null. If the Json value was null, then the + will be set to and the will be set to "JSON_NULL". + + + + A designed for representing a JSON Web Token (JWT). + + + + + Initializes a new instance of from a string in JWS or JWE Compact serialized format. + + A JSON Web Token that has been serialized in JWS or JWE Compact serialized format. + 'jwtEncodedString' is null or empty. + 'jwtEncodedString' is not in JWS or JWE Compact serialization format. + + see: https://datatracker.ietf.org/doc/html/rfc7519 (JWT) + see: https://datatracker.ietf.org/doc/html/rfc7515 (JWS) + see: https://datatracker.ietf.org/doc/html/rfc7516 (JWE) + + The contents of the returned have not been validated, the JSON Web Token is simply decoded. Validation can be accomplished using the validation methods in + + + + + + Initializes a new instance of the class where the header contains the crypto algorithms applied to the encoded header and payload. + + A string containing JSON which represents the cryptographic operations applied to the JWT and optionally any additional properties of the JWT. + A string containing JSON which represents the claims contained in the JWT. Each claim is a JSON object of the form { Name, Value }. + + see: https://datatracker.ietf.org/doc/html/rfc7519 (JWT) + see: https://datatracker.ietf.org/doc/html/rfc7515 (JWS) + see: https://datatracker.ietf.org/doc/html/rfc7516 (JWE) + + The contents of the returned have not been validated, the JSON Web Token is simply decoded. Validation can be accomplished using the validation methods in + + + 'header' is null. + 'payload' is null. + + + + Gets the AuthenticationTag from the original raw data of this instance when it was created. + + + Contains the results of a Authentication Encryption with Associated Data (AEAD). + see: https://datatracker.ietf.org/doc/html/rfc7516#section-2 + + If this JWT is not encrypted with an algorithms that uses an Authentication Tag, an empty string will be returned. + + + + + + + + + + + Gets the Ciphertext representing the encrypted JWT in the original raw data. + + + When decrypted using values in the JWE header will contain the plaintext payload. + see: https://datatracker.ietf.org/doc/html/rfc7516#section-2 + + If this JWT is not encrypted, an empty string will be returned. + + + + + + + + + + + Gets the EncodedHeader from the original raw data of this instance when it was created. + + + The original Base64UrlEncoded string of the JWT header. + + + + + Gets the Encrypted Content Encryption Key. + + + For some algorithms this value may be null even though the JWT was encrypted. + see: https://datatracker.ietf.org/doc/html/rfc7516#section-2 + + If not found, an empty string is returned. + + + + + + Gets the EncodedPayload from the original raw data of this instance when it was created. + + + The original Base64UrlEncoded of the JWT payload, for JWE this will an empty string. + + + + + Gets the EncodedSignature from the original raw data of this instance when it was created. + + + The original Base64UrlEncoded of the JWT signature. + If the JWT was not signed or a JWE, an empty string is returned. + + + + + Gets the original raw data of this instance when it was created. + + + The original Base64UrlEncoded of the JWT. + + + + + Gets the Initialization Vector used when encrypting the plaintext. + + + see: https://datatracker.ietf.org/doc/html/rfc7516#appendix-A-1-4 + + Some algorithms may not use an Initialization Vector. + If not found an empty string is returned. + + + + + + Gets the associated with this instance. + + + see: https://datatracker.ietf.org/doc/html/rfc7516#section-2 + For encrypted tokens {JWE}, this represents the JWT that was encrypted. + + If the JWT is not encrypted, this value will be null. + + + + + + Returns true if this JsonWebToken was encrypted a JWE. + + + + + Returns true if this JsonWebToken was signed a JWS. + + + + + Not implemented. + + + + + Gets or sets the that was used to sign this token. + + + If the JWT was not signed or validated, this value will be null. + + + + + Converts a string into an instance of . + + A 'JSON Web Token' (JWT) in JWS or JWE Compact Serialization Format. + if is malformed, a valid JWT should have either 2 dots (JWS) or 4 dots (JWE). + if does not have an non-empty authentication tag after the 4th dot for a JWE. + if has more than 4 dots. + + + + Returns the encoded token without signature or authentication tag. + + Encoded token string without signature or authentication tag. + + + + + + + Gets a where each claim in the JWT { name, value } is returned as a . + + + A requires each value to be represented as a string. If the value was not a string, then contains the json type. + and to determine the json type. + + + + + Gets a representing the { key, 'value' } pair corresponding to the provided . + + + A requires each value to be represented as a string. If the value was not a string, then contains the json type. + and to determine the json type. + + If the key has no corresponding value, this method will throw. + + + + + + Try to get a representing the { key, 'value' } pair corresponding to the provided . + The value is obtained from the Payload. + + + A requires each value to be represented as a string. If the value was not a string, then contains the json type. + and to determine the json type. + + true if successful, false otherwise. + + + + Gets the 'value' corresponding to key from the JWT header transformed as type 'T'. + + + The expectation is that the 'value' corresponds to a type are expected in a JWT token. + The 5 basic types: number, string, true / false, nil, array (of basic types). + This is not a general purpose translation layer for complex types. + + The value as . + if claim is not found or a transformation to cannot be made. + + + + Gets the 'value' corresponding to key from the JWT payload transformed as type 'T'. + + + The expectation is that the 'value' corresponds to a type are expected in a JWT token. + The 5 basic types: number, string, true / false, nil, array (of basic types). + This is not a general purpose translation layer for complex types. + + The value as . + if claim is not found or a transformation to cannot be made. + + + + Tries to get the claim from the JWT payload. + + + The 'value' a type T if possible. + + true if successful, false otherwise. + + + + Tries to get the value corresponding to the provided key from the JWT header { key, 'value' }. + + + The expectation is that the 'value' corresponds to a type expected in a JWT token. + The 5 basic types: number, string, true / false, nil, array (of basic types). + This is not a general purpose translation layer for complex types. + + true if successful, false otherwise. + + + + Try to get the 'value' corresponding to key from the JWT payload transformed as type 'T'. + + + The expectation is that the 'value' corresponds to a type are expected in a JWT token. + The 5 basic types: number, string, true / false, nil, array (of basic types). + This is not a general purpose translation layer for complex types. + + true if successful, false otherwise. + + + + Gets the 'value' of the 'alg' claim from the header. + + + Identifies the cryptographic algorithm used to encrypt or determine the value of the Content Encryption Key. + Applicable to an encrypted JWT {JWE}. + see: https://datatracker.ietf.org/doc/html/rfc7516#section-4-1-1 + + If the 'alg' claim is not found, an empty string is returned. + + + + + + Gets the 'value' of the 'cty' claim from the header. + + + Used by JWS applications to declare the media type[IANA.MediaTypes] of the secured content (the payload). + see: https://datatracker.ietf.org/doc/html/rfc7516#section-4.1.12 (JWE) + see: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.10 (JWS) + + If the 'cty' claim is not found, an empty string is returned. + + + + + + Gets the 'value' of the 'enc' claim from the header. + + + Identifies the content encryption algorithm used to perform authenticated encryption + on the plaintext to produce the ciphertext and the Authentication Tag. + see: https://datatracker.ietf.org/doc/html/rfc7516#section-4.1.2 + + + + + Gets the 'value' of the 'kid' claim from the header. + + + 'kid'is a hint indicating which key was used to secure the JWS. + see: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.4 (JWS) + see: https://datatracker.ietf.org/doc/html/rfc7516#section-4.1.6 (JWE) + + If the 'kid' claim is not found, an empty string is returned. + + + + + + Gets the 'value' of the 'typ' claim from the header. + + + Is used by JWT applications to declare the media type. + see: https://datatracker.ietf.org/doc/html/rfc7519#section-5.1 + + If the 'typ' claim is not found, an empty string is returned. + + + + + + Gets the 'value' of the 'x5t' claim from the header. + + + Is the base64url-encoded SHA-1 thumbprint(a.k.a.digest) of the DER encoding of the X.509 certificate used to sign this token. + see: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.7 + + If the 'x5t' claim is not found, an empty string is returned. + + + + + + Gets the 'value' of the 'zip' claim from the header. + + + The "zip" (compression algorithm) applied to the plaintext before encryption, if any. + see: https://datatracker.ietf.org/doc/html/rfc7516#section-4.1.3 + + If the 'zip' claim is not found, an empty string is returned. + + + + + + Gets the 'value' of the 'actort' claim the payload. + + + If the 'actort' claim is not found, an empty string is returned. + + + + + Gets the list of 'aud' claims from the payload. + + + Identifies the recipients that the JWT is intended for. + see: https://datatracker.ietf.org/doc/html/rfc7519#section-4-1-3 + + If the 'aud' claim is not found, enumeration will be empty. + + + + + + Gets the 'azp' claim from the payload. + + + Identifies the authorized party for the id_token. + see: https://openid.net/specs/openid-connect-core-1_0.html + + + + + Gets the 'value' of the 'iat' claim converted to a from the payload. + + + Identifies the time at which the JWT was issued. + see: https://datatracker.ietf.org/doc/html/rfc7519#section-4.1.6 + + If the 'iat' claim is not found, then is returned. + + + + + + Gets the 'value' of the 'iss' claim from the payload. + + + Identifies the principal that issued the JWT. + see: https://datatracker.ietf.org/doc/html/rfc7519#section-4.1.1 + + If the 'iss' claim is not found, an empty string is returned. + + + + + + Gets the 'value' of the 'jti' claim from the payload. + + + Provides a unique identifier for the JWT. + see: https://datatracker.ietf.org/doc/html/rfc7519#section-4.1.7 + + If the 'jti' claim is not found, an empty string is returned. + + + + + + Gets the 'value' of the 'sub' claim from the payload. + + + see: https://datatracker.ietf.org/doc/html/rfc7519#section-4.1.2 + Identifies the principal that is the subject of the JWT. + + If the 'sub' claim is not found, an empty string is returned. + + + + + + Gets the 'value' of the 'nbf' claim converted to a from the payload. + + + Identifies the time before which the JWT MUST NOT be accepted for processing. + see: https://datatracker.ietf.org/doc/html/rfc7519#section-4.1.5 + + If the 'nbf' claim is not found, then is returned. + + + + + + Gets the 'value' of the 'exp' claim converted to a from the payload. + + + Identifies the expiration time on or after which the JWT MUST NOT be accepted for processing. + see: https://datatracker.ietf.org/doc/html/rfc7519#section-4.1.4 + + If the 'exp' claim is not found, then is returned. + + + + + + A designed for creating and validating Json Web Tokens. + See: https://datatracker.ietf.org/doc/html/rfc7519 and http://www.rfc-editor.org/info/rfc7515. + + + + + Default claim type mapping for inbound claims. + + + + + Default value for the flag that determines whether or not the InboundClaimTypeMap is used. + + + + + Gets the Base64Url encoded string representation of the following JWT header: + { , }. + + The Base64Url encoded string representation of the unsigned JWT header. + + + + Initializes a new instance of the class. + + + + + Gets the type of the . + + The type of + + + + Gets or sets the property name of the will contain the original JSON claim 'name' if a mapping occurred when the (s) were created. + + If .IsNullOrWhiteSpace('value') is true. + + + + Gets or sets the property which is used when determining whether or not to map claim types that are extracted when validating a . + If this is set to true, the is set to the JSON claim 'name' after translating using this mapping. Otherwise, no mapping occurs. + The default value is false. + + + + + Gets or sets the which is used when setting the for claims in the extracted when validating a . + The is set to the JSON claim 'name' after translating using this mapping. + The default value is ClaimTypeMapping.InboundClaimTypeMap. + + 'value' is null. + + + + Determines if the string is a well formed Json Web Token (JWT). + See: https://datatracker.ietf.org/doc/html/rfc7519 + + String that should represent a valid JWT. + Uses matching: + JWS: @"^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$" + JWE: (dir): @"^[A-Za-z0-9-_]+\.\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$" + JWE: (wrappedkey): @"^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]$" + + + 'false' if the token is null or whitespace. + 'false' if token.Length is greater than . + 'true' if the token is in JSON compact serialization format. + + + + + Returns a value that indicates if this handler can validate a . + + 'true', indicating this instance can validate a . + + + + Creates an unsigned JWS (Json Web Signature). + + A string containing JSON which represents the JWT token payload. + if is null. + A JWS in Compact Serialization Format. + + + + Creates an unsigned JWS (Json Web Signature). + + A string containing JSON which represents the JWT token payload. + Defines the dictionary containing any custom header claims that need to be added to the JWT token header. + if is null. + if is null. + A JWS in Compact Serialization Format. + + + + Creates a JWS (Json Web Signature). + + A string containing JSON which represents the JWT token payload. + Defines the security key and algorithm that will be used to sign the JWS. + if is null. + if is null. + A JWS in Compact Serialization Format. + + + + Creates a JWS (Json Web Signature). + + A string containing JSON which represents the JWT token payload. + Defines the security key and algorithm that will be used to sign the JWS. + Defines the dictionary containing any custom header claims that need to be added to the JWT token header. + if is null. + if is null. + if is null. + if , + , , and/or + are present inside of . + A JWS in Compact Serialization Format. + + + + Creates a JWS(Json Web Signature). + + A that contains details of contents of the token. + A JWS in Compact Serialization Format. + + + + Creates a JWE (Json Web Encryption). + + A string containing JSON which represents the JWT token payload. + Defines the security key and algorithm that will be used to encrypt the JWT. + A JWE in compact serialization format. + + + + Creates a JWE (Json Web Encryption). + + A string containing JSON which represents the JWT token payload. + Defines the security key and algorithm that will be used to encrypt the JWT. + Defines the dictionary containing any custom header claims that need to be added to the outer JWT token header. + if is null. + if is null. + if is null. + if , + , , and/or + are present inside of . + A JWS in Compact Serialization Format. + + + + Creates a JWE (Json Web Encryption). + + A string containing JSON which represents the JWT token payload. + Defines the security key and algorithm that will be used to sign the JWT. + Defines the security key and algorithm that will be used to encrypt the JWT. + if is null. + if is null. + if is null. + A JWE in compact serialization format. + + + + Creates a JWE (Json Web Encryption). + + A string containing JSON which represents the JWT token payload. + Defines the security key and algorithm that will be used to sign the JWT. + Defines the security key and algorithm that will be used to encrypt the JWT. + Defines the dictionary containing any custom header claims that need to be added to the outer JWT token header. + if is null. + if is null. + if is null. + if is null. + if , + , , and/or + are present inside of . + A JWE in compact serialization format. + + + + Creates a JWE (Json Web Encryption). + + A string containing JSON which represents the JWT token payload. + Defines the security key and algorithm that will be used to encrypt the JWT. + Defines the compression algorithm that will be used to compress the JWT token payload. + A JWE in compact serialization format. + + + + Creates a JWE (Json Web Encryption). + + A string containing JSON which represents the JWT token payload. + Defines the security key and algorithm that will be used to sign the JWT. + Defines the security key and algorithm that will be used to encrypt the JWT. + Defines the compression algorithm that will be used to compress the JWT token payload. + if is null. + if is null. + if is null. + if is null. + A JWE in compact serialization format. + + + + Creates a JWE (Json Web Encryption). + + A string containing JSON which represents the JWT token payload. + Defines the security key and algorithm that will be used to sign the JWT. + Defines the security key and algorithm that will be used to encrypt the JWT. + Defines the compression algorithm that will be used to compress the JWT token payload. + Defines the dictionary containing any custom header claims that need to be added to the outer JWT token header. + Defines the dictionary containing any custom header claims that need to be added to the inner JWT token header. + if is null. + if is null. + if is null. + if is null. + if is null. + if , + , , and/or + are present inside of . + A JWE in compact serialization format. + + + + Creates a JWE (Json Web Encryption). + + A string containing JSON which represents the JWT token payload. + Defines the security key and algorithm that will be used to sign the JWT. + Defines the security key and algorithm that will be used to encrypt the JWT. + Defines the compression algorithm that will be used to compress the JWT token payload. + Defines the dictionary containing any custom header claims that need to be added to the outer JWT token header. + if is null. + if is null. + if is null. + if is null. + if is null. + if , + , , and/or + are present inside of . + A JWE in compact serialization format. + + + + Creates a from a . + + The to use as a source. + Contains parameters for validating the token. + A containing the . + + + + Creates a from a with the specified issuer. + + The to use as a source. + Contains parameters for validating the token. + Specifies the issuer for the . + A containing the . + + + + Decrypts a JWE and returns the clear text + + the JWE that contains the cypher text. + contains crypto material. + the decoded / cleartext contents of the JWE. + if is null. + if is null. + if ' .Enc' is null or empty. + if decompression failed. + if ' .Kid' is not null AND decryption fails. + if the JWE was not able to be decrypted. + + + + Encrypts a JWS. + + A 'JSON Web Token' (JWT) in JWS Compact Serialization Format. + Defines the security key and algorithm that will be used to encrypt the . + if is null or empty. + if is null. + if both and . are null. + if the CryptoProviderFactory being used does not support the (algorithm), pair. + if unable to create a token encryption provider for the (algorithm), pair. + if encryption fails using the (algorithm), pair. + if not using one of the supported content encryption key (CEK) algorithms: 128, 384 or 512 AesCbcHmac (this applies in the case of key wrap only, not direct encryption). + + + + Encrypts a JWS. + + A 'JSON Web Token' (JWT) in JWS Compact Serialization Format. + Defines the security key and algorithm that will be used to encrypt the . + Defines the dictionary containing any custom header claims that need to be added to the outer JWT token header. + if is null or empty. + if is null. + if is null. + if both and . are null. + if the CryptoProviderFactory being used does not support the (algorithm), pair. + if unable to create a token encryption provider for the (algorithm), pair. + if encryption fails using the (algorithm), pair. + if not using one of the supported content encryption key (CEK) algorithms: 128, 384 or 512 AesCbcHmac (this applies in the case of key wrap only, not direct encryption). + + + + Encrypts a JWS. + + A 'JSON Web Token' (JWT) in JWS Compact Serialization Format. + Defines the security key and algorithm that will be used to encrypt the . + Defines the compression algorithm that will be used to compress the 'innerJwt'. + if is null or empty. + if is null. + if is null or empty. + if both and . are null. + if the CryptoProviderFactory being used does not support the (algorithm), pair. + if unable to create a token encryption provider for the (algorithm), pair. + if compression using fails. + if encryption fails using the (algorithm), pair. + if not using one of the supported content encryption key (CEK) algorithms: 128, 384 or 512 AesCbcHmac (this applies in the case of key wrap only, not direct encryption). + + + + Encrypts a JWS. + + A 'JSON Web Token' (JWT) in JWS Compact Serialization Format. + Defines the security key and algorithm that will be used to encrypt the . + Defines the compression algorithm that will be used to compress the + Defines the dictionary containing any custom header claims that need to be added to the outer JWT token header. + if is null or empty. + if is null. + if is null or empty. + if is null or empty. + if both and . are null. + if the CryptoProviderFactory being used does not support the (algorithm), pair. + if unable to create a token encryption provider for the (algorithm), pair. + if compression using 'algorithm' fails. + if encryption fails using the (algorithm), pair. + if not using one of the supported content encryption key (CEK) algorithms: 128, 384 or 512 AesCbcHmac (this applies in the case of key wrap only, not direct encryption). + + + + Returns a to use when decrypting a JWE. + + The the token that is being decrypted. + The that is being decrypted. + A required for validation. + Returns a to use for signature validation. + If key fails to resolve, then null is returned + + + + Converts a string into an instance of . + + A 'JSON Web Token' (JWT) in JWS or JWE Compact Serialization Format. + A + is null or empty. + 'token.Length' is greater than . + If the is in JWE Compact Serialization format, only the protected header will be deserialized. + This method is unable to decrypt the payload. Use to obtain the payload. + The token is NOT validated and no security decisions should be made about the contents. + Use or to ensure the token is acceptable. + + + + Converts a string into an instance of . + + A 'JSON Web Token' (JWT) in JWS or JWE Compact Serialization Format. + A + is null or empty. + 'token.Length' is greater than . + The token is NOT validated and no security decisions should be made about the contents. + Use or to ensure the token is acceptable. + + + + Validates a JWS or a JWE. + + A 'JSON Web Token' (JWT) in JWS or JWE Compact Serialization Format. + A required for validation. + A + + + + Validates a token. + On a validation failure, no exception will be thrown; instead, the exception will be set in the returned TokenValidationResult.Exception property. + Callers should always check the TokenValidationResult.IsValid property to verify the validity of the result. + + The token to be validated. + A required for validation. + A + + TokenValidationResult.Exception will be set to one of the following exceptions if the is invalid. + if is null or empty. + if is null. + 'token.Length' is greater than . + if is not a valid , + if the validationParameters.TokenReader delegate is not able to parse/read the token as a valid , + + + + + + + + Converts a string into an instance of . + + A 'JSON Web Token' (JWT) in JWS or JWE Compact Serialization Format. + A whose TokenReader, if set, will be used to read a JWT. + A + if the validationParameters.TokenReader delegate is not able to parse/read the token as a valid . + if is not a valid JWT, . + + + + Private method for token validation, responsible for: + (1) Obtaining a configuration from the . + (2) Revalidating using the Last Known Good Configuration (if present), and obtaining a refreshed configuration (if necessary) and revalidating using it. + + The JWT token + The to be used for validation. + + + + + Validates the JWT signature. + + + + + This class provides an abstraction over the json parser for net461+ using System.Text.Json. + will delegate to this class to get values. + + + + + The goal here is return types that are expected in a JWT token. + The 5 basic types: number, string, true / false, nil, array (of basic types). + This is not a general purpose translation layer for complex types. + For that we would need to provide a way to hook a JsonConverter to for complex types. + + + + if this is called from TryGetValue then we don't want to throw. + + + + + + The return types that are expected in a JWT token. + The 5 basic types: number, string, true / false, nil, array (of basic types). + This is not a general purpose translation layer for complex types. + For that we would need to provide a way to hook a JsonConverter to for complex types. + + + + + + + + + Constants for Json Web Tokens. + + + + + Short header type. + + + + + Long header type. + + + + + Short token type. + + + + + Long token type. + + + + + JWS - Token format: 'header.payload.signature'. Signature is optional, but '.' is required. + + + + + JWE - Token format: 'protectedheader.encryptedkey.iv.cyphertext.authenticationtag'. + + + + + The number of parts in a JWE token. + + + + + The number of parts in a JWS token. + + + + + The maximum number of parts in a JWT. + + + + + JWE header alg indicating a shared symmetric key is directly used as CEK. + + + + + List of header parameter names see: https://datatracker.ietf.org/doc/html/rfc7519#section-5. + + + + + See: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.1 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7518#section-4.6.1.2 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7518#section-4.6.1.3 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7518#section-4.6.1.1 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.10 + Also: https://datatracker.ietf.org/doc/html/rfc7519#section-5.2 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7516#section-4.1.2 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7518#section-4.7.1.1 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.2 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.3 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.4 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.9 + Also: https://datatracker.ietf.org/doc/html/rfc7519#section-5.1 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.6 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7515#page-12 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.5 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7516#section-4.1.3 + + + + + Parameter names for JsonWebToken header values as UTF8 bytes. + Used by UTF8JsonReader/Writer for performance gains. + + + + + List of registered claims from different sources + https://datatracker.ietf.org/doc/html/rfc7519#section-4 + http://openid.net/specs/openid-connect-core-1_0.html#IDToken + + + + + + + + + http://openid.net/specs/openid-connect-core-1_0.html#IDToken + + + + + http://openid.net/specs/openid-connect-core-1_0.html#IDToken + + + + + https://datatracker.ietf.org/doc/html/rfc7519#section-4 + + + + + http://openid.net/specs/openid-connect-core-1_0.html#IDToken + + + + + http://openid.net/specs/openid-connect-core-1_0.html#IDToken + + + + + https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims + + + + + https://openid.net/specs/openid-connect-core-1_0.html#HybridIDToken + + + + + http://openid.net/specs/openid-connect-core-1_0.html#CodeIDToken + + + + + https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims + + + + + https://datatracker.ietf.org/doc/html/rfc7519#section-4 + + + + + https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims + + + + + https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims + + + + + https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims + + + + + https://datatracker.ietf.org/doc/html/rfc7519#section-4 + + + + + https://datatracker.ietf.org/doc/html/rfc7519#section-4 + + + + + https://datatracker.ietf.org/doc/html/rfc7519#section-4 + + + + + https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims + + + + + + + + + https://openid.net/specs/openid-connect-core-1_0.html#AuthRequest + + + + + https://datatracker.ietf.org/doc/html/rfc7519#section-4 + + + + + https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims + + + + + https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims + + + + + + + + + http://openid.net/specs/openid-connect-frontchannel-1_0.html#OPLogout + + + + + https://datatracker.ietf.org/doc/html/rfc7519#section-4 + + + + + https://datatracker.ietf.org/doc/html/rfc7519#section-5 + + + + + + + + + + + + + Parameter names for JsonWebToken registered claim names in UTF8 bytes. + Used by UTF8JsonReader/Writer for performance gains. + + + + + Represents the parameters needed to decrypt a JSON Web Token + The JwtSecurityTokenHandler uses this as a helper when decrypting a JwtSecurityToken, the JsonWebTokenHandler sets the JsonWebToken property. + + + + + Gets or sets signature algorithm that was used to create the signature. + + + + + Gets or sets the AuthenticationTag from the original raw data of this instance when it was created. + + + + + Gets or sets the Ciphertext from the original raw data of this instance when it was created. + + + + + Gets or sets the function used to attempt decompression with. + + + + + Gets or sets the encryption algorithm (Enc) of the token. + + + + + Gets the EncodedHeader from the original raw data of this instance when it was created. + + + + + Gets or sets the EncodedHeader from the original raw data of this instance when it was created. + + + + + Gets or sets the InitializationVector from the original raw data of this instance when it was created. + + + + + Gets or sets the collection of s to attempt to decrypt with. + + + + + Gets or sets the 'value' of the 'zip' claim. + + + + + A class which contains useful methods for processing JWT tokens. + + + + + Regex that is used to figure out if a token is in JWS format. + + + + + Regex that is used to figure out if a token is in JWE format. + + + + + Produces a signature over the . + + String to be signed + The that contain crypto specs used to sign the token. + The base 64 url encoded signature over the bytes obtained from UTF8Encoding.GetBytes( 'input' ). + 'input' or 'signingCredentials' is null. + + + + Produces a signature over the . + + String to be signed + The that contain crypto specs used to sign the token. + should the be cached. + The base 64 url encoded signature over the bytes obtained from UTF8Encoding.GetBytes( 'input' ). + or is null. + + + + Decompress JWT token bytes. + + + + if is null. + if is null. + if the decompression is not supported. + if decompression using fails. + Decompressed JWT token + + + + Decrypts a Json Web Token. + + The Json Web Token, could be a JwtSecurityToken or JsonWebToken + The validation parameters containing cryptographic material. + The decryption parameters container. + The decrypted, and if the 'zip' claim is set, decompressed string representation of the token. + + + + Generates key bytes. + + + + + Gets all decryption keys. + + + + + Returns a to use when validating the signature of a token. + + The kid field of the token being validated + The x5t field of the token being validated + A required for validation. + The that will be used along with the to resolve the signing key + Returns a to use for signature validation. + Resolve the signing key using configuration then the validationParameters until a key is resolved. If key fails to resolve, then null is returned. + + + + Returns a to use when validating the signature of a token. + + The kid field of the token being validated + The x5t field of the token being validated + A collection of a signing key to be resolved from. + Returns a to use for signature validation. + If key fails to resolve, then null is returned + + + + Counts the number of Jwt Token segments. + + The Jwt Token. + The maximum number of segments to count up to. + The number of segments up to . + + + + Log messages and codes + + + + diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/lib/netstandard2.0/Microsoft.IdentityModel.JsonWebTokens.xml.meta b/Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/lib/netstandard2.0/Microsoft.IdentityModel.JsonWebTokens.xml.meta new file mode 100644 index 0000000..cb9f377 --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.JsonWebTokens.7.0.3/lib/netstandard2.0/Microsoft.IdentityModel.JsonWebTokens.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 4fba706d0b14faa4e9ada07818303050 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3.meta b/Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3.meta new file mode 100644 index 0000000..c170f75 --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 79cef264b16aca6418dc35cb960990f2 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/.signature.p7s b/Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/.signature.p7s new file mode 100644 index 0000000000000000000000000000000000000000..85bbac86e9c0298b58d66b7909950eb29a4d43b9 GIT binary patch literal 24208 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 literal 0 HcmV?d00001 diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/Microsoft.IdentityModel.Logging.7.0.3.nupkg b/Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/Microsoft.IdentityModel.Logging.7.0.3.nupkg new file mode 100644 index 0000000000000000000000000000000000000000..e57f4d9cb928a49c32a12bf1ba3bbc4607431f94 GIT binary patch literal 168604 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 PzdDA5lo$#O)=2*aH_f$6 literal 0 HcmV?d00001 diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/Microsoft.IdentityModel.Logging.7.0.3.nupkg.meta b/Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/Microsoft.IdentityModel.Logging.7.0.3.nupkg.meta new file mode 100644 index 0000000..0312bd1 --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/Microsoft.IdentityModel.Logging.7.0.3.nupkg.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: ebb00e2a98e757745ab82315b4c753e0 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib.meta b/Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib.meta new file mode 100644 index 0000000..885339e --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5317fc929925e844586f42363fbf0380 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/net461.meta b/Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/net461.meta new file mode 100644 index 0000000..dafce8a --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/net461.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e53a7f43cedda80468f5b0d4eb07fd24 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/net461/Microsoft.IdentityModel.Logging.dll b/Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/net461/Microsoft.IdentityModel.Logging.dll new file mode 100644 index 0000000..0787ac0 --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/net461/Microsoft.IdentityModel.Logging.dll @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:233fc3441d203100ab06153dc4de79b85627c36b9518593a82189a7c83244d42 +size 38944 diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/net461/Microsoft.IdentityModel.Logging.dll.meta b/Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/net461/Microsoft.IdentityModel.Logging.dll.meta new file mode 100644 index 0000000..c8505e2 --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/net461/Microsoft.IdentityModel.Logging.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: b38d489e8e509cd40820c34c0798de22 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/net461/Microsoft.IdentityModel.Logging.xml b/Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/net461/Microsoft.IdentityModel.Logging.xml new file mode 100644 index 0000000..d04aeab --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/net461/Microsoft.IdentityModel.Logging.xml @@ -0,0 +1,871 @@ + + + + Microsoft.IdentityModel.Logging + + + + + Event source based logger to log different events. + + + + + Static logger that is exposed externally. An external application or framework can hook up a listener to this event source to log data in a custom way. + + + + + Flag which indicates whether or not PII is shown in logs. False by default. + + + + + Flag which indicates whether or not complete is shown in logs when is set to true. False by default. + + + + + String that is used in place of any arguments to log messages if the 'ShowPII' flag is set to false. + + + + + String that is used in place of any arguments to log messages if the 'LogCompleteSecurityArtifact' flag is set to false. + + + + + Indicates whether or the log message header (contains library version, date/time, and PII debugging information) has been written. + + + + + The log message that indicates the current library version. + + + + + The log message that indicates the date. + + + + + The log message that is shown when PII is off. + + + + + The log message that is shown when PII is off. + + + + + Writes an event log by using the provided string argument and current UTC time. + No level filtering is done on the event. + + The log message. + No level filtering. + + + + Writes an event log by using the provided string argument, current UTC time and the provided arguments list. + + The log message. + An object array that contains zero or more objects to format. + + + + Writes a verbose event log by using the provided string argument and current UTC time. + + The log message. + + + + Writes a verbose event log by using the provided string argument, current UTC time and the provided arguments list. + + The log message. + An object array that contains zero or more objects to format. + + + + Writes an information event log by using the provided string argument and current UTC time. + + The log message. + + + + Writes an information event log by using the provided string argument, current UTC time and the provided arguments list. + + The log message. + An object array that contains zero or more objects to format. + + + + Writes a warning event log by using the provided string argument and current UTC time. + + The log message. + + + + Writes a warning event log by using the provided string argument, current UTC time and the provided arguments list. + + The log message. + An object array that contains zero or more objects to format. + + + + Writes an error event log by using the provided string argument and current UTC time. + + The log message. + + + + Writes an error event log by using the provided string argument, current UTC time and the provided arguments list. + + The log message. + An object array that contains zero or more objects to format. + + + + Writes a critical event log by using the provided string argument and current UTC time. + + The log message. + + + + Writes a critical event log by using the provided string argument, current UTC time and the provided arguments list. + + The log message. + An object array that contains zero or more objects to format. + + + + Writes an exception log by using the provided event identifer, exception argument, string argument and current UTC time. + + + + The log message. + + + + Writes an exception log by using the provided event identifer, exception argument, string argument, arguments list and current UTC time. + + + + The log message. + An object array that contains zero or more objects to format. + + + + Minimum log level to log events. Default is Warning. + + + + + Provides a way to add and remove telemetry data. + + + + + Get the string that represents the client SKU. + + + + + Get the string that represents the client version. + + + + + Adds a key and its value to the collection of telemetry data. + + The name of the telemetry. + The value of the telemetry. + true if the key is successfully added; otherwise, false. + + + + Removes a key and its value from the collection of telemetry data. + + The name of the telemetry. + true if the key is successfully removed; otherwise, false. + + + + Interface that provides an unsafe method to log a security artifact. + + + SecurityToken and encoded token are considered as SecurityArtifacts. + + + + + Returns a string that represents the complete security artifact. + This may include sensitive information and should only be used for debugging purposes. + + + + + A context class that can be used to store work per request to aid with debugging. + + + + + Instantiates a new with the default activityId. + + + + + Instantiates a new with an activityId. + + + + + + Gets or set a that will be used in the call to EventSource.SetCurrentThreadActivityId before logging. + + + + + Gets or sets a boolean controlling if logs are written into the context. + Useful when debugging. + + + + + Gets or sets a string that helps with setting breakpoints when debugging. + + + + + The collection of logs associated with a request. Use to control capture. + + + + + Gets or sets an that enables custom extensibility scenarios. + + + + + Helper class for logging. + + + + + Gets or sets a logger to which logs will be written to. + + + + + Indicates whether the log message header (contains library version, date/time, and PII debugging information) has been written. + + + + + The log message that is shown when PII is off. + + + + + The log message that is shown when PII is on. + + + + + Gets whether logging is enabled at the specified ."/> + + The log level + if logging is enabled at the specified level; otherwise, . + + + + Logs an exception using the event source logger and returns new exception. + + argument that is null or empty. + EventLevel is set to Error. + + + + Logs an exception using the event source logger and returns new typed exception. + + message to log. + EventLevel is set to Error. + + + + Logs an argument exception using the event source logger and returns new typed exception. + + Identifies the argument whose value generated the ArgumentException. + message to log. + EventLevel is set to Error. + + + + Logs an exception using the event source logger and returns new typed exception. + + Format string of the log message. + An object array that contains zero or more objects to format. + EventLevel is set to Error. + + + + Logs an argument exception using the event source logger and returns new typed exception. + + Identifies the argument whose value generated the ArgumentException. + Format string of the log message. + An object array that contains zero or more objects to format. + EventLevel is set to Error. + + + + Logs an exception using the event source logger and returns new typed exception. + + the inner to be added to the outer exception. + message to log. + EventLevel is set to Error. + + + + Logs an argument exception using the event source logger and returns new typed exception. + + Identifies the argument whose value generated the ArgumentException. + the inner to be added to the outer exception. + message to log. + EventLevel is set to Error. + + + + Logs an exception using the event source logger and returns new typed exception. + + the inner to be added to the outer exception. + Format string of the log message. + An object array that contains zero or more objects to format. + EventLevel is set to Error. + + + + Logs an argument exception using the event source logger and returns new typed exception. + + Identifies the argument whose value generated the ArgumentException. + the inner to be added to the outer exception. + Format string of the log message. + An object array that contains zero or more objects to format. + EventLevel is set to Error. + + + + Logs an exception using the event source logger and returns new typed exception. + + Identifies the level of an event to be logged. + message to log. + + + + Logs an argument exception using the event source logger and returns new typed exception. + + Identifies the level of an event to be logged. + Identifies the argument whose value generated the ArgumentException. + message to log. + + + + Logs an exception using the event source logger and returns new typed exception. + + Identifies the level of an event to be logged. + Format string of the log message. + An object array that contains zero or more objects to format. + + + + Logs an argument exception using the event source logger and returns new typed exception. + + Identifies the level of an event to be logged. + Identifies the argument whose value generated the ArgumentException. + Format string of the log message. + An object array that contains zero or more objects to format. + + + + Logs an exception using the event source logger and returns new typed exception. + + Identifies the level of an event to be logged. + the inner to be added to the outer exception. + message to log. + + + + Logs an argument exception using the event source logger and returns new typed exception. + + Identifies the level of an event to be logged. + Identifies the argument whose value generated the ArgumentException. + the inner to be added to the outer exception. + message to log. + + + + Logs an exception using the event source logger and returns new typed exception. + + Identifies the level of an event to be logged. + the inner to be added to the outer exception. + Format string of the log message. + An object array that contains zero or more objects to format. + + + + Logs an argument exception using the event source logger and returns new typed exception. + + Identifies the level of an event to be logged. + Identifies the argument whose value generated the ArgumentException. + the inner to be added to the outer exception. + Format string of the log message. + An object array that contains zero or more objects to format. + + + + Logs an exception using the event source logger. + + The exception to log. + + + + Logs an exception using the event source logger. + + Identifies the level of an event to be logged. + The exception to log. + + + + Logs an information event. + + The log message. + An object array that contains zero or more objects to format. + + + + Logs a verbose event. + + The log message. + An object array that contains zero or more objects to format. + + + + Logs a warning event. + + The log message. + An object array that contains zero or more objects to format. + + + + Logs an exception using the event source logger and returns new typed exception. + + Identifies the level of an event to be logged. + Identifies the argument whose value generated the ArgumentException. + the inner to be added to the outer exception. + Format string of the log message. + An object array that contains zero or more objects to format. + + + + Formats the string using InvariantCulture + + Format string. + Format arguments. + Formatted string. + + + + Marks a log message argument () as NonPII. + + A log message argument to be marked as NonPII. + An argument marked as NonPII. + + Marking an argument as NonPII in calls will result in logging + that argument in cleartext, regardless of the flag value. + + + + + Marks a log message argument () as SecurityArtifact. + + A log message argument to be marked as SecurityArtifact. + A callback function to log the security artifact safely. + An argument marked as SecurityArtifact. + + Since even the payload may sometimes contain security artifacts, naïve disarm algorithms such as removing signatures + will not work. For now the will only be leveraged if + is set and no unsafe callback is provided. Future changes + may introduce a support for best effort disarm logging. + + + + + Marks a log message argument () as SecurityArtifact. + + A log message argument to be marked as SecurityArtifact. + A callback function to log the security artifact safely. + A callback function to log the security artifact without scrubbing. + An argument marked as SecurityArtifact. + if is null. + if is null. + + Since even the payload may sometimes contain security artifacts, naïve disarm algorithms such as removing signatures + will not work. For now the is currently unused. Future changes + may introduce a support for best effort disarm logging which will leverage . + + + + + Marks a log message argument () as SecurityArtifact. + + A log message argument to be marked as SecurityArtifact. + A callback function to log the security artifact without scrubbing. + An argument marked as SecurityArtifact. + if is null. + + + + Creates a by using the provided event level, exception argument, string argument and arguments list. + + + + The log message. + An object array that contains zero or more objects to format. + + + + Log messages and codes for Microsoft.IdentityModel.Logging + + + + + An internal structure that is used to mark an argument as NonPII. + Arguments wrapped with a NonPII structure will be considered as NonPII in the message logging process. + + + + + Argument wrapped with a structure is considered as NonPII in the message logging process. + + + + + Creates an instance of that wraps the . + + An argument that is considered as NonPII. + + + + Returns a string that represents the . + + Null if the is , otherwise calls method of the . + + + + An internal structure that is used to mark an argument as SecurityArtifact. + Arguments wrapped with a SecurityArtifact structure will be considered as a SecurityArtifact in the message logging process. + + + SecurityToken and encoded token are considered as SecurityArtifacts. + + + + + Argument wrapped with a structure is considered as SecurityArtifact in the message logging process. + + + + + The ToString callback delegate that returns a disarmed SecurityArtifact. + + + + + The ToString callback delegate that returns an unscrubbed SecurityArtifact. + + + + + Creates an instance of that wraps the . + + An argument that is considered as SecurityArtifact. + A callback used to disarm the token. + + Since even the payload may sometimes contain security artifacts, naïve disarm algorithms (such as removing signatures + in the case of JWTs) will not work. For now the will only be leveraged if + is set and no unsafe callback is provided. Future changes + may introduce a support for best effort disarm logging. + + + + + Creates an instance of that wraps the . + + An argument that is considered as SecurityArtifact. + A ToString callback. + A ToString callback which will return the unscrubbed artifact. + + Since even the payload may sometimes contain security artifacts, naïve disarm algorithms (such as removing signatures + in the case of JWTs) will not work. For now the is currently unused. Future changes + may introduce a support for best effort disarm logging which will leverage . + + + + + A dummy callback which can be leveraged to return a standard scrubbed token in the case where expected token is unknown. + + Ignored token. + The standard scrubbed token string. + + + + Returns a string that represents the . + + Null if the is , otherwise calls the provided safe callback on . + + + + Event listener that writes logs to a file or a fileStream provided by user. + + + + + Name of the default log file, excluding its path. + + + + + Initializes a new instance of that writes logs to text file. + + + + + Initializes a new instance of that writes logs to text file. + + location of the file where log messages will be written. + + + + Initializes a new instance of that writes logs to text file. + + StreamWriter where logs will be written. + + + + Called whenever an event has been written by an event source for which the event listener has enabled events. + + + + + + Releases all resources used by the current instance of the class. + + + + + Indicates that the specified method requires dynamic access to code that is not referenced + statically, for example through . + + + This allows tools to understand which methods are unsafe to call when removing unreferenced + code from an application. + + + + + Initializes a new instance of the class + with the specified message. + + + A message that contains information about the usage of unreferenced code. + + + + + Gets a message that contains information about the usage of unreferenced code. + + + + + Gets or sets an optional URL that contains more information about the method, + why it requires unreferenced code, and what options a consumer has to deal with it. + + + + + Suppresses reporting of a specific rule violation, allowing multiple suppressions on a + single code artifact. + + + is different than + in that it doesn't have a + . So it is always preserved in the compiled assembly. + + + + + Initializes a new instance of the + class, specifying the category of the tool and the identifier for an analysis rule. + + The category for the attribute. + The identifier of the analysis rule the attribute applies to. + + + + Gets the category identifying the classification of the attribute. + + + The property describes the tool or tool analysis category + for which a message suppression attribute applies. + + + + + Gets the identifier of the analysis tool rule to be suppressed. + + + Concatenated together, the and + properties form a unique check identifier. + + + + + Gets or sets the scope of the code that is relevant for the attribute. + + + The Scope property is an optional argument that specifies the metadata scope for which + the attribute is relevant. + + + + + Gets or sets a fully qualified path that represents the target of the attribute. + + + The property is an optional argument identifying the analysis target + of the attribute. An example value is "System.IO.Stream.ctor():System.Void". + Because it is fully qualified, it can be long, particularly for targets such as parameters. + The analysis tool user interface should be capable of automatically formatting the parameter. + + + + + Gets or sets an optional argument expanding on exclusion criteria. + + + The property is an optional argument that specifies additional + exclusion where the literal metadata target is not sufficiently precise. For example, + the cannot be applied within a method, + and it may be desirable to suppress a violation against a statement in the method that will + give a rule violation, but not against all statements in the method. + + + + + Gets or sets the justification for suppressing the code analysis message. + + + + + Initializes a new instance of the class + with the specified member types. + + The types of members dynamically accessed. + + + + Gets the which specifies the type + of members dynamically accessed. + + + + + Specifies the types of members that are dynamically accessed. + + This enumeration has a attribute that allows a + bitwise combination of its member values. + + + + + Specifies no members. + + + + + Specifies the default, parameterless public constructor. + + + + + Specifies all public constructors. + + + + + Specifies all non-public constructors. + + + + + Specifies all public methods. + + + + + Specifies all non-public methods. + + + + + Specifies all public fields. + + + + + Specifies all non-public fields. + + + + + Specifies all public nested types. + + + + + Specifies all non-public nested types. + + + + + Specifies all public properties. + + + + + Specifies all non-public properties. + + + + + Specifies all public events. + + + + + Specifies all non-public events. + + + + + Specifies all interfaces implemented by the type. + + + + + Specifies all members. + + + + diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/net461/Microsoft.IdentityModel.Logging.xml.meta b/Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/net461/Microsoft.IdentityModel.Logging.xml.meta new file mode 100644 index 0000000..5c13f81 --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/net461/Microsoft.IdentityModel.Logging.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: b98c38a6e75691143ba5a72108926965 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/net462.meta b/Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/net462.meta new file mode 100644 index 0000000..37b0ec1 --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/net462.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3369d8b82607a424cbcb97c74739a52d +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/net462/Microsoft.IdentityModel.Logging.dll b/Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/net462/Microsoft.IdentityModel.Logging.dll new file mode 100644 index 0000000..3a27d04 --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/net462/Microsoft.IdentityModel.Logging.dll @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a0a63ebcc81cbf2bf29dedda407b512e72f9d2f4f5b5f899abff68784ac726be +size 38840 diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/net462/Microsoft.IdentityModel.Logging.dll.meta b/Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/net462/Microsoft.IdentityModel.Logging.dll.meta new file mode 100644 index 0000000..4406947 --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/net462/Microsoft.IdentityModel.Logging.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: 6a70e3e7a85c1354787da0c1d7b76231 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/net462/Microsoft.IdentityModel.Logging.xml b/Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/net462/Microsoft.IdentityModel.Logging.xml new file mode 100644 index 0000000..d04aeab --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/net462/Microsoft.IdentityModel.Logging.xml @@ -0,0 +1,871 @@ + + + + Microsoft.IdentityModel.Logging + + + + + Event source based logger to log different events. + + + + + Static logger that is exposed externally. An external application or framework can hook up a listener to this event source to log data in a custom way. + + + + + Flag which indicates whether or not PII is shown in logs. False by default. + + + + + Flag which indicates whether or not complete is shown in logs when is set to true. False by default. + + + + + String that is used in place of any arguments to log messages if the 'ShowPII' flag is set to false. + + + + + String that is used in place of any arguments to log messages if the 'LogCompleteSecurityArtifact' flag is set to false. + + + + + Indicates whether or the log message header (contains library version, date/time, and PII debugging information) has been written. + + + + + The log message that indicates the current library version. + + + + + The log message that indicates the date. + + + + + The log message that is shown when PII is off. + + + + + The log message that is shown when PII is off. + + + + + Writes an event log by using the provided string argument and current UTC time. + No level filtering is done on the event. + + The log message. + No level filtering. + + + + Writes an event log by using the provided string argument, current UTC time and the provided arguments list. + + The log message. + An object array that contains zero or more objects to format. + + + + Writes a verbose event log by using the provided string argument and current UTC time. + + The log message. + + + + Writes a verbose event log by using the provided string argument, current UTC time and the provided arguments list. + + The log message. + An object array that contains zero or more objects to format. + + + + Writes an information event log by using the provided string argument and current UTC time. + + The log message. + + + + Writes an information event log by using the provided string argument, current UTC time and the provided arguments list. + + The log message. + An object array that contains zero or more objects to format. + + + + Writes a warning event log by using the provided string argument and current UTC time. + + The log message. + + + + Writes a warning event log by using the provided string argument, current UTC time and the provided arguments list. + + The log message. + An object array that contains zero or more objects to format. + + + + Writes an error event log by using the provided string argument and current UTC time. + + The log message. + + + + Writes an error event log by using the provided string argument, current UTC time and the provided arguments list. + + The log message. + An object array that contains zero or more objects to format. + + + + Writes a critical event log by using the provided string argument and current UTC time. + + The log message. + + + + Writes a critical event log by using the provided string argument, current UTC time and the provided arguments list. + + The log message. + An object array that contains zero or more objects to format. + + + + Writes an exception log by using the provided event identifer, exception argument, string argument and current UTC time. + + + + The log message. + + + + Writes an exception log by using the provided event identifer, exception argument, string argument, arguments list and current UTC time. + + + + The log message. + An object array that contains zero or more objects to format. + + + + Minimum log level to log events. Default is Warning. + + + + + Provides a way to add and remove telemetry data. + + + + + Get the string that represents the client SKU. + + + + + Get the string that represents the client version. + + + + + Adds a key and its value to the collection of telemetry data. + + The name of the telemetry. + The value of the telemetry. + true if the key is successfully added; otherwise, false. + + + + Removes a key and its value from the collection of telemetry data. + + The name of the telemetry. + true if the key is successfully removed; otherwise, false. + + + + Interface that provides an unsafe method to log a security artifact. + + + SecurityToken and encoded token are considered as SecurityArtifacts. + + + + + Returns a string that represents the complete security artifact. + This may include sensitive information and should only be used for debugging purposes. + + + + + A context class that can be used to store work per request to aid with debugging. + + + + + Instantiates a new with the default activityId. + + + + + Instantiates a new with an activityId. + + + + + + Gets or set a that will be used in the call to EventSource.SetCurrentThreadActivityId before logging. + + + + + Gets or sets a boolean controlling if logs are written into the context. + Useful when debugging. + + + + + Gets or sets a string that helps with setting breakpoints when debugging. + + + + + The collection of logs associated with a request. Use to control capture. + + + + + Gets or sets an that enables custom extensibility scenarios. + + + + + Helper class for logging. + + + + + Gets or sets a logger to which logs will be written to. + + + + + Indicates whether the log message header (contains library version, date/time, and PII debugging information) has been written. + + + + + The log message that is shown when PII is off. + + + + + The log message that is shown when PII is on. + + + + + Gets whether logging is enabled at the specified ."/> + + The log level + if logging is enabled at the specified level; otherwise, . + + + + Logs an exception using the event source logger and returns new exception. + + argument that is null or empty. + EventLevel is set to Error. + + + + Logs an exception using the event source logger and returns new typed exception. + + message to log. + EventLevel is set to Error. + + + + Logs an argument exception using the event source logger and returns new typed exception. + + Identifies the argument whose value generated the ArgumentException. + message to log. + EventLevel is set to Error. + + + + Logs an exception using the event source logger and returns new typed exception. + + Format string of the log message. + An object array that contains zero or more objects to format. + EventLevel is set to Error. + + + + Logs an argument exception using the event source logger and returns new typed exception. + + Identifies the argument whose value generated the ArgumentException. + Format string of the log message. + An object array that contains zero or more objects to format. + EventLevel is set to Error. + + + + Logs an exception using the event source logger and returns new typed exception. + + the inner to be added to the outer exception. + message to log. + EventLevel is set to Error. + + + + Logs an argument exception using the event source logger and returns new typed exception. + + Identifies the argument whose value generated the ArgumentException. + the inner to be added to the outer exception. + message to log. + EventLevel is set to Error. + + + + Logs an exception using the event source logger and returns new typed exception. + + the inner to be added to the outer exception. + Format string of the log message. + An object array that contains zero or more objects to format. + EventLevel is set to Error. + + + + Logs an argument exception using the event source logger and returns new typed exception. + + Identifies the argument whose value generated the ArgumentException. + the inner to be added to the outer exception. + Format string of the log message. + An object array that contains zero or more objects to format. + EventLevel is set to Error. + + + + Logs an exception using the event source logger and returns new typed exception. + + Identifies the level of an event to be logged. + message to log. + + + + Logs an argument exception using the event source logger and returns new typed exception. + + Identifies the level of an event to be logged. + Identifies the argument whose value generated the ArgumentException. + message to log. + + + + Logs an exception using the event source logger and returns new typed exception. + + Identifies the level of an event to be logged. + Format string of the log message. + An object array that contains zero or more objects to format. + + + + Logs an argument exception using the event source logger and returns new typed exception. + + Identifies the level of an event to be logged. + Identifies the argument whose value generated the ArgumentException. + Format string of the log message. + An object array that contains zero or more objects to format. + + + + Logs an exception using the event source logger and returns new typed exception. + + Identifies the level of an event to be logged. + the inner to be added to the outer exception. + message to log. + + + + Logs an argument exception using the event source logger and returns new typed exception. + + Identifies the level of an event to be logged. + Identifies the argument whose value generated the ArgumentException. + the inner to be added to the outer exception. + message to log. + + + + Logs an exception using the event source logger and returns new typed exception. + + Identifies the level of an event to be logged. + the inner to be added to the outer exception. + Format string of the log message. + An object array that contains zero or more objects to format. + + + + Logs an argument exception using the event source logger and returns new typed exception. + + Identifies the level of an event to be logged. + Identifies the argument whose value generated the ArgumentException. + the inner to be added to the outer exception. + Format string of the log message. + An object array that contains zero or more objects to format. + + + + Logs an exception using the event source logger. + + The exception to log. + + + + Logs an exception using the event source logger. + + Identifies the level of an event to be logged. + The exception to log. + + + + Logs an information event. + + The log message. + An object array that contains zero or more objects to format. + + + + Logs a verbose event. + + The log message. + An object array that contains zero or more objects to format. + + + + Logs a warning event. + + The log message. + An object array that contains zero or more objects to format. + + + + Logs an exception using the event source logger and returns new typed exception. + + Identifies the level of an event to be logged. + Identifies the argument whose value generated the ArgumentException. + the inner to be added to the outer exception. + Format string of the log message. + An object array that contains zero or more objects to format. + + + + Formats the string using InvariantCulture + + Format string. + Format arguments. + Formatted string. + + + + Marks a log message argument () as NonPII. + + A log message argument to be marked as NonPII. + An argument marked as NonPII. + + Marking an argument as NonPII in calls will result in logging + that argument in cleartext, regardless of the flag value. + + + + + Marks a log message argument () as SecurityArtifact. + + A log message argument to be marked as SecurityArtifact. + A callback function to log the security artifact safely. + An argument marked as SecurityArtifact. + + Since even the payload may sometimes contain security artifacts, naïve disarm algorithms such as removing signatures + will not work. For now the will only be leveraged if + is set and no unsafe callback is provided. Future changes + may introduce a support for best effort disarm logging. + + + + + Marks a log message argument () as SecurityArtifact. + + A log message argument to be marked as SecurityArtifact. + A callback function to log the security artifact safely. + A callback function to log the security artifact without scrubbing. + An argument marked as SecurityArtifact. + if is null. + if is null. + + Since even the payload may sometimes contain security artifacts, naïve disarm algorithms such as removing signatures + will not work. For now the is currently unused. Future changes + may introduce a support for best effort disarm logging which will leverage . + + + + + Marks a log message argument () as SecurityArtifact. + + A log message argument to be marked as SecurityArtifact. + A callback function to log the security artifact without scrubbing. + An argument marked as SecurityArtifact. + if is null. + + + + Creates a by using the provided event level, exception argument, string argument and arguments list. + + + + The log message. + An object array that contains zero or more objects to format. + + + + Log messages and codes for Microsoft.IdentityModel.Logging + + + + + An internal structure that is used to mark an argument as NonPII. + Arguments wrapped with a NonPII structure will be considered as NonPII in the message logging process. + + + + + Argument wrapped with a structure is considered as NonPII in the message logging process. + + + + + Creates an instance of that wraps the . + + An argument that is considered as NonPII. + + + + Returns a string that represents the . + + Null if the is , otherwise calls method of the . + + + + An internal structure that is used to mark an argument as SecurityArtifact. + Arguments wrapped with a SecurityArtifact structure will be considered as a SecurityArtifact in the message logging process. + + + SecurityToken and encoded token are considered as SecurityArtifacts. + + + + + Argument wrapped with a structure is considered as SecurityArtifact in the message logging process. + + + + + The ToString callback delegate that returns a disarmed SecurityArtifact. + + + + + The ToString callback delegate that returns an unscrubbed SecurityArtifact. + + + + + Creates an instance of that wraps the . + + An argument that is considered as SecurityArtifact. + A callback used to disarm the token. + + Since even the payload may sometimes contain security artifacts, naïve disarm algorithms (such as removing signatures + in the case of JWTs) will not work. For now the will only be leveraged if + is set and no unsafe callback is provided. Future changes + may introduce a support for best effort disarm logging. + + + + + Creates an instance of that wraps the . + + An argument that is considered as SecurityArtifact. + A ToString callback. + A ToString callback which will return the unscrubbed artifact. + + Since even the payload may sometimes contain security artifacts, naïve disarm algorithms (such as removing signatures + in the case of JWTs) will not work. For now the is currently unused. Future changes + may introduce a support for best effort disarm logging which will leverage . + + + + + A dummy callback which can be leveraged to return a standard scrubbed token in the case where expected token is unknown. + + Ignored token. + The standard scrubbed token string. + + + + Returns a string that represents the . + + Null if the is , otherwise calls the provided safe callback on . + + + + Event listener that writes logs to a file or a fileStream provided by user. + + + + + Name of the default log file, excluding its path. + + + + + Initializes a new instance of that writes logs to text file. + + + + + Initializes a new instance of that writes logs to text file. + + location of the file where log messages will be written. + + + + Initializes a new instance of that writes logs to text file. + + StreamWriter where logs will be written. + + + + Called whenever an event has been written by an event source for which the event listener has enabled events. + + + + + + Releases all resources used by the current instance of the class. + + + + + Indicates that the specified method requires dynamic access to code that is not referenced + statically, for example through . + + + This allows tools to understand which methods are unsafe to call when removing unreferenced + code from an application. + + + + + Initializes a new instance of the class + with the specified message. + + + A message that contains information about the usage of unreferenced code. + + + + + Gets a message that contains information about the usage of unreferenced code. + + + + + Gets or sets an optional URL that contains more information about the method, + why it requires unreferenced code, and what options a consumer has to deal with it. + + + + + Suppresses reporting of a specific rule violation, allowing multiple suppressions on a + single code artifact. + + + is different than + in that it doesn't have a + . So it is always preserved in the compiled assembly. + + + + + Initializes a new instance of the + class, specifying the category of the tool and the identifier for an analysis rule. + + The category for the attribute. + The identifier of the analysis rule the attribute applies to. + + + + Gets the category identifying the classification of the attribute. + + + The property describes the tool or tool analysis category + for which a message suppression attribute applies. + + + + + Gets the identifier of the analysis tool rule to be suppressed. + + + Concatenated together, the and + properties form a unique check identifier. + + + + + Gets or sets the scope of the code that is relevant for the attribute. + + + The Scope property is an optional argument that specifies the metadata scope for which + the attribute is relevant. + + + + + Gets or sets a fully qualified path that represents the target of the attribute. + + + The property is an optional argument identifying the analysis target + of the attribute. An example value is "System.IO.Stream.ctor():System.Void". + Because it is fully qualified, it can be long, particularly for targets such as parameters. + The analysis tool user interface should be capable of automatically formatting the parameter. + + + + + Gets or sets an optional argument expanding on exclusion criteria. + + + The property is an optional argument that specifies additional + exclusion where the literal metadata target is not sufficiently precise. For example, + the cannot be applied within a method, + and it may be desirable to suppress a violation against a statement in the method that will + give a rule violation, but not against all statements in the method. + + + + + Gets or sets the justification for suppressing the code analysis message. + + + + + Initializes a new instance of the class + with the specified member types. + + The types of members dynamically accessed. + + + + Gets the which specifies the type + of members dynamically accessed. + + + + + Specifies the types of members that are dynamically accessed. + + This enumeration has a attribute that allows a + bitwise combination of its member values. + + + + + Specifies no members. + + + + + Specifies the default, parameterless public constructor. + + + + + Specifies all public constructors. + + + + + Specifies all non-public constructors. + + + + + Specifies all public methods. + + + + + Specifies all non-public methods. + + + + + Specifies all public fields. + + + + + Specifies all non-public fields. + + + + + Specifies all public nested types. + + + + + Specifies all non-public nested types. + + + + + Specifies all public properties. + + + + + Specifies all non-public properties. + + + + + Specifies all public events. + + + + + Specifies all non-public events. + + + + + Specifies all interfaces implemented by the type. + + + + + Specifies all members. + + + + diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/net462/Microsoft.IdentityModel.Logging.xml.meta b/Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/net462/Microsoft.IdentityModel.Logging.xml.meta new file mode 100644 index 0000000..c15d4a1 --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/net462/Microsoft.IdentityModel.Logging.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: ce1dda136ded3be4287b9afe2cbf3f73 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/net472.meta b/Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/net472.meta new file mode 100644 index 0000000..546c3f7 --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/net472.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 390b26c568c27154781f6c777642ca16 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/net472/Microsoft.IdentityModel.Logging.dll b/Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/net472/Microsoft.IdentityModel.Logging.dll new file mode 100644 index 0000000..92d3392 --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/net472/Microsoft.IdentityModel.Logging.dll @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:262aa7257cb874a8cabf96b5a6d18b4a217f5c9d2a841cd1a7d9ed1724e59ddb +size 38944 diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/net472/Microsoft.IdentityModel.Logging.dll.meta b/Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/net472/Microsoft.IdentityModel.Logging.dll.meta new file mode 100644 index 0000000..dfcb051 --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/net472/Microsoft.IdentityModel.Logging.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: b7a4be2ea87169c46bbeeaf40573a186 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/net472/Microsoft.IdentityModel.Logging.xml b/Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/net472/Microsoft.IdentityModel.Logging.xml new file mode 100644 index 0000000..d04aeab --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/net472/Microsoft.IdentityModel.Logging.xml @@ -0,0 +1,871 @@ + + + + Microsoft.IdentityModel.Logging + + + + + Event source based logger to log different events. + + + + + Static logger that is exposed externally. An external application or framework can hook up a listener to this event source to log data in a custom way. + + + + + Flag which indicates whether or not PII is shown in logs. False by default. + + + + + Flag which indicates whether or not complete is shown in logs when is set to true. False by default. + + + + + String that is used in place of any arguments to log messages if the 'ShowPII' flag is set to false. + + + + + String that is used in place of any arguments to log messages if the 'LogCompleteSecurityArtifact' flag is set to false. + + + + + Indicates whether or the log message header (contains library version, date/time, and PII debugging information) has been written. + + + + + The log message that indicates the current library version. + + + + + The log message that indicates the date. + + + + + The log message that is shown when PII is off. + + + + + The log message that is shown when PII is off. + + + + + Writes an event log by using the provided string argument and current UTC time. + No level filtering is done on the event. + + The log message. + No level filtering. + + + + Writes an event log by using the provided string argument, current UTC time and the provided arguments list. + + The log message. + An object array that contains zero or more objects to format. + + + + Writes a verbose event log by using the provided string argument and current UTC time. + + The log message. + + + + Writes a verbose event log by using the provided string argument, current UTC time and the provided arguments list. + + The log message. + An object array that contains zero or more objects to format. + + + + Writes an information event log by using the provided string argument and current UTC time. + + The log message. + + + + Writes an information event log by using the provided string argument, current UTC time and the provided arguments list. + + The log message. + An object array that contains zero or more objects to format. + + + + Writes a warning event log by using the provided string argument and current UTC time. + + The log message. + + + + Writes a warning event log by using the provided string argument, current UTC time and the provided arguments list. + + The log message. + An object array that contains zero or more objects to format. + + + + Writes an error event log by using the provided string argument and current UTC time. + + The log message. + + + + Writes an error event log by using the provided string argument, current UTC time and the provided arguments list. + + The log message. + An object array that contains zero or more objects to format. + + + + Writes a critical event log by using the provided string argument and current UTC time. + + The log message. + + + + Writes a critical event log by using the provided string argument, current UTC time and the provided arguments list. + + The log message. + An object array that contains zero or more objects to format. + + + + Writes an exception log by using the provided event identifer, exception argument, string argument and current UTC time. + + + + The log message. + + + + Writes an exception log by using the provided event identifer, exception argument, string argument, arguments list and current UTC time. + + + + The log message. + An object array that contains zero or more objects to format. + + + + Minimum log level to log events. Default is Warning. + + + + + Provides a way to add and remove telemetry data. + + + + + Get the string that represents the client SKU. + + + + + Get the string that represents the client version. + + + + + Adds a key and its value to the collection of telemetry data. + + The name of the telemetry. + The value of the telemetry. + true if the key is successfully added; otherwise, false. + + + + Removes a key and its value from the collection of telemetry data. + + The name of the telemetry. + true if the key is successfully removed; otherwise, false. + + + + Interface that provides an unsafe method to log a security artifact. + + + SecurityToken and encoded token are considered as SecurityArtifacts. + + + + + Returns a string that represents the complete security artifact. + This may include sensitive information and should only be used for debugging purposes. + + + + + A context class that can be used to store work per request to aid with debugging. + + + + + Instantiates a new with the default activityId. + + + + + Instantiates a new with an activityId. + + + + + + Gets or set a that will be used in the call to EventSource.SetCurrentThreadActivityId before logging. + + + + + Gets or sets a boolean controlling if logs are written into the context. + Useful when debugging. + + + + + Gets or sets a string that helps with setting breakpoints when debugging. + + + + + The collection of logs associated with a request. Use to control capture. + + + + + Gets or sets an that enables custom extensibility scenarios. + + + + + Helper class for logging. + + + + + Gets or sets a logger to which logs will be written to. + + + + + Indicates whether the log message header (contains library version, date/time, and PII debugging information) has been written. + + + + + The log message that is shown when PII is off. + + + + + The log message that is shown when PII is on. + + + + + Gets whether logging is enabled at the specified ."/> + + The log level + if logging is enabled at the specified level; otherwise, . + + + + Logs an exception using the event source logger and returns new exception. + + argument that is null or empty. + EventLevel is set to Error. + + + + Logs an exception using the event source logger and returns new typed exception. + + message to log. + EventLevel is set to Error. + + + + Logs an argument exception using the event source logger and returns new typed exception. + + Identifies the argument whose value generated the ArgumentException. + message to log. + EventLevel is set to Error. + + + + Logs an exception using the event source logger and returns new typed exception. + + Format string of the log message. + An object array that contains zero or more objects to format. + EventLevel is set to Error. + + + + Logs an argument exception using the event source logger and returns new typed exception. + + Identifies the argument whose value generated the ArgumentException. + Format string of the log message. + An object array that contains zero or more objects to format. + EventLevel is set to Error. + + + + Logs an exception using the event source logger and returns new typed exception. + + the inner to be added to the outer exception. + message to log. + EventLevel is set to Error. + + + + Logs an argument exception using the event source logger and returns new typed exception. + + Identifies the argument whose value generated the ArgumentException. + the inner to be added to the outer exception. + message to log. + EventLevel is set to Error. + + + + Logs an exception using the event source logger and returns new typed exception. + + the inner to be added to the outer exception. + Format string of the log message. + An object array that contains zero or more objects to format. + EventLevel is set to Error. + + + + Logs an argument exception using the event source logger and returns new typed exception. + + Identifies the argument whose value generated the ArgumentException. + the inner to be added to the outer exception. + Format string of the log message. + An object array that contains zero or more objects to format. + EventLevel is set to Error. + + + + Logs an exception using the event source logger and returns new typed exception. + + Identifies the level of an event to be logged. + message to log. + + + + Logs an argument exception using the event source logger and returns new typed exception. + + Identifies the level of an event to be logged. + Identifies the argument whose value generated the ArgumentException. + message to log. + + + + Logs an exception using the event source logger and returns new typed exception. + + Identifies the level of an event to be logged. + Format string of the log message. + An object array that contains zero or more objects to format. + + + + Logs an argument exception using the event source logger and returns new typed exception. + + Identifies the level of an event to be logged. + Identifies the argument whose value generated the ArgumentException. + Format string of the log message. + An object array that contains zero or more objects to format. + + + + Logs an exception using the event source logger and returns new typed exception. + + Identifies the level of an event to be logged. + the inner to be added to the outer exception. + message to log. + + + + Logs an argument exception using the event source logger and returns new typed exception. + + Identifies the level of an event to be logged. + Identifies the argument whose value generated the ArgumentException. + the inner to be added to the outer exception. + message to log. + + + + Logs an exception using the event source logger and returns new typed exception. + + Identifies the level of an event to be logged. + the inner to be added to the outer exception. + Format string of the log message. + An object array that contains zero or more objects to format. + + + + Logs an argument exception using the event source logger and returns new typed exception. + + Identifies the level of an event to be logged. + Identifies the argument whose value generated the ArgumentException. + the inner to be added to the outer exception. + Format string of the log message. + An object array that contains zero or more objects to format. + + + + Logs an exception using the event source logger. + + The exception to log. + + + + Logs an exception using the event source logger. + + Identifies the level of an event to be logged. + The exception to log. + + + + Logs an information event. + + The log message. + An object array that contains zero or more objects to format. + + + + Logs a verbose event. + + The log message. + An object array that contains zero or more objects to format. + + + + Logs a warning event. + + The log message. + An object array that contains zero or more objects to format. + + + + Logs an exception using the event source logger and returns new typed exception. + + Identifies the level of an event to be logged. + Identifies the argument whose value generated the ArgumentException. + the inner to be added to the outer exception. + Format string of the log message. + An object array that contains zero or more objects to format. + + + + Formats the string using InvariantCulture + + Format string. + Format arguments. + Formatted string. + + + + Marks a log message argument () as NonPII. + + A log message argument to be marked as NonPII. + An argument marked as NonPII. + + Marking an argument as NonPII in calls will result in logging + that argument in cleartext, regardless of the flag value. + + + + + Marks a log message argument () as SecurityArtifact. + + A log message argument to be marked as SecurityArtifact. + A callback function to log the security artifact safely. + An argument marked as SecurityArtifact. + + Since even the payload may sometimes contain security artifacts, naïve disarm algorithms such as removing signatures + will not work. For now the will only be leveraged if + is set and no unsafe callback is provided. Future changes + may introduce a support for best effort disarm logging. + + + + + Marks a log message argument () as SecurityArtifact. + + A log message argument to be marked as SecurityArtifact. + A callback function to log the security artifact safely. + A callback function to log the security artifact without scrubbing. + An argument marked as SecurityArtifact. + if is null. + if is null. + + Since even the payload may sometimes contain security artifacts, naïve disarm algorithms such as removing signatures + will not work. For now the is currently unused. Future changes + may introduce a support for best effort disarm logging which will leverage . + + + + + Marks a log message argument () as SecurityArtifact. + + A log message argument to be marked as SecurityArtifact. + A callback function to log the security artifact without scrubbing. + An argument marked as SecurityArtifact. + if is null. + + + + Creates a by using the provided event level, exception argument, string argument and arguments list. + + + + The log message. + An object array that contains zero or more objects to format. + + + + Log messages and codes for Microsoft.IdentityModel.Logging + + + + + An internal structure that is used to mark an argument as NonPII. + Arguments wrapped with a NonPII structure will be considered as NonPII in the message logging process. + + + + + Argument wrapped with a structure is considered as NonPII in the message logging process. + + + + + Creates an instance of that wraps the . + + An argument that is considered as NonPII. + + + + Returns a string that represents the . + + Null if the is , otherwise calls method of the . + + + + An internal structure that is used to mark an argument as SecurityArtifact. + Arguments wrapped with a SecurityArtifact structure will be considered as a SecurityArtifact in the message logging process. + + + SecurityToken and encoded token are considered as SecurityArtifacts. + + + + + Argument wrapped with a structure is considered as SecurityArtifact in the message logging process. + + + + + The ToString callback delegate that returns a disarmed SecurityArtifact. + + + + + The ToString callback delegate that returns an unscrubbed SecurityArtifact. + + + + + Creates an instance of that wraps the . + + An argument that is considered as SecurityArtifact. + A callback used to disarm the token. + + Since even the payload may sometimes contain security artifacts, naïve disarm algorithms (such as removing signatures + in the case of JWTs) will not work. For now the will only be leveraged if + is set and no unsafe callback is provided. Future changes + may introduce a support for best effort disarm logging. + + + + + Creates an instance of that wraps the . + + An argument that is considered as SecurityArtifact. + A ToString callback. + A ToString callback which will return the unscrubbed artifact. + + Since even the payload may sometimes contain security artifacts, naïve disarm algorithms (such as removing signatures + in the case of JWTs) will not work. For now the is currently unused. Future changes + may introduce a support for best effort disarm logging which will leverage . + + + + + A dummy callback which can be leveraged to return a standard scrubbed token in the case where expected token is unknown. + + Ignored token. + The standard scrubbed token string. + + + + Returns a string that represents the . + + Null if the is , otherwise calls the provided safe callback on . + + + + Event listener that writes logs to a file or a fileStream provided by user. + + + + + Name of the default log file, excluding its path. + + + + + Initializes a new instance of that writes logs to text file. + + + + + Initializes a new instance of that writes logs to text file. + + location of the file where log messages will be written. + + + + Initializes a new instance of that writes logs to text file. + + StreamWriter where logs will be written. + + + + Called whenever an event has been written by an event source for which the event listener has enabled events. + + + + + + Releases all resources used by the current instance of the class. + + + + + Indicates that the specified method requires dynamic access to code that is not referenced + statically, for example through . + + + This allows tools to understand which methods are unsafe to call when removing unreferenced + code from an application. + + + + + Initializes a new instance of the class + with the specified message. + + + A message that contains information about the usage of unreferenced code. + + + + + Gets a message that contains information about the usage of unreferenced code. + + + + + Gets or sets an optional URL that contains more information about the method, + why it requires unreferenced code, and what options a consumer has to deal with it. + + + + + Suppresses reporting of a specific rule violation, allowing multiple suppressions on a + single code artifact. + + + is different than + in that it doesn't have a + . So it is always preserved in the compiled assembly. + + + + + Initializes a new instance of the + class, specifying the category of the tool and the identifier for an analysis rule. + + The category for the attribute. + The identifier of the analysis rule the attribute applies to. + + + + Gets the category identifying the classification of the attribute. + + + The property describes the tool or tool analysis category + for which a message suppression attribute applies. + + + + + Gets the identifier of the analysis tool rule to be suppressed. + + + Concatenated together, the and + properties form a unique check identifier. + + + + + Gets or sets the scope of the code that is relevant for the attribute. + + + The Scope property is an optional argument that specifies the metadata scope for which + the attribute is relevant. + + + + + Gets or sets a fully qualified path that represents the target of the attribute. + + + The property is an optional argument identifying the analysis target + of the attribute. An example value is "System.IO.Stream.ctor():System.Void". + Because it is fully qualified, it can be long, particularly for targets such as parameters. + The analysis tool user interface should be capable of automatically formatting the parameter. + + + + + Gets or sets an optional argument expanding on exclusion criteria. + + + The property is an optional argument that specifies additional + exclusion where the literal metadata target is not sufficiently precise. For example, + the cannot be applied within a method, + and it may be desirable to suppress a violation against a statement in the method that will + give a rule violation, but not against all statements in the method. + + + + + Gets or sets the justification for suppressing the code analysis message. + + + + + Initializes a new instance of the class + with the specified member types. + + The types of members dynamically accessed. + + + + Gets the which specifies the type + of members dynamically accessed. + + + + + Specifies the types of members that are dynamically accessed. + + This enumeration has a attribute that allows a + bitwise combination of its member values. + + + + + Specifies no members. + + + + + Specifies the default, parameterless public constructor. + + + + + Specifies all public constructors. + + + + + Specifies all non-public constructors. + + + + + Specifies all public methods. + + + + + Specifies all non-public methods. + + + + + Specifies all public fields. + + + + + Specifies all non-public fields. + + + + + Specifies all public nested types. + + + + + Specifies all non-public nested types. + + + + + Specifies all public properties. + + + + + Specifies all non-public properties. + + + + + Specifies all public events. + + + + + Specifies all non-public events. + + + + + Specifies all interfaces implemented by the type. + + + + + Specifies all members. + + + + diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/net472/Microsoft.IdentityModel.Logging.xml.meta b/Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/net472/Microsoft.IdentityModel.Logging.xml.meta new file mode 100644 index 0000000..cf38f2b --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/net472/Microsoft.IdentityModel.Logging.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 886805299fa1aba4391b9d9efdb2810f +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/net6.0.meta b/Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/net6.0.meta new file mode 100644 index 0000000..db99fc1 --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/net6.0.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 54939e98eb9b7c3419b79700cb0f69ec +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/net6.0/Microsoft.IdentityModel.Logging.dll b/Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/net6.0/Microsoft.IdentityModel.Logging.dll new file mode 100644 index 0000000..76f5d13 --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/net6.0/Microsoft.IdentityModel.Logging.dll @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:317d9588229b91ac81c80bfa6ed56c5aef69301800a000650d6b55550962f1eb +size 36896 diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/net6.0/Microsoft.IdentityModel.Logging.dll.meta b/Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/net6.0/Microsoft.IdentityModel.Logging.dll.meta new file mode 100644 index 0000000..dfc76f8 --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/net6.0/Microsoft.IdentityModel.Logging.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: 532de6a4c804c1042b777024db445001 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/net6.0/Microsoft.IdentityModel.Logging.xml b/Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/net6.0/Microsoft.IdentityModel.Logging.xml new file mode 100644 index 0000000..ef55c2a --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/net6.0/Microsoft.IdentityModel.Logging.xml @@ -0,0 +1,666 @@ + + + + Microsoft.IdentityModel.Logging + + + + + Event source based logger to log different events. + + + + + Static logger that is exposed externally. An external application or framework can hook up a listener to this event source to log data in a custom way. + + + + + Flag which indicates whether or not PII is shown in logs. False by default. + + + + + Flag which indicates whether or not complete is shown in logs when is set to true. False by default. + + + + + String that is used in place of any arguments to log messages if the 'ShowPII' flag is set to false. + + + + + String that is used in place of any arguments to log messages if the 'LogCompleteSecurityArtifact' flag is set to false. + + + + + Indicates whether or the log message header (contains library version, date/time, and PII debugging information) has been written. + + + + + The log message that indicates the current library version. + + + + + The log message that indicates the date. + + + + + The log message that is shown when PII is off. + + + + + The log message that is shown when PII is off. + + + + + Writes an event log by using the provided string argument and current UTC time. + No level filtering is done on the event. + + The log message. + No level filtering. + + + + Writes an event log by using the provided string argument, current UTC time and the provided arguments list. + + The log message. + An object array that contains zero or more objects to format. + + + + Writes a verbose event log by using the provided string argument and current UTC time. + + The log message. + + + + Writes a verbose event log by using the provided string argument, current UTC time and the provided arguments list. + + The log message. + An object array that contains zero or more objects to format. + + + + Writes an information event log by using the provided string argument and current UTC time. + + The log message. + + + + Writes an information event log by using the provided string argument, current UTC time and the provided arguments list. + + The log message. + An object array that contains zero or more objects to format. + + + + Writes a warning event log by using the provided string argument and current UTC time. + + The log message. + + + + Writes a warning event log by using the provided string argument, current UTC time and the provided arguments list. + + The log message. + An object array that contains zero or more objects to format. + + + + Writes an error event log by using the provided string argument and current UTC time. + + The log message. + + + + Writes an error event log by using the provided string argument, current UTC time and the provided arguments list. + + The log message. + An object array that contains zero or more objects to format. + + + + Writes a critical event log by using the provided string argument and current UTC time. + + The log message. + + + + Writes a critical event log by using the provided string argument, current UTC time and the provided arguments list. + + The log message. + An object array that contains zero or more objects to format. + + + + Writes an exception log by using the provided event identifer, exception argument, string argument and current UTC time. + + + + The log message. + + + + Writes an exception log by using the provided event identifer, exception argument, string argument, arguments list and current UTC time. + + + + The log message. + An object array that contains zero or more objects to format. + + + + Minimum log level to log events. Default is Warning. + + + + + Provides a way to add and remove telemetry data. + + + + + Get the string that represents the client SKU. + + + + + Get the string that represents the client version. + + + + + Adds a key and its value to the collection of telemetry data. + + The name of the telemetry. + The value of the telemetry. + true if the key is successfully added; otherwise, false. + + + + Removes a key and its value from the collection of telemetry data. + + The name of the telemetry. + true if the key is successfully removed; otherwise, false. + + + + Interface that provides an unsafe method to log a security artifact. + + + SecurityToken and encoded token are considered as SecurityArtifacts. + + + + + Returns a string that represents the complete security artifact. + This may include sensitive information and should only be used for debugging purposes. + + + + + A context class that can be used to store work per request to aid with debugging. + + + + + Instantiates a new with the default activityId. + + + + + Instantiates a new with an activityId. + + + + + + Gets or set a that will be used in the call to EventSource.SetCurrentThreadActivityId before logging. + + + + + Gets or sets a boolean controlling if logs are written into the context. + Useful when debugging. + + + + + Gets or sets a string that helps with setting breakpoints when debugging. + + + + + The collection of logs associated with a request. Use to control capture. + + + + + Gets or sets an that enables custom extensibility scenarios. + + + + + Helper class for logging. + + + + + Gets or sets a logger to which logs will be written to. + + + + + Indicates whether the log message header (contains library version, date/time, and PII debugging information) has been written. + + + + + The log message that is shown when PII is off. + + + + + The log message that is shown when PII is on. + + + + + Gets whether logging is enabled at the specified ."/> + + The log level + if logging is enabled at the specified level; otherwise, . + + + + Logs an exception using the event source logger and returns new exception. + + argument that is null or empty. + EventLevel is set to Error. + + + + Logs an exception using the event source logger and returns new typed exception. + + message to log. + EventLevel is set to Error. + + + + Logs an argument exception using the event source logger and returns new typed exception. + + Identifies the argument whose value generated the ArgumentException. + message to log. + EventLevel is set to Error. + + + + Logs an exception using the event source logger and returns new typed exception. + + Format string of the log message. + An object array that contains zero or more objects to format. + EventLevel is set to Error. + + + + Logs an argument exception using the event source logger and returns new typed exception. + + Identifies the argument whose value generated the ArgumentException. + Format string of the log message. + An object array that contains zero or more objects to format. + EventLevel is set to Error. + + + + Logs an exception using the event source logger and returns new typed exception. + + the inner to be added to the outer exception. + message to log. + EventLevel is set to Error. + + + + Logs an argument exception using the event source logger and returns new typed exception. + + Identifies the argument whose value generated the ArgumentException. + the inner to be added to the outer exception. + message to log. + EventLevel is set to Error. + + + + Logs an exception using the event source logger and returns new typed exception. + + the inner to be added to the outer exception. + Format string of the log message. + An object array that contains zero or more objects to format. + EventLevel is set to Error. + + + + Logs an argument exception using the event source logger and returns new typed exception. + + Identifies the argument whose value generated the ArgumentException. + the inner to be added to the outer exception. + Format string of the log message. + An object array that contains zero or more objects to format. + EventLevel is set to Error. + + + + Logs an exception using the event source logger and returns new typed exception. + + Identifies the level of an event to be logged. + message to log. + + + + Logs an argument exception using the event source logger and returns new typed exception. + + Identifies the level of an event to be logged. + Identifies the argument whose value generated the ArgumentException. + message to log. + + + + Logs an exception using the event source logger and returns new typed exception. + + Identifies the level of an event to be logged. + Format string of the log message. + An object array that contains zero or more objects to format. + + + + Logs an argument exception using the event source logger and returns new typed exception. + + Identifies the level of an event to be logged. + Identifies the argument whose value generated the ArgumentException. + Format string of the log message. + An object array that contains zero or more objects to format. + + + + Logs an exception using the event source logger and returns new typed exception. + + Identifies the level of an event to be logged. + the inner to be added to the outer exception. + message to log. + + + + Logs an argument exception using the event source logger and returns new typed exception. + + Identifies the level of an event to be logged. + Identifies the argument whose value generated the ArgumentException. + the inner to be added to the outer exception. + message to log. + + + + Logs an exception using the event source logger and returns new typed exception. + + Identifies the level of an event to be logged. + the inner to be added to the outer exception. + Format string of the log message. + An object array that contains zero or more objects to format. + + + + Logs an argument exception using the event source logger and returns new typed exception. + + Identifies the level of an event to be logged. + Identifies the argument whose value generated the ArgumentException. + the inner to be added to the outer exception. + Format string of the log message. + An object array that contains zero or more objects to format. + + + + Logs an exception using the event source logger. + + The exception to log. + + + + Logs an exception using the event source logger. + + Identifies the level of an event to be logged. + The exception to log. + + + + Logs an information event. + + The log message. + An object array that contains zero or more objects to format. + + + + Logs a verbose event. + + The log message. + An object array that contains zero or more objects to format. + + + + Logs a warning event. + + The log message. + An object array that contains zero or more objects to format. + + + + Logs an exception using the event source logger and returns new typed exception. + + Identifies the level of an event to be logged. + Identifies the argument whose value generated the ArgumentException. + the inner to be added to the outer exception. + Format string of the log message. + An object array that contains zero or more objects to format. + + + + Formats the string using InvariantCulture + + Format string. + Format arguments. + Formatted string. + + + + Marks a log message argument () as NonPII. + + A log message argument to be marked as NonPII. + An argument marked as NonPII. + + Marking an argument as NonPII in calls will result in logging + that argument in cleartext, regardless of the flag value. + + + + + Marks a log message argument () as SecurityArtifact. + + A log message argument to be marked as SecurityArtifact. + A callback function to log the security artifact safely. + An argument marked as SecurityArtifact. + + Since even the payload may sometimes contain security artifacts, naïve disarm algorithms such as removing signatures + will not work. For now the will only be leveraged if + is set and no unsafe callback is provided. Future changes + may introduce a support for best effort disarm logging. + + + + + Marks a log message argument () as SecurityArtifact. + + A log message argument to be marked as SecurityArtifact. + A callback function to log the security artifact safely. + A callback function to log the security artifact without scrubbing. + An argument marked as SecurityArtifact. + if is null. + if is null. + + Since even the payload may sometimes contain security artifacts, naïve disarm algorithms such as removing signatures + will not work. For now the is currently unused. Future changes + may introduce a support for best effort disarm logging which will leverage . + + + + + Marks a log message argument () as SecurityArtifact. + + A log message argument to be marked as SecurityArtifact. + A callback function to log the security artifact without scrubbing. + An argument marked as SecurityArtifact. + if is null. + + + + Creates a by using the provided event level, exception argument, string argument and arguments list. + + + + The log message. + An object array that contains zero or more objects to format. + + + + Log messages and codes for Microsoft.IdentityModel.Logging + + + + + An internal structure that is used to mark an argument as NonPII. + Arguments wrapped with a NonPII structure will be considered as NonPII in the message logging process. + + + + + Argument wrapped with a structure is considered as NonPII in the message logging process. + + + + + Creates an instance of that wraps the . + + An argument that is considered as NonPII. + + + + Returns a string that represents the . + + Null if the is , otherwise calls method of the . + + + + An internal structure that is used to mark an argument as SecurityArtifact. + Arguments wrapped with a SecurityArtifact structure will be considered as a SecurityArtifact in the message logging process. + + + SecurityToken and encoded token are considered as SecurityArtifacts. + + + + + Argument wrapped with a structure is considered as SecurityArtifact in the message logging process. + + + + + The ToString callback delegate that returns a disarmed SecurityArtifact. + + + + + The ToString callback delegate that returns an unscrubbed SecurityArtifact. + + + + + Creates an instance of that wraps the . + + An argument that is considered as SecurityArtifact. + A callback used to disarm the token. + + Since even the payload may sometimes contain security artifacts, naïve disarm algorithms (such as removing signatures + in the case of JWTs) will not work. For now the will only be leveraged if + is set and no unsafe callback is provided. Future changes + may introduce a support for best effort disarm logging. + + + + + Creates an instance of that wraps the . + + An argument that is considered as SecurityArtifact. + A ToString callback. + A ToString callback which will return the unscrubbed artifact. + + Since even the payload may sometimes contain security artifacts, naïve disarm algorithms (such as removing signatures + in the case of JWTs) will not work. For now the is currently unused. Future changes + may introduce a support for best effort disarm logging which will leverage . + + + + + A dummy callback which can be leveraged to return a standard scrubbed token in the case where expected token is unknown. + + Ignored token. + The standard scrubbed token string. + + + + Returns a string that represents the . + + Null if the is , otherwise calls the provided safe callback on . + + + + Event listener that writes logs to a file or a fileStream provided by user. + + + + + Name of the default log file, excluding its path. + + + + + Initializes a new instance of that writes logs to text file. + + + + + Initializes a new instance of that writes logs to text file. + + location of the file where log messages will be written. + + + + Initializes a new instance of that writes logs to text file. + + StreamWriter where logs will be written. + + + + Called whenever an event has been written by an event source for which the event listener has enabled events. + + + + + + Releases all resources used by the current instance of the class. + + + + diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/net6.0/Microsoft.IdentityModel.Logging.xml.meta b/Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/net6.0/Microsoft.IdentityModel.Logging.xml.meta new file mode 100644 index 0000000..cf281e0 --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/net6.0/Microsoft.IdentityModel.Logging.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 9278a21af4ab1f843a6f951482fd5641 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/net8.0.meta b/Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/net8.0.meta new file mode 100644 index 0000000..8cc16ad --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/net8.0.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: cd0ea7f21938f714abdecddea3ab1b60 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/net8.0/Microsoft.IdentityModel.Logging.dll b/Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/net8.0/Microsoft.IdentityModel.Logging.dll new file mode 100644 index 0000000..77412ef --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/net8.0/Microsoft.IdentityModel.Logging.dll @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:51fd5a623e7b4249b76176a04298ce77e59d29a21adf6fc8034f25b84d9eeeb0 +size 36904 diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/net8.0/Microsoft.IdentityModel.Logging.dll.meta b/Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/net8.0/Microsoft.IdentityModel.Logging.dll.meta new file mode 100644 index 0000000..7b8890e --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/net8.0/Microsoft.IdentityModel.Logging.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: 27a9d7407cadb5143852f460a04a8e7a +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/net8.0/Microsoft.IdentityModel.Logging.xml b/Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/net8.0/Microsoft.IdentityModel.Logging.xml new file mode 100644 index 0000000..ef55c2a --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/net8.0/Microsoft.IdentityModel.Logging.xml @@ -0,0 +1,666 @@ + + + + Microsoft.IdentityModel.Logging + + + + + Event source based logger to log different events. + + + + + Static logger that is exposed externally. An external application or framework can hook up a listener to this event source to log data in a custom way. + + + + + Flag which indicates whether or not PII is shown in logs. False by default. + + + + + Flag which indicates whether or not complete is shown in logs when is set to true. False by default. + + + + + String that is used in place of any arguments to log messages if the 'ShowPII' flag is set to false. + + + + + String that is used in place of any arguments to log messages if the 'LogCompleteSecurityArtifact' flag is set to false. + + + + + Indicates whether or the log message header (contains library version, date/time, and PII debugging information) has been written. + + + + + The log message that indicates the current library version. + + + + + The log message that indicates the date. + + + + + The log message that is shown when PII is off. + + + + + The log message that is shown when PII is off. + + + + + Writes an event log by using the provided string argument and current UTC time. + No level filtering is done on the event. + + The log message. + No level filtering. + + + + Writes an event log by using the provided string argument, current UTC time and the provided arguments list. + + The log message. + An object array that contains zero or more objects to format. + + + + Writes a verbose event log by using the provided string argument and current UTC time. + + The log message. + + + + Writes a verbose event log by using the provided string argument, current UTC time and the provided arguments list. + + The log message. + An object array that contains zero or more objects to format. + + + + Writes an information event log by using the provided string argument and current UTC time. + + The log message. + + + + Writes an information event log by using the provided string argument, current UTC time and the provided arguments list. + + The log message. + An object array that contains zero or more objects to format. + + + + Writes a warning event log by using the provided string argument and current UTC time. + + The log message. + + + + Writes a warning event log by using the provided string argument, current UTC time and the provided arguments list. + + The log message. + An object array that contains zero or more objects to format. + + + + Writes an error event log by using the provided string argument and current UTC time. + + The log message. + + + + Writes an error event log by using the provided string argument, current UTC time and the provided arguments list. + + The log message. + An object array that contains zero or more objects to format. + + + + Writes a critical event log by using the provided string argument and current UTC time. + + The log message. + + + + Writes a critical event log by using the provided string argument, current UTC time and the provided arguments list. + + The log message. + An object array that contains zero or more objects to format. + + + + Writes an exception log by using the provided event identifer, exception argument, string argument and current UTC time. + + + + The log message. + + + + Writes an exception log by using the provided event identifer, exception argument, string argument, arguments list and current UTC time. + + + + The log message. + An object array that contains zero or more objects to format. + + + + Minimum log level to log events. Default is Warning. + + + + + Provides a way to add and remove telemetry data. + + + + + Get the string that represents the client SKU. + + + + + Get the string that represents the client version. + + + + + Adds a key and its value to the collection of telemetry data. + + The name of the telemetry. + The value of the telemetry. + true if the key is successfully added; otherwise, false. + + + + Removes a key and its value from the collection of telemetry data. + + The name of the telemetry. + true if the key is successfully removed; otherwise, false. + + + + Interface that provides an unsafe method to log a security artifact. + + + SecurityToken and encoded token are considered as SecurityArtifacts. + + + + + Returns a string that represents the complete security artifact. + This may include sensitive information and should only be used for debugging purposes. + + + + + A context class that can be used to store work per request to aid with debugging. + + + + + Instantiates a new with the default activityId. + + + + + Instantiates a new with an activityId. + + + + + + Gets or set a that will be used in the call to EventSource.SetCurrentThreadActivityId before logging. + + + + + Gets or sets a boolean controlling if logs are written into the context. + Useful when debugging. + + + + + Gets or sets a string that helps with setting breakpoints when debugging. + + + + + The collection of logs associated with a request. Use to control capture. + + + + + Gets or sets an that enables custom extensibility scenarios. + + + + + Helper class for logging. + + + + + Gets or sets a logger to which logs will be written to. + + + + + Indicates whether the log message header (contains library version, date/time, and PII debugging information) has been written. + + + + + The log message that is shown when PII is off. + + + + + The log message that is shown when PII is on. + + + + + Gets whether logging is enabled at the specified ."/> + + The log level + if logging is enabled at the specified level; otherwise, . + + + + Logs an exception using the event source logger and returns new exception. + + argument that is null or empty. + EventLevel is set to Error. + + + + Logs an exception using the event source logger and returns new typed exception. + + message to log. + EventLevel is set to Error. + + + + Logs an argument exception using the event source logger and returns new typed exception. + + Identifies the argument whose value generated the ArgumentException. + message to log. + EventLevel is set to Error. + + + + Logs an exception using the event source logger and returns new typed exception. + + Format string of the log message. + An object array that contains zero or more objects to format. + EventLevel is set to Error. + + + + Logs an argument exception using the event source logger and returns new typed exception. + + Identifies the argument whose value generated the ArgumentException. + Format string of the log message. + An object array that contains zero or more objects to format. + EventLevel is set to Error. + + + + Logs an exception using the event source logger and returns new typed exception. + + the inner to be added to the outer exception. + message to log. + EventLevel is set to Error. + + + + Logs an argument exception using the event source logger and returns new typed exception. + + Identifies the argument whose value generated the ArgumentException. + the inner to be added to the outer exception. + message to log. + EventLevel is set to Error. + + + + Logs an exception using the event source logger and returns new typed exception. + + the inner to be added to the outer exception. + Format string of the log message. + An object array that contains zero or more objects to format. + EventLevel is set to Error. + + + + Logs an argument exception using the event source logger and returns new typed exception. + + Identifies the argument whose value generated the ArgumentException. + the inner to be added to the outer exception. + Format string of the log message. + An object array that contains zero or more objects to format. + EventLevel is set to Error. + + + + Logs an exception using the event source logger and returns new typed exception. + + Identifies the level of an event to be logged. + message to log. + + + + Logs an argument exception using the event source logger and returns new typed exception. + + Identifies the level of an event to be logged. + Identifies the argument whose value generated the ArgumentException. + message to log. + + + + Logs an exception using the event source logger and returns new typed exception. + + Identifies the level of an event to be logged. + Format string of the log message. + An object array that contains zero or more objects to format. + + + + Logs an argument exception using the event source logger and returns new typed exception. + + Identifies the level of an event to be logged. + Identifies the argument whose value generated the ArgumentException. + Format string of the log message. + An object array that contains zero or more objects to format. + + + + Logs an exception using the event source logger and returns new typed exception. + + Identifies the level of an event to be logged. + the inner to be added to the outer exception. + message to log. + + + + Logs an argument exception using the event source logger and returns new typed exception. + + Identifies the level of an event to be logged. + Identifies the argument whose value generated the ArgumentException. + the inner to be added to the outer exception. + message to log. + + + + Logs an exception using the event source logger and returns new typed exception. + + Identifies the level of an event to be logged. + the inner to be added to the outer exception. + Format string of the log message. + An object array that contains zero or more objects to format. + + + + Logs an argument exception using the event source logger and returns new typed exception. + + Identifies the level of an event to be logged. + Identifies the argument whose value generated the ArgumentException. + the inner to be added to the outer exception. + Format string of the log message. + An object array that contains zero or more objects to format. + + + + Logs an exception using the event source logger. + + The exception to log. + + + + Logs an exception using the event source logger. + + Identifies the level of an event to be logged. + The exception to log. + + + + Logs an information event. + + The log message. + An object array that contains zero or more objects to format. + + + + Logs a verbose event. + + The log message. + An object array that contains zero or more objects to format. + + + + Logs a warning event. + + The log message. + An object array that contains zero or more objects to format. + + + + Logs an exception using the event source logger and returns new typed exception. + + Identifies the level of an event to be logged. + Identifies the argument whose value generated the ArgumentException. + the inner to be added to the outer exception. + Format string of the log message. + An object array that contains zero or more objects to format. + + + + Formats the string using InvariantCulture + + Format string. + Format arguments. + Formatted string. + + + + Marks a log message argument () as NonPII. + + A log message argument to be marked as NonPII. + An argument marked as NonPII. + + Marking an argument as NonPII in calls will result in logging + that argument in cleartext, regardless of the flag value. + + + + + Marks a log message argument () as SecurityArtifact. + + A log message argument to be marked as SecurityArtifact. + A callback function to log the security artifact safely. + An argument marked as SecurityArtifact. + + Since even the payload may sometimes contain security artifacts, naïve disarm algorithms such as removing signatures + will not work. For now the will only be leveraged if + is set and no unsafe callback is provided. Future changes + may introduce a support for best effort disarm logging. + + + + + Marks a log message argument () as SecurityArtifact. + + A log message argument to be marked as SecurityArtifact. + A callback function to log the security artifact safely. + A callback function to log the security artifact without scrubbing. + An argument marked as SecurityArtifact. + if is null. + if is null. + + Since even the payload may sometimes contain security artifacts, naïve disarm algorithms such as removing signatures + will not work. For now the is currently unused. Future changes + may introduce a support for best effort disarm logging which will leverage . + + + + + Marks a log message argument () as SecurityArtifact. + + A log message argument to be marked as SecurityArtifact. + A callback function to log the security artifact without scrubbing. + An argument marked as SecurityArtifact. + if is null. + + + + Creates a by using the provided event level, exception argument, string argument and arguments list. + + + + The log message. + An object array that contains zero or more objects to format. + + + + Log messages and codes for Microsoft.IdentityModel.Logging + + + + + An internal structure that is used to mark an argument as NonPII. + Arguments wrapped with a NonPII structure will be considered as NonPII in the message logging process. + + + + + Argument wrapped with a structure is considered as NonPII in the message logging process. + + + + + Creates an instance of that wraps the . + + An argument that is considered as NonPII. + + + + Returns a string that represents the . + + Null if the is , otherwise calls method of the . + + + + An internal structure that is used to mark an argument as SecurityArtifact. + Arguments wrapped with a SecurityArtifact structure will be considered as a SecurityArtifact in the message logging process. + + + SecurityToken and encoded token are considered as SecurityArtifacts. + + + + + Argument wrapped with a structure is considered as SecurityArtifact in the message logging process. + + + + + The ToString callback delegate that returns a disarmed SecurityArtifact. + + + + + The ToString callback delegate that returns an unscrubbed SecurityArtifact. + + + + + Creates an instance of that wraps the . + + An argument that is considered as SecurityArtifact. + A callback used to disarm the token. + + Since even the payload may sometimes contain security artifacts, naïve disarm algorithms (such as removing signatures + in the case of JWTs) will not work. For now the will only be leveraged if + is set and no unsafe callback is provided. Future changes + may introduce a support for best effort disarm logging. + + + + + Creates an instance of that wraps the . + + An argument that is considered as SecurityArtifact. + A ToString callback. + A ToString callback which will return the unscrubbed artifact. + + Since even the payload may sometimes contain security artifacts, naïve disarm algorithms (such as removing signatures + in the case of JWTs) will not work. For now the is currently unused. Future changes + may introduce a support for best effort disarm logging which will leverage . + + + + + A dummy callback which can be leveraged to return a standard scrubbed token in the case where expected token is unknown. + + Ignored token. + The standard scrubbed token string. + + + + Returns a string that represents the . + + Null if the is , otherwise calls the provided safe callback on . + + + + Event listener that writes logs to a file or a fileStream provided by user. + + + + + Name of the default log file, excluding its path. + + + + + Initializes a new instance of that writes logs to text file. + + + + + Initializes a new instance of that writes logs to text file. + + location of the file where log messages will be written. + + + + Initializes a new instance of that writes logs to text file. + + StreamWriter where logs will be written. + + + + Called whenever an event has been written by an event source for which the event listener has enabled events. + + + + + + Releases all resources used by the current instance of the class. + + + + diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/net8.0/Microsoft.IdentityModel.Logging.xml.meta b/Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/net8.0/Microsoft.IdentityModel.Logging.xml.meta new file mode 100644 index 0000000..d9af2d1 --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/net8.0/Microsoft.IdentityModel.Logging.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 2cadb76b499456e4381e14331b0d2764 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/netstandard2.0.meta b/Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/netstandard2.0.meta new file mode 100644 index 0000000..58eb0ff --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/netstandard2.0.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 88f906a7d8c3d4f48ae90d32b6018b72 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/netstandard2.0/Microsoft.IdentityModel.Logging.dll b/Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/netstandard2.0/Microsoft.IdentityModel.Logging.dll new file mode 100644 index 0000000..c82ebb3 --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/netstandard2.0/Microsoft.IdentityModel.Logging.dll @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d865c6bd330df364df00a46e709d6d913c0d271572e7b2e52796d42760e61956 +size 38952 diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/netstandard2.0/Microsoft.IdentityModel.Logging.dll.meta b/Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/netstandard2.0/Microsoft.IdentityModel.Logging.dll.meta new file mode 100644 index 0000000..d71cb4b --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/netstandard2.0/Microsoft.IdentityModel.Logging.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: 934a1cc6b4090224ba70dc7399cf4e4a +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/netstandard2.0/Microsoft.IdentityModel.Logging.xml b/Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/netstandard2.0/Microsoft.IdentityModel.Logging.xml new file mode 100644 index 0000000..d04aeab --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/netstandard2.0/Microsoft.IdentityModel.Logging.xml @@ -0,0 +1,871 @@ + + + + Microsoft.IdentityModel.Logging + + + + + Event source based logger to log different events. + + + + + Static logger that is exposed externally. An external application or framework can hook up a listener to this event source to log data in a custom way. + + + + + Flag which indicates whether or not PII is shown in logs. False by default. + + + + + Flag which indicates whether or not complete is shown in logs when is set to true. False by default. + + + + + String that is used in place of any arguments to log messages if the 'ShowPII' flag is set to false. + + + + + String that is used in place of any arguments to log messages if the 'LogCompleteSecurityArtifact' flag is set to false. + + + + + Indicates whether or the log message header (contains library version, date/time, and PII debugging information) has been written. + + + + + The log message that indicates the current library version. + + + + + The log message that indicates the date. + + + + + The log message that is shown when PII is off. + + + + + The log message that is shown when PII is off. + + + + + Writes an event log by using the provided string argument and current UTC time. + No level filtering is done on the event. + + The log message. + No level filtering. + + + + Writes an event log by using the provided string argument, current UTC time and the provided arguments list. + + The log message. + An object array that contains zero or more objects to format. + + + + Writes a verbose event log by using the provided string argument and current UTC time. + + The log message. + + + + Writes a verbose event log by using the provided string argument, current UTC time and the provided arguments list. + + The log message. + An object array that contains zero or more objects to format. + + + + Writes an information event log by using the provided string argument and current UTC time. + + The log message. + + + + Writes an information event log by using the provided string argument, current UTC time and the provided arguments list. + + The log message. + An object array that contains zero or more objects to format. + + + + Writes a warning event log by using the provided string argument and current UTC time. + + The log message. + + + + Writes a warning event log by using the provided string argument, current UTC time and the provided arguments list. + + The log message. + An object array that contains zero or more objects to format. + + + + Writes an error event log by using the provided string argument and current UTC time. + + The log message. + + + + Writes an error event log by using the provided string argument, current UTC time and the provided arguments list. + + The log message. + An object array that contains zero or more objects to format. + + + + Writes a critical event log by using the provided string argument and current UTC time. + + The log message. + + + + Writes a critical event log by using the provided string argument, current UTC time and the provided arguments list. + + The log message. + An object array that contains zero or more objects to format. + + + + Writes an exception log by using the provided event identifer, exception argument, string argument and current UTC time. + + + + The log message. + + + + Writes an exception log by using the provided event identifer, exception argument, string argument, arguments list and current UTC time. + + + + The log message. + An object array that contains zero or more objects to format. + + + + Minimum log level to log events. Default is Warning. + + + + + Provides a way to add and remove telemetry data. + + + + + Get the string that represents the client SKU. + + + + + Get the string that represents the client version. + + + + + Adds a key and its value to the collection of telemetry data. + + The name of the telemetry. + The value of the telemetry. + true if the key is successfully added; otherwise, false. + + + + Removes a key and its value from the collection of telemetry data. + + The name of the telemetry. + true if the key is successfully removed; otherwise, false. + + + + Interface that provides an unsafe method to log a security artifact. + + + SecurityToken and encoded token are considered as SecurityArtifacts. + + + + + Returns a string that represents the complete security artifact. + This may include sensitive information and should only be used for debugging purposes. + + + + + A context class that can be used to store work per request to aid with debugging. + + + + + Instantiates a new with the default activityId. + + + + + Instantiates a new with an activityId. + + + + + + Gets or set a that will be used in the call to EventSource.SetCurrentThreadActivityId before logging. + + + + + Gets or sets a boolean controlling if logs are written into the context. + Useful when debugging. + + + + + Gets or sets a string that helps with setting breakpoints when debugging. + + + + + The collection of logs associated with a request. Use to control capture. + + + + + Gets or sets an that enables custom extensibility scenarios. + + + + + Helper class for logging. + + + + + Gets or sets a logger to which logs will be written to. + + + + + Indicates whether the log message header (contains library version, date/time, and PII debugging information) has been written. + + + + + The log message that is shown when PII is off. + + + + + The log message that is shown when PII is on. + + + + + Gets whether logging is enabled at the specified ."/> + + The log level + if logging is enabled at the specified level; otherwise, . + + + + Logs an exception using the event source logger and returns new exception. + + argument that is null or empty. + EventLevel is set to Error. + + + + Logs an exception using the event source logger and returns new typed exception. + + message to log. + EventLevel is set to Error. + + + + Logs an argument exception using the event source logger and returns new typed exception. + + Identifies the argument whose value generated the ArgumentException. + message to log. + EventLevel is set to Error. + + + + Logs an exception using the event source logger and returns new typed exception. + + Format string of the log message. + An object array that contains zero or more objects to format. + EventLevel is set to Error. + + + + Logs an argument exception using the event source logger and returns new typed exception. + + Identifies the argument whose value generated the ArgumentException. + Format string of the log message. + An object array that contains zero or more objects to format. + EventLevel is set to Error. + + + + Logs an exception using the event source logger and returns new typed exception. + + the inner to be added to the outer exception. + message to log. + EventLevel is set to Error. + + + + Logs an argument exception using the event source logger and returns new typed exception. + + Identifies the argument whose value generated the ArgumentException. + the inner to be added to the outer exception. + message to log. + EventLevel is set to Error. + + + + Logs an exception using the event source logger and returns new typed exception. + + the inner to be added to the outer exception. + Format string of the log message. + An object array that contains zero or more objects to format. + EventLevel is set to Error. + + + + Logs an argument exception using the event source logger and returns new typed exception. + + Identifies the argument whose value generated the ArgumentException. + the inner to be added to the outer exception. + Format string of the log message. + An object array that contains zero or more objects to format. + EventLevel is set to Error. + + + + Logs an exception using the event source logger and returns new typed exception. + + Identifies the level of an event to be logged. + message to log. + + + + Logs an argument exception using the event source logger and returns new typed exception. + + Identifies the level of an event to be logged. + Identifies the argument whose value generated the ArgumentException. + message to log. + + + + Logs an exception using the event source logger and returns new typed exception. + + Identifies the level of an event to be logged. + Format string of the log message. + An object array that contains zero or more objects to format. + + + + Logs an argument exception using the event source logger and returns new typed exception. + + Identifies the level of an event to be logged. + Identifies the argument whose value generated the ArgumentException. + Format string of the log message. + An object array that contains zero or more objects to format. + + + + Logs an exception using the event source logger and returns new typed exception. + + Identifies the level of an event to be logged. + the inner to be added to the outer exception. + message to log. + + + + Logs an argument exception using the event source logger and returns new typed exception. + + Identifies the level of an event to be logged. + Identifies the argument whose value generated the ArgumentException. + the inner to be added to the outer exception. + message to log. + + + + Logs an exception using the event source logger and returns new typed exception. + + Identifies the level of an event to be logged. + the inner to be added to the outer exception. + Format string of the log message. + An object array that contains zero or more objects to format. + + + + Logs an argument exception using the event source logger and returns new typed exception. + + Identifies the level of an event to be logged. + Identifies the argument whose value generated the ArgumentException. + the inner to be added to the outer exception. + Format string of the log message. + An object array that contains zero or more objects to format. + + + + Logs an exception using the event source logger. + + The exception to log. + + + + Logs an exception using the event source logger. + + Identifies the level of an event to be logged. + The exception to log. + + + + Logs an information event. + + The log message. + An object array that contains zero or more objects to format. + + + + Logs a verbose event. + + The log message. + An object array that contains zero or more objects to format. + + + + Logs a warning event. + + The log message. + An object array that contains zero or more objects to format. + + + + Logs an exception using the event source logger and returns new typed exception. + + Identifies the level of an event to be logged. + Identifies the argument whose value generated the ArgumentException. + the inner to be added to the outer exception. + Format string of the log message. + An object array that contains zero or more objects to format. + + + + Formats the string using InvariantCulture + + Format string. + Format arguments. + Formatted string. + + + + Marks a log message argument () as NonPII. + + A log message argument to be marked as NonPII. + An argument marked as NonPII. + + Marking an argument as NonPII in calls will result in logging + that argument in cleartext, regardless of the flag value. + + + + + Marks a log message argument () as SecurityArtifact. + + A log message argument to be marked as SecurityArtifact. + A callback function to log the security artifact safely. + An argument marked as SecurityArtifact. + + Since even the payload may sometimes contain security artifacts, naïve disarm algorithms such as removing signatures + will not work. For now the will only be leveraged if + is set and no unsafe callback is provided. Future changes + may introduce a support for best effort disarm logging. + + + + + Marks a log message argument () as SecurityArtifact. + + A log message argument to be marked as SecurityArtifact. + A callback function to log the security artifact safely. + A callback function to log the security artifact without scrubbing. + An argument marked as SecurityArtifact. + if is null. + if is null. + + Since even the payload may sometimes contain security artifacts, naïve disarm algorithms such as removing signatures + will not work. For now the is currently unused. Future changes + may introduce a support for best effort disarm logging which will leverage . + + + + + Marks a log message argument () as SecurityArtifact. + + A log message argument to be marked as SecurityArtifact. + A callback function to log the security artifact without scrubbing. + An argument marked as SecurityArtifact. + if is null. + + + + Creates a by using the provided event level, exception argument, string argument and arguments list. + + + + The log message. + An object array that contains zero or more objects to format. + + + + Log messages and codes for Microsoft.IdentityModel.Logging + + + + + An internal structure that is used to mark an argument as NonPII. + Arguments wrapped with a NonPII structure will be considered as NonPII in the message logging process. + + + + + Argument wrapped with a structure is considered as NonPII in the message logging process. + + + + + Creates an instance of that wraps the . + + An argument that is considered as NonPII. + + + + Returns a string that represents the . + + Null if the is , otherwise calls method of the . + + + + An internal structure that is used to mark an argument as SecurityArtifact. + Arguments wrapped with a SecurityArtifact structure will be considered as a SecurityArtifact in the message logging process. + + + SecurityToken and encoded token are considered as SecurityArtifacts. + + + + + Argument wrapped with a structure is considered as SecurityArtifact in the message logging process. + + + + + The ToString callback delegate that returns a disarmed SecurityArtifact. + + + + + The ToString callback delegate that returns an unscrubbed SecurityArtifact. + + + + + Creates an instance of that wraps the . + + An argument that is considered as SecurityArtifact. + A callback used to disarm the token. + + Since even the payload may sometimes contain security artifacts, naïve disarm algorithms (such as removing signatures + in the case of JWTs) will not work. For now the will only be leveraged if + is set and no unsafe callback is provided. Future changes + may introduce a support for best effort disarm logging. + + + + + Creates an instance of that wraps the . + + An argument that is considered as SecurityArtifact. + A ToString callback. + A ToString callback which will return the unscrubbed artifact. + + Since even the payload may sometimes contain security artifacts, naïve disarm algorithms (such as removing signatures + in the case of JWTs) will not work. For now the is currently unused. Future changes + may introduce a support for best effort disarm logging which will leverage . + + + + + A dummy callback which can be leveraged to return a standard scrubbed token in the case where expected token is unknown. + + Ignored token. + The standard scrubbed token string. + + + + Returns a string that represents the . + + Null if the is , otherwise calls the provided safe callback on . + + + + Event listener that writes logs to a file or a fileStream provided by user. + + + + + Name of the default log file, excluding its path. + + + + + Initializes a new instance of that writes logs to text file. + + + + + Initializes a new instance of that writes logs to text file. + + location of the file where log messages will be written. + + + + Initializes a new instance of that writes logs to text file. + + StreamWriter where logs will be written. + + + + Called whenever an event has been written by an event source for which the event listener has enabled events. + + + + + + Releases all resources used by the current instance of the class. + + + + + Indicates that the specified method requires dynamic access to code that is not referenced + statically, for example through . + + + This allows tools to understand which methods are unsafe to call when removing unreferenced + code from an application. + + + + + Initializes a new instance of the class + with the specified message. + + + A message that contains information about the usage of unreferenced code. + + + + + Gets a message that contains information about the usage of unreferenced code. + + + + + Gets or sets an optional URL that contains more information about the method, + why it requires unreferenced code, and what options a consumer has to deal with it. + + + + + Suppresses reporting of a specific rule violation, allowing multiple suppressions on a + single code artifact. + + + is different than + in that it doesn't have a + . So it is always preserved in the compiled assembly. + + + + + Initializes a new instance of the + class, specifying the category of the tool and the identifier for an analysis rule. + + The category for the attribute. + The identifier of the analysis rule the attribute applies to. + + + + Gets the category identifying the classification of the attribute. + + + The property describes the tool or tool analysis category + for which a message suppression attribute applies. + + + + + Gets the identifier of the analysis tool rule to be suppressed. + + + Concatenated together, the and + properties form a unique check identifier. + + + + + Gets or sets the scope of the code that is relevant for the attribute. + + + The Scope property is an optional argument that specifies the metadata scope for which + the attribute is relevant. + + + + + Gets or sets a fully qualified path that represents the target of the attribute. + + + The property is an optional argument identifying the analysis target + of the attribute. An example value is "System.IO.Stream.ctor():System.Void". + Because it is fully qualified, it can be long, particularly for targets such as parameters. + The analysis tool user interface should be capable of automatically formatting the parameter. + + + + + Gets or sets an optional argument expanding on exclusion criteria. + + + The property is an optional argument that specifies additional + exclusion where the literal metadata target is not sufficiently precise. For example, + the cannot be applied within a method, + and it may be desirable to suppress a violation against a statement in the method that will + give a rule violation, but not against all statements in the method. + + + + + Gets or sets the justification for suppressing the code analysis message. + + + + + Initializes a new instance of the class + with the specified member types. + + The types of members dynamically accessed. + + + + Gets the which specifies the type + of members dynamically accessed. + + + + + Specifies the types of members that are dynamically accessed. + + This enumeration has a attribute that allows a + bitwise combination of its member values. + + + + + Specifies no members. + + + + + Specifies the default, parameterless public constructor. + + + + + Specifies all public constructors. + + + + + Specifies all non-public constructors. + + + + + Specifies all public methods. + + + + + Specifies all non-public methods. + + + + + Specifies all public fields. + + + + + Specifies all non-public fields. + + + + + Specifies all public nested types. + + + + + Specifies all non-public nested types. + + + + + Specifies all public properties. + + + + + Specifies all non-public properties. + + + + + Specifies all public events. + + + + + Specifies all non-public events. + + + + + Specifies all interfaces implemented by the type. + + + + + Specifies all members. + + + + diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/netstandard2.0/Microsoft.IdentityModel.Logging.xml.meta b/Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/netstandard2.0/Microsoft.IdentityModel.Logging.xml.meta new file mode 100644 index 0000000..598bfe3 --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.Logging.7.0.3/lib/netstandard2.0/Microsoft.IdentityModel.Logging.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: a023807dca4825c42ac027918f6efa90 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3.meta b/Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3.meta new file mode 100644 index 0000000..212402b --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 106f3f7cab7e091469e28fcf3a0fff53 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/.signature.p7s b/Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/.signature.p7s new file mode 100644 index 0000000000000000000000000000000000000000..5c1afbd2736a1129c279784c8fb2263b53edb7b9 GIT binary patch literal 24207 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 literal 0 HcmV?d00001 diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/Microsoft.IdentityModel.Tokens.7.0.3.nupkg b/Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/Microsoft.IdentityModel.Tokens.7.0.3.nupkg new file mode 100644 index 0000000000000000000000000000000000000000..ab59655cff51c69c1e768d5771f04818f4493b3b GIT binary patch literal 837006 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 z

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 z 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

uV#il+ro!+9^=dS@i)$r8L=0I0df`(=8 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 <@ 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 + + + Microsoft.IdentityModel.Tokens + + + +

+ This adapter abstracts the 'RSA' differences between versions of .Net targets. + + + + + Calls and + + + + + Base class for a Security Key that contains Asymmetric key material. + + + + + Default constructor + + + + + This must be overridden to get a bool indicating if a private key exists. + + true if it has a private key; otherwise, false. + + + + Gets the status of the private key. + + 'Exists' if private key exists for sure; 'DoesNotExist' if private key doesn't exist for sure; 'Unknown' if we cannot determine. + + + + Enum for the existence of private key + + + + + private key exists for sure + + + + + private key doesn't exist for sure + + + + + unable to determine the existence of private key + + + + + Provides signature and verification operations for Asymmetric Algorithms using a . + + + + + Mapping from algorithm to minimum .KeySize when creating signatures. + + + + + Mapping from algorithm to minimum .KeySize when verifying signatures. + + + + + Initializes a new instance of the class used to create and verify signatures. + + The that will be used for signature operations. + The signature algorithm to apply. + + + + Initializes a new instance of the class used to create and verify signatures. + + The that will be used for signature operations. + The signature algorithm to apply. + If this is required to create signatures then set this to true. + + Creating signatures requires that the has access to a private key. + Verifying signatures (the default), does not require access to the private key. + + is null. + is null or empty. + is true and there is no private key. + If and algorithm pair are not supported. + + willCreateSignatures is true and .KeySize is less than the size corresponding to the given algorithm in . + + + .KeySize is less than the size corresponding to the algorithm in . Note: this is always checked. + + If the runtime is unable to create a suitable cryptographic provider. + + + + Gets the mapping from algorithm to the minimum .KeySize for creating signatures. + + + + + Gets the mapping from algorithm to the minimum .KeySize for verifying signatures. + + + + + Creating a Signature requires the use of a . + This method returns the + that describes the to use when generating a Signature. + + The SignatureAlgorithm in use. + The to use. + if is null or whitespace. + if is not supported. + + + + For testing purposes + + + + + Produces a signature over the 'input' using the and algorithm passed to . + + The bytes to be signed. + A signature over the input. + if is null. + if .Length == 0. + If has been called. + Sign is thread safe. + + + + Validates that an asymmetric key size is of sufficient size for a SignatureAlgorithm. + + The asymmetric key to validate. + Algorithm for which this key will be used. + Whether they key will be used for creating signatures. + if is null. + if is null or empty. + if .KeySize is less than the minimum + acceptable size. + + for minimum signing sizes. + for minimum verifying sizes. + + + + + Verifies that the over using the + and specified by this + are consistent. + + The bytes to generate the signature over. + The value to verify against. + true if signature matches, false otherwise. + is null or has length == 0. + is null or has length == 0. + If has been called. + Verify is thread safe. + + + + + + + Calls to release managed resources. + + true, if called from Dispose(), false, if invoked inside a finalizer. + + + + Encodes and Decodes strings as Base64Url encoding. + + + + + The following functions perform base64url encoding which differs from regular base64 encoding as follows + * padding is skipped so the pad character '=' doesn't have to be percent encoded + * the 62nd and 63rd regular base64 encoding characters ('+' and '/') are replace with ('-' and '_') + The changes make the encoding alphabet file and URL safe. + + string to encode. + Base64Url encoding of the UTF8 bytes. + + + + Converts a subset of an array of 8-bit unsigned integers to its equivalent string representation which is encoded with base-64-url digits. Parameters specify + the subset as an offset in the input array, and the number of elements in the array to convert. + + An array of 8-bit unsigned integers. + An offset in inArray. + The number of elements of inArray to convert. + The string representation in base 64 url encoding of length elements of inArray, starting at position offset. + 'inArray' is null. + offset or length is negative OR offset plus length is greater than the length of inArray. + + + + Converts a subset of an array of 8-bit unsigned integers to its equivalent string representation which is encoded with base-64-url digits. + + An array of 8-bit unsigned integers. + The string representation in base 64 url encoding of length elements of inArray, starting at position offset. + 'inArray' is null. + offset or length is negative OR offset plus length is greater than the length of inArray. + + + + Converts the specified string, base-64-url encoded to utf8 bytes. + base64Url encoded string. + UTF8 bytes. + + + + Decodes the string from Base64UrlEncoded to UTF8. + + string to decode. + UTF8 string. + + + + Base64 encode/decode implementation for as per https://tools.ietf.org/html/rfc4648#section-5. + Uses ArrayPool[T] to minimize memory usage. + + + + + Decodes a Base64UrlEncoded string into a byte array. + + The string to decode. + Decoded bytes. + + + + Decodes a Base64UrlEncoded string into a byte array. + + String to decode. + Index of char in to start decode operation. + Number of chars in to decode. + Decoded bytes. + + + + Decodes a Base64UrlEncoded string and then performs an action. + + String to decode. + Index of char in to start decode operation. + Number of chars in to decode from . + Input parameter to action. + Action to perform on decoded bytes. + Output type of decoding action. + Type of Input parameter to action. + Instance of {T}. + + The buffer for the decode operation uses shared memory pool to avoid allocations. + The length of the rented array of bytes may be larger than the decoded bytes, therefore the action needs to know the actual length to use. + The result of is passed to the action. + + + + + Decodes a Base64UrlEncoded string and then performs an action. + + The string to decode. + Index of char in to start decode operation from. + Count of char in to decode. + Action to perform on decoded bytes. + Return type of operation. + Instance of {T}. + + The buffer for the decode operation uses shared memory pool to avoid allocations. + The length of the rented array of bytes may be larger than the decoded bytes, therefore the action needs to know the actual length to use. + The result of is passed to the action. + + + + + Decodes a Base64UrlEncoded string and then performs an action. + + The string to decode. + Index of char in to start decode operation from. + Count of char in to decode. + Input parameter 1 to action. + Input parameter 2 to action. + Input parameter 3 to action. + Action to perform on decoded bytes. + Output type of decoding action. + Type of Input parameter 1 to action. + Type of Input parameter 2 to action. + Type of Input parameter 3 to action. + Instance of {T}. + + The buffer for the decode operation uses shared memory pool to avoid allocations. + The length of the rented array of bytes may be larger than the decoded bytes, therefore the action needs to know the actual length to use. + The result of is passed to the action. + + + + + Decodes a Base64UrlEncoded string into a byte array. + + String to decode. + Index of char in to start decode operation. + Number of chars in to decode. + byte array to place results. + + Changes from Base64UrlEncoder implementation + 1. Padding is optional. + 2. '+' and '-' are treated the same. + 3. '/' and '_' are treated the same. + + + + + Encode byte array to Base64UrlEncoded string. + + Bytes to encode. + Base64Url encoded string. + + + + Encode byte array to Base64UrlEncoded string. + + Bytes to encode. + Index into to start encode operation. + Number of bytes in to encode, starting from offset. + Base64Url encoded string. + + + + Validates the input string for decode operation. + + String to validate. + Index of char in to start decode operation. + Number of chars in to decode, starting from offset. + Size of the decoded bytes arrays. + + + + Represents a generic metadata configuration which is applicable for both XML and JSON based configurations. + + + + + Gets the issuer specified via the metadata endpoint. + + + + + Gets the that the IdentityProvider indicates are to be used in order to sign tokens. + + + + + Gets or sets the token endpoint specified via the metadata endpoint. + This is the fed:PassiveRequestorEndpoint in WS-Federation, https://docs.oasis-open.org/wsfed/federation/v1.2/os/ws-federation-1.2-spec-os.html#:~:text=fed%3ASecurityTokenServiceType/fed%3APassiveRequestorEndpoint + Or the token_endpoint in the OIDC metadata. + + + + + Gets or sets the token endpoint specified via the metadata endpoint. + This is the fed:SecurityTokenServiceType in WS-Federation, http://docs.oasis-open.org/wsfed/federation/v1.2/os/ws-federation-1.2-spec-os.html#:~:text=fed%3ASecurityTokenSerivceEndpoint + + + + + Gets the that the IdentityProvider indicates are to be used in order to decrypt tokens. + + + + + Comparison class for a . + + + + + Represents a generic configuration manager. + + + + + Gets or sets the that controls how often an automatic metadata refresh should occur. + + + + + 12 hours is the default time interval that afterwards will obtain new configuration. + + + + + 1 hour is the default time interval that a last known good configuration will last for. + + + + + 5 minutes is the default time interval that must pass for to obtain a new configuration. + + + + + The default constructor. + + + + + Constructor. + + The event queue task creation option. + + + + Obtains an updated version of if the appropriate refresh interval has passed. + This method may return a cached version of the configuration. + + CancellationToken + Configuration of type Configuration. + This method on the base class throws a as it is meant to be + overridden by the class that extends it. + + + + Gets all valid last known good configurations. + + A collection of all valid last known good configurations. + + + + The last known good configuration or LKG (a configuration retrieved in the past that we were able to successfully validate a token against). + + + + + The length of time that a last known good configuration is valid for. + + + + + The metadata address to retrieve the configuration from. + + + + + 5 minutes is the minimum value for automatic refresh. can not be set less than this value. + + + + + 1 second is the minimum time interval that must pass for to obtain new configuration. + + + + + The minimum time between retrievals, in the event that a retrieval failed, or that a refresh was explicitly requested. + + + + + Indicates whether the last known good feature should be used, true by default. + + + + + Indicates whether the last known good configuration is still fresh, depends on when the LKG was first used and it's lifetime. + + + + + Indicate that the configuration may be stale (as indicated by failing to process incoming tokens). + + + + + An opaque context used to store work when working with authentication artifacts. + + + + + Instantiates a new with a default activityId. + + + + + Instantiates a new with an activityId. + + + + + A class which contains useful methods for processing collections. + + + + + Checks whether is null or empty. + + The type of the . + The to be checked. + True if is null or empty, false otherwise. + + + + Constants for compression algorithms. + + + + + Compression provider factory for compression and decompression. + + + + + Static constructor that initializes the default . + + + + + Default constructor for . + + + + + Constructor that creates a deep copy of given object. + + to copy from. + + + + Returns the default instance. + + + + + Extensibility point for custom compression support application wide. + + + + + Answers if an algorithm is supported. + + the name of the crypto algorithm. + true if the algorithm is supported, false otherwise. + + + + Returns a for a specific algorithm. + + the decompression algorithm. + a . + + + + Defines the options which can be used to configure the internal LKG configuration cache. + See for more details. + + + + + 10 is the default size limit of the cache (in number of items) for last known good configuration. + + + + + Gets or sets the BaseConfgiurationComparer that to compare . + + + + + The size limit of the cache (in number of items) for last known good configuration. + + + + + The event queue task creation option, default to None instead of LongRunning as LongRunning will always start a task on a new thread instead of a thread from ThreadPool. + + + + + Whether or not to remove expired items. + + + + + Definition of cache for crypto providers + + + + + Returns the cache key to use when looking up an entry into the cache for a + + the to create the key for. + the cache key to use for finding a . + + + + Returns the 'key' that will be used to find a crypto provider in this cache. + + the key that is used to by the crypto provider. + the algorithm that is used by the crypto provider. + the typeof the crypto provider obtained by calling object.GetType(). + the cache key to use for finding a crypto provider. + + + + Trys to adds a to this cache. + + to cache. + true if the was added, false if the cache already contained the + + + + Trys to find a in this cache. + + the key that is used to by the crypto provider. + the algorithm that is used by the crypto provider. + the typeof the crypto provider obtained by calling object.GetType(). + a bool to indicate if the will be used to sign. + the if found. + true if a was found, false otherwise. + + + + Trys to remove a from this cache. + + to remove. + true if the was removed, false if the was not found. + + + + Specifies the CryptoProviderCacheOptions which can be used to configure the internal cryptoprovider cache. + We are using our own simple LRU caching implementation across all targets. + See for more details. + + + + + Default value for . + + + + + Gets or sets the size of the cache (in number of items). + 20% of the cache will be evicted whenever the cache gets to 95% of this size. + Items will be evicted from least recently used to most recently used. + + + + + Creates cryptographic operators by specifying a 's and algorithms. + + + + + Returns the default instance. + + + + + Gets or sets the default value for caching of 's. + + + + + Gets or sets the maximum size of the object pool used by the SignatureProvider that are used for crypto objects. + + + + + Static constructor that initializes the default . + + + + + Default constructor for . + + + + + Initializes an instance of a . + + + The cache to use for caching CryptoProviders + + + + + Constructor that creates a deep copy of given object. + + to copy from. + + + + Gets the + + + + + Extensibility point for creating custom cryptographic operators. + + By default, if set, will be called before creating cryptographic operators. + If true is returned, then will be called. The will throw if the + Cryptographic operator returned is not of the correct type. + + + + Gets or sets a bool controlling if should be cached. + + + + + Gets or sets the maximum size of the object pool used by the SignatureProvider that are used for crypto objects. + + + + + Creates an instance of for a specific <SecurityKey, Algorithm>. + + the to use. + the algorithm to use. + thrown if is null. + thrown if is null or empty. + thrown if and algorithm pair are not supported. + thrown if returns a type that is not assignable from . + + If is set and returns true. + is called to obtain the . + + When finished with the call . + + an instance of + + + + Creates an instance of for a specific <SecurityKey, Algorithm>. + + the to use. + the algorithm to use. + thrown if is null. + thrown if is null or empty. + thrown if and algorithm pair are not supported. + thrown if returns a type not assignable from . + + If is set and returns true. + is called to obtain the . + + When finished with the call . + + an instance of + + + + Creates an instance of for a specific <SecurityKey, Algorithm>. + + the to use. + the algorithm to use. + thrown if is null. + thrown if is null or empty. + thrown if and algorithm pair are not supported. + thrown if returns a type that is not assignable from . + + If is set and returns true. + is called to obtain the . + + When finished with the call . + + an instance of + + + + Creates a that creates a signature with the algorithm and . + + the to use for signing. + the algorithm to use for signing. + thrown if is null. + thrown if is null or empty. + thrown if is too small. + thrown if is not assignable from or . + thrown if the key / algorithm is not supported. + thrown if returns a type that is not assignable from . + + AsymmetricSignatureProviders require access to a PrivateKey for Signing. + When finished with the call . + If is set and returns true. + is called to obtain the . + + + A that can be used to create a signature using the and algorithm. + + + + Creates a that creates a signature with the algorithm and . + + the to use for signing. + the algorithm to use for signing. + indicates if the should be cached for reuse. + thrown if is null. + thrown if is null or empty. + thrown if is too small. + thrown if is not assignable from or . + thrown if the key / algorithm is not supported. + thrown if returns a type that is not assignable from . + + AsymmetricSignatureProviders require access to a PrivateKey for Signing. + When finished with the call . + If is set and returns true. + is called to obtain the . + + + A that can be used to create a signature using the and algorithm. + + + + Creates a that supports the and algorithm. + + The to use for signature verification. + The algorithm to use for verifying. + thrown if is null. + thrown if is null or empty. + thrown if is too small. + thrown if is not assignable from or . + thrown if the key / algorithm is not supported. + thrown if returns a type that is not assignable from . + When finished with the call . + If is set and returns true. + is called to obtain the . + + + A that can be used to validate a signature using the and algorithm. + + + + Creates a that supports the and algorithm. + + The to use for signature verification. + The algorithm to use for verifying. + should the be cached. + thrown if is null. + thrown if is null or empty. + thrown if is too small. + thrown if is not assignable from or . + thrown if the key / algorithm is not supported. + thrown if returns a type that is not assignable from . + When finished with the call . + If is set and returns true. + is called to obtain the . + + + A that can be used to validate a signature using the and algorithm. + + + + Creates a for a specific algorithm. + + the name of the hash algorithm to create. + thrown if is null or empty. + thrown if returns a type that is not assignable from . + thrown if is not supported. + When finished with the call . + If is set and returns true. + is called to obtain the . + + + A . + + + + Creates a for a specific algorithm. + + the name of the hash algorithm to create. + thrown if is null or empty. + thrown if returns a type that is not assignable from . + thrown if is not supported. + When finished with the call . + If is set and returns true. + is called to obtain the . + + + A . + + + + Returns a for a specific algorithm. + + bytes to use to create the Keyed Hash. + the name of the keyed hash algorithm to create. + thrown if is null. + thrown if is null or empty. + thrown if returns a type that is not assignable from . + is not supported. + When finished with the call . + If is set and returns true. + is called to obtain the . + + + A . + + + + For some security key types, in some runtimes, it's not possible to extract public key material and create an . + In these cases, will be an empty string, and these keys should not be cached. + + to be examined. + True if should be cached, false otherwise. + + + + Checks if an algorithm is supported. + + the name of the Hash algorithm. + Only considers known Hash algorithms. + true if: + + If is set and returns true. + + The algorithm is supported. + + + + + + Checks if the algorithm and is supported. + + the security algorithm to apply. + the . + Algorithms are supported for specific key types. + For example: + and will return true. + and will return false. + + true if: + + If is set and returns true. + + The algorithm / key pair is supported. + + + + + + When finished with a call this method for cleanup. The default behavior is to call + + to be released. + thrown if is null. + + + + When finished with a call this method for cleanup."/> + + to be released. + thrown if is null. + + + + When finished with a call this method for cleanup."/> + + to be released. + thrown if is null. + + + + When finished with a call this method for cleanup. The default behavior is to call + + to be released. + thrown if is null. + + + + Helper class for adding DateTimes and Timespans. + + + + + Add a DateTime and a TimeSpan. + The maximum time is DateTime.MaxTime. It is not an error if time + timespan > MaxTime. + Just return MaxTime. + + Initial value. + to add. + as the sum of time and timespan. + + + + Gets the Maximum value for a DateTime specifying kind. + + DateTimeKind to use. + DateTime of specified kind. + + + + Gets the Minimum value for a DateTime specifying kind. + + DateTimeKind to use. + DateTime of specified kind. + + + + Ensures that DataTime is UTC. + + to convert. + + + + + Ensures that DateTime is UTC. + + to convert. + + + + + A compression provider that supports compression and decompression using the algorithm. + + + + + Initializes a new instance of the class used to compress and decompress used the algorithm. + + + + + Initializes a new instance of the class used to compress and decompress used the algorithm. + The compression level to use when compressing. + + + + + Gets the compression algorithm. + + + + + Specifies whether compression should emphasize speed or compression size. + Set to by default. + + + + + Decompress the value using DEFLATE algorithm. + + the bytes to decompress. + the decompressed bytes. + + + + Compress the value using the DEFLATE algorithm. + + the bytes to compress. + the compressed bytes. + + + + Answers if a compression algorithm is supported. + + the name of the compression algorithm. + true if the compression algorithm is supported, false otherwise. + + + + This adapter abstracts the differences between versions of .Net targets. + + + + + Initializes a new instance of the class. + + + creation is not supported by some platforms. + For more details, see https://aka.ms/IdentityModel/create-ecdsa. + + + + + Creates an ECDsa object using the and . + + + + + Creates an ECDsa object using the and . + 'ECParameters' structure is available in .NET Framework 4.7+, .NET Standard 1.6+, and .NET Core 1.0+. + This method is supported only on Windows as other platforms don't support operations with . + + + + + Returns the size of key in bytes + + Represents ecdsa curve -P256, P384, P521 + Size of the key in bytes + + + + Magic numbers identifying ECDSA blob types + + + + + Returns the magic value representing the curve corresponding to the curve id. + + Represents ecdsa curve -P256, P384, P512 + Whether the provider will create signatures or not + Uint representing the magic number + + + + Tests if user's runtime platform supports operations using . + + True if operations using are supported on user's runtime platform, false otherwise. + + + + Represents a ECDsa security key. + + + + + Returns a new instance of . + + + + + + instance used to initialize the key. + + + + + Gets a bool indicating if a private key exists. + + true if it has a private key; otherwise, false. + + + + Gets an enum indicating if a private key exists. + + 'Exists' if private key exists for sure; 'DoesNotExist' if private key doesn't exist for sure; 'Unknown' if we cannot determine. + + + + Gets key size. + + + + + Determines whether the can compute a JWK thumbprint. + + true if JWK thumbprint can be computed; otherwise, false. + https://datatracker.ietf.org/doc/html/rfc7638 + + + + Computes a sha256 hash over the . + + A JWK thumbprint. + https://datatracker.ietf.org/doc/html/rfc7638 + + + + Collection of text encoding related helper methods. + + + + + Obtains bytes from a string using the Encoding and then performs an action. + + String to process. + Encoding used to obtain bytes. + Operation to invoke with result which is byte array and length of useful data in array with offset as 0. + Return type of operation. + Instance of {T}. + + The encoding operation uses shared memory pool to avoid allocations. + The length of the rented array of bytes may be larger than the decoded bytes, therefore the action needs to know the actual length to use. + is passed to the action. + + + + + Obtains bytes from a string using the Encoding and then performs an action. + + String to process. + Index to start from in . + Length of characters to operate in from . + Encoding used to obtain bytes. + Operation to invoke with result which is byte array and length of useful data in array with offset as 0. + Return type of operation. + Instance of {T}. + + The encoding operation uses shared memory pool to avoid allocations. + The length of the rented array of bytes may be larger than the decoded bytes, therefore the action needs to know the actual length to use. + is passed to the action. + + + + + Obtains bytes from a string using the Encoding and then performs an action. + + String to process. + Index to start from in . + Length of characters to operate in from . + Encoding used to obtain bytes. + Input parameter 1 to action. + Input parameter 2 to action. + Input parameter 3 to action. + Action to perform with bytes. + Return type of operation. + Type of Input parameter 1 to action. + Type of Input parameter 2 to action. + Type of Input parameter 3 to action. + Instance of {T}. + + The encoding operation uses shared memory pool to avoid allocations. + The length of the rented array of bytes may be larger than the decoded bytes, therefore the action needs to know the actual length to use. + is passed to the action. + + + + + Encodes the string using given Encoding, and invokes the operation with the result. + + Return type of operation. + Input parameter to operation. + String to process. + Encoding used to obtain bytes. + Additional operation parameter. + Operation to invoke with result which is byte array and length of useful data in array with offset as 0. + Result of operation. + + The encoding operation uses shared memory pool to avoid allocations. + The length of the rented array of bytes may be larger than the decoded bytes, therefore the action needs to know the actual length to use. + is passed to the action. + + + + + Obtains bytes from a string using the Encoding and then performs an action. + + String to process. + Index to start from in . + Length of characters to operate in from . + Encoding used to obtain bytes. + Additional operation parameter. + Operation to invoke with result which is byte array and length of useful data in array with offset as 0. + Return type of operation. + Input parameter to operation. + Instance of {T}. + + The encoding operation uses shared memory pool to avoid allocations. + The length of the rented array of bytes may be larger than the decoded bytes, therefore the action needs to know the actual length to use. + is passed to the action. + + + + + A class for properties that are used for token encryption. + + + + + Initializes a new instance of the class. + + . + A key wrap algorithm to use when encrypting a session key. + Data encryption algorithm to apply. + if 'certificate' is null. + if 'alg' is null or empty. + if 'enc' is null or empty. + + + + Initializes a new instance of the class. + + to use when encrypting a session key. + A key wrap algorithm to use when encrypting a session key. + Data encryption algorithm to apply. + if 'key' is null. + if 'alg' is null or empty. + if 'enc' is null or empty. + + + + Initializes a new instance of the class. + + Used in scenarios when a key represents a 'shared' symmetric key. + For example, SAML 2.0 Assertion will be encrypted using a provided symmetric key + which won't be serialized to a SAML token. + + to apply. + Data encryption algorithm to apply. + If the is not a . + if 'enc' is null or empty. + + + + Gets the key wrap algorithm used for session key encryption. + + + + + Gets the data encryption algorithm. + + + + + Public key used in Key Agreement Algorithms + + + + + Users can override the default with this property. This factory will be used for creating encryption providers. + + + + + Gets or sets a bool that controls if the encrypted token creation will set default 'cty' if not specified. + + Applies to only JWT tokens. + + + + + + Gets the used for encryption. + + + + + Provides authenticated encryption and decryption services. + + + + + Initializes a new instance of the class used for encryption and decryption. + + The that will be used for crypto operations. + The encryption algorithm to apply. + 'key' is null. + 'algorithm' is null or whitespace. + key size is not large enough. + 'algorithm' is not supported. + a symmetricSignatureProvider is not created. + + + + Gets the encryption algorithm that is being used. + + + + + Gets or sets a user context for a . + + This is null by default. This can be used by applications for extensibility scenarios. + + + + Gets the that is being used. + + + + + Encrypts the 'plaintext' + + the data to be encrypted. + will be combined with iv and ciphertext to create an authenticationtag. + containing ciphertext, iv, authenticationtag. + plaintext is null or empty. + authenticationData is null or empty. + AES crypto operation threw. See inner exception for details. + + + + Encrypts the 'plaintext' + + the data to be encrypted. + will be combined with iv and ciphertext to create an authenticationtag. + initialization vector for encryption. + containing ciphertext, iv, authenticationtag. + is null or empty. + is null or empty. + Thrown if the AES crypto operation threw. See inner exception for details. + Thrown if the internal is disposed. + + + + Decrypts ciphertext into plaintext + + the encrypted text to decrypt. + the authenticateData that is used in verification. + the initialization vector used when creating the ciphertext. + the authenticationTag that was created during the encyption. + decrypted ciphertext + is null or empty. + is null or empty. + is null or empty. + is null or empty. + Thrown if the signature over the authenticationTag fails to verify. + Thrown if the AES crypto operation threw. See inner exception. + Thrown if the internal is disposed. + + + + Calls and + + + + + Releases managed resources. + + true, if called from Dispose(), false, if invoked inside a finalizer. + + + + Checks if an 'key, algorithm' pair is supported + + the + the algorithm to check. + true if 'key, algorithm' pair is supported. + + + + The algorithm parameter logically defines a HMAC algorithm. + This method returns the HMAC to use. + + + + + + + Called to obtain the byte[] needed to create a + + that will be used to obtain the byte[]. + [] that is used to populated the KeyedHashAlgorithm. + if is null. + if a byte[] can not be obtained from SecurityKey. + and are supported. + For a .Key is returned + For a Base64UrlEncoder.DecodeBytes is called with if == JsonWebAlgorithmsKeyTypes.Octet + + + + + Checks that the key has sufficient length + + that contains bytes. + the algorithm to apply. + if is null. + if is null or empty. + if is not a supported algorithm. + + + + Contains the results of operation. + + + + + Initializes a new + + the used during + protected text. + the initialization vector used. + the bytes that need be passed to . + + + + Gets the . + + + + + Gets the Ciphertext. + + + + + Gets the initialization vector. + + + + + Gets the authentication tag + + + + + Provides Wrap key and Unwrap key services. + + + + + Gets the KeyWrap algorithm that is being used. + + + + + Gets or sets a user context for a . + + This is null by default. This can be used by runtimes or for extensibility scenarios. + + + + Gets the that is being used. + + + + + Calls and + + + + + Can be over written in descendants to dispose of internal components. + + true, if called from Dispose(), false, if invoked inside a finalizer + + + + Unwrap a key. + + key to unwrap. + Unwrapped key. + + + + Wrap a key. + + the key to be wrapped + wrapped key. + + + + Provides RSA Wrap key and Unwrap key services. + + + + + Initializes a new instance of used for wrapping and un-wrappping keys. + These keys are usually symmetric session keys that are wrapped using the recipients public key. + The that will be used for cryptographic operations. + The KeyWrap algorithm to apply. + Whether this is required to un-wrap keys. If true, the private key is required. + 'key' is null. + 'algorithm' is null. + The key size doesn't match the algorithm. + If and algorithm pair are not supported. + Failed to create RSA algorithm with provided key and algorithm. + + + + + Gets the KeyWrap algorithm that is being used. + + + + + Gets or sets a user context for a . + + This is null by default. This is for use by the application and not used by this SDK. + + + + Gets the that is being used. + + + + + Disposes of internal components. + + true, if called from Dispose(), false, if invoked inside a finalizer. + + + + Checks if an algorithm is supported. + + The that will be used for crypto operations. + The KeyWrap algorithm to apply. + true if the algorithm is supported; otherwise, false. + + + + Unwrap a key using RSA decryption. + + the bytes to unwrap. + Unwrapped key + 'keyBytes' is null or length == 0. + If has been called. + Failed to unwrap the wrappedKey. + If the internal RSA algorithm is null. + + + + Wrap a key using RSA encryption. + + the key to be wrapped + A wrapped key + 'keyBytes' is null or has length == 0. + If has been called. + Failed to wrap the 'keyBytes'. + If the internal RSA algorithm is null. + + + + Provides Wrap key and Unwrap key services. + + + + + Initializes a new instance of the class used for wrap key and unwrap key. + The that will be used for crypto operations. + The KeyWrap algorithm to apply. + 'key' is null. + 'algorithm' is null. + If and algorithm pair are not supported. + The cannot be converted to byte array + The keysize doesn't match the algorithm. + Failed to create symmetric algorithm with provided key and algorithm. + + + + + Gets the KeyWrap algorithm that is being used. + + + + + Gets or sets a user context for a . + + This is null by default. This can be used by runtimes or for extensibility scenarios. + + + + Gets the that is being used. + + + + + Disposes of internal components. + + true, if called from Dispose(), false, if invoked inside a finalizer. + + + + Returns the . + + + The cannot be converted to byte array + The keysize doesn't match the algorithm. + Failed to create symmetric algorithm with provided key and algorithm. + + + + Answers if an algorithm is supported + + the + the algorithm to use + true if the algorithm is supported; otherwise, false. + + + + Unwrap a key using Symmetric decryption. + + bytes to unwrap + Unwraped key + 'keyBytes' is null or length == 0. + 'keyBytes' is not a multiple of 8. + If has been called. + Failed to unwrap the wrappedKey. + + + + Wrap a key using Symmetric encryption. + + the key to be wrapped + The wrapped key result + 'keyBytes' is null or has length 0. + 'keyBytes' is not a multiple of 8. + If has been called. + Failed to wrap 'keyBytes'. + + + + Returns the absolute DateTime or the Seconds since Unix Epoch, where Epoch is UTC 1970-01-01T0:0:0Z. + + + + + DateTime as UTV for UnixEpoch + + + + + Per JWT spec: + Gets the number of seconds from 1970-01-01T0:0:0Z as measured in UTC until the desired date/time. + + The DateTime to convert to seconds. + if dateTimeUtc less than UnixEpoch, return 0 + the number of seconds since Unix Epoch. + + + + Creates a DateTime from epoch time. + + Number of seconds. + The DateTime in UTC. + + + + This is an LRU cache implementation that relies on an event queue rather than locking to achieve thread safety. + This approach has been decided on in order to optimize the performance of the get and set operations on the cache. + This cache contains a doubly linked list in order to maintain LRU order, as well as a dictionary (map) to keep track of + keys and expiration times. The linked list (a structure which is not thread-safe) is NEVER modified directly inside + an API call (e.g. get, set, remove); it is only ever modified sequentially by a background thread. On the other hand, + the map is a which may be modified directly inside an API call or + through eventual processing of the event queue. This implementation relies on the principle of 'eventual consistency': + though the map and it's corresponding linked list may be out of sync at any given point in time, they will eventually line up. + See here for more details: + https://aka.ms/identitymodel/caching + + The key type to be used by the cache. + The value type to be used by the cache + + + + Constructor. + + The capacity of the cache, used to determine if experiencing overflow. + The event queue task creation option, default to None instead of LongRunning as LongRunning will always start a task on a new thread instead of ThreadPool. + The equality comparison implementation to be used by the map when comparing keys. + Whether or not to remove expired items. + The period to wait to remove expired items, in seconds. + Whether or not to maintain items in a LRU fashion, moving to front of list when accessed in the cache. + + + + Occurs when the application is ready to exit. + + The sender of the event. + The event argument. + + + + Occurs when an AppDomain is about to be unloaded. + + The sender of the event. + The event argument. + + + + Stop the event queue task. + This is provided mainly for users who have unit tests that check for running task(s) to stop the task at the end of each test. + + + + + Stop the event queue task immediately if it is running. This allows the task/thread to terminate gracefully. + Currently there is no unmanaged resource, if any is added in the future it should be disposed of in this method. + + + + + This is the delegate for the event queue task. + + + + + Remove all expired cache items from _doubleLinkedList and _map. + + Number of items removed. + + + + Remove all expired cache items from the _map ONLY. This is called for the non-LRU (_maintainLRU = false) scenaro. + The enumerator returned from the dictionary is safe to use concurrently with reads and writes to the dictionary, according to the MS document. + + Number of items removed. + + + + Remove items from the LinkedList by the desired compaction percentage. + This should be a private method. + + + + + Remove items from the Dictionary by the desired compaction percentage. + Since _map does not have LRU order, items are simply removed from using FirstOrDefault(). + + + + + When the cache is at _maxCapacityPercentage, it needs to be compacted by _compactionPercentage. + This method calculates the new size of the cache after being compacted. + + The new target cache size after compaction. + + + + This is the method that determines the end time for the event queue task. + The goal is to be able to track the incoming events and predict how long the task should run in order to + avoid a long running task and reduce the overhead costs of restarting tasks. + For example, maybe we can track the last three events' time and set the _eventQueueRunDurationInSeconds = 2 * average_time_between_events. + Note: tasks are based on thread pool so the overhead should not be huge but we should still try to minimize it. + + the time when the event queue task should end + + + + This method is called after an item is added to the event queue. It will start the event queue task if one is not already running (_eventQueueTaskState != EventQueueTaskRunning). + Using CompareExchange to set the _eventQueueTaskState prevents multiple tasks from being started. + + + + Each time a node gets accessed, it gets moved to the beginning (head) of the list if the _maintainLRU == true + + + Removes a particular key from the cache. + + + + FOR TESTING ONLY. + + + + + + FOR TESTING ONLY. + + + + + FOR TESTING ONLY. + + + + + FOR TESTING ONLY. + + + + + + FOR TESTING ONLY. + + + + + FOR TESTING PURPOSES ONLY. + This is for tests to verify all tasks exit at the end of tests if the queue is empty. + + + + + FOR TESTING PURPOSES ONLY. + + + + + Throw this exception when a received has invalid arguments. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class with a specified error message + and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The that is the cause of the current exception, or a null reference if no inner exception is specified. + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + Thrown when JWE compression fails. + + + + + Initializes a new instance of + + + + + Initializes a new instance of + + + + + Initializes a new instance of + + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + Thrown when JWE decompression fails. + + + + + Initializes a new instance of + + + + + Initializes a new instance of + + + + + Initializes a new instance of + + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + Represents a security token exception when decryption failed. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class with a specified error message + and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The that is the cause of the current exception, or a null reference if no inner exception is specified. + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + Represents a security token exception when encryption failed. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class with a specified error message + and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The that is the cause of the current exception, or a null reference if no inner exception is specified. + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + This exception is thrown when a security token contained a key identifier but the key was not found by the runtime + when decrypting a token. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + A that represents the root cause of the exception. + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + Represents a security token exception. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class with a specified error message + and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The that is the cause of the current exception, or a null reference if no inner exception is specified. + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + Throw this exception when a received Security Token has expiration time in the past. + + + + + Gets or sets the Expires value that created the validation exception. This value is always in UTC. + + + + + Initializes a new instance of + + + + + Initializes a new instance of + + + + + Initializes a new instance of + + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + + + + This exception is thrown when a cryptographic algorithm is invalid. + + + + + Gets or sets the invalid algorithm that created the validation exception. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Additional information to be included in the exception and displayed to user. + + + + Initializes a new instance of the class. + + Additional information to be included in the exception and displayed to user. + A that represents the root cause of the exception. + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + + + + This exception is thrown when 'audience' of a token was not valid. + + + + + Gets or sets the InvalidAudience that created the validation exception. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + A that represents the root cause of the exception. + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + + + + This exception is thrown when 'issuer' of a token was not valid. + + + + + Gets or sets the InvalidIssuer that created the validation exception. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + A that represents the root cause of the exception. + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + + + + This exception is thrown when 'lifetime' of a token was not valid. + + + + + Gets or sets the NotBefore value that created the validation exception. This value is always in UTC. + + + + + Gets or sets the Expires value that created the validation exception. This value is always in UTC. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + A that represents the root cause of the exception. + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + + + + This exception is thrown when 'signature' of a token was not valid. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + A that represents the root cause of the exception. + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + Throw this exception when a received Security Token has an invalid issuer signing key. + + + + + Gets or sets the SigningKey that was found invalid. + + + + + Initializes a new instance of + + + + + Initializes a new instance of + + + + + Initializes a new instance of + + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + This exception is thrown when the token type ('typ' header claim) of a JWT token is invalid. + + + + + Gets or sets the invalid type that created the validation exception. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Additional information to be included in the exception and displayed to user. + + + + Initializes a new instance of the class. + + Additional information to be included in the exception and displayed to user. + A that represents the root cause of the exception. + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + + + + Represents a key wrap exception when encryption failed. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class with a specified error message + and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The that is the cause of the current exception, or a null reference if no inner exception is specified. + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + Represents a exception when the token is malformed. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class with a specified error message + and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The that is the cause of the current exception, or a null reference if no inner exception is specified. + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + This exception is thrown when a security is missing an ExpirationTime. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + A that represents the root cause of the exception. + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + Throw this exception when a received Security token has an effective time + in the future. + + + + + Gets or sets the NotBefore value that created the validation exception. This value is always in UTC. + + + + + Initializes a new instance of + + + + + Initializes a new instance of + + + + + Initializes a new instance of + + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + + + + This exception is thrown when an add to the TokenReplayCache fails. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + A that represents the root cause of the exception. + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + Throw this exception when a received Security Token has been replayed. + + + + + Initializes a new instance of + + + + + Initializes a new instance of + + + + + Initializes a new instance of + + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + This exception is thrown when a security token contained a key identifier but the key was not found by the runtime. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + A that represents the root cause of the exception. + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + This exception is thrown when a security token contained a key identifier but the key was not found by the runtime + and when validation errors exist over the security token. This exception is not intended to be used as a signal + to refresh keys. + + + This exception type is now considered obsolete and will be removed in the next major version (7.0.0). + + + + + Indicates the type of the validation failure. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The validation failures. + Addtional information to be included in the exception and displayed to user. + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + A that represents the root cause of the exception. + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + + + + Represents a security token validation exception. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class with a specified error message + and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The that is the cause of the current exception, or a null reference if no inner exception is specified. + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + The reason for being unable to validate + + + + + Indicates no validation failures + + + + + Indicates that the lifetime was invalid + + + + + Indicates that the issuer was invalid + + + + + Compression provider interface. + + + + + Gets the compression algorithm. + + + + + Called to determine if an algorithm is supported. + + the algorithm that defines the compression method. + true if supported + + + + Decompress. + + the value to decompress. + + + + Compress. + + the value to decompress. + + + + Provides extensibility for cryptographic operators. + If custom operators are needed for then can be set to + return these operators. will be before each creation. + + + + + Called to determine if a cryptographic operation is supported. + + the algorithm that defines the cryptographic operator. + the arguments required by the cryptographic operator. May be null. + true if supported + + + + returns a cryptographic operator that supports the algorithm. + + the algorithm that defines the cryptographic operator. + the arguments required by the cryptographic operator. May be null. + call when finished with the object. + + + + called to release the object returned from + + the object returned from . + + + + Defines a cache for crypto providers. + Current support is limited to only. + + + + + Creates a new instance of using the default . + + + + + Creates a new instance of using the specified . + + The options used to configure the . + + + + Creates a new instance of using the specified . + + The options used to configure the . + Options used to create the event queue thread. + The time used in ms for the timeout interval of the event queue. Defaults to 500 ms. + + + + Returns the cache key to use when looking up an entry into the cache for a + + the to create the key for. + if signatureProvider is null. + the cache key to use for finding a . + + + + Returns the 'key' that will be used to find a crypto provider in this cache. + + the key that is used to by the crypto provider. + the algorithm that is used by the crypto provider. + the typeof the crypto provider obtained by calling object.GetType(). + if securityKey is null. + if algorithm is null or empty string. + if typeofProvider is null or empty string. + the cache key to use for finding a crypto provider. + + + + Trys to adds a to this cache. + + to cache. + if signatureProvider is null. + + true if the was added, false if the cache already contained the or if should not be cached. + + if the is added will be set to 'this'. + + + + Trys to find a to this cache. + + the key that is used to by the crypto provider. + the algorithm that is used by the crypto provider. + the typeof the crypto provider obtained by calling object.GetType(). + a bool to indicate if the will be used to sign. + the if found. + if securityKey is null. + if algorithm is null or empty string. + if typeofProvider is null or empty string. + true if a was found, false otherwise. + + + + Trys to remove a from this cache. + + to remove. + if signatureProvider is null. + true if the was removed, false if the was not found. + if the is removed will be set to null. + + + + Calls and + Note: the EventBasedLRUCache is no longer being disposed of, but since this is a public class and can be used as base class of + custom cache implementations, we need to keep it as some implementations may override Dispose(). + + + + + If is true, this method disposes of and . + + True if called from the method, false otherwise. + + + + FOR TESTING ONLY. + + + + + FOR TESTING ONLY. + + + + + FOR TESTING ONLY. + + + + + FOR TESTING ONLY. + + + + + FOR TESTING ONLY. + + + + + FOR TESTING ONLY. + + + + + FOR TESTING PURPOSES ONLY. + + + + + Validators meant to be kept internal + + + + + Called after signature validation has failed to avoid a metadata refresh + + + + + ISecurityTokenValidator + + + + + Returns true if the token can be read, false otherwise. + + + + + Returns true if a token can be validated. + + + + + Gets and sets the maximum size in bytes, that a will be processed. + + + + + Validates a token passed as a string using + + + + + Interface that defines a simple cache for tacking replaying of security tokens. + + + + + Try to add a securityToken. + + the security token to add. + the time when security token expires. + true if the security token was successfully added. + + + + Try to find securityToken + + the security token to find. + true if the security token is found. + + + + Constants for JsonWebAlgorithms "kty" Key Type (sec 6.1) + https://datatracker.ietf.org/doc/html/rfc7518#section-6.1 + + + + + Represents a JSON Web Key as defined in https://datatracker.ietf.org/doc/html/rfc7517. + + + + + Initializes an new instance of . + + + + + Returns a new instance of . + + A string that contains JSON Web Key parameters in JSON format. + + If 'json' is null or empty. + If 'json' fails to deserialize. + + + + Initializes an new instance of from a json string. + + A string that contains JSON Web Key parameters in JSON format. + If 'json' is null or empty. + If 'json' fails to deserialize. + + + + If this was converted to or from a SecurityKey, this field will be set. + + + + + If this was failed converted to a SecurityKey, this field will be set. + + + + + When deserializing from JSON any properties that are not defined will be placed here. + + + + + Gets or sets the 'alg' (KeyType). + + + + + Gets or sets the 'crv' (ECC - Curve). + + + + + Gets or sets the 'd' (ECC - Private Key OR RSA - Private Exponent). + + Value is formated as: Base64urlUInt + + + + Gets or sets the 'dp' (RSA - First Factor CRT Exponent). + + Value is formated as: Base64urlUInt + + + + Gets or sets the 'dq' (RSA - Second Factor CRT Exponent). + + Value is formated as: Base64urlUInt + + + + Gets or sets the 'e' (RSA - Exponent). + + + + + Gets or sets the 'k' (Symmetric - Key Value). + + Base64urlEncoding + + + + Gets the key id of this . + + + + + Gets the 'key_ops' (Key Operations). + + + + + Gets or sets the 'kid' (Key ID).. + + + + + Gets or sets the 'kty' (Key Type). + + + + + Gets or sets the 'n' (RSA - Modulus). + + Value is formatted as: Base64urlEncoding + + + + Gets or sets the 'oth' (RSA - Other Primes Info). + + + + + Gets or sets the 'p' (RSA - First Prime Factor).. + + Value is formatted as: Base64urlUInt + + + + Gets or sets the 'q' (RSA - Second Prime Factor).. + + Value is formatted as: Base64urlUInt + + + + Gets or sets the 'qi' (RSA - First CRT Coefficient).. + + Value is formatted as: Base64urlUInt + + + + Gets or sets the 'use' (Public Key Use).. + + + + + Gets or sets the 'x' (ECC - X Coordinate).. + + Value is formatted as: Base64urlEncoding + + + + Gets the 'x5c' collection (X.509 Certificate Chain).. + + + + + Gets or sets the 'x5t' (X.509 Certificate SHA-1 thumbprint).. + + + + + Gets or sets the 'x5t#S256' (X.509 Certificate SHA-256 thumbprint).. + + + + + Gets or sets the 'x5u' (X.509 URL).. + + + + + Gets or sets the 'y' (ECC - Y Coordinate).. + + Value is formatted as: Base64urlEncoding + + + + Gets the key size of . + + + + + Gets a bool indicating if a private key exists. + + true if it has a private key; otherwise, false. + + + + Determines whether the can compute a JWK thumbprint. + + true if JWK thumbprint can be computed; otherwise, false. + https://datatracker.ietf.org/doc/html/rfc7638 + + + + Computes the JWK thumprint per spec: https://datatracker.ietf.org/doc/html/rfc7638 />. + + A the JWK thumbprint. + + + + Creates a JsonWebKey representation of an asymmetric public key. + + JsonWebKey representation of an asymmetric public key. + https://datatracker.ietf.org/doc/html/rfc7800#section-3.2 + + + + Returns the formatted string: GetType(), Use: 'value', Kid: 'value', Kty: 'value', InternalId: 'value'. + + string + + + + Converts a into a + Supports: converting to a from one of: , , and . + + + + + Converts a into a + + a to convert. + a + if is null. + if is not a supported type. + Supports: , and . + + + + Converts a into a + + a to convert. + a + if is null. + + + + Converts a into a + + a to convert. + a + if is null. + + + + Converts a into a . + + a to convert. + + true to represent the as an , + false to represent the as an , using the "x5c" parameter. + + a . + if is null. + + + + Converts a into a + + a to convert. + a + if is null. + + + + Constants for JsonWebKey Elliptical Curve Types + https://datatracker.ietf.org/doc/html/rfc7518#section-6.2.1.1 + + + + + JsonWebKey parameter names + see: https://datatracker.ietf.org/doc/html/rfc7517 + + + + + JsonWebKey parameter names as UTF8 bytes + Used by UTF8JsonReader/Writer for performance gains. + + + + + Contains a collection of that can be populated from a json string. + + provides support for https://datatracker.ietf.org/doc/html/rfc7517. + + + + Returns a new instance of . + + a string that contains JSON Web Key parameters in JSON format. + + If 'json' is null or empty. + If 'json' fails to deserialize. + + + + Initializes an new instance of . + + + + + Initializes an new instance of from a json string. + + a json string containing values. + If 'json' is null or empty. + If 'json' fails to deserialize. + + + + When deserializing from JSON any properties that are not defined will be placed here. + + + + + Gets the . + + + + + Default value for the flag that controls whether unresolved JsonWebKeys will be included in the resulting collection of method. + + + + + Flag that controls whether unresolved JsonWebKeys will be included in the resulting collection of method. + + + + + Returns the JsonWebKeys as a . + + + To include unresolved JsonWebKeys in the resulting collection, set to false. + + + + + Names for Json Web Key Set Values + + + + + Constants for JsonWebKeyUse (sec 4.2) + https://datatracker.ietf.org/doc/html/rfc7517#section-4.2 + + + + + Creates a JsonException that provides information on what went wrong + + the . + the type the reader was expecting to find. + the name of the type being read. + the property name being read. + inner exception if any. + + + + + This method is called when deserializing a property value as an object. + Normally we put the object into a Dictionary[string, object]. + + the + the property name that is being read + the type that is being deserialized + if true reader.Read() will be called. + + + + + Writes an 'object' as a JsonProperty. + This was written to support what IdentityModel6x supported and is not meant to be a + general object serializer. + If a user needs to serialize a special value, then serialize the value into a JsonElement. + + + + + Writes values into an array. + Assumes the writer.StartArray() has been called. + + + + + + + Reads a JsonWebKey. see: https://datatracker.ietf.org/doc/html/rfc7517 + + a pointing at a StartObject. + + A . + + + + Reads a JsonWebKey. see: https://datatracker.ietf.org/doc/html/rfc7517 + + a pointing at a StartObject. + + A . + + + + This method will be used when reading OIDC metadata + + + + + + + Log messages and codes + + + + + Generic implementation of object pooling pattern with predefined pool size limit. The main + purpose is that limited number of frequently used objects can be kept in the pool for + further recycling. + + Notes: + 1) it is not the goal to keep all returned objects. Pool is not meant for storage. If there + is no space in the pool, extra returned objects will be dropped. + + 2) it is implied that if object was obtained from a pool, the caller will return it back in + a relatively short time. Keeping checked out objects for long durations is ok, but + reduces usefulness of pooling. Just new up your own. + + Not returning objects to the pool in not detrimental to the pool's work, but is a bad practice. + Rationale: + If there is no intent for reusing the object, do not use pool - just use "new". + + + + + Produces an instance. + + + Search strategy is a simple linear probing which is chosen for it cache-friendliness. + Note that Free will try to store recycled objects close to the start thus statistically + reducing how far we will typically search. + + + + + Returns objects to the pool. + + + Search strategy is a simple linear probing which is chosen for it cache-friendliness. + Note that Free will try to store recycled objects close to the start thus statistically + reducing how far we will typically search in Allocate. + + + + + Returns a string message for the specified Win32 error code. + + + + + The purpose of this class is to ensure that we obtain an RsaCryptoServiceProvider that supports SHA-256 signatures. + If the original RsaCryptoServiceProvider doesn't support SHA-256, we create a new one using the same KeyContainer. + + + There is no support for and on non-Windows platforms which makes a Windows-specific class. + + + + + Gets the SignatureAlgorithm + + + + + Gets the KeyExchangeAlgorithm + + + + + Initializes an new instance of . + + + if is null. + + + + Decrypts data with the System.Security.Cryptography.RSA algorithm. + + The data to be decrypted. + true to perform direct System.Security.Cryptography.RSA decryption using OAEP padding + (only available on a computer running Microsoft Windows XP or later) otherwise, false to use PKCS#1 v1.5 padding. + decrypted bytes. + if is null or has Length == 0. + + + + Decrypts the input. + + the bytes to decrypt. + decrypted bytes + if is null or Length == 0. + + + + Encrypts data with the System.Security.Cryptography.RSA algorithm. + + The data to be encrypted. + true to perform direct System.Security.Cryptography.RSA encryption using OAEP padding (only available on a computer running Microsoft Windows XP or later); + otherwise, false to use PKCS#1 v1.5 padding. + encrypted bytes. + if is null or has Length == 0. + + + + Encrypts the input. + + the bytes to encrypt. + encrypted bytes. + if is null or Length == 0. + + + + Computes the hash value of the specified byte array using the specified hash algorithm, and signs the resulting hash value. + + The input byte array for which to compute the hash. + The hash algorithm to use to create the hash value. + The Signature for the specified data. + if is null or Length == 0. + if is null. + + + + Verifies that a digital signature is valid by determining the hash value in the signature using the provided public key and comparing it to the hash value of the provided data. + + The input byte array. + The hash algorithm to use to create the hash value. + The signature byte array to be verified. + true if the signature is valid; otherwise, false. + if is null or Length == 0. + if is null. + if is null or Length == 0. + + + + Verifies that a digital signature is valid by determining the hash value in the signature using the provided public key and comparing it to the hash value of the provided data. + + The input byte array. + + + The hash algorithm to use to create the hash value. + + The signature byte array to be verified. + true if the signature is valid; otherwise, false. + if is null or Length == 0. + if is null. + if is null or Length == 0. + + + + Exports rsa parameters as + + flag to control is private parameters are included. + + + + + Imports rsa parameters as + + to import. + + + + Calls to release managed resources. + + true, if called from Dispose(), false, if invoked inside a finalizer. + + + + Represents a Rsa security key. + + + + + Initializes a new instance of the class. + + + + + + Initializes a new instance of the class. + + + + + + Gets a bool indicating if a private key exists. + + true if it has a private key; otherwise, false. + + + + Gets an enum indicating if a private key exists. + + 'Exists' if private key exists for sure; 'DoesNotExist' if private key doesn't exist for sure; 'Unknown' if we cannot determine. + + + + Gets RSA key size. + + + + + used to initialize the key. + + + + + instance used to initialize the key. + + + + + Determines whether the can compute a JWK thumbprint. + + true if JWK thumbprint can be computed; otherwise, false. + https://datatracker.ietf.org/doc/html/rfc7638 + + + + Computes a sha256 hash over the . + + A JWK thumbprint. + https://datatracker.ietf.org/doc/html/rfc7638 + + + + Constants for Security Algorithm. + + + + + Base class for Security Key. + + + + + Default constructor + + + + + This must be overridden to get the size of this . + + + + + Gets the key id of this . + + + + + Gets or sets . + + + + + Returns the formatted string: GetType(), KeyId: 'value', InternalId: 'value'. + + string + + + + Determines whether the can compute a JWK thumbprint. + + true if JWK thumbprint can be computed; otherwise, false. + https://datatracker.ietf.org/doc/html/rfc7638 + + + + Computes a sha256 hash over the . + + A JWK thumbprint. + https://datatracker.ietf.org/doc/html/rfc7638 + + + + Checks if can perform the cryptographic operation specified by the with this . + + the algorithm to apply. + true if can perform the cryptographic operation sepecified by the with this . + + + + Contains information about the keys inside the tokens. + + + + + Base class for security token. + + + + + + + + This must be overridden to get the Id of this . + + + + + This must be overridden to get the issuer of this . + + + + + This must be overridden to get the . + + + + + This must be overridden to get or set the that signed this instance. + + .ValidateToken(...) can this value when a is used to successfully validate a signature. + + + + This must be overridden to get the time when this was Valid. + + + + + This must be overridden to get the time when this is no longer Valid. + + + + + Contains some information which used to create a security token. + + + + + Gets or sets the value of the 'audience' claim. + + + + + Defines the compression algorithm that will be used to compress the JWT token payload. + + + + + Gets or sets the used to create a encrypted security token. + + + + + Gets or sets the value of the 'expiration' claim. This value should be in UTC. + + + + + Gets or sets the issuer of this . + + + + + Gets or sets the time the security token was issued. This value should be in UTC. + + + + + Gets or sets the notbefore time for the security token. This value should be in UTC. + + + + + Gets or sets the token type. + If provided, this will be added as the value for the 'typ' header parameter. In the case of a JWE, this will be added to both the inner (JWS) and the outer token (JWE) header. By default, the value used is 'JWT'. + If also contains 'typ' header claim value, it will override the TokenType provided here. + This value is used only for JWT tokens and not for SAML/SAML2 tokens + + + + + Gets or sets the which represents the claims that will be used when creating a security token. + If both and are set, the claim values in Subject will be combined with the values + in Claims. The values found in Claims take precedence over those found in Subject, so any duplicate + values will be overridden. + + + + + Gets or sets the which contains any custom header claims that need to be added to the JWT token header. + The 'alg', 'kid', 'x5t', 'enc', and 'zip' claims are added by default based on the , + , and/or provided and SHOULD NOT be included in this dictionary as this + will result in an exception being thrown. + These claims are only added to the outer header (in case of a JWE). + + + + + Gets or sets the which contains any custom header claims that need to be added to the inner JWT token header. + The 'alg', 'kid', 'x5t', 'enc', and 'zip' claims are added by default based on the , + , and/or provided and SHOULD NOT be included in this dictionary as this + will result in an exception being thrown. + + For JsonWebTokenHandler, these claims are merged with while adding to the inner JWT header. + + + + + + Gets or sets the used to create a security token. + + + + + Gets or sets the . + If both and are set, the claim values in Subject will be combined with the values + in Claims. The values found in Claims take precedence over those found in Subject, so any duplicate + values will be overridden. + + + + + Defines the interface for a Security Token Handler. + + + + + Creates an instance of + + + + + Returns . + + + true if attached; otherwise, false. + + + + Returns . + + + + + + Gets a value indicating whether this handler supports validation of tokens + handled by this instance. + v + 'True' if the instance is capable of SecurityToken + validation. + + + + Gets a value indicating whether the class provides serialization functionality to serialize token handled + by this instance. + + true if the WriteToken method can serialize this token. + + + + This must be overridden to get the System.Type of the SecurityToken this instance handles. + + + + + Indicates whether the is positioned at an element that can be read. + + An reader positioned at a start element. The reader should not be advanced. + 'true' if the token can be read. + + + + Indicates whether the current token string can be read as a token + of the type handled by this instance. + + The token string thats needs to be read. + 'True' if the ReadToken method can parse the token string. + + + + Gets security token. + + . + SecurityToken instance which represents the serialized token. + + + + Serializes to string a token of the type handled by this instance. + + A token of type TokenType. + The serialized token. + + + + This must be overridden to serialize to XML a token of the type handled by this instance. + + The XML writer. + A token of type . + + + + This must be overridden to deserialize token with the provided . + + . + the current . + SecurityToken instance which represents the serialized token. + + + + This must be overridden to validate a token passed as a string using + + A token of type . + the current . + The token of type that was validated. + + + + Reads and validates a token using a xmlReader and + + A pointing at the start element of the token. + Contains data and information needed for validation. + The that was validated. + + + + Provides signature services, signing and verifying. + + + + + Maintains the number of external references + see: , , + + + + + Initializes a new instance of the class used to create and verify signatures. + + The that will be used for signature operations. + The signature algorithm to apply. + is null. + is null or empty. + + + + Gets the signature algorithm. + + + + + Gets or sets a user context for a . + + This is null by default. This is for use by the application and not used by this SDK. + + + + Gets or sets the that is associated with this + + + + + Calls and + + + + + Can be over written in descendants to dispose of internal components. + + true, if called from Dispose(), false, if invoked inside a finalizer + + + + Gets the . + + + + + For testing purposes + + + + + This must be overridden to produce a signature over the 'input'. + + bytes to sign. + signed bytes + + + Verifies that the over using the + and specified by this + are consistent. + the bytes that were signed. + signature to compare against. + true if the computed signature matches the signature parameter, false otherwise. + + + + Verifies that a signature created over the 'input' matches the signature. Using and 'algorithm' passed to . + + The bytes to verify. + offset in to input bytes to caculate hash. + number of bytes of signature to use. + signature to compare against. + offset into signature array. + how many bytes to verfiy. + true if computed signature matches the signature parameter, false otherwise. + 'input' is null. + 'signature' is null. + 'input.Length' == 0. + 'signature.Length' == 0. + 'length < 1' + 'offset + length > input.Length' + has been called. + + + + Gets or sets a bool indicating if this is expected to create signatures. + + + + + Defines the , algorithm and digest for digital signatures. + + + + + Initializes a new instance of the class. + + that will be used for signing. + Algorithm will be set to . + the 'digest method' if needed may be implied from the algorithm. For example implies Sha256. + if 'key' is null. + if 'algorithm' is null or empty. + + + + Initializes a new instance of the class. + + that will be used for signing. + The signature algorithm to apply. + the 'digest method' if needed may be implied from the algorithm. For example implies Sha256. + if 'certificate' is null. + if 'algorithm' is null or empty. + + + + Initializes a new instance of the class. + + . + The signature algorithm to apply. + the 'digest method' if needed may be implied from the algorithm. For example implies Sha256. + if 'key' is null. + if 'algorithm' is null or empty. + + + + Initializes a new instance of the class. + + . + The signature algorithm to apply. + The digest algorithm to apply. + if 'key' is null. + if 'algorithm' is null or empty. + if 'digest' is null or empty. + + + + Gets the signature algorithm. + + if 'value' is null or empty. + + + + Gets the digest algorithm. + + + + + Users can override the default with this property. This factory will be used for creating signature providers. + + This will have precedence over + + + + Gets the used for signature creation or validation. + + + + + Gets the key id associated with . + + + + + Defines the default set of algorithms this library supports + + + + + Creating a Signature requires the use of a . + This method returns the + that describes the to use when generating a Signature. + + The SignatureAlgorithm in use. + The to use. + if is null or whitespace. + if is not supported. + + + + Creating a Signature requires the use of a . + This method returns the HashAlgorithm string that is associated with a SignatureAlgorithm. + + The SignatureAlgorithm of interest. + if is null or whitespace. + if is not supported. + + + + Checks if an 'algorithm, key' pair is supported. + + the algorithm to check. + the . + true if 'algorithm, key' pair is supported. + + + + Represents a symmetric security key. + + + + + Returns a new instance of instance. + + The byte array of the key. + + + + Gets the key size. + + + + + Gets the byte array of the key. + + + + + Determines whether the can compute a JWK thumbprint. + + true if JWK thumbprint can be computed; otherwise, false. + https://datatracker.ietf.org/doc/html/rfc7638 + + + + Computes a sha256 hash over the . + + A JWK thumbprint. + https://datatracker.ietf.org/doc/html/rfc7638 + + + + Provides signing and verifying operations using a and specifying an algorithm. + + + + + Mapping from algorithm to the expected signature size in bytes. + + + + + This is the minimum .KeySize when creating and verifying signatures. + + + + + Initializes a new instance of the class that uses an to create and / or verify signatures over a array of bytes. + + The that will be used for signature operations. + The signature algorithm to use. + 'key' is null. + 'algorithm' is null or empty. + If and algorithm pair are not supported. + '.KeySize' is smaller than . + + + + Initializes a new instance of the class that uses an to create and / or verify signatures over a array of bytes. + + The that will be used for signature operations. + The signature algorithm to use. + indicates if this will be used to create signatures. + 'key' is null. + 'algorithm' is null or empty. + If and algorithm pair are not supported. + '.KeySize' is smaller than . + + + + Gets or sets the minimum .KeySize"/>. + + 'value' is smaller than . + + + + Called to obtain the byte[] needed to create a + + that will be used to obtain the byte[]. + [] that is used to populated the KeyedHashAlgorithm. + if key is null. + if a byte[] can not be obtained from SecurityKey. + and are supported. + For a .Key is returned + For a Base64UrlEncoder.DecodeBytes is called with if == JsonWebAlgorithmsKeyTypes.Octet + + + + + Returns a . + This method is called just before a cryptographic operation. + This provides the opportunity to obtain the from an object pool. + If this method is overridden, it is importont to override + if custom releasing of the is desired. + + The hash algorithm to use to create the hash value. + The byte array of the key. + An instance of + + + + For testing purposes + + + + + This method is called just after the cryptographic operation. + If was overridden this method can be overridden for + any custom handling such as returning the to an object pool. + + The " in use. + + + + Produces a signature over the 'input' using the and 'algorithm' passed to . + + The bytes to sign. + Signed bytes + 'input' is null. + 'input.Length' == 0. + has been called. + is null. This can occur if a derived type deletes it or does not create it. + Sign is thread safe. + + + + Verifies that a signature created over the 'input' matches the signature. Using and 'algorithm' passed to . + + The bytes to verify. + signature to compare against. + true if computed signature matches the signature parameter, false otherwise. + 'input' is null. + 'signature' is null. + 'input.Length' == 0. + 'signature.Length' == 0. + has been called. + If the internal is null. This can occur if a derived type deletes it or does not create it. + Verify is thread safe. + + + + Verifies that a signature created over the 'input' matches the signature. Using and 'algorithm' passed to . + + The bytes to verify. + signature to compare against. + number of bytes of signature to use. + true if computed signature matches the signature parameter, false otherwise. + 'input' is null. + 'signature' is null. + 'input.Length' == 0. + 'signature.Length' == 0. + 'length < 1' + has been called. + If the internal is null. This can occur if a derived type deletes it or does not create it. + + + + + + + This internal method is called from the AuthenticatedEncryptionProvider which passes in the algorithm that defines the size expected for the signature. + The reason is the way the AuthenticationTag is validated. + For example when "A128CBC-HS256" is specified, SHA256 will used to create the HMAC and 32 bytes will be generated, but only the first 16 will be validated. + + The bytes to verify. + offset in to input bytes to caculate hash. + number of bytes of signature to use. + signature to compare against. + offset into signature array. + how many bytes to verfiy. + algorithm passed by AuthenticatedEncryptionProvider. + true if computed signature matches the signature parameter, false otherwise. + + + + Disposes of internal components. + + true, if called from Dispose(), false, if invoked inside a finalizer. + + + + An opaque context used to store work when working with authentication artifacts. + + + + + Instantiates a new with a default activity ID. + + + + + Instantiates a new with an activity ID. + + + + + Defines properties shared across all security token handlers. + + + + + Default lifetime of tokens created. When creating tokens, if 'expires', 'notbefore' or 'issuedat' are null, + then a default will be set to: issuedat = DateTime.UtcNow, notbefore = DateTime.UtcNow, expires = DateTime.UtcNow + TimeSpan.FromMinutes(TokenLifetimeInMinutes). + + See: for configuration. + + + + Gets and sets the maximum token size in bytes that will be processed. + + 'value' less than 1. + + + + Gets or sets a bool that controls if token creation will set default 'exp', 'nbf' and 'iat' if not specified. + + See: for configuration. + + + + Gets or sets the token lifetime in minutes. + + Used during token creation to set the default expiration ('exp'). + 'value' less than 1. + + + + Validates a token. + On a validation failure, no exception will be thrown; instead, the exception will be set in the returned TokenValidationResult.Exception property. + Callers should always check the TokenValidationResult.IsValid property to verify the validity of the result. + + The token to be validated. + A required for validation. + A + + + + Validates a token. + On a validation failure, no exception will be thrown; instead, the exception will be set in the returned TokenValidationResult.Exception property. + Callers should always check the TokenValidationResult.IsValid property to verify the validity of the result. + + The to be validated. + A required for validation. + A + + + + Converts a string into an instance of . + + The string to be deserialized. + is null or empty. + 'token.Length' is greater than . + A . + + + + Called by base class to create a . + Currently only used by the JsonWebTokenHandler to allow for a Lazy creation. + + the that has the Claims. + the that was used to validate the token. + the 'issuer' to use by default when creating a Claim. + A . + + + + + A class which contains useful methods for processing tokens. + + + + + A URI that represents the JSON XML data type. + + When mapping json to .Net Claim(s), if the value was not a string (or an enumeration of strings), the ClaimValue will serialized using the current JSON serializer, a property will be added with the .Net type and the ClaimTypeValue will be set to 'JsonClaimValueType'. + + + + A URI that represents the JSON array XML data type. + + When mapping json to .Net Claim(s), if the value was not a string (or an enumeration of strings), the ClaimValue will serialized using the current JSON serializer, a property will be added with the .Net type and the ClaimTypeValue will be set to 'JsonClaimValueType'. + + + + A URI that represents the JSON null data type + + When mapping json to .Net Claim(s), we use empty string to represent the claim value and set the ClaimValueType to JsonNull + + + + Creates a dictionary from a list of Claim's. + + A list of claims. + A Dictionary representing claims. + + + + Returns all provided in and . + + The that contains signing keys used for validation. + A required for validation. + Returns all provided in provided in and . + + + + Merges claims. If a claim with same type exists in both and , the one in claims will be kept. + + Collection of 's. + Collection of 's. + A Merged list of 's. + + + + Check whether the given exception type is recoverable by LKG. + + The exception to check. + true if the exception is certain types of exceptions otherwise, false. + + + + Check whether the given configuration is recoverable by LKG. + + The kid from token."/> + The to check. + The LKG exception to check. + The exception to check. + true if the configuration is recoverable otherwise, false. + + + + Definition for AlgorithmValidator + + The algorithm to validate. + The that signed the . + The being validated. + required for validation. + true if the algorithm is considered valid + + + + Definition for AudienceValidator. + + The audiences found in the . + The being validated. + required for validation. + true if the audience is considered valid. + + + + Definition for IssuerSigningKeyResolver. + + The representation of the token that is being validated. + The that is being validated. It may be null. + A key identifier. It may be null. + required for validation. + A to use when validating a signature. + If both and are set, IssuerSigningKeyResolverUsingConfiguration takes + priority. + + + + Definition for IssuerSigningKeyResolverUsingConfiguration. + + The representation of the token that is being validated. + The that is being validated. It may be null. + A key identifier. It may be null. + required for validation. + required for validation. + A to use when validating a signature. + If both and are set, IssuerSigningKeyResolverUsingConfiguration takes + priority. + + + + Definition for IssuerSigningKeyValidator. + + The that signed the . + The being validated. + required for validation. + If both and are set, IssuerSigningKeyResolverUsingConfiguration takes + priority. + + + + Definition for IssuerSigningKeyValidatorUsingConfiguration. + + The that signed the . + The being validated. + required for validation. + required for validation. + If both and are set, IssuerSigningKeyResolverUsingConfiguration takes + priority. + + + + Definition for IssuerValidator. + + The issuer to validate. + The that is being validated. + required for validation. + The issuer to use when creating the "Claim"(s) in a "ClaimsIdentity". + The delegate should return a non null string that represents the 'issuer'. If null a default value will be used. + If both and are set, IssuerValidatorUsingConfiguration takes + priority. + + + + Definition for IssuerValidatorUsingConfiguration. + + The issuer to validate. + The that is being validated. + required for validation. + required for validation. + The issuer to use when creating the "Claim"(s) in a "ClaimsIdentity". + The delegate should return a non null string that represents the 'issuer'. If null a default value will be used. + If both and are set, IssuerValidatorUsingConfiguration takes + priority. + + + + + Definition for IssuerValidatorAsync. Left internal for now while we work out the details of async validation for all delegates. + + The issuer to validate. + The that is being validated. + required for validation. + The issuer to use when creating the "Claim"(s) in a "ClaimsIdentity". + The delegate should return a non null string that represents the 'issuer'. If null a default value will be used. + if set, will be called before or + + + + + Definition for LifetimeValidator. + + The 'notBefore' time found in the . + The 'expiration' time found in the . + The being validated. + required for validation. + + + + Definition for TokenReplayValidator. + + The 'expiration' time found in the . + The being validated. + required for validation. + + + + + Definition for SignatureValidator. + + A securityToken with a signature. + required for validation. + + + + Definition for SignatureValidator. + + A securityToken with a signature. + required for validation. + The that is required for validation. + + + + Definition for TokenReader. + + A securityToken with a signature. + required for validation. + + + + Definition for TokenDecryptionKeyResolver. + + The representation of the token to be decrypted. + The to be decrypted. The runtime by default passes null. + A key identifier. It may be null. + required for validation. + A to use when decrypting the token. + + + + Definition for TypeValidator. + + The token type to validate. + The that is being validated. + required for validation. + The actual token type, that may be the same as or a different value if the token type was resolved from a different location. + + + + Definition for TransformBeforeSignatureValidation. + + The that is being validated. + required for validation. + A transformed . + + + + Contains a set of parameters that are used by a when validating a . + + + + + This is the default value of when creating a . + The value is "AuthenticationTypes.Federation". + To change the value, set to a different value. + + + + + Default for the clock skew. + + 300 seconds (5 minutes). + + + + Default for the maximum token size. + + 250 KB (kilobytes). + + + + Copy constructor for . + + + + + Initializes a new instance of the class. + + + + + Gets or sets . + + + + + Gets or sets a delegate used to validate the cryptographic algorithm used. + + + If set, this delegate will validate the cryptographic algorithm used and + the algorithm will not be checked against . + + + + + Gets or sets a delegate that will be used to validate the audience. + + + If set, this delegate will be called to validate the 'audience', instead of default processing. + This means that no default 'audience' validation will occur. + Even if is false, this delegate will still be called. + + + + + Gets or sets the AuthenticationType when creating a . + + If 'value' is null or whitespace. + + + + Gets or sets the clock skew to apply when validating a time. + + If 'value' is less than 0. + The default is 300 seconds (5 minutes). + + + + Returns a new instance of with values copied from this object. + + A new object copied from this object + This is a shallow Clone. + + + + Creates a using: + + 'NameClaimType': If NameClaimTypeRetriever is set, call delegate, else call NameClaimType. If the result is a null or empty string, use . + 'RoleClaimType': If RoleClaimTypeRetriever is set, call delegate, else call RoleClaimType. If the result is a null or empty string, use . + + A with Authentication, NameClaimType and RoleClaimType set. + + + + If set, this property will be used to obtain the issuer and signing keys associated with the metadata endpoint of . + The obtained issuer and signing keys will then be used along with those present on the TokenValidationParameters for validation of the incoming token. + + + + + Users can override the default with this property. This factory will be used for creating signature providers. + + + + + Gets or sets a string that helps with setting breakpoints when debugging. + + + + + Gets or sets a boolean that controls if a '/' is significant at the end of the audience. + The default is true. + + + + + Gets or sets the flag that indicates whether to include the when the validation fails. + + + + + Gets or sets a delegate for validating the that signed the token. + + + If set, this delegate will be called to validate the that signed the token, instead of default processing. + This means that no default validation will occur. + Even if is false, this delegate will still be called. + If both and are set, IssuerSigningKeyResolverUsingConfiguration takes + priority. + + + + + Gets or sets a delegate for validating the that signed the token. + + + If set, this delegate will be called to validate the that signed the token, instead of default processing. + This means that no default validation will occur. + Even if is false, this delegate will still be called. + This delegate should be used if properties from the configuration retrieved from the authority are necessary to validate the + issuer signing key. + If both and are set, IssuerSigningKeyValidatorUsingConfiguration takes + priority. + + + + + Gets a that is unique to this instance. + Calling will result in a new instance of this IDictionary. + + + + + Gets a value indicating if was called to obtain this instance. + + + + + Gets or sets the that is to be used for signature validation. + + + + + Gets or sets a delegate that will be called to retrieve a used for signature validation. + + + This will be used to check the signature. This can be helpful when the does not contain a key identifier. + If both and are set, IssuerSigningKeyResolverUsingConfiguration takes + priority. + + + + + Gets or sets a delegate that will be called to retrieve a used for signature validation using the + and . + + + This will be used to check the signature. This can be helpful when the does not contain a key identifier. + This delegate should be used if properties from the configuration retrieved from the authority are necessary to resolve the + issuer signing key. + If both and are set, IssuerSigningKeyResolverUsingConfiguration takes + priority. + + + + + Gets or sets an used for signature validation. + + + + + Gets or sets a delegate that will be used to validate the issuer of the token. + + + If set, this delegate will be called to validate the 'issuer' of the token, instead of default processing. + This means that no default 'issuer' validation will occur. + Even if is false, this delegate will still be called. + If both and are set, IssuerValidatorUsingConfiguration takes + priority. + + + + + Gets or sets a delegate that will be used to validate the issuer of the token. + + + If set, this delegate will be called to validate the 'issuer' of the token, instead of default processing. + This means that no default 'issuer' validation will occur. + Even if is false, this delegate will still be called. + IssuerValidatorAsync takes precedence over and . + + + + + Gets or sets a delegate that will be used to validate the issuer of the token. + + + If set, this delegate will be called to validate the 'issuer' of the token, instead of default processing. + This means that no default 'issuer' validation will occur. + Even if is false, this delegate will still be called. + This delegate should be used if properties from the configuration retrieved from the authority are necessary to validate the issuer. + If both and are set, IssuerValidatorUsingConfiguration takes + priority. + + + + + Gets or sets a delegate that will be called to transform a token to a supported format before validation. + + + + + Gets or sets a delegate that will be used to validate the lifetime of the token + + + If set, this delegate will be called to validate the lifetime of the token, instead of default processing. + This means that no default lifetime validation will occur. + Even if is false, this delegate will still be called. + + + + + Gets or sets a that will decide if the token identifier claim needs to be logged. + Default value is true. + + + + + Gets or sets a that will decide if validation failure needs to be logged as an error. + Default value is true for backward compatibility of the behavior. + If set to false, validation failures are logged as Information and then thrown. + + + + + Gets or sets a that defines the . + + + Controls the value returns. It will return the first where the equals . + The default is . + + + + + Gets or sets a delegate that will be called to set the property after validating a token. + + + The function will be passed: + The that is being validated. + The issuer associated with the token. + Returns the value that will set the property . + + + + + Gets or sets the that contains a collection of custom key/value pairs. This allows addition of parameters that could be used in custom token validation scenarios. + + + + + Gets or sets a boolean to control if configuration required to be refreshed before token validation. + + + The default is false. + + + + + Gets or sets a value indicating whether SAML tokens must have at least one AudienceRestriction. + The default is true. + + + + + Gets or sets a value indicating whether tokens must have an 'expiration' value. + The default is true. + + + + + Gets or sets a value indicating whether a can be considered valid if not signed. + The default is true. + + + + + Gets or sets the that defines the . + + + Controls the results of . + Each where == will be checked for a match against the 'string' passed to . + The default is . + + + + + Gets or sets a delegate that will be called to set the property after validating a token. + + + The function will be passed: + The that is being validated. + The issuer associated with the token. + Returns the value that will set the property . + + + + + Gets or sets a boolean to control if the original token should be saved after the security token is validated. + + The runtime will consult this value and save the original token that was validated. + The default is false. + + + + + Gets or sets a delegate that will be used to validate the signature of the token. + + + If set, this delegate will be called to signature of the token, instead of default processing. + + + + + Gets or sets a delegate that will be used to validate the signature of the token using the and + the . + + + If set, this delegate will be called to signature of the token, instead of default processing. + + + + + Gets or sets the that is to be used for decryption. + + + + + Gets or sets a delegate that will be called to retreive a used for decryption. + + + This will be used to decrypt the token. This can be helpful when the does not contain a key identifier. + + + + + Gets or sets the that is to be used for decrypting inbound tokens. + + + + + Gets or sets a delegate that will be used to read the token. + + + If set, this delegate will be called to read the token instead of default processing. + + + + + Gets or set the that store tokens that can be checked to help detect token replay. + + If set, then tokens must have an expiration time or the runtime will fault. + + + + Gets or sets a delegate that will be used to validate the token replay of the token + + + If set, this delegate will be called to validate the token replay of the token, instead of default processing. + This means no default token replay validation will occur. + Even if is false, this delegate will still be called. + + + + + Gets or sets a value indicating whether all should be tried during signature validation when a key is not matched to token kid or if token kid is empty. + The default is true. + + + + + Gets or sets a delegate that will be used to validate the type of the token. + If the token type cannot be validated, an exception MUST be thrown by the delegate. + Note: the 'type' parameter may be null if it couldn't be extracted from its usual location. + Implementations that need to resolve it from a different location can use the 'token' parameter. + + + If set, this delegate will be called to validate the 'type' of the token, instead of default processing. + This means that no default 'type' validation will occur. + + + + + Gets or sets a value indicating if an actor token is detected, whether it should be validated. + The default is false. + + + + + Gets or sets a boolean to control if the audience will be validated during token validation. + + Validation of the audience, mitigates forwarding attacks. For example, a site that receives a token, could not replay it to another side. + A forwarded token would contain the audience of the original site. + This boolean only applies to default audience validation. If is set, it will be called regardless of whether this + property is true or false. + The default is true. + + + + + Gets or sets a boolean to control if the issuer will be validated during token validation. + + + Validation of the issuer mitigates forwarding attacks that can occur when an + IdentityProvider represents multiple tenants and signs tokens with the same keys. + It is possible that a token issued for the same audience could be from a different tenant. For example an application could accept users from + contoso.onmicrosoft.com but not fabrikam.onmicrosoft.com, both valid tenants. An application that accepts tokens from fabrikam could forward them + to the application that accepts tokens for contoso. + This boolean only applies to default issuer validation. If is set, it will be called regardless of whether this + property is true or false. + The default is true. + + + + + Gets or sets a boolean to control if the LKG configuration will be used for token validation. + + + The default is false. + + + + + Gets or sets a boolean that controls if validation of the that signed the securityToken is called. + + It is possible for tokens to contain the public key needed to check the signature. For example, X509Data can be hydrated into an X509Certificate, + which can be used to validate the signature. In these cases it is important to validate the SigningKey that was used to validate the signature. + This boolean only applies to default signing key validation. If is set, it will be called regardless of whether this + property is true or false. + The default is false. + + + + + Gets or sets a boolean to control if the lifetime will be validated during token validation. + + + This boolean only applies to default lifetime validation. If is set, it will be called regardless of whether this + property is true or false. + The default is true. + + + + + Gets or sets a boolean that controls the validation order of the payload and signature during token validation. + + If is set to true, it will validate payload ahead of signature. + The default is false. + + + + + Gets or sets a boolean to control if the token replay will be validated during token validation. + + + This boolean only applies to default token replay validation. If is set, it will be called regardless of whether this + property is true or false. + The default is false. + + + + + Gets or sets the valid algorithms for cryptographic operations. + + + If set to a non-empty collection, only the algorithms listed will be considered valid. + The default is null. + + + + + Gets or sets a string that represents a valid audience that will be used to check against the token's audience. + The default is null. + + + + + Gets or sets the that contains valid audiences that will be used to check against the token's audience. + The default is null. + + + + + Gets or sets a that represents a valid issuer that will be used to check against the token's issuer. + The default is null. + + + + + Gets or sets the that contains valid issuers that will be used to check against the token's issuer. + The default is null. + + + + + Gets or sets the that contains valid types that will be used to check against the JWT header's 'typ' claim. + If this property is not set, the 'typ' header claim will not be validated and all types will be accepted. + In the case of a JWE, this property will ONLY apply to the inner token header. + The default is null. + + + + + Contains artifacts obtained when a SecurityToken is validated. + A SecurityTokenHandler returns an instance that captures the results of validating a token. + + + + + Creates an instance of + + + + + This ctor is used by the JsonWebTokenHandler as part of delaying creation of ClaimsIdentity. + + + + + + + + + The created from the validated security token. + + + + + The created from the validated security token. + + + + + Gets or sets the without synchronization. All accesses must either + be protected or used when the caller knows access is serialized. + + + + Gets the object to use in for double-checked locking. + + + + Gets or sets the that occurred during validation. + + + + + Gets or sets the issuer that was found in the token. + + + + + True if the token was successfully validated, false otherwise. + + + + + Gets or sets the that contains a collection of custom key/value pairs. This allows addition of data that could be used in custom scenarios. This uses for case-sensitive comparison of keys. + + + + + Gets or sets the that was validated. + + + + + The to be returned when validation fails. + + + + + Gets or sets the that contains call information. + + + + + Gets or sets the token type of the that was validated. + When a is registered, + the type returned by the delegate is used to populate this property. + Otherwise, the type is resolved from the token itself, if available + (e.g for a JSON Web Token, from the "typ" header). + + + + + Generates unique IDs. + + + + + Creates a unique ID suitable for use in an xml:id field. The value is + not hard to guess but is unique. + + The unique ID. + + + + Creates a unique ID similar to that created by CreateNonRandomId, + but instead of an underscore, the supplied prefix is used. + + The prefix to use. + The unique ID, with the given prefix. + + + + Creates a unique, random ID suitable for use in an xml:id field. The + value is hard to guess and unique. + + The unique ID. + + + + Creates a unique, random ID similar to that created by CreateRandomId, + but instead of an underscore, the supplied prefix is used. + + The prefix to use. + The random URI. + + + + Creates a unique, random ID suitable for use as a URI. The value is + hard to guess and unique. The URI is in the urn:uuid: namespace. + + The random URI. + + + + Contains some utility methods. + + + + + A string with "empty" value. + + + + + A string with "null" value. + + + + + Creates a copy of the byte array. + + The resource array. + A copy of the byte array. + + + + Serializes the list of strings into string as follows: + 'str1','str2','str3' ... + + + The strings used to build a comma delimited string. + + + The single . + + + + + Returns whether the input string is https. + + The input string. + true if the input string is https; otherwise, false. + + + + Returns whether the input uri is https. + + . + true if the input uri is https; otherwise, false. + + + + Compares two byte arrays for equality. Hash size is fixed normally it is 32 bytes. + The attempt here is to take the same time if an attacker shortens the signature OR changes some of the signed contents. + + + One set of bytes to compare. + + + The other set of bytes to compare with. + + + true if the bytes are equal, false otherwise. + + + + + Compares two byte spans for equality. Hash size is fixed normally it is 32 bytes. + The attempt here is to take the same time if an attacker shortens the signature OR changes some of the signed contents. + + + One set of bytes to compare. + + + The other set of bytes to compare with. + + length of spans to check + + true if the bytes are equal, false otherwise. + + + + + AudienceValidator + + + + + Validates if a given algorithm for a is valid. + + The algorithm to be validated. + The that signed the . + The being validated. + required for validation. + + + + Determines if the audiences found in a are valid. + + The audiences found in the . + The being validated. + required for validation. + If 'validationParameters' is null. + If 'audiences' is null and is true. + If is null or whitespace and is null. + If none of the 'audiences' matched either or one of . + An EXACT match is required. + + + + Determines if an issuer found in a is valid. + + The issuer to validate + The that is being validated. + required for validation. + The issuer to use when creating the "Claim"(s) in a "ClaimsIdentity". + If 'validationParameters' is null. + If 'issuer' is null or whitespace and is true. + If is null or whitespace and is null. + If 'issuer' failed to matched either or one of . + An EXACT match is required. + + + + Determines if an issuer found in a is valid. + + The issuer to validate + The that is being validated. + required for validation. + The required for issuer and signing key validation. + The issuer to use when creating the "Claim"(s) in a "ClaimsIdentity". + If 'validationParameters' is null. + If 'issuer' is null or whitespace and is true. + If ' configuration' is null. + If is null or whitespace and is null and is null. + If 'issuer' failed to matched either or one of or . + An EXACT match is required. + + + + Determines if an issuer found in a is valid. + + The issuer to validate + The that is being validated. + required for validation. + The required for issuer and signing key validation. + The issuer to use when creating the "Claim"(s) in a "ClaimsIdentity". + If 'validationParameters' is null. + If 'issuer' is null or whitespace and is true. + If ' configuration' is null. + If is null or whitespace and is null and is null. + If 'issuer' failed to matched either or one of or . + An EXACT match is required. + + + + Validates the that signed a . + + The that signed the . + The being validated. + required for validation. + if 'securityKey' is null and ValidateIssuerSigningKey is true. + if 'securityToken' is null and ValidateIssuerSigningKey is true. + if 'validationParameters' is null. + + + + Validates the that signed a . + + The that signed the . + The being validated. + required for validation. + The required for issuer and signing key validation. + if 'securityKey' is null and ValidateIssuerSigningKey is true. + if 'securityToken' is null and ValidateIssuerSigningKey is true. + if 'validationParameters' is null. + + + + Given a signing key, when it's derived from a certificate, validates that the certificate is already active and non-expired + + The that signed the . + The that are used to validate the token. + + + + Validates the lifetime of a . + + The 'notBefore' time found in the . + The 'expiration' time found in the . + The being validated. + required for validation. + If 'validationParameters' is null. + If 'expires.HasValue' is false and is true. + If 'notBefore' is > 'expires'. + If 'notBefore' is > DateTime.UtcNow. + If 'expires' is < DateTime.UtcNow. + All time comparisons apply . + + + + Validates if a token has been replayed. + + When does the security token expire. + The being validated. + required for validation. + If 'securityToken' is null or whitespace. + If 'validationParameters' is null or whitespace. + If is not null and expirationTime.HasValue is false. When a TokenReplayCache is set, tokens require an expiration time. + If the 'securityToken' is found in the cache. + If the 'securityToken' could not be added to the . + + + + Validates if a token has been replayed. + + The being validated. + When does the security token expire. + required for validation. + If 'securityToken' is null or whitespace. + If 'validationParameters' is null or whitespace. + If is not null and expirationTime.HasValue is false. When a TokenReplayCache is set, tokens require an expiration time. + If the 'securityToken' is found in the cache. + If the 'securityToken' could not be added to the . + + + + Validates the type of the token. + + The token type or null if it couldn't be resolved (e.g from the 'typ' header for a JWT). + The that is being validated. + required for validation. + If is null. + If is null. + If is null or whitespace and is not null. + If failed to match . + An EXACT match is required. (case sensitive) is used for comparing against . + The actual token type, that may be the same as or a different value if the token type was resolved from a different location. + + + + An designed to construct based on a x509 certificate. + + + + + Designed to construct based on a x509 certificate. + + A + + will be used as the key wrap algorithm + will be used as the data encryption algorithm + + if 'certificate' is null. + + + + Designed to construct based on the x509 certificate, a key wrap algorithm, and data encryption algorithm. + + A + A key wrap algorithm + Data encryption algorithm + if 'certificate' is null. + if 'keyWrapAlgorithm' is null or empty. + if 'dataEncryptionAlgorithm' is null or empty. + + + + Gets the used by this instance. + + + + + An that is backed by a + + + + + Instantiates a using a + + The to use. + if is null. + + + + Instantiates a using a . + + The to use. + The value to set for the KeyId + if is null. + if is null or empty. + + + + Gets the key size. + + + + + Gets the X5t of this . + + + + + Returns the private key from the . + + + + + Gets the public key from the . + + + + + Gets a bool indicating if a private key exists. + + true if it has a private key; otherwise, false. + + + + Gets an enum indicating if a private key exists. + + 'Exists' if private key exists for sure; 'DoesNotExist' if private key doesn't exist for sure; 'Unknown' if we cannot determine. + + + + Gets the . + + + + + Determines whether the can compute a JWK thumbprint. + + true if JWK thumbprint can be computed; otherwise, false. + https://datatracker.ietf.org/doc/html/rfc7638 + + + + Computes a sha256 hash over the . + + A JWK thumbprint. + https://datatracker.ietf.org/doc/html/rfc7638 + + + + Returns a bool indicating if this key is equivalent to another key. + + true if the keys are equal; otherwise, false. + + + + Returns an int hash code. + + An int hash code + + + + Defines the , algorithm and digest for digital signatures. + + + + + Initializes a new instance of the class. + + that will be used for signing. + Algorithm will be set to . + the 'digest method' if needed may be implied from the algorithm. For example implies Sha256. + if 'certificate' is null. + + + + Initializes a new instance of the class. + + A that will be used for signing. + The signature algorithm to apply. + the 'digest method' if needed may be implied from the algorithm. For example implies Sha256. + if 'certificate' is null. + if 'algorithm' is null or empty. + + + + Gets the used by this instance. + + + + diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/lib/net461/Microsoft.IdentityModel.Tokens.xml.meta b/Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/lib/net461/Microsoft.IdentityModel.Tokens.xml.meta new file mode 100644 index 0000000..9247735 --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/lib/net461/Microsoft.IdentityModel.Tokens.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 6f138cdb65bef8443a2036623f251231 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/lib/net462.meta b/Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/lib/net462.meta new file mode 100644 index 0000000..7936306 --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/lib/net462.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0edf8e9f1eed28441847847d781e3b06 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/lib/net462/Microsoft.IdentityModel.Tokens.dll b/Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/lib/net462/Microsoft.IdentityModel.Tokens.dll new file mode 100644 index 0000000..ce67581 --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/lib/net462/Microsoft.IdentityModel.Tokens.dll @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:961325ef5818987f4d3da54a4c14360db4d6b9e80e503604f3d2fb7e388b0b67 +size 282144 diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/lib/net462/Microsoft.IdentityModel.Tokens.dll.meta b/Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/lib/net462/Microsoft.IdentityModel.Tokens.dll.meta new file mode 100644 index 0000000..0c9a874 --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/lib/net462/Microsoft.IdentityModel.Tokens.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: 0f0e729fcdabb744085281b153d90fe3 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/lib/net462/Microsoft.IdentityModel.Tokens.xml b/Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/lib/net462/Microsoft.IdentityModel.Tokens.xml new file mode 100644 index 0000000..904485d --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/lib/net462/Microsoft.IdentityModel.Tokens.xml @@ -0,0 +1,5585 @@ + + + + Microsoft.IdentityModel.Tokens + + + + + This adapter abstracts the 'RSA' differences between versions of .Net targets. + + + + + Calls and + + + + + Base class for a Security Key that contains Asymmetric key material. + + + + + Default constructor + + + + + This must be overridden to get a bool indicating if a private key exists. + + true if it has a private key; otherwise, false. + + + + Gets the status of the private key. + + 'Exists' if private key exists for sure; 'DoesNotExist' if private key doesn't exist for sure; 'Unknown' if we cannot determine. + + + + Enum for the existence of private key + + + + + private key exists for sure + + + + + private key doesn't exist for sure + + + + + unable to determine the existence of private key + + + + + Provides signature and verification operations for Asymmetric Algorithms using a . + + + + + Mapping from algorithm to minimum .KeySize when creating signatures. + + + + + Mapping from algorithm to minimum .KeySize when verifying signatures. + + + + + Initializes a new instance of the class used to create and verify signatures. + + The that will be used for signature operations. + The signature algorithm to apply. + + + + Initializes a new instance of the class used to create and verify signatures. + + The that will be used for signature operations. + The signature algorithm to apply. + If this is required to create signatures then set this to true. + + Creating signatures requires that the has access to a private key. + Verifying signatures (the default), does not require access to the private key. + + is null. + is null or empty. + is true and there is no private key. + If and algorithm pair are not supported. + + willCreateSignatures is true and .KeySize is less than the size corresponding to the given algorithm in . + + + .KeySize is less than the size corresponding to the algorithm in . Note: this is always checked. + + If the runtime is unable to create a suitable cryptographic provider. + + + + Gets the mapping from algorithm to the minimum .KeySize for creating signatures. + + + + + Gets the mapping from algorithm to the minimum .KeySize for verifying signatures. + + + + + Creating a Signature requires the use of a . + This method returns the + that describes the to use when generating a Signature. + + The SignatureAlgorithm in use. + The to use. + if is null or whitespace. + if is not supported. + + + + For testing purposes + + + + + Produces a signature over the 'input' using the and algorithm passed to . + + The bytes to be signed. + A signature over the input. + if is null. + if .Length == 0. + If has been called. + Sign is thread safe. + + + + Validates that an asymmetric key size is of sufficient size for a SignatureAlgorithm. + + The asymmetric key to validate. + Algorithm for which this key will be used. + Whether they key will be used for creating signatures. + if is null. + if is null or empty. + if .KeySize is less than the minimum + acceptable size. + + for minimum signing sizes. + for minimum verifying sizes. + + + + + Verifies that the over using the + and specified by this + are consistent. + + The bytes to generate the signature over. + The value to verify against. + true if signature matches, false otherwise. + is null or has length == 0. + is null or has length == 0. + If has been called. + Verify is thread safe. + + + + + + + Calls to release managed resources. + + true, if called from Dispose(), false, if invoked inside a finalizer. + + + + Encodes and Decodes strings as Base64Url encoding. + + + + + The following functions perform base64url encoding which differs from regular base64 encoding as follows + * padding is skipped so the pad character '=' doesn't have to be percent encoded + * the 62nd and 63rd regular base64 encoding characters ('+' and '/') are replace with ('-' and '_') + The changes make the encoding alphabet file and URL safe. + + string to encode. + Base64Url encoding of the UTF8 bytes. + + + + Converts a subset of an array of 8-bit unsigned integers to its equivalent string representation which is encoded with base-64-url digits. Parameters specify + the subset as an offset in the input array, and the number of elements in the array to convert. + + An array of 8-bit unsigned integers. + An offset in inArray. + The number of elements of inArray to convert. + The string representation in base 64 url encoding of length elements of inArray, starting at position offset. + 'inArray' is null. + offset or length is negative OR offset plus length is greater than the length of inArray. + + + + Converts a subset of an array of 8-bit unsigned integers to its equivalent string representation which is encoded with base-64-url digits. + + An array of 8-bit unsigned integers. + The string representation in base 64 url encoding of length elements of inArray, starting at position offset. + 'inArray' is null. + offset or length is negative OR offset plus length is greater than the length of inArray. + + + + Converts the specified string, base-64-url encoded to utf8 bytes. + base64Url encoded string. + UTF8 bytes. + + + + Decodes the string from Base64UrlEncoded to UTF8. + + string to decode. + UTF8 string. + + + + Base64 encode/decode implementation for as per https://tools.ietf.org/html/rfc4648#section-5. + Uses ArrayPool[T] to minimize memory usage. + + + + + Decodes a Base64UrlEncoded string into a byte array. + + The string to decode. + Decoded bytes. + + + + Decodes a Base64UrlEncoded string into a byte array. + + String to decode. + Index of char in to start decode operation. + Number of chars in to decode. + Decoded bytes. + + + + Decodes a Base64UrlEncoded string and then performs an action. + + String to decode. + Index of char in to start decode operation. + Number of chars in to decode from . + Input parameter to action. + Action to perform on decoded bytes. + Output type of decoding action. + Type of Input parameter to action. + Instance of {T}. + + The buffer for the decode operation uses shared memory pool to avoid allocations. + The length of the rented array of bytes may be larger than the decoded bytes, therefore the action needs to know the actual length to use. + The result of is passed to the action. + + + + + Decodes a Base64UrlEncoded string and then performs an action. + + The string to decode. + Index of char in to start decode operation from. + Count of char in to decode. + Action to perform on decoded bytes. + Return type of operation. + Instance of {T}. + + The buffer for the decode operation uses shared memory pool to avoid allocations. + The length of the rented array of bytes may be larger than the decoded bytes, therefore the action needs to know the actual length to use. + The result of is passed to the action. + + + + + Decodes a Base64UrlEncoded string and then performs an action. + + The string to decode. + Index of char in to start decode operation from. + Count of char in to decode. + Input parameter 1 to action. + Input parameter 2 to action. + Input parameter 3 to action. + Action to perform on decoded bytes. + Output type of decoding action. + Type of Input parameter 1 to action. + Type of Input parameter 2 to action. + Type of Input parameter 3 to action. + Instance of {T}. + + The buffer for the decode operation uses shared memory pool to avoid allocations. + The length of the rented array of bytes may be larger than the decoded bytes, therefore the action needs to know the actual length to use. + The result of is passed to the action. + + + + + Decodes a Base64UrlEncoded string into a byte array. + + String to decode. + Index of char in to start decode operation. + Number of chars in to decode. + byte array to place results. + + Changes from Base64UrlEncoder implementation + 1. Padding is optional. + 2. '+' and '-' are treated the same. + 3. '/' and '_' are treated the same. + + + + + Encode byte array to Base64UrlEncoded string. + + Bytes to encode. + Base64Url encoded string. + + + + Encode byte array to Base64UrlEncoded string. + + Bytes to encode. + Index into to start encode operation. + Number of bytes in to encode, starting from offset. + Base64Url encoded string. + + + + Validates the input string for decode operation. + + String to validate. + Index of char in to start decode operation. + Number of chars in to decode, starting from offset. + Size of the decoded bytes arrays. + + + + Represents a generic metadata configuration which is applicable for both XML and JSON based configurations. + + + + + Gets the issuer specified via the metadata endpoint. + + + + + Gets the that the IdentityProvider indicates are to be used in order to sign tokens. + + + + + Gets or sets the token endpoint specified via the metadata endpoint. + This is the fed:PassiveRequestorEndpoint in WS-Federation, https://docs.oasis-open.org/wsfed/federation/v1.2/os/ws-federation-1.2-spec-os.html#:~:text=fed%3ASecurityTokenServiceType/fed%3APassiveRequestorEndpoint + Or the token_endpoint in the OIDC metadata. + + + + + Gets or sets the token endpoint specified via the metadata endpoint. + This is the fed:SecurityTokenServiceType in WS-Federation, http://docs.oasis-open.org/wsfed/federation/v1.2/os/ws-federation-1.2-spec-os.html#:~:text=fed%3ASecurityTokenSerivceEndpoint + + + + + Gets the that the IdentityProvider indicates are to be used in order to decrypt tokens. + + + + + Comparison class for a . + + + + + Represents a generic configuration manager. + + + + + Gets or sets the that controls how often an automatic metadata refresh should occur. + + + + + 12 hours is the default time interval that afterwards will obtain new configuration. + + + + + 1 hour is the default time interval that a last known good configuration will last for. + + + + + 5 minutes is the default time interval that must pass for to obtain a new configuration. + + + + + The default constructor. + + + + + Constructor. + + The event queue task creation option. + + + + Obtains an updated version of if the appropriate refresh interval has passed. + This method may return a cached version of the configuration. + + CancellationToken + Configuration of type Configuration. + This method on the base class throws a as it is meant to be + overridden by the class that extends it. + + + + Gets all valid last known good configurations. + + A collection of all valid last known good configurations. + + + + The last known good configuration or LKG (a configuration retrieved in the past that we were able to successfully validate a token against). + + + + + The length of time that a last known good configuration is valid for. + + + + + The metadata address to retrieve the configuration from. + + + + + 5 minutes is the minimum value for automatic refresh. can not be set less than this value. + + + + + 1 second is the minimum time interval that must pass for to obtain new configuration. + + + + + The minimum time between retrievals, in the event that a retrieval failed, or that a refresh was explicitly requested. + + + + + Indicates whether the last known good feature should be used, true by default. + + + + + Indicates whether the last known good configuration is still fresh, depends on when the LKG was first used and it's lifetime. + + + + + Indicate that the configuration may be stale (as indicated by failing to process incoming tokens). + + + + + An opaque context used to store work when working with authentication artifacts. + + + + + Instantiates a new with a default activityId. + + + + + Instantiates a new with an activityId. + + + + + A class which contains useful methods for processing collections. + + + + + Checks whether is null or empty. + + The type of the . + The to be checked. + True if is null or empty, false otherwise. + + + + Constants for compression algorithms. + + + + + Compression provider factory for compression and decompression. + + + + + Static constructor that initializes the default . + + + + + Default constructor for . + + + + + Constructor that creates a deep copy of given object. + + to copy from. + + + + Returns the default instance. + + + + + Extensibility point for custom compression support application wide. + + + + + Answers if an algorithm is supported. + + the name of the crypto algorithm. + true if the algorithm is supported, false otherwise. + + + + Returns a for a specific algorithm. + + the decompression algorithm. + a . + + + + Defines the options which can be used to configure the internal LKG configuration cache. + See for more details. + + + + + 10 is the default size limit of the cache (in number of items) for last known good configuration. + + + + + Gets or sets the BaseConfgiurationComparer that to compare . + + + + + The size limit of the cache (in number of items) for last known good configuration. + + + + + The event queue task creation option, default to None instead of LongRunning as LongRunning will always start a task on a new thread instead of a thread from ThreadPool. + + + + + Whether or not to remove expired items. + + + + + Definition of cache for crypto providers + + + + + Returns the cache key to use when looking up an entry into the cache for a + + the to create the key for. + the cache key to use for finding a . + + + + Returns the 'key' that will be used to find a crypto provider in this cache. + + the key that is used to by the crypto provider. + the algorithm that is used by the crypto provider. + the typeof the crypto provider obtained by calling object.GetType(). + the cache key to use for finding a crypto provider. + + + + Trys to adds a to this cache. + + to cache. + true if the was added, false if the cache already contained the + + + + Trys to find a in this cache. + + the key that is used to by the crypto provider. + the algorithm that is used by the crypto provider. + the typeof the crypto provider obtained by calling object.GetType(). + a bool to indicate if the will be used to sign. + the if found. + true if a was found, false otherwise. + + + + Trys to remove a from this cache. + + to remove. + true if the was removed, false if the was not found. + + + + Specifies the CryptoProviderCacheOptions which can be used to configure the internal cryptoprovider cache. + We are using our own simple LRU caching implementation across all targets. + See for more details. + + + + + Default value for . + + + + + Gets or sets the size of the cache (in number of items). + 20% of the cache will be evicted whenever the cache gets to 95% of this size. + Items will be evicted from least recently used to most recently used. + + + + + Creates cryptographic operators by specifying a 's and algorithms. + + + + + Returns the default instance. + + + + + Gets or sets the default value for caching of 's. + + + + + Gets or sets the maximum size of the object pool used by the SignatureProvider that are used for crypto objects. + + + + + Static constructor that initializes the default . + + + + + Default constructor for . + + + + + Initializes an instance of a . + + + The cache to use for caching CryptoProviders + + + + + Constructor that creates a deep copy of given object. + + to copy from. + + + + Gets the + + + + + Extensibility point for creating custom cryptographic operators. + + By default, if set, will be called before creating cryptographic operators. + If true is returned, then will be called. The will throw if the + Cryptographic operator returned is not of the correct type. + + + + Gets or sets a bool controlling if should be cached. + + + + + Gets or sets the maximum size of the object pool used by the SignatureProvider that are used for crypto objects. + + + + + Creates an instance of for a specific <SecurityKey, Algorithm>. + + the to use. + the algorithm to use. + thrown if is null. + thrown if is null or empty. + thrown if and algorithm pair are not supported. + thrown if returns a type that is not assignable from . + + If is set and returns true. + is called to obtain the . + + When finished with the call . + + an instance of + + + + Creates an instance of for a specific <SecurityKey, Algorithm>. + + the to use. + the algorithm to use. + thrown if is null. + thrown if is null or empty. + thrown if and algorithm pair are not supported. + thrown if returns a type not assignable from . + + If is set and returns true. + is called to obtain the . + + When finished with the call . + + an instance of + + + + Creates an instance of for a specific <SecurityKey, Algorithm>. + + the to use. + the algorithm to use. + thrown if is null. + thrown if is null or empty. + thrown if and algorithm pair are not supported. + thrown if returns a type that is not assignable from . + + If is set and returns true. + is called to obtain the . + + When finished with the call . + + an instance of + + + + Creates a that creates a signature with the algorithm and . + + the to use for signing. + the algorithm to use for signing. + thrown if is null. + thrown if is null or empty. + thrown if is too small. + thrown if is not assignable from or . + thrown if the key / algorithm is not supported. + thrown if returns a type that is not assignable from . + + AsymmetricSignatureProviders require access to a PrivateKey for Signing. + When finished with the call . + If is set and returns true. + is called to obtain the . + + + A that can be used to create a signature using the and algorithm. + + + + Creates a that creates a signature with the algorithm and . + + the to use for signing. + the algorithm to use for signing. + indicates if the should be cached for reuse. + thrown if is null. + thrown if is null or empty. + thrown if is too small. + thrown if is not assignable from or . + thrown if the key / algorithm is not supported. + thrown if returns a type that is not assignable from . + + AsymmetricSignatureProviders require access to a PrivateKey for Signing. + When finished with the call . + If is set and returns true. + is called to obtain the . + + + A that can be used to create a signature using the and algorithm. + + + + Creates a that supports the and algorithm. + + The to use for signature verification. + The algorithm to use for verifying. + thrown if is null. + thrown if is null or empty. + thrown if is too small. + thrown if is not assignable from or . + thrown if the key / algorithm is not supported. + thrown if returns a type that is not assignable from . + When finished with the call . + If is set and returns true. + is called to obtain the . + + + A that can be used to validate a signature using the and algorithm. + + + + Creates a that supports the and algorithm. + + The to use for signature verification. + The algorithm to use for verifying. + should the be cached. + thrown if is null. + thrown if is null or empty. + thrown if is too small. + thrown if is not assignable from or . + thrown if the key / algorithm is not supported. + thrown if returns a type that is not assignable from . + When finished with the call . + If is set and returns true. + is called to obtain the . + + + A that can be used to validate a signature using the and algorithm. + + + + Creates a for a specific algorithm. + + the name of the hash algorithm to create. + thrown if is null or empty. + thrown if returns a type that is not assignable from . + thrown if is not supported. + When finished with the call . + If is set and returns true. + is called to obtain the . + + + A . + + + + Creates a for a specific algorithm. + + the name of the hash algorithm to create. + thrown if is null or empty. + thrown if returns a type that is not assignable from . + thrown if is not supported. + When finished with the call . + If is set and returns true. + is called to obtain the . + + + A . + + + + Returns a for a specific algorithm. + + bytes to use to create the Keyed Hash. + the name of the keyed hash algorithm to create. + thrown if is null. + thrown if is null or empty. + thrown if returns a type that is not assignable from . + is not supported. + When finished with the call . + If is set and returns true. + is called to obtain the . + + + A . + + + + For some security key types, in some runtimes, it's not possible to extract public key material and create an . + In these cases, will be an empty string, and these keys should not be cached. + + to be examined. + True if should be cached, false otherwise. + + + + Checks if an algorithm is supported. + + the name of the Hash algorithm. + Only considers known Hash algorithms. + true if: + + If is set and returns true. + + The algorithm is supported. + + + + + + Checks if the algorithm and is supported. + + the security algorithm to apply. + the . + Algorithms are supported for specific key types. + For example: + and will return true. + and will return false. + + true if: + + If is set and returns true. + + The algorithm / key pair is supported. + + + + + + When finished with a call this method for cleanup. The default behavior is to call + + to be released. + thrown if is null. + + + + When finished with a call this method for cleanup."/> + + to be released. + thrown if is null. + + + + When finished with a call this method for cleanup."/> + + to be released. + thrown if is null. + + + + When finished with a call this method for cleanup. The default behavior is to call + + to be released. + thrown if is null. + + + + Helper class for adding DateTimes and Timespans. + + + + + Add a DateTime and a TimeSpan. + The maximum time is DateTime.MaxTime. It is not an error if time + timespan > MaxTime. + Just return MaxTime. + + Initial value. + to add. + as the sum of time and timespan. + + + + Gets the Maximum value for a DateTime specifying kind. + + DateTimeKind to use. + DateTime of specified kind. + + + + Gets the Minimum value for a DateTime specifying kind. + + DateTimeKind to use. + DateTime of specified kind. + + + + Ensures that DataTime is UTC. + + to convert. + + + + + Ensures that DateTime is UTC. + + to convert. + + + + + A compression provider that supports compression and decompression using the algorithm. + + + + + Initializes a new instance of the class used to compress and decompress used the algorithm. + + + + + Initializes a new instance of the class used to compress and decompress used the algorithm. + The compression level to use when compressing. + + + + + Gets the compression algorithm. + + + + + Specifies whether compression should emphasize speed or compression size. + Set to by default. + + + + + Decompress the value using DEFLATE algorithm. + + the bytes to decompress. + the decompressed bytes. + + + + Compress the value using the DEFLATE algorithm. + + the bytes to compress. + the compressed bytes. + + + + Answers if a compression algorithm is supported. + + the name of the compression algorithm. + true if the compression algorithm is supported, false otherwise. + + + + This adapter abstracts the differences between versions of .Net targets. + + + + + Initializes a new instance of the class. + + + creation is not supported by some platforms. + For more details, see https://aka.ms/IdentityModel/create-ecdsa. + + + + + Creates an ECDsa object using the and . + + + + + Creates an ECDsa object using the and . + 'ECParameters' structure is available in .NET Framework 4.7+, .NET Standard 1.6+, and .NET Core 1.0+. + This method is supported only on Windows as other platforms don't support operations with . + + + + + Returns the size of key in bytes + + Represents ecdsa curve -P256, P384, P521 + Size of the key in bytes + + + + Magic numbers identifying ECDSA blob types + + + + + Returns the magic value representing the curve corresponding to the curve id. + + Represents ecdsa curve -P256, P384, P512 + Whether the provider will create signatures or not + Uint representing the magic number + + + + Tests if user's runtime platform supports operations using . + + True if operations using are supported on user's runtime platform, false otherwise. + + + + Represents a ECDsa security key. + + + + + Returns a new instance of . + + + + + + instance used to initialize the key. + + + + + Gets a bool indicating if a private key exists. + + true if it has a private key; otherwise, false. + + + + Gets an enum indicating if a private key exists. + + 'Exists' if private key exists for sure; 'DoesNotExist' if private key doesn't exist for sure; 'Unknown' if we cannot determine. + + + + Gets key size. + + + + + Determines whether the can compute a JWK thumbprint. + + true if JWK thumbprint can be computed; otherwise, false. + https://datatracker.ietf.org/doc/html/rfc7638 + + + + Computes a sha256 hash over the . + + A JWK thumbprint. + https://datatracker.ietf.org/doc/html/rfc7638 + + + + Collection of text encoding related helper methods. + + + + + Obtains bytes from a string using the Encoding and then performs an action. + + String to process. + Encoding used to obtain bytes. + Operation to invoke with result which is byte array and length of useful data in array with offset as 0. + Return type of operation. + Instance of {T}. + + The encoding operation uses shared memory pool to avoid allocations. + The length of the rented array of bytes may be larger than the decoded bytes, therefore the action needs to know the actual length to use. + is passed to the action. + + + + + Obtains bytes from a string using the Encoding and then performs an action. + + String to process. + Index to start from in . + Length of characters to operate in from . + Encoding used to obtain bytes. + Operation to invoke with result which is byte array and length of useful data in array with offset as 0. + Return type of operation. + Instance of {T}. + + The encoding operation uses shared memory pool to avoid allocations. + The length of the rented array of bytes may be larger than the decoded bytes, therefore the action needs to know the actual length to use. + is passed to the action. + + + + + Obtains bytes from a string using the Encoding and then performs an action. + + String to process. + Index to start from in . + Length of characters to operate in from . + Encoding used to obtain bytes. + Input parameter 1 to action. + Input parameter 2 to action. + Input parameter 3 to action. + Action to perform with bytes. + Return type of operation. + Type of Input parameter 1 to action. + Type of Input parameter 2 to action. + Type of Input parameter 3 to action. + Instance of {T}. + + The encoding operation uses shared memory pool to avoid allocations. + The length of the rented array of bytes may be larger than the decoded bytes, therefore the action needs to know the actual length to use. + is passed to the action. + + + + + Encodes the string using given Encoding, and invokes the operation with the result. + + Return type of operation. + Input parameter to operation. + String to process. + Encoding used to obtain bytes. + Additional operation parameter. + Operation to invoke with result which is byte array and length of useful data in array with offset as 0. + Result of operation. + + The encoding operation uses shared memory pool to avoid allocations. + The length of the rented array of bytes may be larger than the decoded bytes, therefore the action needs to know the actual length to use. + is passed to the action. + + + + + Obtains bytes from a string using the Encoding and then performs an action. + + String to process. + Index to start from in . + Length of characters to operate in from . + Encoding used to obtain bytes. + Additional operation parameter. + Operation to invoke with result which is byte array and length of useful data in array with offset as 0. + Return type of operation. + Input parameter to operation. + Instance of {T}. + + The encoding operation uses shared memory pool to avoid allocations. + The length of the rented array of bytes may be larger than the decoded bytes, therefore the action needs to know the actual length to use. + is passed to the action. + + + + + A class for properties that are used for token encryption. + + + + + Initializes a new instance of the class. + + . + A key wrap algorithm to use when encrypting a session key. + Data encryption algorithm to apply. + if 'certificate' is null. + if 'alg' is null or empty. + if 'enc' is null or empty. + + + + Initializes a new instance of the class. + + to use when encrypting a session key. + A key wrap algorithm to use when encrypting a session key. + Data encryption algorithm to apply. + if 'key' is null. + if 'alg' is null or empty. + if 'enc' is null or empty. + + + + Initializes a new instance of the class. + + Used in scenarios when a key represents a 'shared' symmetric key. + For example, SAML 2.0 Assertion will be encrypted using a provided symmetric key + which won't be serialized to a SAML token. + + to apply. + Data encryption algorithm to apply. + If the is not a . + if 'enc' is null or empty. + + + + Gets the key wrap algorithm used for session key encryption. + + + + + Gets the data encryption algorithm. + + + + + Public key used in Key Agreement Algorithms + + + + + Users can override the default with this property. This factory will be used for creating encryption providers. + + + + + Gets or sets a bool that controls if the encrypted token creation will set default 'cty' if not specified. + + Applies to only JWT tokens. + + + + + + Gets the used for encryption. + + + + + Provides authenticated encryption and decryption services. + + + + + Initializes a new instance of the class used for encryption and decryption. + + The that will be used for crypto operations. + The encryption algorithm to apply. + 'key' is null. + 'algorithm' is null or whitespace. + key size is not large enough. + 'algorithm' is not supported. + a symmetricSignatureProvider is not created. + + + + Gets the encryption algorithm that is being used. + + + + + Gets or sets a user context for a . + + This is null by default. This can be used by applications for extensibility scenarios. + + + + Gets the that is being used. + + + + + Encrypts the 'plaintext' + + the data to be encrypted. + will be combined with iv and ciphertext to create an authenticationtag. + containing ciphertext, iv, authenticationtag. + plaintext is null or empty. + authenticationData is null or empty. + AES crypto operation threw. See inner exception for details. + + + + Encrypts the 'plaintext' + + the data to be encrypted. + will be combined with iv and ciphertext to create an authenticationtag. + initialization vector for encryption. + containing ciphertext, iv, authenticationtag. + is null or empty. + is null or empty. + Thrown if the AES crypto operation threw. See inner exception for details. + Thrown if the internal is disposed. + + + + Decrypts ciphertext into plaintext + + the encrypted text to decrypt. + the authenticateData that is used in verification. + the initialization vector used when creating the ciphertext. + the authenticationTag that was created during the encyption. + decrypted ciphertext + is null or empty. + is null or empty. + is null or empty. + is null or empty. + Thrown if the signature over the authenticationTag fails to verify. + Thrown if the AES crypto operation threw. See inner exception. + Thrown if the internal is disposed. + + + + Calls and + + + + + Releases managed resources. + + true, if called from Dispose(), false, if invoked inside a finalizer. + + + + Checks if an 'key, algorithm' pair is supported + + the + the algorithm to check. + true if 'key, algorithm' pair is supported. + + + + The algorithm parameter logically defines a HMAC algorithm. + This method returns the HMAC to use. + + + + + + + Called to obtain the byte[] needed to create a + + that will be used to obtain the byte[]. + [] that is used to populated the KeyedHashAlgorithm. + if is null. + if a byte[] can not be obtained from SecurityKey. + and are supported. + For a .Key is returned + For a Base64UrlEncoder.DecodeBytes is called with if == JsonWebAlgorithmsKeyTypes.Octet + + + + + Checks that the key has sufficient length + + that contains bytes. + the algorithm to apply. + if is null. + if is null or empty. + if is not a supported algorithm. + + + + Contains the results of operation. + + + + + Initializes a new + + the used during + protected text. + the initialization vector used. + the bytes that need be passed to . + + + + Gets the . + + + + + Gets the Ciphertext. + + + + + Gets the initialization vector. + + + + + Gets the authentication tag + + + + + Provides Wrap key and Unwrap key services. + + + + + Gets the KeyWrap algorithm that is being used. + + + + + Gets or sets a user context for a . + + This is null by default. This can be used by runtimes or for extensibility scenarios. + + + + Gets the that is being used. + + + + + Calls and + + + + + Can be over written in descendants to dispose of internal components. + + true, if called from Dispose(), false, if invoked inside a finalizer + + + + Unwrap a key. + + key to unwrap. + Unwrapped key. + + + + Wrap a key. + + the key to be wrapped + wrapped key. + + + + Provides RSA Wrap key and Unwrap key services. + + + + + Initializes a new instance of used for wrapping and un-wrappping keys. + These keys are usually symmetric session keys that are wrapped using the recipients public key. + The that will be used for cryptographic operations. + The KeyWrap algorithm to apply. + Whether this is required to un-wrap keys. If true, the private key is required. + 'key' is null. + 'algorithm' is null. + The key size doesn't match the algorithm. + If and algorithm pair are not supported. + Failed to create RSA algorithm with provided key and algorithm. + + + + + Gets the KeyWrap algorithm that is being used. + + + + + Gets or sets a user context for a . + + This is null by default. This is for use by the application and not used by this SDK. + + + + Gets the that is being used. + + + + + Disposes of internal components. + + true, if called from Dispose(), false, if invoked inside a finalizer. + + + + Checks if an algorithm is supported. + + The that will be used for crypto operations. + The KeyWrap algorithm to apply. + true if the algorithm is supported; otherwise, false. + + + + Unwrap a key using RSA decryption. + + the bytes to unwrap. + Unwrapped key + 'keyBytes' is null or length == 0. + If has been called. + Failed to unwrap the wrappedKey. + If the internal RSA algorithm is null. + + + + Wrap a key using RSA encryption. + + the key to be wrapped + A wrapped key + 'keyBytes' is null or has length == 0. + If has been called. + Failed to wrap the 'keyBytes'. + If the internal RSA algorithm is null. + + + + Provides Wrap key and Unwrap key services. + + + + + Initializes a new instance of the class used for wrap key and unwrap key. + The that will be used for crypto operations. + The KeyWrap algorithm to apply. + 'key' is null. + 'algorithm' is null. + If and algorithm pair are not supported. + The cannot be converted to byte array + The keysize doesn't match the algorithm. + Failed to create symmetric algorithm with provided key and algorithm. + + + + + Gets the KeyWrap algorithm that is being used. + + + + + Gets or sets a user context for a . + + This is null by default. This can be used by runtimes or for extensibility scenarios. + + + + Gets the that is being used. + + + + + Disposes of internal components. + + true, if called from Dispose(), false, if invoked inside a finalizer. + + + + Returns the . + + + The cannot be converted to byte array + The keysize doesn't match the algorithm. + Failed to create symmetric algorithm with provided key and algorithm. + + + + Answers if an algorithm is supported + + the + the algorithm to use + true if the algorithm is supported; otherwise, false. + + + + Unwrap a key using Symmetric decryption. + + bytes to unwrap + Unwraped key + 'keyBytes' is null or length == 0. + 'keyBytes' is not a multiple of 8. + If has been called. + Failed to unwrap the wrappedKey. + + + + Wrap a key using Symmetric encryption. + + the key to be wrapped + The wrapped key result + 'keyBytes' is null or has length 0. + 'keyBytes' is not a multiple of 8. + If has been called. + Failed to wrap 'keyBytes'. + + + + Returns the absolute DateTime or the Seconds since Unix Epoch, where Epoch is UTC 1970-01-01T0:0:0Z. + + + + + DateTime as UTV for UnixEpoch + + + + + Per JWT spec: + Gets the number of seconds from 1970-01-01T0:0:0Z as measured in UTC until the desired date/time. + + The DateTime to convert to seconds. + if dateTimeUtc less than UnixEpoch, return 0 + the number of seconds since Unix Epoch. + + + + Creates a DateTime from epoch time. + + Number of seconds. + The DateTime in UTC. + + + + This is an LRU cache implementation that relies on an event queue rather than locking to achieve thread safety. + This approach has been decided on in order to optimize the performance of the get and set operations on the cache. + This cache contains a doubly linked list in order to maintain LRU order, as well as a dictionary (map) to keep track of + keys and expiration times. The linked list (a structure which is not thread-safe) is NEVER modified directly inside + an API call (e.g. get, set, remove); it is only ever modified sequentially by a background thread. On the other hand, + the map is a which may be modified directly inside an API call or + through eventual processing of the event queue. This implementation relies on the principle of 'eventual consistency': + though the map and it's corresponding linked list may be out of sync at any given point in time, they will eventually line up. + See here for more details: + https://aka.ms/identitymodel/caching + + The key type to be used by the cache. + The value type to be used by the cache + + + + Constructor. + + The capacity of the cache, used to determine if experiencing overflow. + The event queue task creation option, default to None instead of LongRunning as LongRunning will always start a task on a new thread instead of ThreadPool. + The equality comparison implementation to be used by the map when comparing keys. + Whether or not to remove expired items. + The period to wait to remove expired items, in seconds. + Whether or not to maintain items in a LRU fashion, moving to front of list when accessed in the cache. + + + + Occurs when the application is ready to exit. + + The sender of the event. + The event argument. + + + + Occurs when an AppDomain is about to be unloaded. + + The sender of the event. + The event argument. + + + + Stop the event queue task. + This is provided mainly for users who have unit tests that check for running task(s) to stop the task at the end of each test. + + + + + Stop the event queue task immediately if it is running. This allows the task/thread to terminate gracefully. + Currently there is no unmanaged resource, if any is added in the future it should be disposed of in this method. + + + + + This is the delegate for the event queue task. + + + + + Remove all expired cache items from _doubleLinkedList and _map. + + Number of items removed. + + + + Remove all expired cache items from the _map ONLY. This is called for the non-LRU (_maintainLRU = false) scenaro. + The enumerator returned from the dictionary is safe to use concurrently with reads and writes to the dictionary, according to the MS document. + + Number of items removed. + + + + Remove items from the LinkedList by the desired compaction percentage. + This should be a private method. + + + + + Remove items from the Dictionary by the desired compaction percentage. + Since _map does not have LRU order, items are simply removed from using FirstOrDefault(). + + + + + When the cache is at _maxCapacityPercentage, it needs to be compacted by _compactionPercentage. + This method calculates the new size of the cache after being compacted. + + The new target cache size after compaction. + + + + This is the method that determines the end time for the event queue task. + The goal is to be able to track the incoming events and predict how long the task should run in order to + avoid a long running task and reduce the overhead costs of restarting tasks. + For example, maybe we can track the last three events' time and set the _eventQueueRunDurationInSeconds = 2 * average_time_between_events. + Note: tasks are based on thread pool so the overhead should not be huge but we should still try to minimize it. + + the time when the event queue task should end + + + + This method is called after an item is added to the event queue. It will start the event queue task if one is not already running (_eventQueueTaskState != EventQueueTaskRunning). + Using CompareExchange to set the _eventQueueTaskState prevents multiple tasks from being started. + + + + Each time a node gets accessed, it gets moved to the beginning (head) of the list if the _maintainLRU == true + + + Removes a particular key from the cache. + + + + FOR TESTING ONLY. + + + + + + FOR TESTING ONLY. + + + + + FOR TESTING ONLY. + + + + + FOR TESTING ONLY. + + + + + + FOR TESTING ONLY. + + + + + FOR TESTING PURPOSES ONLY. + This is for tests to verify all tasks exit at the end of tests if the queue is empty. + + + + + FOR TESTING PURPOSES ONLY. + + + + + Throw this exception when a received has invalid arguments. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class with a specified error message + and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The that is the cause of the current exception, or a null reference if no inner exception is specified. + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + Thrown when JWE compression fails. + + + + + Initializes a new instance of + + + + + Initializes a new instance of + + + + + Initializes a new instance of + + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + Thrown when JWE decompression fails. + + + + + Initializes a new instance of + + + + + Initializes a new instance of + + + + + Initializes a new instance of + + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + Represents a security token exception when decryption failed. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class with a specified error message + and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The that is the cause of the current exception, or a null reference if no inner exception is specified. + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + Represents a security token exception when encryption failed. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class with a specified error message + and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The that is the cause of the current exception, or a null reference if no inner exception is specified. + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + This exception is thrown when a security token contained a key identifier but the key was not found by the runtime + when decrypting a token. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + A that represents the root cause of the exception. + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + Represents a security token exception. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class with a specified error message + and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The that is the cause of the current exception, or a null reference if no inner exception is specified. + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + Throw this exception when a received Security Token has expiration time in the past. + + + + + Gets or sets the Expires value that created the validation exception. This value is always in UTC. + + + + + Initializes a new instance of + + + + + Initializes a new instance of + + + + + Initializes a new instance of + + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + + + + This exception is thrown when a cryptographic algorithm is invalid. + + + + + Gets or sets the invalid algorithm that created the validation exception. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Additional information to be included in the exception and displayed to user. + + + + Initializes a new instance of the class. + + Additional information to be included in the exception and displayed to user. + A that represents the root cause of the exception. + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + + + + This exception is thrown when 'audience' of a token was not valid. + + + + + Gets or sets the InvalidAudience that created the validation exception. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + A that represents the root cause of the exception. + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + + + + This exception is thrown when 'issuer' of a token was not valid. + + + + + Gets or sets the InvalidIssuer that created the validation exception. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + A that represents the root cause of the exception. + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + + + + This exception is thrown when 'lifetime' of a token was not valid. + + + + + Gets or sets the NotBefore value that created the validation exception. This value is always in UTC. + + + + + Gets or sets the Expires value that created the validation exception. This value is always in UTC. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + A that represents the root cause of the exception. + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + + + + This exception is thrown when 'signature' of a token was not valid. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + A that represents the root cause of the exception. + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + Throw this exception when a received Security Token has an invalid issuer signing key. + + + + + Gets or sets the SigningKey that was found invalid. + + + + + Initializes a new instance of + + + + + Initializes a new instance of + + + + + Initializes a new instance of + + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + This exception is thrown when the token type ('typ' header claim) of a JWT token is invalid. + + + + + Gets or sets the invalid type that created the validation exception. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Additional information to be included in the exception and displayed to user. + + + + Initializes a new instance of the class. + + Additional information to be included in the exception and displayed to user. + A that represents the root cause of the exception. + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + + + + Represents a key wrap exception when encryption failed. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class with a specified error message + and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The that is the cause of the current exception, or a null reference if no inner exception is specified. + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + Represents a exception when the token is malformed. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class with a specified error message + and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The that is the cause of the current exception, or a null reference if no inner exception is specified. + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + This exception is thrown when a security is missing an ExpirationTime. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + A that represents the root cause of the exception. + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + Throw this exception when a received Security token has an effective time + in the future. + + + + + Gets or sets the NotBefore value that created the validation exception. This value is always in UTC. + + + + + Initializes a new instance of + + + + + Initializes a new instance of + + + + + Initializes a new instance of + + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + + + + This exception is thrown when an add to the TokenReplayCache fails. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + A that represents the root cause of the exception. + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + Throw this exception when a received Security Token has been replayed. + + + + + Initializes a new instance of + + + + + Initializes a new instance of + + + + + Initializes a new instance of + + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + This exception is thrown when a security token contained a key identifier but the key was not found by the runtime. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + A that represents the root cause of the exception. + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + This exception is thrown when a security token contained a key identifier but the key was not found by the runtime + and when validation errors exist over the security token. This exception is not intended to be used as a signal + to refresh keys. + + + This exception type is now considered obsolete and will be removed in the next major version (7.0.0). + + + + + Indicates the type of the validation failure. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The validation failures. + Addtional information to be included in the exception and displayed to user. + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + A that represents the root cause of the exception. + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + + + + Represents a security token validation exception. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class with a specified error message + and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The that is the cause of the current exception, or a null reference if no inner exception is specified. + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + The reason for being unable to validate + + + + + Indicates no validation failures + + + + + Indicates that the lifetime was invalid + + + + + Indicates that the issuer was invalid + + + + + Compression provider interface. + + + + + Gets the compression algorithm. + + + + + Called to determine if an algorithm is supported. + + the algorithm that defines the compression method. + true if supported + + + + Decompress. + + the value to decompress. + + + + Compress. + + the value to decompress. + + + + Provides extensibility for cryptographic operators. + If custom operators are needed for then can be set to + return these operators. will be before each creation. + + + + + Called to determine if a cryptographic operation is supported. + + the algorithm that defines the cryptographic operator. + the arguments required by the cryptographic operator. May be null. + true if supported + + + + returns a cryptographic operator that supports the algorithm. + + the algorithm that defines the cryptographic operator. + the arguments required by the cryptographic operator. May be null. + call when finished with the object. + + + + called to release the object returned from + + the object returned from . + + + + Defines a cache for crypto providers. + Current support is limited to only. + + + + + Creates a new instance of using the default . + + + + + Creates a new instance of using the specified . + + The options used to configure the . + + + + Creates a new instance of using the specified . + + The options used to configure the . + Options used to create the event queue thread. + The time used in ms for the timeout interval of the event queue. Defaults to 500 ms. + + + + Returns the cache key to use when looking up an entry into the cache for a + + the to create the key for. + if signatureProvider is null. + the cache key to use for finding a . + + + + Returns the 'key' that will be used to find a crypto provider in this cache. + + the key that is used to by the crypto provider. + the algorithm that is used by the crypto provider. + the typeof the crypto provider obtained by calling object.GetType(). + if securityKey is null. + if algorithm is null or empty string. + if typeofProvider is null or empty string. + the cache key to use for finding a crypto provider. + + + + Trys to adds a to this cache. + + to cache. + if signatureProvider is null. + + true if the was added, false if the cache already contained the or if should not be cached. + + if the is added will be set to 'this'. + + + + Trys to find a to this cache. + + the key that is used to by the crypto provider. + the algorithm that is used by the crypto provider. + the typeof the crypto provider obtained by calling object.GetType(). + a bool to indicate if the will be used to sign. + the if found. + if securityKey is null. + if algorithm is null or empty string. + if typeofProvider is null or empty string. + true if a was found, false otherwise. + + + + Trys to remove a from this cache. + + to remove. + if signatureProvider is null. + true if the was removed, false if the was not found. + if the is removed will be set to null. + + + + Calls and + Note: the EventBasedLRUCache is no longer being disposed of, but since this is a public class and can be used as base class of + custom cache implementations, we need to keep it as some implementations may override Dispose(). + + + + + If is true, this method disposes of and . + + True if called from the method, false otherwise. + + + + FOR TESTING ONLY. + + + + + FOR TESTING ONLY. + + + + + FOR TESTING ONLY. + + + + + FOR TESTING ONLY. + + + + + FOR TESTING ONLY. + + + + + FOR TESTING ONLY. + + + + + FOR TESTING PURPOSES ONLY. + + + + + Validators meant to be kept internal + + + + + Called after signature validation has failed to avoid a metadata refresh + + + + + ISecurityTokenValidator + + + + + Returns true if the token can be read, false otherwise. + + + + + Returns true if a token can be validated. + + + + + Gets and sets the maximum size in bytes, that a will be processed. + + + + + Validates a token passed as a string using + + + + + Interface that defines a simple cache for tacking replaying of security tokens. + + + + + Try to add a securityToken. + + the security token to add. + the time when security token expires. + true if the security token was successfully added. + + + + Try to find securityToken + + the security token to find. + true if the security token is found. + + + + Constants for JsonWebAlgorithms "kty" Key Type (sec 6.1) + https://datatracker.ietf.org/doc/html/rfc7518#section-6.1 + + + + + Represents a JSON Web Key as defined in https://datatracker.ietf.org/doc/html/rfc7517. + + + + + Initializes an new instance of . + + + + + Returns a new instance of . + + A string that contains JSON Web Key parameters in JSON format. + + If 'json' is null or empty. + If 'json' fails to deserialize. + + + + Initializes an new instance of from a json string. + + A string that contains JSON Web Key parameters in JSON format. + If 'json' is null or empty. + If 'json' fails to deserialize. + + + + If this was converted to or from a SecurityKey, this field will be set. + + + + + If this was failed converted to a SecurityKey, this field will be set. + + + + + When deserializing from JSON any properties that are not defined will be placed here. + + + + + Gets or sets the 'alg' (KeyType). + + + + + Gets or sets the 'crv' (ECC - Curve). + + + + + Gets or sets the 'd' (ECC - Private Key OR RSA - Private Exponent). + + Value is formated as: Base64urlUInt + + + + Gets or sets the 'dp' (RSA - First Factor CRT Exponent). + + Value is formated as: Base64urlUInt + + + + Gets or sets the 'dq' (RSA - Second Factor CRT Exponent). + + Value is formated as: Base64urlUInt + + + + Gets or sets the 'e' (RSA - Exponent). + + + + + Gets or sets the 'k' (Symmetric - Key Value). + + Base64urlEncoding + + + + Gets the key id of this . + + + + + Gets the 'key_ops' (Key Operations). + + + + + Gets or sets the 'kid' (Key ID).. + + + + + Gets or sets the 'kty' (Key Type). + + + + + Gets or sets the 'n' (RSA - Modulus). + + Value is formatted as: Base64urlEncoding + + + + Gets or sets the 'oth' (RSA - Other Primes Info). + + + + + Gets or sets the 'p' (RSA - First Prime Factor).. + + Value is formatted as: Base64urlUInt + + + + Gets or sets the 'q' (RSA - Second Prime Factor).. + + Value is formatted as: Base64urlUInt + + + + Gets or sets the 'qi' (RSA - First CRT Coefficient).. + + Value is formatted as: Base64urlUInt + + + + Gets or sets the 'use' (Public Key Use).. + + + + + Gets or sets the 'x' (ECC - X Coordinate).. + + Value is formatted as: Base64urlEncoding + + + + Gets the 'x5c' collection (X.509 Certificate Chain).. + + + + + Gets or sets the 'x5t' (X.509 Certificate SHA-1 thumbprint).. + + + + + Gets or sets the 'x5t#S256' (X.509 Certificate SHA-256 thumbprint).. + + + + + Gets or sets the 'x5u' (X.509 URL).. + + + + + Gets or sets the 'y' (ECC - Y Coordinate).. + + Value is formatted as: Base64urlEncoding + + + + Gets the key size of . + + + + + Gets a bool indicating if a private key exists. + + true if it has a private key; otherwise, false. + + + + Determines whether the can compute a JWK thumbprint. + + true if JWK thumbprint can be computed; otherwise, false. + https://datatracker.ietf.org/doc/html/rfc7638 + + + + Computes the JWK thumprint per spec: https://datatracker.ietf.org/doc/html/rfc7638 />. + + A the JWK thumbprint. + + + + Creates a JsonWebKey representation of an asymmetric public key. + + JsonWebKey representation of an asymmetric public key. + https://datatracker.ietf.org/doc/html/rfc7800#section-3.2 + + + + Returns the formatted string: GetType(), Use: 'value', Kid: 'value', Kty: 'value', InternalId: 'value'. + + string + + + + Converts a into a + Supports: converting to a from one of: , , and . + + + + + Converts a into a + + a to convert. + a + if is null. + if is not a supported type. + Supports: , and . + + + + Converts a into a + + a to convert. + a + if is null. + + + + Converts a into a + + a to convert. + a + if is null. + + + + Converts a into a . + + a to convert. + + true to represent the as an , + false to represent the as an , using the "x5c" parameter. + + a . + if is null. + + + + Converts a into a + + a to convert. + a + if is null. + + + + Constants for JsonWebKey Elliptical Curve Types + https://datatracker.ietf.org/doc/html/rfc7518#section-6.2.1.1 + + + + + JsonWebKey parameter names + see: https://datatracker.ietf.org/doc/html/rfc7517 + + + + + JsonWebKey parameter names as UTF8 bytes + Used by UTF8JsonReader/Writer for performance gains. + + + + + Contains a collection of that can be populated from a json string. + + provides support for https://datatracker.ietf.org/doc/html/rfc7517. + + + + Returns a new instance of . + + a string that contains JSON Web Key parameters in JSON format. + + If 'json' is null or empty. + If 'json' fails to deserialize. + + + + Initializes an new instance of . + + + + + Initializes an new instance of from a json string. + + a json string containing values. + If 'json' is null or empty. + If 'json' fails to deserialize. + + + + When deserializing from JSON any properties that are not defined will be placed here. + + + + + Gets the . + + + + + Default value for the flag that controls whether unresolved JsonWebKeys will be included in the resulting collection of method. + + + + + Flag that controls whether unresolved JsonWebKeys will be included in the resulting collection of method. + + + + + Returns the JsonWebKeys as a . + + + To include unresolved JsonWebKeys in the resulting collection, set to false. + + + + + Names for Json Web Key Set Values + + + + + Constants for JsonWebKeyUse (sec 4.2) + https://datatracker.ietf.org/doc/html/rfc7517#section-4.2 + + + + + Creates a JsonException that provides information on what went wrong + + the . + the type the reader was expecting to find. + the name of the type being read. + the property name being read. + inner exception if any. + + + + + This method is called when deserializing a property value as an object. + Normally we put the object into a Dictionary[string, object]. + + the + the property name that is being read + the type that is being deserialized + if true reader.Read() will be called. + + + + + Writes an 'object' as a JsonProperty. + This was written to support what IdentityModel6x supported and is not meant to be a + general object serializer. + If a user needs to serialize a special value, then serialize the value into a JsonElement. + + + + + Writes values into an array. + Assumes the writer.StartArray() has been called. + + + + + + + Reads a JsonWebKey. see: https://datatracker.ietf.org/doc/html/rfc7517 + + a pointing at a StartObject. + + A . + + + + Reads a JsonWebKey. see: https://datatracker.ietf.org/doc/html/rfc7517 + + a pointing at a StartObject. + + A . + + + + This method will be used when reading OIDC metadata + + + + + + + Log messages and codes + + + + + Generic implementation of object pooling pattern with predefined pool size limit. The main + purpose is that limited number of frequently used objects can be kept in the pool for + further recycling. + + Notes: + 1) it is not the goal to keep all returned objects. Pool is not meant for storage. If there + is no space in the pool, extra returned objects will be dropped. + + 2) it is implied that if object was obtained from a pool, the caller will return it back in + a relatively short time. Keeping checked out objects for long durations is ok, but + reduces usefulness of pooling. Just new up your own. + + Not returning objects to the pool in not detrimental to the pool's work, but is a bad practice. + Rationale: + If there is no intent for reusing the object, do not use pool - just use "new". + + + + + Produces an instance. + + + Search strategy is a simple linear probing which is chosen for it cache-friendliness. + Note that Free will try to store recycled objects close to the start thus statistically + reducing how far we will typically search. + + + + + Returns objects to the pool. + + + Search strategy is a simple linear probing which is chosen for it cache-friendliness. + Note that Free will try to store recycled objects close to the start thus statistically + reducing how far we will typically search in Allocate. + + + + + Returns a string message for the specified Win32 error code. + + + + + The purpose of this class is to ensure that we obtain an RsaCryptoServiceProvider that supports SHA-256 signatures. + If the original RsaCryptoServiceProvider doesn't support SHA-256, we create a new one using the same KeyContainer. + + + There is no support for and on non-Windows platforms which makes a Windows-specific class. + + + + + Gets the SignatureAlgorithm + + + + + Gets the KeyExchangeAlgorithm + + + + + Initializes an new instance of . + + + if is null. + + + + Decrypts data with the System.Security.Cryptography.RSA algorithm. + + The data to be decrypted. + true to perform direct System.Security.Cryptography.RSA decryption using OAEP padding + (only available on a computer running Microsoft Windows XP or later) otherwise, false to use PKCS#1 v1.5 padding. + decrypted bytes. + if is null or has Length == 0. + + + + Decrypts the input. + + the bytes to decrypt. + decrypted bytes + if is null or Length == 0. + + + + Encrypts data with the System.Security.Cryptography.RSA algorithm. + + The data to be encrypted. + true to perform direct System.Security.Cryptography.RSA encryption using OAEP padding (only available on a computer running Microsoft Windows XP or later); + otherwise, false to use PKCS#1 v1.5 padding. + encrypted bytes. + if is null or has Length == 0. + + + + Encrypts the input. + + the bytes to encrypt. + encrypted bytes. + if is null or Length == 0. + + + + Computes the hash value of the specified byte array using the specified hash algorithm, and signs the resulting hash value. + + The input byte array for which to compute the hash. + The hash algorithm to use to create the hash value. + The Signature for the specified data. + if is null or Length == 0. + if is null. + + + + Verifies that a digital signature is valid by determining the hash value in the signature using the provided public key and comparing it to the hash value of the provided data. + + The input byte array. + The hash algorithm to use to create the hash value. + The signature byte array to be verified. + true if the signature is valid; otherwise, false. + if is null or Length == 0. + if is null. + if is null or Length == 0. + + + + Verifies that a digital signature is valid by determining the hash value in the signature using the provided public key and comparing it to the hash value of the provided data. + + The input byte array. + + + The hash algorithm to use to create the hash value. + + The signature byte array to be verified. + true if the signature is valid; otherwise, false. + if is null or Length == 0. + if is null. + if is null or Length == 0. + + + + Exports rsa parameters as + + flag to control is private parameters are included. + + + + + Imports rsa parameters as + + to import. + + + + Calls to release managed resources. + + true, if called from Dispose(), false, if invoked inside a finalizer. + + + + Represents a Rsa security key. + + + + + Initializes a new instance of the class. + + + + + + Initializes a new instance of the class. + + + + + + Gets a bool indicating if a private key exists. + + true if it has a private key; otherwise, false. + + + + Gets an enum indicating if a private key exists. + + 'Exists' if private key exists for sure; 'DoesNotExist' if private key doesn't exist for sure; 'Unknown' if we cannot determine. + + + + Gets RSA key size. + + + + + used to initialize the key. + + + + + instance used to initialize the key. + + + + + Determines whether the can compute a JWK thumbprint. + + true if JWK thumbprint can be computed; otherwise, false. + https://datatracker.ietf.org/doc/html/rfc7638 + + + + Computes a sha256 hash over the . + + A JWK thumbprint. + https://datatracker.ietf.org/doc/html/rfc7638 + + + + Constants for Security Algorithm. + + + + + Base class for Security Key. + + + + + Default constructor + + + + + This must be overridden to get the size of this . + + + + + Gets the key id of this . + + + + + Gets or sets . + + + + + Returns the formatted string: GetType(), KeyId: 'value', InternalId: 'value'. + + string + + + + Determines whether the can compute a JWK thumbprint. + + true if JWK thumbprint can be computed; otherwise, false. + https://datatracker.ietf.org/doc/html/rfc7638 + + + + Computes a sha256 hash over the . + + A JWK thumbprint. + https://datatracker.ietf.org/doc/html/rfc7638 + + + + Checks if can perform the cryptographic operation specified by the with this . + + the algorithm to apply. + true if can perform the cryptographic operation sepecified by the with this . + + + + Contains information about the keys inside the tokens. + + + + + Base class for security token. + + + + + + + + This must be overridden to get the Id of this . + + + + + This must be overridden to get the issuer of this . + + + + + This must be overridden to get the . + + + + + This must be overridden to get or set the that signed this instance. + + .ValidateToken(...) can this value when a is used to successfully validate a signature. + + + + This must be overridden to get the time when this was Valid. + + + + + This must be overridden to get the time when this is no longer Valid. + + + + + Contains some information which used to create a security token. + + + + + Gets or sets the value of the 'audience' claim. + + + + + Defines the compression algorithm that will be used to compress the JWT token payload. + + + + + Gets or sets the used to create a encrypted security token. + + + + + Gets or sets the value of the 'expiration' claim. This value should be in UTC. + + + + + Gets or sets the issuer of this . + + + + + Gets or sets the time the security token was issued. This value should be in UTC. + + + + + Gets or sets the notbefore time for the security token. This value should be in UTC. + + + + + Gets or sets the token type. + If provided, this will be added as the value for the 'typ' header parameter. In the case of a JWE, this will be added to both the inner (JWS) and the outer token (JWE) header. By default, the value used is 'JWT'. + If also contains 'typ' header claim value, it will override the TokenType provided here. + This value is used only for JWT tokens and not for SAML/SAML2 tokens + + + + + Gets or sets the which represents the claims that will be used when creating a security token. + If both and are set, the claim values in Subject will be combined with the values + in Claims. The values found in Claims take precedence over those found in Subject, so any duplicate + values will be overridden. + + + + + Gets or sets the which contains any custom header claims that need to be added to the JWT token header. + The 'alg', 'kid', 'x5t', 'enc', and 'zip' claims are added by default based on the , + , and/or provided and SHOULD NOT be included in this dictionary as this + will result in an exception being thrown. + These claims are only added to the outer header (in case of a JWE). + + + + + Gets or sets the which contains any custom header claims that need to be added to the inner JWT token header. + The 'alg', 'kid', 'x5t', 'enc', and 'zip' claims are added by default based on the , + , and/or provided and SHOULD NOT be included in this dictionary as this + will result in an exception being thrown. + + For JsonWebTokenHandler, these claims are merged with while adding to the inner JWT header. + + + + + + Gets or sets the used to create a security token. + + + + + Gets or sets the . + If both and are set, the claim values in Subject will be combined with the values + in Claims. The values found in Claims take precedence over those found in Subject, so any duplicate + values will be overridden. + + + + + Defines the interface for a Security Token Handler. + + + + + Creates an instance of + + + + + Returns . + + + true if attached; otherwise, false. + + + + Returns . + + + + + + Gets a value indicating whether this handler supports validation of tokens + handled by this instance. + v + 'True' if the instance is capable of SecurityToken + validation. + + + + Gets a value indicating whether the class provides serialization functionality to serialize token handled + by this instance. + + true if the WriteToken method can serialize this token. + + + + This must be overridden to get the System.Type of the SecurityToken this instance handles. + + + + + Indicates whether the is positioned at an element that can be read. + + An reader positioned at a start element. The reader should not be advanced. + 'true' if the token can be read. + + + + Indicates whether the current token string can be read as a token + of the type handled by this instance. + + The token string thats needs to be read. + 'True' if the ReadToken method can parse the token string. + + + + Gets security token. + + . + SecurityToken instance which represents the serialized token. + + + + Serializes to string a token of the type handled by this instance. + + A token of type TokenType. + The serialized token. + + + + This must be overridden to serialize to XML a token of the type handled by this instance. + + The XML writer. + A token of type . + + + + This must be overridden to deserialize token with the provided . + + . + the current . + SecurityToken instance which represents the serialized token. + + + + This must be overridden to validate a token passed as a string using + + A token of type . + the current . + The token of type that was validated. + + + + Reads and validates a token using a xmlReader and + + A pointing at the start element of the token. + Contains data and information needed for validation. + The that was validated. + + + + Provides signature services, signing and verifying. + + + + + Maintains the number of external references + see: , , + + + + + Initializes a new instance of the class used to create and verify signatures. + + The that will be used for signature operations. + The signature algorithm to apply. + is null. + is null or empty. + + + + Gets the signature algorithm. + + + + + Gets or sets a user context for a . + + This is null by default. This is for use by the application and not used by this SDK. + + + + Gets or sets the that is associated with this + + + + + Calls and + + + + + Can be over written in descendants to dispose of internal components. + + true, if called from Dispose(), false, if invoked inside a finalizer + + + + Gets the . + + + + + For testing purposes + + + + + This must be overridden to produce a signature over the 'input'. + + bytes to sign. + signed bytes + + + Verifies that the over using the + and specified by this + are consistent. + the bytes that were signed. + signature to compare against. + true if the computed signature matches the signature parameter, false otherwise. + + + + Verifies that a signature created over the 'input' matches the signature. Using and 'algorithm' passed to . + + The bytes to verify. + offset in to input bytes to caculate hash. + number of bytes of signature to use. + signature to compare against. + offset into signature array. + how many bytes to verfiy. + true if computed signature matches the signature parameter, false otherwise. + 'input' is null. + 'signature' is null. + 'input.Length' == 0. + 'signature.Length' == 0. + 'length < 1' + 'offset + length > input.Length' + has been called. + + + + Gets or sets a bool indicating if this is expected to create signatures. + + + + + Defines the , algorithm and digest for digital signatures. + + + + + Initializes a new instance of the class. + + that will be used for signing. + Algorithm will be set to . + the 'digest method' if needed may be implied from the algorithm. For example implies Sha256. + if 'key' is null. + if 'algorithm' is null or empty. + + + + Initializes a new instance of the class. + + that will be used for signing. + The signature algorithm to apply. + the 'digest method' if needed may be implied from the algorithm. For example implies Sha256. + if 'certificate' is null. + if 'algorithm' is null or empty. + + + + Initializes a new instance of the class. + + . + The signature algorithm to apply. + the 'digest method' if needed may be implied from the algorithm. For example implies Sha256. + if 'key' is null. + if 'algorithm' is null or empty. + + + + Initializes a new instance of the class. + + . + The signature algorithm to apply. + The digest algorithm to apply. + if 'key' is null. + if 'algorithm' is null or empty. + if 'digest' is null or empty. + + + + Gets the signature algorithm. + + if 'value' is null or empty. + + + + Gets the digest algorithm. + + + + + Users can override the default with this property. This factory will be used for creating signature providers. + + This will have precedence over + + + + Gets the used for signature creation or validation. + + + + + Gets the key id associated with . + + + + + Defines the default set of algorithms this library supports + + + + + Creating a Signature requires the use of a . + This method returns the + that describes the to use when generating a Signature. + + The SignatureAlgorithm in use. + The to use. + if is null or whitespace. + if is not supported. + + + + Creating a Signature requires the use of a . + This method returns the HashAlgorithm string that is associated with a SignatureAlgorithm. + + The SignatureAlgorithm of interest. + if is null or whitespace. + if is not supported. + + + + Checks if an 'algorithm, key' pair is supported. + + the algorithm to check. + the . + true if 'algorithm, key' pair is supported. + + + + Represents a symmetric security key. + + + + + Returns a new instance of instance. + + The byte array of the key. + + + + Gets the key size. + + + + + Gets the byte array of the key. + + + + + Determines whether the can compute a JWK thumbprint. + + true if JWK thumbprint can be computed; otherwise, false. + https://datatracker.ietf.org/doc/html/rfc7638 + + + + Computes a sha256 hash over the . + + A JWK thumbprint. + https://datatracker.ietf.org/doc/html/rfc7638 + + + + Provides signing and verifying operations using a and specifying an algorithm. + + + + + Mapping from algorithm to the expected signature size in bytes. + + + + + This is the minimum .KeySize when creating and verifying signatures. + + + + + Initializes a new instance of the class that uses an to create and / or verify signatures over a array of bytes. + + The that will be used for signature operations. + The signature algorithm to use. + 'key' is null. + 'algorithm' is null or empty. + If and algorithm pair are not supported. + '.KeySize' is smaller than . + + + + Initializes a new instance of the class that uses an to create and / or verify signatures over a array of bytes. + + The that will be used for signature operations. + The signature algorithm to use. + indicates if this will be used to create signatures. + 'key' is null. + 'algorithm' is null or empty. + If and algorithm pair are not supported. + '.KeySize' is smaller than . + + + + Gets or sets the minimum .KeySize"/>. + + 'value' is smaller than . + + + + Called to obtain the byte[] needed to create a + + that will be used to obtain the byte[]. + [] that is used to populated the KeyedHashAlgorithm. + if key is null. + if a byte[] can not be obtained from SecurityKey. + and are supported. + For a .Key is returned + For a Base64UrlEncoder.DecodeBytes is called with if == JsonWebAlgorithmsKeyTypes.Octet + + + + + Returns a . + This method is called just before a cryptographic operation. + This provides the opportunity to obtain the from an object pool. + If this method is overridden, it is importont to override + if custom releasing of the is desired. + + The hash algorithm to use to create the hash value. + The byte array of the key. + An instance of + + + + For testing purposes + + + + + This method is called just after the cryptographic operation. + If was overridden this method can be overridden for + any custom handling such as returning the to an object pool. + + The " in use. + + + + Produces a signature over the 'input' using the and 'algorithm' passed to . + + The bytes to sign. + Signed bytes + 'input' is null. + 'input.Length' == 0. + has been called. + is null. This can occur if a derived type deletes it or does not create it. + Sign is thread safe. + + + + Verifies that a signature created over the 'input' matches the signature. Using and 'algorithm' passed to . + + The bytes to verify. + signature to compare against. + true if computed signature matches the signature parameter, false otherwise. + 'input' is null. + 'signature' is null. + 'input.Length' == 0. + 'signature.Length' == 0. + has been called. + If the internal is null. This can occur if a derived type deletes it or does not create it. + Verify is thread safe. + + + + Verifies that a signature created over the 'input' matches the signature. Using and 'algorithm' passed to . + + The bytes to verify. + signature to compare against. + number of bytes of signature to use. + true if computed signature matches the signature parameter, false otherwise. + 'input' is null. + 'signature' is null. + 'input.Length' == 0. + 'signature.Length' == 0. + 'length < 1' + has been called. + If the internal is null. This can occur if a derived type deletes it or does not create it. + + + + + + + This internal method is called from the AuthenticatedEncryptionProvider which passes in the algorithm that defines the size expected for the signature. + The reason is the way the AuthenticationTag is validated. + For example when "A128CBC-HS256" is specified, SHA256 will used to create the HMAC and 32 bytes will be generated, but only the first 16 will be validated. + + The bytes to verify. + offset in to input bytes to caculate hash. + number of bytes of signature to use. + signature to compare against. + offset into signature array. + how many bytes to verfiy. + algorithm passed by AuthenticatedEncryptionProvider. + true if computed signature matches the signature parameter, false otherwise. + + + + Disposes of internal components. + + true, if called from Dispose(), false, if invoked inside a finalizer. + + + + An opaque context used to store work when working with authentication artifacts. + + + + + Instantiates a new with a default activity ID. + + + + + Instantiates a new with an activity ID. + + + + + Defines properties shared across all security token handlers. + + + + + Default lifetime of tokens created. When creating tokens, if 'expires', 'notbefore' or 'issuedat' are null, + then a default will be set to: issuedat = DateTime.UtcNow, notbefore = DateTime.UtcNow, expires = DateTime.UtcNow + TimeSpan.FromMinutes(TokenLifetimeInMinutes). + + See: for configuration. + + + + Gets and sets the maximum token size in bytes that will be processed. + + 'value' less than 1. + + + + Gets or sets a bool that controls if token creation will set default 'exp', 'nbf' and 'iat' if not specified. + + See: for configuration. + + + + Gets or sets the token lifetime in minutes. + + Used during token creation to set the default expiration ('exp'). + 'value' less than 1. + + + + Validates a token. + On a validation failure, no exception will be thrown; instead, the exception will be set in the returned TokenValidationResult.Exception property. + Callers should always check the TokenValidationResult.IsValid property to verify the validity of the result. + + The token to be validated. + A required for validation. + A + + + + Validates a token. + On a validation failure, no exception will be thrown; instead, the exception will be set in the returned TokenValidationResult.Exception property. + Callers should always check the TokenValidationResult.IsValid property to verify the validity of the result. + + The to be validated. + A required for validation. + A + + + + Converts a string into an instance of . + + The string to be deserialized. + is null or empty. + 'token.Length' is greater than . + A . + + + + Called by base class to create a . + Currently only used by the JsonWebTokenHandler to allow for a Lazy creation. + + the that has the Claims. + the that was used to validate the token. + the 'issuer' to use by default when creating a Claim. + A . + + + + + A class which contains useful methods for processing tokens. + + + + + A URI that represents the JSON XML data type. + + When mapping json to .Net Claim(s), if the value was not a string (or an enumeration of strings), the ClaimValue will serialized using the current JSON serializer, a property will be added with the .Net type and the ClaimTypeValue will be set to 'JsonClaimValueType'. + + + + A URI that represents the JSON array XML data type. + + When mapping json to .Net Claim(s), if the value was not a string (or an enumeration of strings), the ClaimValue will serialized using the current JSON serializer, a property will be added with the .Net type and the ClaimTypeValue will be set to 'JsonClaimValueType'. + + + + A URI that represents the JSON null data type + + When mapping json to .Net Claim(s), we use empty string to represent the claim value and set the ClaimValueType to JsonNull + + + + Creates a dictionary from a list of Claim's. + + A list of claims. + A Dictionary representing claims. + + + + Returns all provided in and . + + The that contains signing keys used for validation. + A required for validation. + Returns all provided in provided in and . + + + + Merges claims. If a claim with same type exists in both and , the one in claims will be kept. + + Collection of 's. + Collection of 's. + A Merged list of 's. + + + + Check whether the given exception type is recoverable by LKG. + + The exception to check. + true if the exception is certain types of exceptions otherwise, false. + + + + Check whether the given configuration is recoverable by LKG. + + The kid from token."/> + The to check. + The LKG exception to check. + The exception to check. + true if the configuration is recoverable otherwise, false. + + + + Definition for AlgorithmValidator + + The algorithm to validate. + The that signed the . + The being validated. + required for validation. + true if the algorithm is considered valid + + + + Definition for AudienceValidator. + + The audiences found in the . + The being validated. + required for validation. + true if the audience is considered valid. + + + + Definition for IssuerSigningKeyResolver. + + The representation of the token that is being validated. + The that is being validated. It may be null. + A key identifier. It may be null. + required for validation. + A to use when validating a signature. + If both and are set, IssuerSigningKeyResolverUsingConfiguration takes + priority. + + + + Definition for IssuerSigningKeyResolverUsingConfiguration. + + The representation of the token that is being validated. + The that is being validated. It may be null. + A key identifier. It may be null. + required for validation. + required for validation. + A to use when validating a signature. + If both and are set, IssuerSigningKeyResolverUsingConfiguration takes + priority. + + + + Definition for IssuerSigningKeyValidator. + + The that signed the . + The being validated. + required for validation. + If both and are set, IssuerSigningKeyResolverUsingConfiguration takes + priority. + + + + Definition for IssuerSigningKeyValidatorUsingConfiguration. + + The that signed the . + The being validated. + required for validation. + required for validation. + If both and are set, IssuerSigningKeyResolverUsingConfiguration takes + priority. + + + + Definition for IssuerValidator. + + The issuer to validate. + The that is being validated. + required for validation. + The issuer to use when creating the "Claim"(s) in a "ClaimsIdentity". + The delegate should return a non null string that represents the 'issuer'. If null a default value will be used. + If both and are set, IssuerValidatorUsingConfiguration takes + priority. + + + + Definition for IssuerValidatorUsingConfiguration. + + The issuer to validate. + The that is being validated. + required for validation. + required for validation. + The issuer to use when creating the "Claim"(s) in a "ClaimsIdentity". + The delegate should return a non null string that represents the 'issuer'. If null a default value will be used. + If both and are set, IssuerValidatorUsingConfiguration takes + priority. + + + + + Definition for IssuerValidatorAsync. Left internal for now while we work out the details of async validation for all delegates. + + The issuer to validate. + The that is being validated. + required for validation. + The issuer to use when creating the "Claim"(s) in a "ClaimsIdentity". + The delegate should return a non null string that represents the 'issuer'. If null a default value will be used. + if set, will be called before or + + + + + Definition for LifetimeValidator. + + The 'notBefore' time found in the . + The 'expiration' time found in the . + The being validated. + required for validation. + + + + Definition for TokenReplayValidator. + + The 'expiration' time found in the . + The being validated. + required for validation. + + + + + Definition for SignatureValidator. + + A securityToken with a signature. + required for validation. + + + + Definition for SignatureValidator. + + A securityToken with a signature. + required for validation. + The that is required for validation. + + + + Definition for TokenReader. + + A securityToken with a signature. + required for validation. + + + + Definition for TokenDecryptionKeyResolver. + + The representation of the token to be decrypted. + The to be decrypted. The runtime by default passes null. + A key identifier. It may be null. + required for validation. + A to use when decrypting the token. + + + + Definition for TypeValidator. + + The token type to validate. + The that is being validated. + required for validation. + The actual token type, that may be the same as or a different value if the token type was resolved from a different location. + + + + Definition for TransformBeforeSignatureValidation. + + The that is being validated. + required for validation. + A transformed . + + + + Contains a set of parameters that are used by a when validating a . + + + + + This is the default value of when creating a . + The value is "AuthenticationTypes.Federation". + To change the value, set to a different value. + + + + + Default for the clock skew. + + 300 seconds (5 minutes). + + + + Default for the maximum token size. + + 250 KB (kilobytes). + + + + Copy constructor for . + + + + + Initializes a new instance of the class. + + + + + Gets or sets . + + + + + Gets or sets a delegate used to validate the cryptographic algorithm used. + + + If set, this delegate will validate the cryptographic algorithm used and + the algorithm will not be checked against . + + + + + Gets or sets a delegate that will be used to validate the audience. + + + If set, this delegate will be called to validate the 'audience', instead of default processing. + This means that no default 'audience' validation will occur. + Even if is false, this delegate will still be called. + + + + + Gets or sets the AuthenticationType when creating a . + + If 'value' is null or whitespace. + + + + Gets or sets the clock skew to apply when validating a time. + + If 'value' is less than 0. + The default is 300 seconds (5 minutes). + + + + Returns a new instance of with values copied from this object. + + A new object copied from this object + This is a shallow Clone. + + + + Creates a using: + + 'NameClaimType': If NameClaimTypeRetriever is set, call delegate, else call NameClaimType. If the result is a null or empty string, use . + 'RoleClaimType': If RoleClaimTypeRetriever is set, call delegate, else call RoleClaimType. If the result is a null or empty string, use . + + A with Authentication, NameClaimType and RoleClaimType set. + + + + If set, this property will be used to obtain the issuer and signing keys associated with the metadata endpoint of . + The obtained issuer and signing keys will then be used along with those present on the TokenValidationParameters for validation of the incoming token. + + + + + Users can override the default with this property. This factory will be used for creating signature providers. + + + + + Gets or sets a string that helps with setting breakpoints when debugging. + + + + + Gets or sets a boolean that controls if a '/' is significant at the end of the audience. + The default is true. + + + + + Gets or sets the flag that indicates whether to include the when the validation fails. + + + + + Gets or sets a delegate for validating the that signed the token. + + + If set, this delegate will be called to validate the that signed the token, instead of default processing. + This means that no default validation will occur. + Even if is false, this delegate will still be called. + If both and are set, IssuerSigningKeyResolverUsingConfiguration takes + priority. + + + + + Gets or sets a delegate for validating the that signed the token. + + + If set, this delegate will be called to validate the that signed the token, instead of default processing. + This means that no default validation will occur. + Even if is false, this delegate will still be called. + This delegate should be used if properties from the configuration retrieved from the authority are necessary to validate the + issuer signing key. + If both and are set, IssuerSigningKeyValidatorUsingConfiguration takes + priority. + + + + + Gets a that is unique to this instance. + Calling will result in a new instance of this IDictionary. + + + + + Gets a value indicating if was called to obtain this instance. + + + + + Gets or sets the that is to be used for signature validation. + + + + + Gets or sets a delegate that will be called to retrieve a used for signature validation. + + + This will be used to check the signature. This can be helpful when the does not contain a key identifier. + If both and are set, IssuerSigningKeyResolverUsingConfiguration takes + priority. + + + + + Gets or sets a delegate that will be called to retrieve a used for signature validation using the + and . + + + This will be used to check the signature. This can be helpful when the does not contain a key identifier. + This delegate should be used if properties from the configuration retrieved from the authority are necessary to resolve the + issuer signing key. + If both and are set, IssuerSigningKeyResolverUsingConfiguration takes + priority. + + + + + Gets or sets an used for signature validation. + + + + + Gets or sets a delegate that will be used to validate the issuer of the token. + + + If set, this delegate will be called to validate the 'issuer' of the token, instead of default processing. + This means that no default 'issuer' validation will occur. + Even if is false, this delegate will still be called. + If both and are set, IssuerValidatorUsingConfiguration takes + priority. + + + + + Gets or sets a delegate that will be used to validate the issuer of the token. + + + If set, this delegate will be called to validate the 'issuer' of the token, instead of default processing. + This means that no default 'issuer' validation will occur. + Even if is false, this delegate will still be called. + IssuerValidatorAsync takes precedence over and . + + + + + Gets or sets a delegate that will be used to validate the issuer of the token. + + + If set, this delegate will be called to validate the 'issuer' of the token, instead of default processing. + This means that no default 'issuer' validation will occur. + Even if is false, this delegate will still be called. + This delegate should be used if properties from the configuration retrieved from the authority are necessary to validate the issuer. + If both and are set, IssuerValidatorUsingConfiguration takes + priority. + + + + + Gets or sets a delegate that will be called to transform a token to a supported format before validation. + + + + + Gets or sets a delegate that will be used to validate the lifetime of the token + + + If set, this delegate will be called to validate the lifetime of the token, instead of default processing. + This means that no default lifetime validation will occur. + Even if is false, this delegate will still be called. + + + + + Gets or sets a that will decide if the token identifier claim needs to be logged. + Default value is true. + + + + + Gets or sets a that will decide if validation failure needs to be logged as an error. + Default value is true for backward compatibility of the behavior. + If set to false, validation failures are logged as Information and then thrown. + + + + + Gets or sets a that defines the . + + + Controls the value returns. It will return the first where the equals . + The default is . + + + + + Gets or sets a delegate that will be called to set the property after validating a token. + + + The function will be passed: + The that is being validated. + The issuer associated with the token. + Returns the value that will set the property . + + + + + Gets or sets the that contains a collection of custom key/value pairs. This allows addition of parameters that could be used in custom token validation scenarios. + + + + + Gets or sets a boolean to control if configuration required to be refreshed before token validation. + + + The default is false. + + + + + Gets or sets a value indicating whether SAML tokens must have at least one AudienceRestriction. + The default is true. + + + + + Gets or sets a value indicating whether tokens must have an 'expiration' value. + The default is true. + + + + + Gets or sets a value indicating whether a can be considered valid if not signed. + The default is true. + + + + + Gets or sets the that defines the . + + + Controls the results of . + Each where == will be checked for a match against the 'string' passed to . + The default is . + + + + + Gets or sets a delegate that will be called to set the property after validating a token. + + + The function will be passed: + The that is being validated. + The issuer associated with the token. + Returns the value that will set the property . + + + + + Gets or sets a boolean to control if the original token should be saved after the security token is validated. + + The runtime will consult this value and save the original token that was validated. + The default is false. + + + + + Gets or sets a delegate that will be used to validate the signature of the token. + + + If set, this delegate will be called to signature of the token, instead of default processing. + + + + + Gets or sets a delegate that will be used to validate the signature of the token using the and + the . + + + If set, this delegate will be called to signature of the token, instead of default processing. + + + + + Gets or sets the that is to be used for decryption. + + + + + Gets or sets a delegate that will be called to retreive a used for decryption. + + + This will be used to decrypt the token. This can be helpful when the does not contain a key identifier. + + + + + Gets or sets the that is to be used for decrypting inbound tokens. + + + + + Gets or sets a delegate that will be used to read the token. + + + If set, this delegate will be called to read the token instead of default processing. + + + + + Gets or set the that store tokens that can be checked to help detect token replay. + + If set, then tokens must have an expiration time or the runtime will fault. + + + + Gets or sets a delegate that will be used to validate the token replay of the token + + + If set, this delegate will be called to validate the token replay of the token, instead of default processing. + This means no default token replay validation will occur. + Even if is false, this delegate will still be called. + + + + + Gets or sets a value indicating whether all should be tried during signature validation when a key is not matched to token kid or if token kid is empty. + The default is true. + + + + + Gets or sets a delegate that will be used to validate the type of the token. + If the token type cannot be validated, an exception MUST be thrown by the delegate. + Note: the 'type' parameter may be null if it couldn't be extracted from its usual location. + Implementations that need to resolve it from a different location can use the 'token' parameter. + + + If set, this delegate will be called to validate the 'type' of the token, instead of default processing. + This means that no default 'type' validation will occur. + + + + + Gets or sets a value indicating if an actor token is detected, whether it should be validated. + The default is false. + + + + + Gets or sets a boolean to control if the audience will be validated during token validation. + + Validation of the audience, mitigates forwarding attacks. For example, a site that receives a token, could not replay it to another side. + A forwarded token would contain the audience of the original site. + This boolean only applies to default audience validation. If is set, it will be called regardless of whether this + property is true or false. + The default is true. + + + + + Gets or sets a boolean to control if the issuer will be validated during token validation. + + + Validation of the issuer mitigates forwarding attacks that can occur when an + IdentityProvider represents multiple tenants and signs tokens with the same keys. + It is possible that a token issued for the same audience could be from a different tenant. For example an application could accept users from + contoso.onmicrosoft.com but not fabrikam.onmicrosoft.com, both valid tenants. An application that accepts tokens from fabrikam could forward them + to the application that accepts tokens for contoso. + This boolean only applies to default issuer validation. If is set, it will be called regardless of whether this + property is true or false. + The default is true. + + + + + Gets or sets a boolean to control if the LKG configuration will be used for token validation. + + + The default is false. + + + + + Gets or sets a boolean that controls if validation of the that signed the securityToken is called. + + It is possible for tokens to contain the public key needed to check the signature. For example, X509Data can be hydrated into an X509Certificate, + which can be used to validate the signature. In these cases it is important to validate the SigningKey that was used to validate the signature. + This boolean only applies to default signing key validation. If is set, it will be called regardless of whether this + property is true or false. + The default is false. + + + + + Gets or sets a boolean to control if the lifetime will be validated during token validation. + + + This boolean only applies to default lifetime validation. If is set, it will be called regardless of whether this + property is true or false. + The default is true. + + + + + Gets or sets a boolean that controls the validation order of the payload and signature during token validation. + + If is set to true, it will validate payload ahead of signature. + The default is false. + + + + + Gets or sets a boolean to control if the token replay will be validated during token validation. + + + This boolean only applies to default token replay validation. If is set, it will be called regardless of whether this + property is true or false. + The default is false. + + + + + Gets or sets the valid algorithms for cryptographic operations. + + + If set to a non-empty collection, only the algorithms listed will be considered valid. + The default is null. + + + + + Gets or sets a string that represents a valid audience that will be used to check against the token's audience. + The default is null. + + + + + Gets or sets the that contains valid audiences that will be used to check against the token's audience. + The default is null. + + + + + Gets or sets a that represents a valid issuer that will be used to check against the token's issuer. + The default is null. + + + + + Gets or sets the that contains valid issuers that will be used to check against the token's issuer. + The default is null. + + + + + Gets or sets the that contains valid types that will be used to check against the JWT header's 'typ' claim. + If this property is not set, the 'typ' header claim will not be validated and all types will be accepted. + In the case of a JWE, this property will ONLY apply to the inner token header. + The default is null. + + + + + Contains artifacts obtained when a SecurityToken is validated. + A SecurityTokenHandler returns an instance that captures the results of validating a token. + + + + + Creates an instance of + + + + + This ctor is used by the JsonWebTokenHandler as part of delaying creation of ClaimsIdentity. + + + + + + + + + The created from the validated security token. + + + + + The created from the validated security token. + + + + + Gets or sets the without synchronization. All accesses must either + be protected or used when the caller knows access is serialized. + + + + Gets the object to use in for double-checked locking. + + + + Gets or sets the that occurred during validation. + + + + + Gets or sets the issuer that was found in the token. + + + + + True if the token was successfully validated, false otherwise. + + + + + Gets or sets the that contains a collection of custom key/value pairs. This allows addition of data that could be used in custom scenarios. This uses for case-sensitive comparison of keys. + + + + + Gets or sets the that was validated. + + + + + The to be returned when validation fails. + + + + + Gets or sets the that contains call information. + + + + + Gets or sets the token type of the that was validated. + When a is registered, + the type returned by the delegate is used to populate this property. + Otherwise, the type is resolved from the token itself, if available + (e.g for a JSON Web Token, from the "typ" header). + + + + + Generates unique IDs. + + + + + Creates a unique ID suitable for use in an xml:id field. The value is + not hard to guess but is unique. + + The unique ID. + + + + Creates a unique ID similar to that created by CreateNonRandomId, + but instead of an underscore, the supplied prefix is used. + + The prefix to use. + The unique ID, with the given prefix. + + + + Creates a unique, random ID suitable for use in an xml:id field. The + value is hard to guess and unique. + + The unique ID. + + + + Creates a unique, random ID similar to that created by CreateRandomId, + but instead of an underscore, the supplied prefix is used. + + The prefix to use. + The random URI. + + + + Creates a unique, random ID suitable for use as a URI. The value is + hard to guess and unique. The URI is in the urn:uuid: namespace. + + The random URI. + + + + Contains some utility methods. + + + + + A string with "empty" value. + + + + + A string with "null" value. + + + + + Creates a copy of the byte array. + + The resource array. + A copy of the byte array. + + + + Serializes the list of strings into string as follows: + 'str1','str2','str3' ... + + + The strings used to build a comma delimited string. + + + The single . + + + + + Returns whether the input string is https. + + The input string. + true if the input string is https; otherwise, false. + + + + Returns whether the input uri is https. + + . + true if the input uri is https; otherwise, false. + + + + Compares two byte arrays for equality. Hash size is fixed normally it is 32 bytes. + The attempt here is to take the same time if an attacker shortens the signature OR changes some of the signed contents. + + + One set of bytes to compare. + + + The other set of bytes to compare with. + + + true if the bytes are equal, false otherwise. + + + + + Compares two byte spans for equality. Hash size is fixed normally it is 32 bytes. + The attempt here is to take the same time if an attacker shortens the signature OR changes some of the signed contents. + + + One set of bytes to compare. + + + The other set of bytes to compare with. + + length of spans to check + + true if the bytes are equal, false otherwise. + + + + + AudienceValidator + + + + + Validates if a given algorithm for a is valid. + + The algorithm to be validated. + The that signed the . + The being validated. + required for validation. + + + + Determines if the audiences found in a are valid. + + The audiences found in the . + The being validated. + required for validation. + If 'validationParameters' is null. + If 'audiences' is null and is true. + If is null or whitespace and is null. + If none of the 'audiences' matched either or one of . + An EXACT match is required. + + + + Determines if an issuer found in a is valid. + + The issuer to validate + The that is being validated. + required for validation. + The issuer to use when creating the "Claim"(s) in a "ClaimsIdentity". + If 'validationParameters' is null. + If 'issuer' is null or whitespace and is true. + If is null or whitespace and is null. + If 'issuer' failed to matched either or one of . + An EXACT match is required. + + + + Determines if an issuer found in a is valid. + + The issuer to validate + The that is being validated. + required for validation. + The required for issuer and signing key validation. + The issuer to use when creating the "Claim"(s) in a "ClaimsIdentity". + If 'validationParameters' is null. + If 'issuer' is null or whitespace and is true. + If ' configuration' is null. + If is null or whitespace and is null and is null. + If 'issuer' failed to matched either or one of or . + An EXACT match is required. + + + + Determines if an issuer found in a is valid. + + The issuer to validate + The that is being validated. + required for validation. + The required for issuer and signing key validation. + The issuer to use when creating the "Claim"(s) in a "ClaimsIdentity". + If 'validationParameters' is null. + If 'issuer' is null or whitespace and is true. + If ' configuration' is null. + If is null or whitespace and is null and is null. + If 'issuer' failed to matched either or one of or . + An EXACT match is required. + + + + Validates the that signed a . + + The that signed the . + The being validated. + required for validation. + if 'securityKey' is null and ValidateIssuerSigningKey is true. + if 'securityToken' is null and ValidateIssuerSigningKey is true. + if 'validationParameters' is null. + + + + Validates the that signed a . + + The that signed the . + The being validated. + required for validation. + The required for issuer and signing key validation. + if 'securityKey' is null and ValidateIssuerSigningKey is true. + if 'securityToken' is null and ValidateIssuerSigningKey is true. + if 'validationParameters' is null. + + + + Given a signing key, when it's derived from a certificate, validates that the certificate is already active and non-expired + + The that signed the . + The that are used to validate the token. + + + + Validates the lifetime of a . + + The 'notBefore' time found in the . + The 'expiration' time found in the . + The being validated. + required for validation. + If 'validationParameters' is null. + If 'expires.HasValue' is false and is true. + If 'notBefore' is > 'expires'. + If 'notBefore' is > DateTime.UtcNow. + If 'expires' is < DateTime.UtcNow. + All time comparisons apply . + + + + Validates if a token has been replayed. + + When does the security token expire. + The being validated. + required for validation. + If 'securityToken' is null or whitespace. + If 'validationParameters' is null or whitespace. + If is not null and expirationTime.HasValue is false. When a TokenReplayCache is set, tokens require an expiration time. + If the 'securityToken' is found in the cache. + If the 'securityToken' could not be added to the . + + + + Validates if a token has been replayed. + + The being validated. + When does the security token expire. + required for validation. + If 'securityToken' is null or whitespace. + If 'validationParameters' is null or whitespace. + If is not null and expirationTime.HasValue is false. When a TokenReplayCache is set, tokens require an expiration time. + If the 'securityToken' is found in the cache. + If the 'securityToken' could not be added to the . + + + + Validates the type of the token. + + The token type or null if it couldn't be resolved (e.g from the 'typ' header for a JWT). + The that is being validated. + required for validation. + If is null. + If is null. + If is null or whitespace and is not null. + If failed to match . + An EXACT match is required. (case sensitive) is used for comparing against . + The actual token type, that may be the same as or a different value if the token type was resolved from a different location. + + + + An designed to construct based on a x509 certificate. + + + + + Designed to construct based on a x509 certificate. + + A + + will be used as the key wrap algorithm + will be used as the data encryption algorithm + + if 'certificate' is null. + + + + Designed to construct based on the x509 certificate, a key wrap algorithm, and data encryption algorithm. + + A + A key wrap algorithm + Data encryption algorithm + if 'certificate' is null. + if 'keyWrapAlgorithm' is null or empty. + if 'dataEncryptionAlgorithm' is null or empty. + + + + Gets the used by this instance. + + + + + An that is backed by a + + + + + Instantiates a using a + + The to use. + if is null. + + + + Instantiates a using a . + + The to use. + The value to set for the KeyId + if is null. + if is null or empty. + + + + Gets the key size. + + + + + Gets the X5t of this . + + + + + Returns the private key from the . + + + + + Gets the public key from the . + + + + + Gets a bool indicating if a private key exists. + + true if it has a private key; otherwise, false. + + + + Gets an enum indicating if a private key exists. + + 'Exists' if private key exists for sure; 'DoesNotExist' if private key doesn't exist for sure; 'Unknown' if we cannot determine. + + + + Gets the . + + + + + Determines whether the can compute a JWK thumbprint. + + true if JWK thumbprint can be computed; otherwise, false. + https://datatracker.ietf.org/doc/html/rfc7638 + + + + Computes a sha256 hash over the . + + A JWK thumbprint. + https://datatracker.ietf.org/doc/html/rfc7638 + + + + Returns a bool indicating if this key is equivalent to another key. + + true if the keys are equal; otherwise, false. + + + + Returns an int hash code. + + An int hash code + + + + Defines the , algorithm and digest for digital signatures. + + + + + Initializes a new instance of the class. + + that will be used for signing. + Algorithm will be set to . + the 'digest method' if needed may be implied from the algorithm. For example implies Sha256. + if 'certificate' is null. + + + + Initializes a new instance of the class. + + A that will be used for signing. + The signature algorithm to apply. + the 'digest method' if needed may be implied from the algorithm. For example implies Sha256. + if 'certificate' is null. + if 'algorithm' is null or empty. + + + + Gets the used by this instance. + + + + diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/lib/net462/Microsoft.IdentityModel.Tokens.xml.meta b/Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/lib/net462/Microsoft.IdentityModel.Tokens.xml.meta new file mode 100644 index 0000000..2602ac8 --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/lib/net462/Microsoft.IdentityModel.Tokens.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: e75caa6c845f7c34aa54283999eb7f13 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/lib/net472.meta b/Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/lib/net472.meta new file mode 100644 index 0000000..5436591 --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/lib/net472.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a390854a2646235438073831bd88d776 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/lib/net472/Microsoft.IdentityModel.Tokens.dll b/Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/lib/net472/Microsoft.IdentityModel.Tokens.dll new file mode 100644 index 0000000..3715916 --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/lib/net472/Microsoft.IdentityModel.Tokens.dll @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:52e734b9ffa2acc2cd25684ee815ecd398f1fb0d1fc3f26b58ae5d5c522b5f41 +size 285728 diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/lib/net472/Microsoft.IdentityModel.Tokens.dll.meta b/Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/lib/net472/Microsoft.IdentityModel.Tokens.dll.meta new file mode 100644 index 0000000..1d320a0 --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/lib/net472/Microsoft.IdentityModel.Tokens.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: 0bdc3048bd003c645ae8af00d771d77b +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/lib/net472/Microsoft.IdentityModel.Tokens.xml b/Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/lib/net472/Microsoft.IdentityModel.Tokens.xml new file mode 100644 index 0000000..3a60cd3 --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/lib/net472/Microsoft.IdentityModel.Tokens.xml @@ -0,0 +1,5647 @@ + + + + Microsoft.IdentityModel.Tokens + + + + + This adapter abstracts the 'RSA' differences between versions of .Net targets. + + + + + Calls and + + + + + Base class for a Security Key that contains Asymmetric key material. + + + + + Default constructor + + + + + This must be overridden to get a bool indicating if a private key exists. + + true if it has a private key; otherwise, false. + + + + Gets the status of the private key. + + 'Exists' if private key exists for sure; 'DoesNotExist' if private key doesn't exist for sure; 'Unknown' if we cannot determine. + + + + Enum for the existence of private key + + + + + private key exists for sure + + + + + private key doesn't exist for sure + + + + + unable to determine the existence of private key + + + + + Provides signature and verification operations for Asymmetric Algorithms using a . + + + + + Mapping from algorithm to minimum .KeySize when creating signatures. + + + + + Mapping from algorithm to minimum .KeySize when verifying signatures. + + + + + Initializes a new instance of the class used to create and verify signatures. + + The that will be used for signature operations. + The signature algorithm to apply. + + + + Initializes a new instance of the class used to create and verify signatures. + + The that will be used for signature operations. + The signature algorithm to apply. + If this is required to create signatures then set this to true. + + Creating signatures requires that the has access to a private key. + Verifying signatures (the default), does not require access to the private key. + + is null. + is null or empty. + is true and there is no private key. + If and algorithm pair are not supported. + + willCreateSignatures is true and .KeySize is less than the size corresponding to the given algorithm in . + + + .KeySize is less than the size corresponding to the algorithm in . Note: this is always checked. + + If the runtime is unable to create a suitable cryptographic provider. + + + + Gets the mapping from algorithm to the minimum .KeySize for creating signatures. + + + + + Gets the mapping from algorithm to the minimum .KeySize for verifying signatures. + + + + + Creating a Signature requires the use of a . + This method returns the + that describes the to use when generating a Signature. + + The SignatureAlgorithm in use. + The to use. + if is null or whitespace. + if is not supported. + + + + For testing purposes + + + + + Produces a signature over the 'input' using the and algorithm passed to . + + The bytes to be signed. + A signature over the input. + if is null. + if .Length == 0. + If has been called. + Sign is thread safe. + + + + Validates that an asymmetric key size is of sufficient size for a SignatureAlgorithm. + + The asymmetric key to validate. + Algorithm for which this key will be used. + Whether they key will be used for creating signatures. + if is null. + if is null or empty. + if .KeySize is less than the minimum + acceptable size. + + for minimum signing sizes. + for minimum verifying sizes. + + + + + Verifies that the over using the + and specified by this + are consistent. + + The bytes to generate the signature over. + The value to verify against. + true if signature matches, false otherwise. + is null or has length == 0. + is null or has length == 0. + If has been called. + Verify is thread safe. + + + + + + + Calls to release managed resources. + + true, if called from Dispose(), false, if invoked inside a finalizer. + + + + Encodes and Decodes strings as Base64Url encoding. + + + + + The following functions perform base64url encoding which differs from regular base64 encoding as follows + * padding is skipped so the pad character '=' doesn't have to be percent encoded + * the 62nd and 63rd regular base64 encoding characters ('+' and '/') are replace with ('-' and '_') + The changes make the encoding alphabet file and URL safe. + + string to encode. + Base64Url encoding of the UTF8 bytes. + + + + Converts a subset of an array of 8-bit unsigned integers to its equivalent string representation which is encoded with base-64-url digits. Parameters specify + the subset as an offset in the input array, and the number of elements in the array to convert. + + An array of 8-bit unsigned integers. + An offset in inArray. + The number of elements of inArray to convert. + The string representation in base 64 url encoding of length elements of inArray, starting at position offset. + 'inArray' is null. + offset or length is negative OR offset plus length is greater than the length of inArray. + + + + Converts a subset of an array of 8-bit unsigned integers to its equivalent string representation which is encoded with base-64-url digits. + + An array of 8-bit unsigned integers. + The string representation in base 64 url encoding of length elements of inArray, starting at position offset. + 'inArray' is null. + offset or length is negative OR offset plus length is greater than the length of inArray. + + + + Converts the specified string, base-64-url encoded to utf8 bytes. + base64Url encoded string. + UTF8 bytes. + + + + Decodes the string from Base64UrlEncoded to UTF8. + + string to decode. + UTF8 string. + + + + Base64 encode/decode implementation for as per https://tools.ietf.org/html/rfc4648#section-5. + Uses ArrayPool[T] to minimize memory usage. + + + + + Decodes a Base64UrlEncoded string into a byte array. + + The string to decode. + Decoded bytes. + + + + Decodes a Base64UrlEncoded string into a byte array. + + String to decode. + Index of char in to start decode operation. + Number of chars in to decode. + Decoded bytes. + + + + Decodes a Base64UrlEncoded string and then performs an action. + + String to decode. + Index of char in to start decode operation. + Number of chars in to decode from . + Input parameter to action. + Action to perform on decoded bytes. + Output type of decoding action. + Type of Input parameter to action. + Instance of {T}. + + The buffer for the decode operation uses shared memory pool to avoid allocations. + The length of the rented array of bytes may be larger than the decoded bytes, therefore the action needs to know the actual length to use. + The result of is passed to the action. + + + + + Decodes a Base64UrlEncoded string and then performs an action. + + The string to decode. + Index of char in to start decode operation from. + Count of char in to decode. + Action to perform on decoded bytes. + Return type of operation. + Instance of {T}. + + The buffer for the decode operation uses shared memory pool to avoid allocations. + The length of the rented array of bytes may be larger than the decoded bytes, therefore the action needs to know the actual length to use. + The result of is passed to the action. + + + + + Decodes a Base64UrlEncoded string and then performs an action. + + The string to decode. + Index of char in to start decode operation from. + Count of char in to decode. + Input parameter 1 to action. + Input parameter 2 to action. + Input parameter 3 to action. + Action to perform on decoded bytes. + Output type of decoding action. + Type of Input parameter 1 to action. + Type of Input parameter 2 to action. + Type of Input parameter 3 to action. + Instance of {T}. + + The buffer for the decode operation uses shared memory pool to avoid allocations. + The length of the rented array of bytes may be larger than the decoded bytes, therefore the action needs to know the actual length to use. + The result of is passed to the action. + + + + + Decodes a Base64UrlEncoded string into a byte array. + + String to decode. + Index of char in to start decode operation. + Number of chars in to decode. + byte array to place results. + + Changes from Base64UrlEncoder implementation + 1. Padding is optional. + 2. '+' and '-' are treated the same. + 3. '/' and '_' are treated the same. + + + + + Encode byte array to Base64UrlEncoded string. + + Bytes to encode. + Base64Url encoded string. + + + + Encode byte array to Base64UrlEncoded string. + + Bytes to encode. + Index into to start encode operation. + Number of bytes in to encode, starting from offset. + Base64Url encoded string. + + + + Validates the input string for decode operation. + + String to validate. + Index of char in to start decode operation. + Number of chars in to decode, starting from offset. + Size of the decoded bytes arrays. + + + + Represents a generic metadata configuration which is applicable for both XML and JSON based configurations. + + + + + Gets the issuer specified via the metadata endpoint. + + + + + Gets the that the IdentityProvider indicates are to be used in order to sign tokens. + + + + + Gets or sets the token endpoint specified via the metadata endpoint. + This is the fed:PassiveRequestorEndpoint in WS-Federation, https://docs.oasis-open.org/wsfed/federation/v1.2/os/ws-federation-1.2-spec-os.html#:~:text=fed%3ASecurityTokenServiceType/fed%3APassiveRequestorEndpoint + Or the token_endpoint in the OIDC metadata. + + + + + Gets or sets the token endpoint specified via the metadata endpoint. + This is the fed:SecurityTokenServiceType in WS-Federation, http://docs.oasis-open.org/wsfed/federation/v1.2/os/ws-federation-1.2-spec-os.html#:~:text=fed%3ASecurityTokenSerivceEndpoint + + + + + Gets the that the IdentityProvider indicates are to be used in order to decrypt tokens. + + + + + Comparison class for a . + + + + + Represents a generic configuration manager. + + + + + Gets or sets the that controls how often an automatic metadata refresh should occur. + + + + + 12 hours is the default time interval that afterwards will obtain new configuration. + + + + + 1 hour is the default time interval that a last known good configuration will last for. + + + + + 5 minutes is the default time interval that must pass for to obtain a new configuration. + + + + + The default constructor. + + + + + Constructor. + + The event queue task creation option. + + + + Obtains an updated version of if the appropriate refresh interval has passed. + This method may return a cached version of the configuration. + + CancellationToken + Configuration of type Configuration. + This method on the base class throws a as it is meant to be + overridden by the class that extends it. + + + + Gets all valid last known good configurations. + + A collection of all valid last known good configurations. + + + + The last known good configuration or LKG (a configuration retrieved in the past that we were able to successfully validate a token against). + + + + + The length of time that a last known good configuration is valid for. + + + + + The metadata address to retrieve the configuration from. + + + + + 5 minutes is the minimum value for automatic refresh. can not be set less than this value. + + + + + 1 second is the minimum time interval that must pass for to obtain new configuration. + + + + + The minimum time between retrievals, in the event that a retrieval failed, or that a refresh was explicitly requested. + + + + + Indicates whether the last known good feature should be used, true by default. + + + + + Indicates whether the last known good configuration is still fresh, depends on when the LKG was first used and it's lifetime. + + + + + Indicate that the configuration may be stale (as indicated by failing to process incoming tokens). + + + + + An opaque context used to store work when working with authentication artifacts. + + + + + Instantiates a new with a default activityId. + + + + + Instantiates a new with an activityId. + + + + + A class which contains useful methods for processing collections. + + + + + Checks whether is null or empty. + + The type of the . + The to be checked. + True if is null or empty, false otherwise. + + + + Constants for compression algorithms. + + + + + Compression provider factory for compression and decompression. + + + + + Static constructor that initializes the default . + + + + + Default constructor for . + + + + + Constructor that creates a deep copy of given object. + + to copy from. + + + + Returns the default instance. + + + + + Extensibility point for custom compression support application wide. + + + + + Answers if an algorithm is supported. + + the name of the crypto algorithm. + true if the algorithm is supported, false otherwise. + + + + Returns a for a specific algorithm. + + the decompression algorithm. + a . + + + + Defines the options which can be used to configure the internal LKG configuration cache. + See for more details. + + + + + 10 is the default size limit of the cache (in number of items) for last known good configuration. + + + + + Gets or sets the BaseConfgiurationComparer that to compare . + + + + + The size limit of the cache (in number of items) for last known good configuration. + + + + + The event queue task creation option, default to None instead of LongRunning as LongRunning will always start a task on a new thread instead of a thread from ThreadPool. + + + + + Whether or not to remove expired items. + + + + + Definition of cache for crypto providers + + + + + Returns the cache key to use when looking up an entry into the cache for a + + the to create the key for. + the cache key to use for finding a . + + + + Returns the 'key' that will be used to find a crypto provider in this cache. + + the key that is used to by the crypto provider. + the algorithm that is used by the crypto provider. + the typeof the crypto provider obtained by calling object.GetType(). + the cache key to use for finding a crypto provider. + + + + Trys to adds a to this cache. + + to cache. + true if the was added, false if the cache already contained the + + + + Trys to find a in this cache. + + the key that is used to by the crypto provider. + the algorithm that is used by the crypto provider. + the typeof the crypto provider obtained by calling object.GetType(). + a bool to indicate if the will be used to sign. + the if found. + true if a was found, false otherwise. + + + + Trys to remove a from this cache. + + to remove. + true if the was removed, false if the was not found. + + + + Specifies the CryptoProviderCacheOptions which can be used to configure the internal cryptoprovider cache. + We are using our own simple LRU caching implementation across all targets. + See for more details. + + + + + Default value for . + + + + + Gets or sets the size of the cache (in number of items). + 20% of the cache will be evicted whenever the cache gets to 95% of this size. + Items will be evicted from least recently used to most recently used. + + + + + Creates cryptographic operators by specifying a 's and algorithms. + + + + + Returns the default instance. + + + + + Gets or sets the default value for caching of 's. + + + + + Gets or sets the maximum size of the object pool used by the SignatureProvider that are used for crypto objects. + + + + + Static constructor that initializes the default . + + + + + Default constructor for . + + + + + Initializes an instance of a . + + + The cache to use for caching CryptoProviders + + + + + Constructor that creates a deep copy of given object. + + to copy from. + + + + Gets the + + + + + Extensibility point for creating custom cryptographic operators. + + By default, if set, will be called before creating cryptographic operators. + If true is returned, then will be called. The will throw if the + Cryptographic operator returned is not of the correct type. + + + + Gets or sets a bool controlling if should be cached. + + + + + Gets or sets the maximum size of the object pool used by the SignatureProvider that are used for crypto objects. + + + + + Creates an instance of for a specific <SecurityKey, Algorithm>. + + the to use. + the algorithm to use. + thrown if is null. + thrown if is null or empty. + thrown if and algorithm pair are not supported. + thrown if returns a type that is not assignable from . + + If is set and returns true. + is called to obtain the . + + When finished with the call . + + an instance of + + + + Creates an instance of for a specific <SecurityKey, Algorithm>. + + the to use. + the algorithm to use. + thrown if is null. + thrown if is null or empty. + thrown if and algorithm pair are not supported. + thrown if returns a type not assignable from . + + If is set and returns true. + is called to obtain the . + + When finished with the call . + + an instance of + + + + Creates an instance of for a specific <SecurityKey, Algorithm>. + + the to use. + the algorithm to use. + thrown if is null. + thrown if is null or empty. + thrown if and algorithm pair are not supported. + thrown if returns a type that is not assignable from . + + If is set and returns true. + is called to obtain the . + + When finished with the call . + + an instance of + + + + Creates a that creates a signature with the algorithm and . + + the to use for signing. + the algorithm to use for signing. + thrown if is null. + thrown if is null or empty. + thrown if is too small. + thrown if is not assignable from or . + thrown if the key / algorithm is not supported. + thrown if returns a type that is not assignable from . + + AsymmetricSignatureProviders require access to a PrivateKey for Signing. + When finished with the call . + If is set and returns true. + is called to obtain the . + + + A that can be used to create a signature using the and algorithm. + + + + Creates a that creates a signature with the algorithm and . + + the to use for signing. + the algorithm to use for signing. + indicates if the should be cached for reuse. + thrown if is null. + thrown if is null or empty. + thrown if is too small. + thrown if is not assignable from or . + thrown if the key / algorithm is not supported. + thrown if returns a type that is not assignable from . + + AsymmetricSignatureProviders require access to a PrivateKey for Signing. + When finished with the call . + If is set and returns true. + is called to obtain the . + + + A that can be used to create a signature using the and algorithm. + + + + Creates a that supports the and algorithm. + + The to use for signature verification. + The algorithm to use for verifying. + thrown if is null. + thrown if is null or empty. + thrown if is too small. + thrown if is not assignable from or . + thrown if the key / algorithm is not supported. + thrown if returns a type that is not assignable from . + When finished with the call . + If is set and returns true. + is called to obtain the . + + + A that can be used to validate a signature using the and algorithm. + + + + Creates a that supports the and algorithm. + + The to use for signature verification. + The algorithm to use for verifying. + should the be cached. + thrown if is null. + thrown if is null or empty. + thrown if is too small. + thrown if is not assignable from or . + thrown if the key / algorithm is not supported. + thrown if returns a type that is not assignable from . + When finished with the call . + If is set and returns true. + is called to obtain the . + + + A that can be used to validate a signature using the and algorithm. + + + + Creates a for a specific algorithm. + + the name of the hash algorithm to create. + thrown if is null or empty. + thrown if returns a type that is not assignable from . + thrown if is not supported. + When finished with the call . + If is set and returns true. + is called to obtain the . + + + A . + + + + Creates a for a specific algorithm. + + the name of the hash algorithm to create. + thrown if is null or empty. + thrown if returns a type that is not assignable from . + thrown if is not supported. + When finished with the call . + If is set and returns true. + is called to obtain the . + + + A . + + + + Returns a for a specific algorithm. + + bytes to use to create the Keyed Hash. + the name of the keyed hash algorithm to create. + thrown if is null. + thrown if is null or empty. + thrown if returns a type that is not assignable from . + is not supported. + When finished with the call . + If is set and returns true. + is called to obtain the . + + + A . + + + + For some security key types, in some runtimes, it's not possible to extract public key material and create an . + In these cases, will be an empty string, and these keys should not be cached. + + to be examined. + True if should be cached, false otherwise. + + + + Checks if an algorithm is supported. + + the name of the Hash algorithm. + Only considers known Hash algorithms. + true if: + + If is set and returns true. + + The algorithm is supported. + + + + + + Checks if the algorithm and is supported. + + the security algorithm to apply. + the . + Algorithms are supported for specific key types. + For example: + and will return true. + and will return false. + + true if: + + If is set and returns true. + + The algorithm / key pair is supported. + + + + + + When finished with a call this method for cleanup. The default behavior is to call + + to be released. + thrown if is null. + + + + When finished with a call this method for cleanup."/> + + to be released. + thrown if is null. + + + + When finished with a call this method for cleanup."/> + + to be released. + thrown if is null. + + + + When finished with a call this method for cleanup. The default behavior is to call + + to be released. + thrown if is null. + + + + Helper class for adding DateTimes and Timespans. + + + + + Add a DateTime and a TimeSpan. + The maximum time is DateTime.MaxTime. It is not an error if time + timespan > MaxTime. + Just return MaxTime. + + Initial value. + to add. + as the sum of time and timespan. + + + + Gets the Maximum value for a DateTime specifying kind. + + DateTimeKind to use. + DateTime of specified kind. + + + + Gets the Minimum value for a DateTime specifying kind. + + DateTimeKind to use. + DateTime of specified kind. + + + + Ensures that DataTime is UTC. + + to convert. + + + + + Ensures that DateTime is UTC. + + to convert. + + + + + A compression provider that supports compression and decompression using the algorithm. + + + + + Initializes a new instance of the class used to compress and decompress used the algorithm. + + + + + Initializes a new instance of the class used to compress and decompress used the algorithm. + The compression level to use when compressing. + + + + + Gets the compression algorithm. + + + + + Specifies whether compression should emphasize speed or compression size. + Set to by default. + + + + + Decompress the value using DEFLATE algorithm. + + the bytes to decompress. + the decompressed bytes. + + + + Compress the value using the DEFLATE algorithm. + + the bytes to compress. + the compressed bytes. + + + + Answers if a compression algorithm is supported. + + the name of the compression algorithm. + true if the compression algorithm is supported, false otherwise. + + + + This adapter abstracts the differences between versions of .Net targets. + + + + + Initializes a new instance of the class. + + + creation is not supported by some platforms. + For more details, see https://aka.ms/IdentityModel/create-ecdsa. + + + + + Creates an ECDsa object using the and . + + + + + Returns the size of key in bytes + + Represents ecdsa curve -P256, P384, P521 + Size of the key in bytes + + + + Magic numbers identifying ECDSA blob types + + + + + Returns the magic value representing the curve corresponding to the curve id. + + Represents ecdsa curve -P256, P384, P512 + Whether the provider will create signatures or not + Uint representing the magic number + + + + Tests if user's runtime platform supports operations using . + + True if operations using are supported on user's runtime platform, false otherwise. + + + + Creates an ECDsa object using the and . + 'ECParameters' structure is available in .NET Framework 4.7+, .NET Standard 1.6+, and .NET Core 1.0+. + + + + + Returns the elliptic curve corresponding to the curve id. + + Represents ecdsa curve -P256, P384, P512 + + + + Tests if user application's runtime supports structure. + + True if structure is supported, false otherwise. + + + + Throws during runtime if user application's runtime doesn't support structure. + + + + + Represents a ECDsa security key. + + + + + Returns a new instance of . + + + + + + instance used to initialize the key. + + + + + Gets a bool indicating if a private key exists. + + true if it has a private key; otherwise, false. + + + + Gets an enum indicating if a private key exists. + + 'Exists' if private key exists for sure; 'DoesNotExist' if private key doesn't exist for sure; 'Unknown' if we cannot determine. + + + + Gets key size. + + + + + Determines whether the can compute a JWK thumbprint. + + true if JWK thumbprint can be computed; otherwise, false. + https://datatracker.ietf.org/doc/html/rfc7638 + + + + Computes a sha256 hash over the . + + A JWK thumbprint. + https://datatracker.ietf.org/doc/html/rfc7638 + + + + Collection of text encoding related helper methods. + + + + + Obtains bytes from a string using the Encoding and then performs an action. + + String to process. + Encoding used to obtain bytes. + Operation to invoke with result which is byte array and length of useful data in array with offset as 0. + Return type of operation. + Instance of {T}. + + The encoding operation uses shared memory pool to avoid allocations. + The length of the rented array of bytes may be larger than the decoded bytes, therefore the action needs to know the actual length to use. + is passed to the action. + + + + + Obtains bytes from a string using the Encoding and then performs an action. + + String to process. + Index to start from in . + Length of characters to operate in from . + Encoding used to obtain bytes. + Operation to invoke with result which is byte array and length of useful data in array with offset as 0. + Return type of operation. + Instance of {T}. + + The encoding operation uses shared memory pool to avoid allocations. + The length of the rented array of bytes may be larger than the decoded bytes, therefore the action needs to know the actual length to use. + is passed to the action. + + + + + Obtains bytes from a string using the Encoding and then performs an action. + + String to process. + Index to start from in . + Length of characters to operate in from . + Encoding used to obtain bytes. + Input parameter 1 to action. + Input parameter 2 to action. + Input parameter 3 to action. + Action to perform with bytes. + Return type of operation. + Type of Input parameter 1 to action. + Type of Input parameter 2 to action. + Type of Input parameter 3 to action. + Instance of {T}. + + The encoding operation uses shared memory pool to avoid allocations. + The length of the rented array of bytes may be larger than the decoded bytes, therefore the action needs to know the actual length to use. + is passed to the action. + + + + + Encodes the string using given Encoding, and invokes the operation with the result. + + Return type of operation. + Input parameter to operation. + String to process. + Encoding used to obtain bytes. + Additional operation parameter. + Operation to invoke with result which is byte array and length of useful data in array with offset as 0. + Result of operation. + + The encoding operation uses shared memory pool to avoid allocations. + The length of the rented array of bytes may be larger than the decoded bytes, therefore the action needs to know the actual length to use. + is passed to the action. + + + + + Obtains bytes from a string using the Encoding and then performs an action. + + String to process. + Index to start from in . + Length of characters to operate in from . + Encoding used to obtain bytes. + Additional operation parameter. + Operation to invoke with result which is byte array and length of useful data in array with offset as 0. + Return type of operation. + Input parameter to operation. + Instance of {T}. + + The encoding operation uses shared memory pool to avoid allocations. + The length of the rented array of bytes may be larger than the decoded bytes, therefore the action needs to know the actual length to use. + is passed to the action. + + + + + A class for properties that are used for token encryption. + + + + + Initializes a new instance of the class. + + . + A key wrap algorithm to use when encrypting a session key. + Data encryption algorithm to apply. + if 'certificate' is null. + if 'alg' is null or empty. + if 'enc' is null or empty. + + + + Initializes a new instance of the class. + + to use when encrypting a session key. + A key wrap algorithm to use when encrypting a session key. + Data encryption algorithm to apply. + if 'key' is null. + if 'alg' is null or empty. + if 'enc' is null or empty. + + + + Initializes a new instance of the class. + + Used in scenarios when a key represents a 'shared' symmetric key. + For example, SAML 2.0 Assertion will be encrypted using a provided symmetric key + which won't be serialized to a SAML token. + + to apply. + Data encryption algorithm to apply. + If the is not a . + if 'enc' is null or empty. + + + + Gets the key wrap algorithm used for session key encryption. + + + + + Gets the data encryption algorithm. + + + + + Public key used in Key Agreement Algorithms + + + + + Users can override the default with this property. This factory will be used for creating encryption providers. + + + + + Gets or sets a bool that controls if the encrypted token creation will set default 'cty' if not specified. + + Applies to only JWT tokens. + + + + + + Gets the used for encryption. + + + + + Provides authenticated encryption and decryption services. + + + + + Initializes a new instance of the class used for encryption and decryption. + + The that will be used for crypto operations. + The encryption algorithm to apply. + 'key' is null. + 'algorithm' is null or whitespace. + key size is not large enough. + 'algorithm' is not supported. + a symmetricSignatureProvider is not created. + + + + Gets the encryption algorithm that is being used. + + + + + Gets or sets a user context for a . + + This is null by default. This can be used by applications for extensibility scenarios. + + + + Gets the that is being used. + + + + + Encrypts the 'plaintext' + + the data to be encrypted. + will be combined with iv and ciphertext to create an authenticationtag. + containing ciphertext, iv, authenticationtag. + plaintext is null or empty. + authenticationData is null or empty. + AES crypto operation threw. See inner exception for details. + + + + Encrypts the 'plaintext' + + the data to be encrypted. + will be combined with iv and ciphertext to create an authenticationtag. + initialization vector for encryption. + containing ciphertext, iv, authenticationtag. + is null or empty. + is null or empty. + Thrown if the AES crypto operation threw. See inner exception for details. + Thrown if the internal is disposed. + + + + Decrypts ciphertext into plaintext + + the encrypted text to decrypt. + the authenticateData that is used in verification. + the initialization vector used when creating the ciphertext. + the authenticationTag that was created during the encyption. + decrypted ciphertext + is null or empty. + is null or empty. + is null or empty. + is null or empty. + Thrown if the signature over the authenticationTag fails to verify. + Thrown if the AES crypto operation threw. See inner exception. + Thrown if the internal is disposed. + + + + Calls and + + + + + Releases managed resources. + + true, if called from Dispose(), false, if invoked inside a finalizer. + + + + Checks if an 'key, algorithm' pair is supported + + the + the algorithm to check. + true if 'key, algorithm' pair is supported. + + + + The algorithm parameter logically defines a HMAC algorithm. + This method returns the HMAC to use. + + + + + + + Called to obtain the byte[] needed to create a + + that will be used to obtain the byte[]. + [] that is used to populated the KeyedHashAlgorithm. + if is null. + if a byte[] can not be obtained from SecurityKey. + and are supported. + For a .Key is returned + For a Base64UrlEncoder.DecodeBytes is called with if == JsonWebAlgorithmsKeyTypes.Octet + + + + + Checks that the key has sufficient length + + that contains bytes. + the algorithm to apply. + if is null. + if is null or empty. + if is not a supported algorithm. + + + + Contains the results of operation. + + + + + Initializes a new + + the used during + protected text. + the initialization vector used. + the bytes that need be passed to . + + + + Gets the . + + + + + Gets the Ciphertext. + + + + + Gets the initialization vector. + + + + + Gets the authentication tag + + + + + Provides a Security Key that can be used as Content Encryption Key (CEK) for use with a JWE + + + + + Number of bits in the desired output key + + + + + Initializes a new instance of used for CEKs + The that will be used for cryptographic operations and represents the private key. + The that will be used for cryptographic operations and represents the public key. + alg header parameter value. + enc header parameter value. + + + + + Generates the KDF + + Agreement PartyUInfo (optional). When used, the PartyVInfo value contains information about the producer, + represented as a base64url-encoded string. + Agreement PartyVInfo (optional). When used, the PartyUInfo value contains information about the recipient, + represented as a base64url-encoded string. + Returns that represents the key generated + + + + Provides Wrap key and Unwrap key services. + + + + + Gets the KeyWrap algorithm that is being used. + + + + + Gets or sets a user context for a . + + This is null by default. This can be used by runtimes or for extensibility scenarios. + + + + Gets the that is being used. + + + + + Calls and + + + + + Can be over written in descendants to dispose of internal components. + + true, if called from Dispose(), false, if invoked inside a finalizer + + + + Unwrap a key. + + key to unwrap. + Unwrapped key. + + + + Wrap a key. + + the key to be wrapped + wrapped key. + + + + Provides RSA Wrap key and Unwrap key services. + + + + + Initializes a new instance of used for wrapping and un-wrappping keys. + These keys are usually symmetric session keys that are wrapped using the recipients public key. + The that will be used for cryptographic operations. + The KeyWrap algorithm to apply. + Whether this is required to un-wrap keys. If true, the private key is required. + 'key' is null. + 'algorithm' is null. + The key size doesn't match the algorithm. + If and algorithm pair are not supported. + Failed to create RSA algorithm with provided key and algorithm. + + + + + Gets the KeyWrap algorithm that is being used. + + + + + Gets or sets a user context for a . + + This is null by default. This is for use by the application and not used by this SDK. + + + + Gets the that is being used. + + + + + Disposes of internal components. + + true, if called from Dispose(), false, if invoked inside a finalizer. + + + + Checks if an algorithm is supported. + + The that will be used for crypto operations. + The KeyWrap algorithm to apply. + true if the algorithm is supported; otherwise, false. + + + + Unwrap a key using RSA decryption. + + the bytes to unwrap. + Unwrapped key + 'keyBytes' is null or length == 0. + If has been called. + Failed to unwrap the wrappedKey. + If the internal RSA algorithm is null. + + + + Wrap a key using RSA encryption. + + the key to be wrapped + A wrapped key + 'keyBytes' is null or has length == 0. + If has been called. + Failed to wrap the 'keyBytes'. + If the internal RSA algorithm is null. + + + + Provides Wrap key and Unwrap key services. + + + + + Initializes a new instance of the class used for wrap key and unwrap key. + The that will be used for crypto operations. + The KeyWrap algorithm to apply. + 'key' is null. + 'algorithm' is null. + If and algorithm pair are not supported. + The cannot be converted to byte array + The keysize doesn't match the algorithm. + Failed to create symmetric algorithm with provided key and algorithm. + + + + + Gets the KeyWrap algorithm that is being used. + + + + + Gets or sets a user context for a . + + This is null by default. This can be used by runtimes or for extensibility scenarios. + + + + Gets the that is being used. + + + + + Disposes of internal components. + + true, if called from Dispose(), false, if invoked inside a finalizer. + + + + Returns the . + + + The cannot be converted to byte array + The keysize doesn't match the algorithm. + Failed to create symmetric algorithm with provided key and algorithm. + + + + Answers if an algorithm is supported + + the + the algorithm to use + true if the algorithm is supported; otherwise, false. + + + + Unwrap a key using Symmetric decryption. + + bytes to unwrap + Unwraped key + 'keyBytes' is null or length == 0. + 'keyBytes' is not a multiple of 8. + If has been called. + Failed to unwrap the wrappedKey. + + + + Wrap a key using Symmetric encryption. + + the key to be wrapped + The wrapped key result + 'keyBytes' is null or has length 0. + 'keyBytes' is not a multiple of 8. + If has been called. + Failed to wrap 'keyBytes'. + + + + Returns the absolute DateTime or the Seconds since Unix Epoch, where Epoch is UTC 1970-01-01T0:0:0Z. + + + + + DateTime as UTV for UnixEpoch + + + + + Per JWT spec: + Gets the number of seconds from 1970-01-01T0:0:0Z as measured in UTC until the desired date/time. + + The DateTime to convert to seconds. + if dateTimeUtc less than UnixEpoch, return 0 + the number of seconds since Unix Epoch. + + + + Creates a DateTime from epoch time. + + Number of seconds. + The DateTime in UTC. + + + + This is an LRU cache implementation that relies on an event queue rather than locking to achieve thread safety. + This approach has been decided on in order to optimize the performance of the get and set operations on the cache. + This cache contains a doubly linked list in order to maintain LRU order, as well as a dictionary (map) to keep track of + keys and expiration times. The linked list (a structure which is not thread-safe) is NEVER modified directly inside + an API call (e.g. get, set, remove); it is only ever modified sequentially by a background thread. On the other hand, + the map is a which may be modified directly inside an API call or + through eventual processing of the event queue. This implementation relies on the principle of 'eventual consistency': + though the map and it's corresponding linked list may be out of sync at any given point in time, they will eventually line up. + See here for more details: + https://aka.ms/identitymodel/caching + + The key type to be used by the cache. + The value type to be used by the cache + + + + Constructor. + + The capacity of the cache, used to determine if experiencing overflow. + The event queue task creation option, default to None instead of LongRunning as LongRunning will always start a task on a new thread instead of ThreadPool. + The equality comparison implementation to be used by the map when comparing keys. + Whether or not to remove expired items. + The period to wait to remove expired items, in seconds. + Whether or not to maintain items in a LRU fashion, moving to front of list when accessed in the cache. + + + + Occurs when the application is ready to exit. + + The sender of the event. + The event argument. + + + + Occurs when an AppDomain is about to be unloaded. + + The sender of the event. + The event argument. + + + + Stop the event queue task. + This is provided mainly for users who have unit tests that check for running task(s) to stop the task at the end of each test. + + + + + Stop the event queue task immediately if it is running. This allows the task/thread to terminate gracefully. + Currently there is no unmanaged resource, if any is added in the future it should be disposed of in this method. + + + + + This is the delegate for the event queue task. + + + + + Remove all expired cache items from _doubleLinkedList and _map. + + Number of items removed. + + + + Remove all expired cache items from the _map ONLY. This is called for the non-LRU (_maintainLRU = false) scenaro. + The enumerator returned from the dictionary is safe to use concurrently with reads and writes to the dictionary, according to the MS document. + + Number of items removed. + + + + Remove items from the LinkedList by the desired compaction percentage. + This should be a private method. + + + + + Remove items from the Dictionary by the desired compaction percentage. + Since _map does not have LRU order, items are simply removed from using FirstOrDefault(). + + + + + When the cache is at _maxCapacityPercentage, it needs to be compacted by _compactionPercentage. + This method calculates the new size of the cache after being compacted. + + The new target cache size after compaction. + + + + This is the method that determines the end time for the event queue task. + The goal is to be able to track the incoming events and predict how long the task should run in order to + avoid a long running task and reduce the overhead costs of restarting tasks. + For example, maybe we can track the last three events' time and set the _eventQueueRunDurationInSeconds = 2 * average_time_between_events. + Note: tasks are based on thread pool so the overhead should not be huge but we should still try to minimize it. + + the time when the event queue task should end + + + + This method is called after an item is added to the event queue. It will start the event queue task if one is not already running (_eventQueueTaskState != EventQueueTaskRunning). + Using CompareExchange to set the _eventQueueTaskState prevents multiple tasks from being started. + + + + Each time a node gets accessed, it gets moved to the beginning (head) of the list if the _maintainLRU == true + + + Removes a particular key from the cache. + + + + FOR TESTING ONLY. + + + + + + FOR TESTING ONLY. + + + + + FOR TESTING ONLY. + + + + + FOR TESTING ONLY. + + + + + + FOR TESTING ONLY. + + + + + FOR TESTING PURPOSES ONLY. + This is for tests to verify all tasks exit at the end of tests if the queue is empty. + + + + + FOR TESTING PURPOSES ONLY. + + + + + Throw this exception when a received has invalid arguments. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class with a specified error message + and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The that is the cause of the current exception, or a null reference if no inner exception is specified. + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + Thrown when JWE compression fails. + + + + + Initializes a new instance of + + + + + Initializes a new instance of + + + + + Initializes a new instance of + + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + Thrown when JWE decompression fails. + + + + + Initializes a new instance of + + + + + Initializes a new instance of + + + + + Initializes a new instance of + + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + Represents a security token exception when decryption failed. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class with a specified error message + and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The that is the cause of the current exception, or a null reference if no inner exception is specified. + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + Represents a security token exception when encryption failed. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class with a specified error message + and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The that is the cause of the current exception, or a null reference if no inner exception is specified. + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + This exception is thrown when a security token contained a key identifier but the key was not found by the runtime + when decrypting a token. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + A that represents the root cause of the exception. + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + Represents a security token exception. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class with a specified error message + and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The that is the cause of the current exception, or a null reference if no inner exception is specified. + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + When overridden in a derived class, sets the System.Runtime.Serialization.SerializationInfo + with information about the exception. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + thrown if is null. + + + + Throw this exception when a received Security Token has expiration time in the past. + + + + + Gets or sets the Expires value that created the validation exception. This value is always in UTC. + + + + + Initializes a new instance of + + + + + Initializes a new instance of + + + + + Initializes a new instance of + + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + + + + This exception is thrown when a cryptographic algorithm is invalid. + + + + + Gets or sets the invalid algorithm that created the validation exception. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Additional information to be included in the exception and displayed to user. + + + + Initializes a new instance of the class. + + Additional information to be included in the exception and displayed to user. + A that represents the root cause of the exception. + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + + + + This exception is thrown when 'audience' of a token was not valid. + + + + + Gets or sets the InvalidAudience that created the validation exception. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + A that represents the root cause of the exception. + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + + + + This exception is thrown when 'issuer' of a token was not valid. + + + + + Gets or sets the InvalidIssuer that created the validation exception. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + A that represents the root cause of the exception. + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + + + + This exception is thrown when 'lifetime' of a token was not valid. + + + + + Gets or sets the NotBefore value that created the validation exception. This value is always in UTC. + + + + + Gets or sets the Expires value that created the validation exception. This value is always in UTC. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + A that represents the root cause of the exception. + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + + + + This exception is thrown when 'signature' of a token was not valid. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + A that represents the root cause of the exception. + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + Throw this exception when a received Security Token has an invalid issuer signing key. + + + + + Gets or sets the SigningKey that was found invalid. + + + + + Initializes a new instance of + + + + + Initializes a new instance of + + + + + Initializes a new instance of + + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + This exception is thrown when the token type ('typ' header claim) of a JWT token is invalid. + + + + + Gets or sets the invalid type that created the validation exception. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Additional information to be included in the exception and displayed to user. + + + + Initializes a new instance of the class. + + Additional information to be included in the exception and displayed to user. + A that represents the root cause of the exception. + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + + + + Represents a key wrap exception when encryption failed. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class with a specified error message + and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The that is the cause of the current exception, or a null reference if no inner exception is specified. + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + Represents a exception when the token is malformed. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class with a specified error message + and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The that is the cause of the current exception, or a null reference if no inner exception is specified. + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + This exception is thrown when a security is missing an ExpirationTime. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + A that represents the root cause of the exception. + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + Throw this exception when a received Security token has an effective time + in the future. + + + + + Gets or sets the NotBefore value that created the validation exception. This value is always in UTC. + + + + + Initializes a new instance of + + + + + Initializes a new instance of + + + + + Initializes a new instance of + + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + + + + This exception is thrown when an add to the TokenReplayCache fails. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + A that represents the root cause of the exception. + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + Throw this exception when a received Security Token has been replayed. + + + + + Initializes a new instance of + + + + + Initializes a new instance of + + + + + Initializes a new instance of + + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + This exception is thrown when a security token contained a key identifier but the key was not found by the runtime. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + A that represents the root cause of the exception. + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + This exception is thrown when a security token contained a key identifier but the key was not found by the runtime + and when validation errors exist over the security token. This exception is not intended to be used as a signal + to refresh keys. + + + This exception type is now considered obsolete and will be removed in the next major version (7.0.0). + + + + + Indicates the type of the validation failure. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The validation failures. + Addtional information to be included in the exception and displayed to user. + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + A that represents the root cause of the exception. + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + + + + Represents a security token validation exception. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class with a specified error message + and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The that is the cause of the current exception, or a null reference if no inner exception is specified. + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + The reason for being unable to validate + + + + + Indicates no validation failures + + + + + Indicates that the lifetime was invalid + + + + + Indicates that the issuer was invalid + + + + + Compression provider interface. + + + + + Gets the compression algorithm. + + + + + Called to determine if an algorithm is supported. + + the algorithm that defines the compression method. + true if supported + + + + Decompress. + + the value to decompress. + + + + Compress. + + the value to decompress. + + + + Provides extensibility for cryptographic operators. + If custom operators are needed for then can be set to + return these operators. will be before each creation. + + + + + Called to determine if a cryptographic operation is supported. + + the algorithm that defines the cryptographic operator. + the arguments required by the cryptographic operator. May be null. + true if supported + + + + returns a cryptographic operator that supports the algorithm. + + the algorithm that defines the cryptographic operator. + the arguments required by the cryptographic operator. May be null. + call when finished with the object. + + + + called to release the object returned from + + the object returned from . + + + + Defines a cache for crypto providers. + Current support is limited to only. + + + + + Creates a new instance of using the default . + + + + + Creates a new instance of using the specified . + + The options used to configure the . + + + + Creates a new instance of using the specified . + + The options used to configure the . + Options used to create the event queue thread. + The time used in ms for the timeout interval of the event queue. Defaults to 500 ms. + + + + Returns the cache key to use when looking up an entry into the cache for a + + the to create the key for. + if signatureProvider is null. + the cache key to use for finding a . + + + + Returns the 'key' that will be used to find a crypto provider in this cache. + + the key that is used to by the crypto provider. + the algorithm that is used by the crypto provider. + the typeof the crypto provider obtained by calling object.GetType(). + if securityKey is null. + if algorithm is null or empty string. + if typeofProvider is null or empty string. + the cache key to use for finding a crypto provider. + + + + Trys to adds a to this cache. + + to cache. + if signatureProvider is null. + + true if the was added, false if the cache already contained the or if should not be cached. + + if the is added will be set to 'this'. + + + + Trys to find a to this cache. + + the key that is used to by the crypto provider. + the algorithm that is used by the crypto provider. + the typeof the crypto provider obtained by calling object.GetType(). + a bool to indicate if the will be used to sign. + the if found. + if securityKey is null. + if algorithm is null or empty string. + if typeofProvider is null or empty string. + true if a was found, false otherwise. + + + + Trys to remove a from this cache. + + to remove. + if signatureProvider is null. + true if the was removed, false if the was not found. + if the is removed will be set to null. + + + + Calls and + Note: the EventBasedLRUCache is no longer being disposed of, but since this is a public class and can be used as base class of + custom cache implementations, we need to keep it as some implementations may override Dispose(). + + + + + If is true, this method disposes of and . + + True if called from the method, false otherwise. + + + + FOR TESTING ONLY. + + + + + FOR TESTING ONLY. + + + + + FOR TESTING ONLY. + + + + + FOR TESTING ONLY. + + + + + FOR TESTING ONLY. + + + + + FOR TESTING ONLY. + + + + + FOR TESTING PURPOSES ONLY. + + + + + Validators meant to be kept internal + + + + + Called after signature validation has failed to avoid a metadata refresh + + + + + ISecurityTokenValidator + + + + + Returns true if the token can be read, false otherwise. + + + + + Returns true if a token can be validated. + + + + + Gets and sets the maximum size in bytes, that a will be processed. + + + + + Validates a token passed as a string using + + + + + Interface that defines a simple cache for tacking replaying of security tokens. + + + + + Try to add a securityToken. + + the security token to add. + the time when security token expires. + true if the security token was successfully added. + + + + Try to find securityToken + + the security token to find. + true if the security token is found. + + + + Constants for JsonWebAlgorithms "kty" Key Type (sec 6.1) + https://datatracker.ietf.org/doc/html/rfc7518#section-6.1 + + + + + Represents a JSON Web Key as defined in https://datatracker.ietf.org/doc/html/rfc7517. + + + + + Initializes an new instance of . + + + + + Returns a new instance of . + + A string that contains JSON Web Key parameters in JSON format. + + If 'json' is null or empty. + If 'json' fails to deserialize. + + + + Initializes an new instance of from a json string. + + A string that contains JSON Web Key parameters in JSON format. + If 'json' is null or empty. + If 'json' fails to deserialize. + + + + If this was converted to or from a SecurityKey, this field will be set. + + + + + If this was failed converted to a SecurityKey, this field will be set. + + + + + When deserializing from JSON any properties that are not defined will be placed here. + + + + + Gets or sets the 'alg' (KeyType). + + + + + Gets or sets the 'crv' (ECC - Curve). + + + + + Gets or sets the 'd' (ECC - Private Key OR RSA - Private Exponent). + + Value is formated as: Base64urlUInt + + + + Gets or sets the 'dp' (RSA - First Factor CRT Exponent). + + Value is formated as: Base64urlUInt + + + + Gets or sets the 'dq' (RSA - Second Factor CRT Exponent). + + Value is formated as: Base64urlUInt + + + + Gets or sets the 'e' (RSA - Exponent). + + + + + Gets or sets the 'k' (Symmetric - Key Value). + + Base64urlEncoding + + + + Gets the key id of this . + + + + + Gets the 'key_ops' (Key Operations). + + + + + Gets or sets the 'kid' (Key ID).. + + + + + Gets or sets the 'kty' (Key Type). + + + + + Gets or sets the 'n' (RSA - Modulus). + + Value is formatted as: Base64urlEncoding + + + + Gets or sets the 'oth' (RSA - Other Primes Info). + + + + + Gets or sets the 'p' (RSA - First Prime Factor).. + + Value is formatted as: Base64urlUInt + + + + Gets or sets the 'q' (RSA - Second Prime Factor).. + + Value is formatted as: Base64urlUInt + + + + Gets or sets the 'qi' (RSA - First CRT Coefficient).. + + Value is formatted as: Base64urlUInt + + + + Gets or sets the 'use' (Public Key Use).. + + + + + Gets or sets the 'x' (ECC - X Coordinate).. + + Value is formatted as: Base64urlEncoding + + + + Gets the 'x5c' collection (X.509 Certificate Chain).. + + + + + Gets or sets the 'x5t' (X.509 Certificate SHA-1 thumbprint).. + + + + + Gets or sets the 'x5t#S256' (X.509 Certificate SHA-256 thumbprint).. + + + + + Gets or sets the 'x5u' (X.509 URL).. + + + + + Gets or sets the 'y' (ECC - Y Coordinate).. + + Value is formatted as: Base64urlEncoding + + + + Gets the key size of . + + + + + Gets a bool indicating if a private key exists. + + true if it has a private key; otherwise, false. + + + + Determines whether the can compute a JWK thumbprint. + + true if JWK thumbprint can be computed; otherwise, false. + https://datatracker.ietf.org/doc/html/rfc7638 + + + + Computes the JWK thumprint per spec: https://datatracker.ietf.org/doc/html/rfc7638 />. + + A the JWK thumbprint. + + + + Creates a JsonWebKey representation of an asymmetric public key. + + JsonWebKey representation of an asymmetric public key. + https://datatracker.ietf.org/doc/html/rfc7800#section-3.2 + + + + Returns the formatted string: GetType(), Use: 'value', Kid: 'value', Kty: 'value', InternalId: 'value'. + + string + + + + Converts a into a + Supports: converting to a from one of: , , and . + + + + + Converts a into a + + a to convert. + a + if is null. + if is not a supported type. + Supports: , and . + + + + Converts a into a + + a to convert. + a + if is null. + + + + Converts a into a + + a to convert. + a + if is null. + + + + Converts a into a . + + a to convert. + + true to represent the as an , + false to represent the as an , using the "x5c" parameter. + + a . + if is null. + + + + Converts a into a + + a to convert. + a + if is null. + + + + Converts a into a + + an to convert. + a + if is null. + + + + Constants for JsonWebKey Elliptical Curve Types + https://datatracker.ietf.org/doc/html/rfc7518#section-6.2.1.1 + + + + + JsonWebKey parameter names + see: https://datatracker.ietf.org/doc/html/rfc7517 + + + + + JsonWebKey parameter names as UTF8 bytes + Used by UTF8JsonReader/Writer for performance gains. + + + + + Contains a collection of that can be populated from a json string. + + provides support for https://datatracker.ietf.org/doc/html/rfc7517. + + + + Returns a new instance of . + + a string that contains JSON Web Key parameters in JSON format. + + If 'json' is null or empty. + If 'json' fails to deserialize. + + + + Initializes an new instance of . + + + + + Initializes an new instance of from a json string. + + a json string containing values. + If 'json' is null or empty. + If 'json' fails to deserialize. + + + + When deserializing from JSON any properties that are not defined will be placed here. + + + + + Gets the . + + + + + Default value for the flag that controls whether unresolved JsonWebKeys will be included in the resulting collection of method. + + + + + Flag that controls whether unresolved JsonWebKeys will be included in the resulting collection of method. + + + + + Returns the JsonWebKeys as a . + + + To include unresolved JsonWebKeys in the resulting collection, set to false. + + + + + Names for Json Web Key Set Values + + + + + Constants for JsonWebKeyUse (sec 4.2) + https://datatracker.ietf.org/doc/html/rfc7517#section-4.2 + + + + + Creates a JsonException that provides information on what went wrong + + the . + the type the reader was expecting to find. + the name of the type being read. + the property name being read. + inner exception if any. + + + + + This method is called when deserializing a property value as an object. + Normally we put the object into a Dictionary[string, object]. + + the + the property name that is being read + the type that is being deserialized + if true reader.Read() will be called. + + + + + Writes an 'object' as a JsonProperty. + This was written to support what IdentityModel6x supported and is not meant to be a + general object serializer. + If a user needs to serialize a special value, then serialize the value into a JsonElement. + + + + + Writes values into an array. + Assumes the writer.StartArray() has been called. + + + + + + + Reads a JsonWebKey. see: https://datatracker.ietf.org/doc/html/rfc7517 + + a pointing at a StartObject. + + A . + + + + Reads a JsonWebKey. see: https://datatracker.ietf.org/doc/html/rfc7517 + + a pointing at a StartObject. + + A . + + + + This method will be used when reading OIDC metadata + + + + + + + Log messages and codes + + + + + Generic implementation of object pooling pattern with predefined pool size limit. The main + purpose is that limited number of frequently used objects can be kept in the pool for + further recycling. + + Notes: + 1) it is not the goal to keep all returned objects. Pool is not meant for storage. If there + is no space in the pool, extra returned objects will be dropped. + + 2) it is implied that if object was obtained from a pool, the caller will return it back in + a relatively short time. Keeping checked out objects for long durations is ok, but + reduces usefulness of pooling. Just new up your own. + + Not returning objects to the pool in not detrimental to the pool's work, but is a bad practice. + Rationale: + If there is no intent for reusing the object, do not use pool - just use "new". + + + + + Produces an instance. + + + Search strategy is a simple linear probing which is chosen for it cache-friendliness. + Note that Free will try to store recycled objects close to the start thus statistically + reducing how far we will typically search. + + + + + Returns objects to the pool. + + + Search strategy is a simple linear probing which is chosen for it cache-friendliness. + Note that Free will try to store recycled objects close to the start thus statistically + reducing how far we will typically search in Allocate. + + + + + Returns a string message for the specified Win32 error code. + + + + + The purpose of this class is to ensure that we obtain an RsaCryptoServiceProvider that supports SHA-256 signatures. + If the original RsaCryptoServiceProvider doesn't support SHA-256, we create a new one using the same KeyContainer. + + + There is no support for and on non-Windows platforms which makes a Windows-specific class. + + + + + Gets the SignatureAlgorithm + + + + + Gets the KeyExchangeAlgorithm + + + + + Initializes an new instance of . + + + if is null. + + + + Decrypts data with the System.Security.Cryptography.RSA algorithm. + + The data to be decrypted. + true to perform direct System.Security.Cryptography.RSA decryption using OAEP padding + (only available on a computer running Microsoft Windows XP or later) otherwise, false to use PKCS#1 v1.5 padding. + decrypted bytes. + if is null or has Length == 0. + + + + Decrypts the input. + + the bytes to decrypt. + decrypted bytes + if is null or Length == 0. + + + + Encrypts data with the System.Security.Cryptography.RSA algorithm. + + The data to be encrypted. + true to perform direct System.Security.Cryptography.RSA encryption using OAEP padding (only available on a computer running Microsoft Windows XP or later); + otherwise, false to use PKCS#1 v1.5 padding. + encrypted bytes. + if is null or has Length == 0. + + + + Encrypts the input. + + the bytes to encrypt. + encrypted bytes. + if is null or Length == 0. + + + + Computes the hash value of the specified byte array using the specified hash algorithm, and signs the resulting hash value. + + The input byte array for which to compute the hash. + The hash algorithm to use to create the hash value. + The Signature for the specified data. + if is null or Length == 0. + if is null. + + + + Verifies that a digital signature is valid by determining the hash value in the signature using the provided public key and comparing it to the hash value of the provided data. + + The input byte array. + The hash algorithm to use to create the hash value. + The signature byte array to be verified. + true if the signature is valid; otherwise, false. + if is null or Length == 0. + if is null. + if is null or Length == 0. + + + + Verifies that a digital signature is valid by determining the hash value in the signature using the provided public key and comparing it to the hash value of the provided data. + + The input byte array. + + + The hash algorithm to use to create the hash value. + + The signature byte array to be verified. + true if the signature is valid; otherwise, false. + if is null or Length == 0. + if is null. + if is null or Length == 0. + + + + Exports rsa parameters as + + flag to control is private parameters are included. + + + + + Imports rsa parameters as + + to import. + + + + Calls to release managed resources. + + true, if called from Dispose(), false, if invoked inside a finalizer. + + + + Represents a Rsa security key. + + + + + Initializes a new instance of the class. + + + + + + Initializes a new instance of the class. + + + + + + Gets a bool indicating if a private key exists. + + true if it has a private key; otherwise, false. + + + + Gets an enum indicating if a private key exists. + + 'Exists' if private key exists for sure; 'DoesNotExist' if private key doesn't exist for sure; 'Unknown' if we cannot determine. + + + + Gets RSA key size. + + + + + used to initialize the key. + + + + + instance used to initialize the key. + + + + + Determines whether the can compute a JWK thumbprint. + + true if JWK thumbprint can be computed; otherwise, false. + https://datatracker.ietf.org/doc/html/rfc7638 + + + + Computes a sha256 hash over the . + + A JWK thumbprint. + https://datatracker.ietf.org/doc/html/rfc7638 + + + + Constants for Security Algorithm. + + + + + Base class for Security Key. + + + + + Default constructor + + + + + This must be overridden to get the size of this . + + + + + Gets the key id of this . + + + + + Gets or sets . + + + + + Returns the formatted string: GetType(), KeyId: 'value', InternalId: 'value'. + + string + + + + Determines whether the can compute a JWK thumbprint. + + true if JWK thumbprint can be computed; otherwise, false. + https://datatracker.ietf.org/doc/html/rfc7638 + + + + Computes a sha256 hash over the . + + A JWK thumbprint. + https://datatracker.ietf.org/doc/html/rfc7638 + + + + Checks if can perform the cryptographic operation specified by the with this . + + the algorithm to apply. + true if can perform the cryptographic operation sepecified by the with this . + + + + Contains information about the keys inside the tokens. + + + + + Base class for security token. + + + + + + + + This must be overridden to get the Id of this . + + + + + This must be overridden to get the issuer of this . + + + + + This must be overridden to get the . + + + + + This must be overridden to get or set the that signed this instance. + + .ValidateToken(...) can this value when a is used to successfully validate a signature. + + + + This must be overridden to get the time when this was Valid. + + + + + This must be overridden to get the time when this is no longer Valid. + + + + + Contains some information which used to create a security token. + + + + + Gets or sets the value of the 'audience' claim. + + + + + Defines the compression algorithm that will be used to compress the JWT token payload. + + + + + Gets or sets the used to create a encrypted security token. + + + + + Gets or sets the value of the 'expiration' claim. This value should be in UTC. + + + + + Gets or sets the issuer of this . + + + + + Gets or sets the time the security token was issued. This value should be in UTC. + + + + + Gets or sets the notbefore time for the security token. This value should be in UTC. + + + + + Gets or sets the token type. + If provided, this will be added as the value for the 'typ' header parameter. In the case of a JWE, this will be added to both the inner (JWS) and the outer token (JWE) header. By default, the value used is 'JWT'. + If also contains 'typ' header claim value, it will override the TokenType provided here. + This value is used only for JWT tokens and not for SAML/SAML2 tokens + + + + + Gets or sets the which represents the claims that will be used when creating a security token. + If both and are set, the claim values in Subject will be combined with the values + in Claims. The values found in Claims take precedence over those found in Subject, so any duplicate + values will be overridden. + + + + + Gets or sets the which contains any custom header claims that need to be added to the JWT token header. + The 'alg', 'kid', 'x5t', 'enc', and 'zip' claims are added by default based on the , + , and/or provided and SHOULD NOT be included in this dictionary as this + will result in an exception being thrown. + These claims are only added to the outer header (in case of a JWE). + + + + + Gets or sets the which contains any custom header claims that need to be added to the inner JWT token header. + The 'alg', 'kid', 'x5t', 'enc', and 'zip' claims are added by default based on the , + , and/or provided and SHOULD NOT be included in this dictionary as this + will result in an exception being thrown. + + For JsonWebTokenHandler, these claims are merged with while adding to the inner JWT header. + + + + + + Gets or sets the used to create a security token. + + + + + Gets or sets the . + If both and are set, the claim values in Subject will be combined with the values + in Claims. The values found in Claims take precedence over those found in Subject, so any duplicate + values will be overridden. + + + + + Defines the interface for a Security Token Handler. + + + + + Creates an instance of + + + + + Returns . + + + true if attached; otherwise, false. + + + + Returns . + + + + + + Gets a value indicating whether this handler supports validation of tokens + handled by this instance. + v + 'True' if the instance is capable of SecurityToken + validation. + + + + Gets a value indicating whether the class provides serialization functionality to serialize token handled + by this instance. + + true if the WriteToken method can serialize this token. + + + + This must be overridden to get the System.Type of the SecurityToken this instance handles. + + + + + Indicates whether the is positioned at an element that can be read. + + An reader positioned at a start element. The reader should not be advanced. + 'true' if the token can be read. + + + + Indicates whether the current token string can be read as a token + of the type handled by this instance. + + The token string thats needs to be read. + 'True' if the ReadToken method can parse the token string. + + + + Gets security token. + + . + SecurityToken instance which represents the serialized token. + + + + Serializes to string a token of the type handled by this instance. + + A token of type TokenType. + The serialized token. + + + + This must be overridden to serialize to XML a token of the type handled by this instance. + + The XML writer. + A token of type . + + + + This must be overridden to deserialize token with the provided . + + . + the current . + SecurityToken instance which represents the serialized token. + + + + This must be overridden to validate a token passed as a string using + + A token of type . + the current . + The token of type that was validated. + + + + Reads and validates a token using a xmlReader and + + A pointing at the start element of the token. + Contains data and information needed for validation. + The that was validated. + + + + Provides signature services, signing and verifying. + + + + + Maintains the number of external references + see: , , + + + + + Initializes a new instance of the class used to create and verify signatures. + + The that will be used for signature operations. + The signature algorithm to apply. + is null. + is null or empty. + + + + Gets the signature algorithm. + + + + + Gets or sets a user context for a . + + This is null by default. This is for use by the application and not used by this SDK. + + + + Gets or sets the that is associated with this + + + + + Calls and + + + + + Can be over written in descendants to dispose of internal components. + + true, if called from Dispose(), false, if invoked inside a finalizer + + + + Gets the . + + + + + For testing purposes + + + + + This must be overridden to produce a signature over the 'input'. + + bytes to sign. + signed bytes + + + Verifies that the over using the + and specified by this + are consistent. + the bytes that were signed. + signature to compare against. + true if the computed signature matches the signature parameter, false otherwise. + + + + Verifies that a signature created over the 'input' matches the signature. Using and 'algorithm' passed to . + + The bytes to verify. + offset in to input bytes to caculate hash. + number of bytes of signature to use. + signature to compare against. + offset into signature array. + how many bytes to verfiy. + true if computed signature matches the signature parameter, false otherwise. + 'input' is null. + 'signature' is null. + 'input.Length' == 0. + 'signature.Length' == 0. + 'length < 1' + 'offset + length > input.Length' + has been called. + + + + Gets or sets a bool indicating if this is expected to create signatures. + + + + + Defines the , algorithm and digest for digital signatures. + + + + + Initializes a new instance of the class. + + that will be used for signing. + Algorithm will be set to . + the 'digest method' if needed may be implied from the algorithm. For example implies Sha256. + if 'key' is null. + if 'algorithm' is null or empty. + + + + Initializes a new instance of the class. + + that will be used for signing. + The signature algorithm to apply. + the 'digest method' if needed may be implied from the algorithm. For example implies Sha256. + if 'certificate' is null. + if 'algorithm' is null or empty. + + + + Initializes a new instance of the class. + + . + The signature algorithm to apply. + the 'digest method' if needed may be implied from the algorithm. For example implies Sha256. + if 'key' is null. + if 'algorithm' is null or empty. + + + + Initializes a new instance of the class. + + . + The signature algorithm to apply. + The digest algorithm to apply. + if 'key' is null. + if 'algorithm' is null or empty. + if 'digest' is null or empty. + + + + Gets the signature algorithm. + + if 'value' is null or empty. + + + + Gets the digest algorithm. + + + + + Users can override the default with this property. This factory will be used for creating signature providers. + + This will have precedence over + + + + Gets the used for signature creation or validation. + + + + + Gets the key id associated with . + + + + + Defines the default set of algorithms this library supports + + + + + Creating a Signature requires the use of a . + This method returns the + that describes the to use when generating a Signature. + + The SignatureAlgorithm in use. + The to use. + if is null or whitespace. + if is not supported. + + + + Creating a Signature requires the use of a . + This method returns the HashAlgorithm string that is associated with a SignatureAlgorithm. + + The SignatureAlgorithm of interest. + if is null or whitespace. + if is not supported. + + + + Checks if an 'algorithm, key' pair is supported. + + the algorithm to check. + the . + true if 'algorithm, key' pair is supported. + + + + Represents a symmetric security key. + + + + + Returns a new instance of instance. + + The byte array of the key. + + + + Gets the key size. + + + + + Gets the byte array of the key. + + + + + Determines whether the can compute a JWK thumbprint. + + true if JWK thumbprint can be computed; otherwise, false. + https://datatracker.ietf.org/doc/html/rfc7638 + + + + Computes a sha256 hash over the . + + A JWK thumbprint. + https://datatracker.ietf.org/doc/html/rfc7638 + + + + Provides signing and verifying operations using a and specifying an algorithm. + + + + + Mapping from algorithm to the expected signature size in bytes. + + + + + This is the minimum .KeySize when creating and verifying signatures. + + + + + Initializes a new instance of the class that uses an to create and / or verify signatures over a array of bytes. + + The that will be used for signature operations. + The signature algorithm to use. + 'key' is null. + 'algorithm' is null or empty. + If and algorithm pair are not supported. + '.KeySize' is smaller than . + + + + Initializes a new instance of the class that uses an to create and / or verify signatures over a array of bytes. + + The that will be used for signature operations. + The signature algorithm to use. + indicates if this will be used to create signatures. + 'key' is null. + 'algorithm' is null or empty. + If and algorithm pair are not supported. + '.KeySize' is smaller than . + + + + Gets or sets the minimum .KeySize"/>. + + 'value' is smaller than . + + + + Called to obtain the byte[] needed to create a + + that will be used to obtain the byte[]. + [] that is used to populated the KeyedHashAlgorithm. + if key is null. + if a byte[] can not be obtained from SecurityKey. + and are supported. + For a .Key is returned + For a Base64UrlEncoder.DecodeBytes is called with if == JsonWebAlgorithmsKeyTypes.Octet + + + + + Returns a . + This method is called just before a cryptographic operation. + This provides the opportunity to obtain the from an object pool. + If this method is overridden, it is importont to override + if custom releasing of the is desired. + + The hash algorithm to use to create the hash value. + The byte array of the key. + An instance of + + + + For testing purposes + + + + + This method is called just after the cryptographic operation. + If was overridden this method can be overridden for + any custom handling such as returning the to an object pool. + + The " in use. + + + + Produces a signature over the 'input' using the and 'algorithm' passed to . + + The bytes to sign. + Signed bytes + 'input' is null. + 'input.Length' == 0. + has been called. + is null. This can occur if a derived type deletes it or does not create it. + Sign is thread safe. + + + + Verifies that a signature created over the 'input' matches the signature. Using and 'algorithm' passed to . + + The bytes to verify. + signature to compare against. + true if computed signature matches the signature parameter, false otherwise. + 'input' is null. + 'signature' is null. + 'input.Length' == 0. + 'signature.Length' == 0. + has been called. + If the internal is null. This can occur if a derived type deletes it or does not create it. + Verify is thread safe. + + + + Verifies that a signature created over the 'input' matches the signature. Using and 'algorithm' passed to . + + The bytes to verify. + signature to compare against. + number of bytes of signature to use. + true if computed signature matches the signature parameter, false otherwise. + 'input' is null. + 'signature' is null. + 'input.Length' == 0. + 'signature.Length' == 0. + 'length < 1' + has been called. + If the internal is null. This can occur if a derived type deletes it or does not create it. + + + + + + + This internal method is called from the AuthenticatedEncryptionProvider which passes in the algorithm that defines the size expected for the signature. + The reason is the way the AuthenticationTag is validated. + For example when "A128CBC-HS256" is specified, SHA256 will used to create the HMAC and 32 bytes will be generated, but only the first 16 will be validated. + + The bytes to verify. + offset in to input bytes to caculate hash. + number of bytes of signature to use. + signature to compare against. + offset into signature array. + how many bytes to verfiy. + algorithm passed by AuthenticatedEncryptionProvider. + true if computed signature matches the signature parameter, false otherwise. + + + + Disposes of internal components. + + true, if called from Dispose(), false, if invoked inside a finalizer. + + + + An opaque context used to store work when working with authentication artifacts. + + + + + Instantiates a new with a default activity ID. + + + + + Instantiates a new with an activity ID. + + + + + Defines properties shared across all security token handlers. + + + + + Default lifetime of tokens created. When creating tokens, if 'expires', 'notbefore' or 'issuedat' are null, + then a default will be set to: issuedat = DateTime.UtcNow, notbefore = DateTime.UtcNow, expires = DateTime.UtcNow + TimeSpan.FromMinutes(TokenLifetimeInMinutes). + + See: for configuration. + + + + Gets and sets the maximum token size in bytes that will be processed. + + 'value' less than 1. + + + + Gets or sets a bool that controls if token creation will set default 'exp', 'nbf' and 'iat' if not specified. + + See: for configuration. + + + + Gets or sets the token lifetime in minutes. + + Used during token creation to set the default expiration ('exp'). + 'value' less than 1. + + + + Validates a token. + On a validation failure, no exception will be thrown; instead, the exception will be set in the returned TokenValidationResult.Exception property. + Callers should always check the TokenValidationResult.IsValid property to verify the validity of the result. + + The token to be validated. + A required for validation. + A + + + + Validates a token. + On a validation failure, no exception will be thrown; instead, the exception will be set in the returned TokenValidationResult.Exception property. + Callers should always check the TokenValidationResult.IsValid property to verify the validity of the result. + + The to be validated. + A required for validation. + A + + + + Converts a string into an instance of . + + The string to be deserialized. + is null or empty. + 'token.Length' is greater than . + A . + + + + Called by base class to create a . + Currently only used by the JsonWebTokenHandler to allow for a Lazy creation. + + the that has the Claims. + the that was used to validate the token. + the 'issuer' to use by default when creating a Claim. + A . + + + + + A class which contains useful methods for processing tokens. + + + + + A URI that represents the JSON XML data type. + + When mapping json to .Net Claim(s), if the value was not a string (or an enumeration of strings), the ClaimValue will serialized using the current JSON serializer, a property will be added with the .Net type and the ClaimTypeValue will be set to 'JsonClaimValueType'. + + + + A URI that represents the JSON array XML data type. + + When mapping json to .Net Claim(s), if the value was not a string (or an enumeration of strings), the ClaimValue will serialized using the current JSON serializer, a property will be added with the .Net type and the ClaimTypeValue will be set to 'JsonClaimValueType'. + + + + A URI that represents the JSON null data type + + When mapping json to .Net Claim(s), we use empty string to represent the claim value and set the ClaimValueType to JsonNull + + + + Creates a dictionary from a list of Claim's. + + A list of claims. + A Dictionary representing claims. + + + + Returns all provided in and . + + The that contains signing keys used for validation. + A required for validation. + Returns all provided in provided in and . + + + + Merges claims. If a claim with same type exists in both and , the one in claims will be kept. + + Collection of 's. + Collection of 's. + A Merged list of 's. + + + + Check whether the given exception type is recoverable by LKG. + + The exception to check. + true if the exception is certain types of exceptions otherwise, false. + + + + Check whether the given configuration is recoverable by LKG. + + The kid from token."/> + The to check. + The LKG exception to check. + The exception to check. + true if the configuration is recoverable otherwise, false. + + + + Definition for AlgorithmValidator + + The algorithm to validate. + The that signed the . + The being validated. + required for validation. + true if the algorithm is considered valid + + + + Definition for AudienceValidator. + + The audiences found in the . + The being validated. + required for validation. + true if the audience is considered valid. + + + + Definition for IssuerSigningKeyResolver. + + The representation of the token that is being validated. + The that is being validated. It may be null. + A key identifier. It may be null. + required for validation. + A to use when validating a signature. + If both and are set, IssuerSigningKeyResolverUsingConfiguration takes + priority. + + + + Definition for IssuerSigningKeyResolverUsingConfiguration. + + The representation of the token that is being validated. + The that is being validated. It may be null. + A key identifier. It may be null. + required for validation. + required for validation. + A to use when validating a signature. + If both and are set, IssuerSigningKeyResolverUsingConfiguration takes + priority. + + + + Definition for IssuerSigningKeyValidator. + + The that signed the . + The being validated. + required for validation. + If both and are set, IssuerSigningKeyResolverUsingConfiguration takes + priority. + + + + Definition for IssuerSigningKeyValidatorUsingConfiguration. + + The that signed the . + The being validated. + required for validation. + required for validation. + If both and are set, IssuerSigningKeyResolverUsingConfiguration takes + priority. + + + + Definition for IssuerValidator. + + The issuer to validate. + The that is being validated. + required for validation. + The issuer to use when creating the "Claim"(s) in a "ClaimsIdentity". + The delegate should return a non null string that represents the 'issuer'. If null a default value will be used. + If both and are set, IssuerValidatorUsingConfiguration takes + priority. + + + + Definition for IssuerValidatorUsingConfiguration. + + The issuer to validate. + The that is being validated. + required for validation. + required for validation. + The issuer to use when creating the "Claim"(s) in a "ClaimsIdentity". + The delegate should return a non null string that represents the 'issuer'. If null a default value will be used. + If both and are set, IssuerValidatorUsingConfiguration takes + priority. + + + + + Definition for IssuerValidatorAsync. Left internal for now while we work out the details of async validation for all delegates. + + The issuer to validate. + The that is being validated. + required for validation. + The issuer to use when creating the "Claim"(s) in a "ClaimsIdentity". + The delegate should return a non null string that represents the 'issuer'. If null a default value will be used. + if set, will be called before or + + + + + Definition for LifetimeValidator. + + The 'notBefore' time found in the . + The 'expiration' time found in the . + The being validated. + required for validation. + + + + Definition for TokenReplayValidator. + + The 'expiration' time found in the . + The being validated. + required for validation. + + + + + Definition for SignatureValidator. + + A securityToken with a signature. + required for validation. + + + + Definition for SignatureValidator. + + A securityToken with a signature. + required for validation. + The that is required for validation. + + + + Definition for TokenReader. + + A securityToken with a signature. + required for validation. + + + + Definition for TokenDecryptionKeyResolver. + + The representation of the token to be decrypted. + The to be decrypted. The runtime by default passes null. + A key identifier. It may be null. + required for validation. + A to use when decrypting the token. + + + + Definition for TypeValidator. + + The token type to validate. + The that is being validated. + required for validation. + The actual token type, that may be the same as or a different value if the token type was resolved from a different location. + + + + Definition for TransformBeforeSignatureValidation. + + The that is being validated. + required for validation. + A transformed . + + + + Contains a set of parameters that are used by a when validating a . + + + + + This is the default value of when creating a . + The value is "AuthenticationTypes.Federation". + To change the value, set to a different value. + + + + + Default for the clock skew. + + 300 seconds (5 minutes). + + + + Default for the maximum token size. + + 250 KB (kilobytes). + + + + Copy constructor for . + + + + + Initializes a new instance of the class. + + + + + Gets or sets . + + + + + Gets or sets a delegate used to validate the cryptographic algorithm used. + + + If set, this delegate will validate the cryptographic algorithm used and + the algorithm will not be checked against . + + + + + Gets or sets a delegate that will be used to validate the audience. + + + If set, this delegate will be called to validate the 'audience', instead of default processing. + This means that no default 'audience' validation will occur. + Even if is false, this delegate will still be called. + + + + + Gets or sets the AuthenticationType when creating a . + + If 'value' is null or whitespace. + + + + Gets or sets the clock skew to apply when validating a time. + + If 'value' is less than 0. + The default is 300 seconds (5 minutes). + + + + Returns a new instance of with values copied from this object. + + A new object copied from this object + This is a shallow Clone. + + + + Creates a using: + + 'NameClaimType': If NameClaimTypeRetriever is set, call delegate, else call NameClaimType. If the result is a null or empty string, use . + 'RoleClaimType': If RoleClaimTypeRetriever is set, call delegate, else call RoleClaimType. If the result is a null or empty string, use . + + A with Authentication, NameClaimType and RoleClaimType set. + + + + If set, this property will be used to obtain the issuer and signing keys associated with the metadata endpoint of . + The obtained issuer and signing keys will then be used along with those present on the TokenValidationParameters for validation of the incoming token. + + + + + Users can override the default with this property. This factory will be used for creating signature providers. + + + + + Gets or sets a string that helps with setting breakpoints when debugging. + + + + + Gets or sets a boolean that controls if a '/' is significant at the end of the audience. + The default is true. + + + + + Gets or sets the flag that indicates whether to include the when the validation fails. + + + + + Gets or sets a delegate for validating the that signed the token. + + + If set, this delegate will be called to validate the that signed the token, instead of default processing. + This means that no default validation will occur. + Even if is false, this delegate will still be called. + If both and are set, IssuerSigningKeyResolverUsingConfiguration takes + priority. + + + + + Gets or sets a delegate for validating the that signed the token. + + + If set, this delegate will be called to validate the that signed the token, instead of default processing. + This means that no default validation will occur. + Even if is false, this delegate will still be called. + This delegate should be used if properties from the configuration retrieved from the authority are necessary to validate the + issuer signing key. + If both and are set, IssuerSigningKeyValidatorUsingConfiguration takes + priority. + + + + + Gets a that is unique to this instance. + Calling will result in a new instance of this IDictionary. + + + + + Gets a value indicating if was called to obtain this instance. + + + + + Gets or sets the that is to be used for signature validation. + + + + + Gets or sets a delegate that will be called to retrieve a used for signature validation. + + + This will be used to check the signature. This can be helpful when the does not contain a key identifier. + If both and are set, IssuerSigningKeyResolverUsingConfiguration takes + priority. + + + + + Gets or sets a delegate that will be called to retrieve a used for signature validation using the + and . + + + This will be used to check the signature. This can be helpful when the does not contain a key identifier. + This delegate should be used if properties from the configuration retrieved from the authority are necessary to resolve the + issuer signing key. + If both and are set, IssuerSigningKeyResolverUsingConfiguration takes + priority. + + + + + Gets or sets an used for signature validation. + + + + + Gets or sets a delegate that will be used to validate the issuer of the token. + + + If set, this delegate will be called to validate the 'issuer' of the token, instead of default processing. + This means that no default 'issuer' validation will occur. + Even if is false, this delegate will still be called. + If both and are set, IssuerValidatorUsingConfiguration takes + priority. + + + + + Gets or sets a delegate that will be used to validate the issuer of the token. + + + If set, this delegate will be called to validate the 'issuer' of the token, instead of default processing. + This means that no default 'issuer' validation will occur. + Even if is false, this delegate will still be called. + IssuerValidatorAsync takes precedence over and . + + + + + Gets or sets a delegate that will be used to validate the issuer of the token. + + + If set, this delegate will be called to validate the 'issuer' of the token, instead of default processing. + This means that no default 'issuer' validation will occur. + Even if is false, this delegate will still be called. + This delegate should be used if properties from the configuration retrieved from the authority are necessary to validate the issuer. + If both and are set, IssuerValidatorUsingConfiguration takes + priority. + + + + + Gets or sets a delegate that will be called to transform a token to a supported format before validation. + + + + + Gets or sets a delegate that will be used to validate the lifetime of the token + + + If set, this delegate will be called to validate the lifetime of the token, instead of default processing. + This means that no default lifetime validation will occur. + Even if is false, this delegate will still be called. + + + + + Gets or sets a that will decide if the token identifier claim needs to be logged. + Default value is true. + + + + + Gets or sets a that will decide if validation failure needs to be logged as an error. + Default value is true for backward compatibility of the behavior. + If set to false, validation failures are logged as Information and then thrown. + + + + + Gets or sets a that defines the . + + + Controls the value returns. It will return the first where the equals . + The default is . + + + + + Gets or sets a delegate that will be called to set the property after validating a token. + + + The function will be passed: + The that is being validated. + The issuer associated with the token. + Returns the value that will set the property . + + + + + Gets or sets the that contains a collection of custom key/value pairs. This allows addition of parameters that could be used in custom token validation scenarios. + + + + + Gets or sets a boolean to control if configuration required to be refreshed before token validation. + + + The default is false. + + + + + Gets or sets a value indicating whether SAML tokens must have at least one AudienceRestriction. + The default is true. + + + + + Gets or sets a value indicating whether tokens must have an 'expiration' value. + The default is true. + + + + + Gets or sets a value indicating whether a can be considered valid if not signed. + The default is true. + + + + + Gets or sets the that defines the . + + + Controls the results of . + Each where == will be checked for a match against the 'string' passed to . + The default is . + + + + + Gets or sets a delegate that will be called to set the property after validating a token. + + + The function will be passed: + The that is being validated. + The issuer associated with the token. + Returns the value that will set the property . + + + + + Gets or sets a boolean to control if the original token should be saved after the security token is validated. + + The runtime will consult this value and save the original token that was validated. + The default is false. + + + + + Gets or sets a delegate that will be used to validate the signature of the token. + + + If set, this delegate will be called to signature of the token, instead of default processing. + + + + + Gets or sets a delegate that will be used to validate the signature of the token using the and + the . + + + If set, this delegate will be called to signature of the token, instead of default processing. + + + + + Gets or sets the that is to be used for decryption. + + + + + Gets or sets a delegate that will be called to retreive a used for decryption. + + + This will be used to decrypt the token. This can be helpful when the does not contain a key identifier. + + + + + Gets or sets the that is to be used for decrypting inbound tokens. + + + + + Gets or sets a delegate that will be used to read the token. + + + If set, this delegate will be called to read the token instead of default processing. + + + + + Gets or set the that store tokens that can be checked to help detect token replay. + + If set, then tokens must have an expiration time or the runtime will fault. + + + + Gets or sets a delegate that will be used to validate the token replay of the token + + + If set, this delegate will be called to validate the token replay of the token, instead of default processing. + This means no default token replay validation will occur. + Even if is false, this delegate will still be called. + + + + + Gets or sets a value indicating whether all should be tried during signature validation when a key is not matched to token kid or if token kid is empty. + The default is true. + + + + + Gets or sets a delegate that will be used to validate the type of the token. + If the token type cannot be validated, an exception MUST be thrown by the delegate. + Note: the 'type' parameter may be null if it couldn't be extracted from its usual location. + Implementations that need to resolve it from a different location can use the 'token' parameter. + + + If set, this delegate will be called to validate the 'type' of the token, instead of default processing. + This means that no default 'type' validation will occur. + + + + + Gets or sets a value indicating if an actor token is detected, whether it should be validated. + The default is false. + + + + + Gets or sets a boolean to control if the audience will be validated during token validation. + + Validation of the audience, mitigates forwarding attacks. For example, a site that receives a token, could not replay it to another side. + A forwarded token would contain the audience of the original site. + This boolean only applies to default audience validation. If is set, it will be called regardless of whether this + property is true or false. + The default is true. + + + + + Gets or sets a boolean to control if the issuer will be validated during token validation. + + + Validation of the issuer mitigates forwarding attacks that can occur when an + IdentityProvider represents multiple tenants and signs tokens with the same keys. + It is possible that a token issued for the same audience could be from a different tenant. For example an application could accept users from + contoso.onmicrosoft.com but not fabrikam.onmicrosoft.com, both valid tenants. An application that accepts tokens from fabrikam could forward them + to the application that accepts tokens for contoso. + This boolean only applies to default issuer validation. If is set, it will be called regardless of whether this + property is true or false. + The default is true. + + + + + Gets or sets a boolean to control if the LKG configuration will be used for token validation. + + + The default is false. + + + + + Gets or sets a boolean that controls if validation of the that signed the securityToken is called. + + It is possible for tokens to contain the public key needed to check the signature. For example, X509Data can be hydrated into an X509Certificate, + which can be used to validate the signature. In these cases it is important to validate the SigningKey that was used to validate the signature. + This boolean only applies to default signing key validation. If is set, it will be called regardless of whether this + property is true or false. + The default is false. + + + + + Gets or sets a boolean to control if the lifetime will be validated during token validation. + + + This boolean only applies to default lifetime validation. If is set, it will be called regardless of whether this + property is true or false. + The default is true. + + + + + Gets or sets a boolean that controls the validation order of the payload and signature during token validation. + + If is set to true, it will validate payload ahead of signature. + The default is false. + + + + + Gets or sets a boolean to control if the token replay will be validated during token validation. + + + This boolean only applies to default token replay validation. If is set, it will be called regardless of whether this + property is true or false. + The default is false. + + + + + Gets or sets the valid algorithms for cryptographic operations. + + + If set to a non-empty collection, only the algorithms listed will be considered valid. + The default is null. + + + + + Gets or sets a string that represents a valid audience that will be used to check against the token's audience. + The default is null. + + + + + Gets or sets the that contains valid audiences that will be used to check against the token's audience. + The default is null. + + + + + Gets or sets a that represents a valid issuer that will be used to check against the token's issuer. + The default is null. + + + + + Gets or sets the that contains valid issuers that will be used to check against the token's issuer. + The default is null. + + + + + Gets or sets the that contains valid types that will be used to check against the JWT header's 'typ' claim. + If this property is not set, the 'typ' header claim will not be validated and all types will be accepted. + In the case of a JWE, this property will ONLY apply to the inner token header. + The default is null. + + + + + Contains artifacts obtained when a SecurityToken is validated. + A SecurityTokenHandler returns an instance that captures the results of validating a token. + + + + + Creates an instance of + + + + + This ctor is used by the JsonWebTokenHandler as part of delaying creation of ClaimsIdentity. + + + + + + + + + The created from the validated security token. + + + + + The created from the validated security token. + + + + + Gets or sets the without synchronization. All accesses must either + be protected or used when the caller knows access is serialized. + + + + Gets the object to use in for double-checked locking. + + + + Gets or sets the that occurred during validation. + + + + + Gets or sets the issuer that was found in the token. + + + + + True if the token was successfully validated, false otherwise. + + + + + Gets or sets the that contains a collection of custom key/value pairs. This allows addition of data that could be used in custom scenarios. This uses for case-sensitive comparison of keys. + + + + + Gets or sets the that was validated. + + + + + The to be returned when validation fails. + + + + + Gets or sets the that contains call information. + + + + + Gets or sets the token type of the that was validated. + When a is registered, + the type returned by the delegate is used to populate this property. + Otherwise, the type is resolved from the token itself, if available + (e.g for a JSON Web Token, from the "typ" header). + + + + + Generates unique IDs. + + + + + Creates a unique ID suitable for use in an xml:id field. The value is + not hard to guess but is unique. + + The unique ID. + + + + Creates a unique ID similar to that created by CreateNonRandomId, + but instead of an underscore, the supplied prefix is used. + + The prefix to use. + The unique ID, with the given prefix. + + + + Creates a unique, random ID suitable for use in an xml:id field. The + value is hard to guess and unique. + + The unique ID. + + + + Creates a unique, random ID similar to that created by CreateRandomId, + but instead of an underscore, the supplied prefix is used. + + The prefix to use. + The random URI. + + + + Creates a unique, random ID suitable for use as a URI. The value is + hard to guess and unique. The URI is in the urn:uuid: namespace. + + The random URI. + + + + Contains some utility methods. + + + + + A string with "empty" value. + + + + + A string with "null" value. + + + + + Creates a copy of the byte array. + + The resource array. + A copy of the byte array. + + + + Serializes the list of strings into string as follows: + 'str1','str2','str3' ... + + + The strings used to build a comma delimited string. + + + The single . + + + + + Returns whether the input string is https. + + The input string. + true if the input string is https; otherwise, false. + + + + Returns whether the input uri is https. + + . + true if the input uri is https; otherwise, false. + + + + Compares two byte arrays for equality. Hash size is fixed normally it is 32 bytes. + The attempt here is to take the same time if an attacker shortens the signature OR changes some of the signed contents. + + + One set of bytes to compare. + + + The other set of bytes to compare with. + + + true if the bytes are equal, false otherwise. + + + + + Compares two byte spans for equality. Hash size is fixed normally it is 32 bytes. + The attempt here is to take the same time if an attacker shortens the signature OR changes some of the signed contents. + + + One set of bytes to compare. + + + The other set of bytes to compare with. + + length of spans to check + + true if the bytes are equal, false otherwise. + + + + + AudienceValidator + + + + + Validates if a given algorithm for a is valid. + + The algorithm to be validated. + The that signed the . + The being validated. + required for validation. + + + + Determines if the audiences found in a are valid. + + The audiences found in the . + The being validated. + required for validation. + If 'validationParameters' is null. + If 'audiences' is null and is true. + If is null or whitespace and is null. + If none of the 'audiences' matched either or one of . + An EXACT match is required. + + + + Determines if an issuer found in a is valid. + + The issuer to validate + The that is being validated. + required for validation. + The issuer to use when creating the "Claim"(s) in a "ClaimsIdentity". + If 'validationParameters' is null. + If 'issuer' is null or whitespace and is true. + If is null or whitespace and is null. + If 'issuer' failed to matched either or one of . + An EXACT match is required. + + + + Determines if an issuer found in a is valid. + + The issuer to validate + The that is being validated. + required for validation. + The required for issuer and signing key validation. + The issuer to use when creating the "Claim"(s) in a "ClaimsIdentity". + If 'validationParameters' is null. + If 'issuer' is null or whitespace and is true. + If ' configuration' is null. + If is null or whitespace and is null and is null. + If 'issuer' failed to matched either or one of or . + An EXACT match is required. + + + + Determines if an issuer found in a is valid. + + The issuer to validate + The that is being validated. + required for validation. + The required for issuer and signing key validation. + The issuer to use when creating the "Claim"(s) in a "ClaimsIdentity". + If 'validationParameters' is null. + If 'issuer' is null or whitespace and is true. + If ' configuration' is null. + If is null or whitespace and is null and is null. + If 'issuer' failed to matched either or one of or . + An EXACT match is required. + + + + Validates the that signed a . + + The that signed the . + The being validated. + required for validation. + if 'securityKey' is null and ValidateIssuerSigningKey is true. + if 'securityToken' is null and ValidateIssuerSigningKey is true. + if 'validationParameters' is null. + + + + Validates the that signed a . + + The that signed the . + The being validated. + required for validation. + The required for issuer and signing key validation. + if 'securityKey' is null and ValidateIssuerSigningKey is true. + if 'securityToken' is null and ValidateIssuerSigningKey is true. + if 'validationParameters' is null. + + + + Given a signing key, when it's derived from a certificate, validates that the certificate is already active and non-expired + + The that signed the . + The that are used to validate the token. + + + + Validates the lifetime of a . + + The 'notBefore' time found in the . + The 'expiration' time found in the . + The being validated. + required for validation. + If 'validationParameters' is null. + If 'expires.HasValue' is false and is true. + If 'notBefore' is > 'expires'. + If 'notBefore' is > DateTime.UtcNow. + If 'expires' is < DateTime.UtcNow. + All time comparisons apply . + + + + Validates if a token has been replayed. + + When does the security token expire. + The being validated. + required for validation. + If 'securityToken' is null or whitespace. + If 'validationParameters' is null or whitespace. + If is not null and expirationTime.HasValue is false. When a TokenReplayCache is set, tokens require an expiration time. + If the 'securityToken' is found in the cache. + If the 'securityToken' could not be added to the . + + + + Validates if a token has been replayed. + + The being validated. + When does the security token expire. + required for validation. + If 'securityToken' is null or whitespace. + If 'validationParameters' is null or whitespace. + If is not null and expirationTime.HasValue is false. When a TokenReplayCache is set, tokens require an expiration time. + If the 'securityToken' is found in the cache. + If the 'securityToken' could not be added to the . + + + + Validates the type of the token. + + The token type or null if it couldn't be resolved (e.g from the 'typ' header for a JWT). + The that is being validated. + required for validation. + If is null. + If is null. + If is null or whitespace and is not null. + If failed to match . + An EXACT match is required. (case sensitive) is used for comparing against . + The actual token type, that may be the same as or a different value if the token type was resolved from a different location. + + + + An designed to construct based on a x509 certificate. + + + + + Designed to construct based on a x509 certificate. + + A + + will be used as the key wrap algorithm + will be used as the data encryption algorithm + + if 'certificate' is null. + + + + Designed to construct based on the x509 certificate, a key wrap algorithm, and data encryption algorithm. + + A + A key wrap algorithm + Data encryption algorithm + if 'certificate' is null. + if 'keyWrapAlgorithm' is null or empty. + if 'dataEncryptionAlgorithm' is null or empty. + + + + Gets the used by this instance. + + + + + An that is backed by a + + + + + Instantiates a using a + + The to use. + if is null. + + + + Instantiates a using a . + + The to use. + The value to set for the KeyId + if is null. + if is null or empty. + + + + Gets the key size. + + + + + Gets the X5t of this . + + + + + Returns the private key from the . + + + + + Gets the public key from the . + + + + + Gets a bool indicating if a private key exists. + + true if it has a private key; otherwise, false. + + + + Gets an enum indicating if a private key exists. + + 'Exists' if private key exists for sure; 'DoesNotExist' if private key doesn't exist for sure; 'Unknown' if we cannot determine. + + + + Gets the . + + + + + Determines whether the can compute a JWK thumbprint. + + true if JWK thumbprint can be computed; otherwise, false. + https://datatracker.ietf.org/doc/html/rfc7638 + + + + Computes a sha256 hash over the . + + A JWK thumbprint. + https://datatracker.ietf.org/doc/html/rfc7638 + + + + Returns a bool indicating if this key is equivalent to another key. + + true if the keys are equal; otherwise, false. + + + + Returns an int hash code. + + An int hash code + + + + Defines the , algorithm and digest for digital signatures. + + + + + Initializes a new instance of the class. + + that will be used for signing. + Algorithm will be set to . + the 'digest method' if needed may be implied from the algorithm. For example implies Sha256. + if 'certificate' is null. + + + + Initializes a new instance of the class. + + A that will be used for signing. + The signature algorithm to apply. + the 'digest method' if needed may be implied from the algorithm. For example implies Sha256. + if 'certificate' is null. + if 'algorithm' is null or empty. + + + + Gets the used by this instance. + + + + diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/lib/net472/Microsoft.IdentityModel.Tokens.xml.meta b/Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/lib/net472/Microsoft.IdentityModel.Tokens.xml.meta new file mode 100644 index 0000000..36985ec --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/lib/net472/Microsoft.IdentityModel.Tokens.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 6651c0c1aeeab2742a85a897b2811905 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/lib/net6.0.meta b/Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/lib/net6.0.meta new file mode 100644 index 0000000..ba0eef0 --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/lib/net6.0.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 410e7caff37937940848be91d0c26e8d +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/lib/net6.0/Microsoft.IdentityModel.Tokens.dll b/Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/lib/net6.0/Microsoft.IdentityModel.Tokens.dll new file mode 100644 index 0000000..6c8119d --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/lib/net6.0/Microsoft.IdentityModel.Tokens.dll @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:91c8bdbe69b8731cf18df2c7ee006c764b920fde62749c2cd8adbb8a399a32a8 +size 284600 diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/lib/net6.0/Microsoft.IdentityModel.Tokens.dll.meta b/Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/lib/net6.0/Microsoft.IdentityModel.Tokens.dll.meta new file mode 100644 index 0000000..92f737e --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/lib/net6.0/Microsoft.IdentityModel.Tokens.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: 4538f9c5ddb9559449a61bfad521de60 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/lib/net6.0/Microsoft.IdentityModel.Tokens.xml b/Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/lib/net6.0/Microsoft.IdentityModel.Tokens.xml new file mode 100644 index 0000000..f04d245 --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/lib/net6.0/Microsoft.IdentityModel.Tokens.xml @@ -0,0 +1,5529 @@ + + + + Microsoft.IdentityModel.Tokens + + + + + This adapter abstracts the 'RSA' differences between versions of .Net targets. + + + + + Calls and + + + + + Base class for a Security Key that contains Asymmetric key material. + + + + + Default constructor + + + + + This must be overridden to get a bool indicating if a private key exists. + + true if it has a private key; otherwise, false. + + + + Gets the status of the private key. + + 'Exists' if private key exists for sure; 'DoesNotExist' if private key doesn't exist for sure; 'Unknown' if we cannot determine. + + + + Enum for the existence of private key + + + + + private key exists for sure + + + + + private key doesn't exist for sure + + + + + unable to determine the existence of private key + + + + + Provides signature and verification operations for Asymmetric Algorithms using a . + + + + + Mapping from algorithm to minimum .KeySize when creating signatures. + + + + + Mapping from algorithm to minimum .KeySize when verifying signatures. + + + + + Initializes a new instance of the class used to create and verify signatures. + + The that will be used for signature operations. + The signature algorithm to apply. + + + + Initializes a new instance of the class used to create and verify signatures. + + The that will be used for signature operations. + The signature algorithm to apply. + If this is required to create signatures then set this to true. + + Creating signatures requires that the has access to a private key. + Verifying signatures (the default), does not require access to the private key. + + is null. + is null or empty. + is true and there is no private key. + If and algorithm pair are not supported. + + willCreateSignatures is true and .KeySize is less than the size corresponding to the given algorithm in . + + + .KeySize is less than the size corresponding to the algorithm in . Note: this is always checked. + + If the runtime is unable to create a suitable cryptographic provider. + + + + Gets the mapping from algorithm to the minimum .KeySize for creating signatures. + + + + + Gets the mapping from algorithm to the minimum .KeySize for verifying signatures. + + + + + Creating a Signature requires the use of a . + This method returns the + that describes the to use when generating a Signature. + + The SignatureAlgorithm in use. + The to use. + if is null or whitespace. + if is not supported. + + + + For testing purposes + + + + + Produces a signature over the 'input' using the and algorithm passed to . + + The bytes to be signed. + A signature over the input. + if is null. + if .Length == 0. + If has been called. + Sign is thread safe. + + + + Validates that an asymmetric key size is of sufficient size for a SignatureAlgorithm. + + The asymmetric key to validate. + Algorithm for which this key will be used. + Whether they key will be used for creating signatures. + if is null. + if is null or empty. + if .KeySize is less than the minimum + acceptable size. + + for minimum signing sizes. + for minimum verifying sizes. + + + + + Verifies that the over using the + and specified by this + are consistent. + + The bytes to generate the signature over. + The value to verify against. + true if signature matches, false otherwise. + is null or has length == 0. + is null or has length == 0. + If has been called. + Verify is thread safe. + + + + + + + Calls to release managed resources. + + true, if called from Dispose(), false, if invoked inside a finalizer. + + + + Encodes and Decodes strings as Base64Url encoding. + + + + + The following functions perform base64url encoding which differs from regular base64 encoding as follows + * padding is skipped so the pad character '=' doesn't have to be percent encoded + * the 62nd and 63rd regular base64 encoding characters ('+' and '/') are replace with ('-' and '_') + The changes make the encoding alphabet file and URL safe. + + string to encode. + Base64Url encoding of the UTF8 bytes. + + + + Converts a subset of an array of 8-bit unsigned integers to its equivalent string representation which is encoded with base-64-url digits. Parameters specify + the subset as an offset in the input array, and the number of elements in the array to convert. + + An array of 8-bit unsigned integers. + An offset in inArray. + The number of elements of inArray to convert. + The string representation in base 64 url encoding of length elements of inArray, starting at position offset. + 'inArray' is null. + offset or length is negative OR offset plus length is greater than the length of inArray. + + + + Converts a subset of an array of 8-bit unsigned integers to its equivalent string representation which is encoded with base-64-url digits. + + An array of 8-bit unsigned integers. + The string representation in base 64 url encoding of length elements of inArray, starting at position offset. + 'inArray' is null. + offset or length is negative OR offset plus length is greater than the length of inArray. + + + + Converts the specified string, base-64-url encoded to utf8 bytes. + base64Url encoded string. + UTF8 bytes. + + + + Decodes the string from Base64UrlEncoded to UTF8. + + string to decode. + UTF8 string. + + + + Base64 encode/decode implementation for as per https://tools.ietf.org/html/rfc4648#section-5. + Uses ArrayPool[T] to minimize memory usage. + + + + + Decodes a Base64UrlEncoded string into a byte array. + + The string to decode. + Decoded bytes. + + + + Decodes a Base64UrlEncoded string into a byte array. + + String to decode. + Index of char in to start decode operation. + Number of chars in to decode. + Decoded bytes. + + + + Decodes a Base64UrlEncoded string and then performs an action. + + String to decode. + Index of char in to start decode operation. + Number of chars in to decode from . + Input parameter to action. + Action to perform on decoded bytes. + Output type of decoding action. + Type of Input parameter to action. + Instance of {T}. + + The buffer for the decode operation uses shared memory pool to avoid allocations. + The length of the rented array of bytes may be larger than the decoded bytes, therefore the action needs to know the actual length to use. + The result of is passed to the action. + + + + + Decodes a Base64UrlEncoded string and then performs an action. + + The string to decode. + Index of char in to start decode operation from. + Count of char in to decode. + Action to perform on decoded bytes. + Return type of operation. + Instance of {T}. + + The buffer for the decode operation uses shared memory pool to avoid allocations. + The length of the rented array of bytes may be larger than the decoded bytes, therefore the action needs to know the actual length to use. + The result of is passed to the action. + + + + + Decodes a Base64UrlEncoded string and then performs an action. + + The string to decode. + Index of char in to start decode operation from. + Count of char in to decode. + Input parameter 1 to action. + Input parameter 2 to action. + Input parameter 3 to action. + Action to perform on decoded bytes. + Output type of decoding action. + Type of Input parameter 1 to action. + Type of Input parameter 2 to action. + Type of Input parameter 3 to action. + Instance of {T}. + + The buffer for the decode operation uses shared memory pool to avoid allocations. + The length of the rented array of bytes may be larger than the decoded bytes, therefore the action needs to know the actual length to use. + The result of is passed to the action. + + + + + Decodes a Base64UrlEncoded string into a byte array. + + String to decode. + Index of char in to start decode operation. + Number of chars in to decode. + byte array to place results. + + Changes from Base64UrlEncoder implementation + 1. Padding is optional. + 2. '+' and '-' are treated the same. + 3. '/' and '_' are treated the same. + + + + + Encode byte array to Base64UrlEncoded string. + + Bytes to encode. + Base64Url encoded string. + + + + Encode byte array to Base64UrlEncoded string. + + Bytes to encode. + Index into to start encode operation. + Number of bytes in to encode, starting from offset. + Base64Url encoded string. + + + + Validates the input string for decode operation. + + String to validate. + Index of char in to start decode operation. + Number of chars in to decode, starting from offset. + Size of the decoded bytes arrays. + + + + Represents a generic metadata configuration which is applicable for both XML and JSON based configurations. + + + + + Gets the issuer specified via the metadata endpoint. + + + + + Gets the that the IdentityProvider indicates are to be used in order to sign tokens. + + + + + Gets or sets the token endpoint specified via the metadata endpoint. + This is the fed:PassiveRequestorEndpoint in WS-Federation, https://docs.oasis-open.org/wsfed/federation/v1.2/os/ws-federation-1.2-spec-os.html#:~:text=fed%3ASecurityTokenServiceType/fed%3APassiveRequestorEndpoint + Or the token_endpoint in the OIDC metadata. + + + + + Gets or sets the token endpoint specified via the metadata endpoint. + This is the fed:SecurityTokenServiceType in WS-Federation, http://docs.oasis-open.org/wsfed/federation/v1.2/os/ws-federation-1.2-spec-os.html#:~:text=fed%3ASecurityTokenSerivceEndpoint + + + + + Gets the that the IdentityProvider indicates are to be used in order to decrypt tokens. + + + + + Comparison class for a . + + + + + Represents a generic configuration manager. + + + + + Gets or sets the that controls how often an automatic metadata refresh should occur. + + + + + 12 hours is the default time interval that afterwards will obtain new configuration. + + + + + 1 hour is the default time interval that a last known good configuration will last for. + + + + + 5 minutes is the default time interval that must pass for to obtain a new configuration. + + + + + The default constructor. + + + + + Constructor. + + The event queue task creation option. + + + + Obtains an updated version of if the appropriate refresh interval has passed. + This method may return a cached version of the configuration. + + CancellationToken + Configuration of type Configuration. + This method on the base class throws a as it is meant to be + overridden by the class that extends it. + + + + Gets all valid last known good configurations. + + A collection of all valid last known good configurations. + + + + The last known good configuration or LKG (a configuration retrieved in the past that we were able to successfully validate a token against). + + + + + The length of time that a last known good configuration is valid for. + + + + + The metadata address to retrieve the configuration from. + + + + + 5 minutes is the minimum value for automatic refresh. can not be set less than this value. + + + + + 1 second is the minimum time interval that must pass for to obtain new configuration. + + + + + The minimum time between retrievals, in the event that a retrieval failed, or that a refresh was explicitly requested. + + + + + Indicates whether the last known good feature should be used, true by default. + + + + + Indicates whether the last known good configuration is still fresh, depends on when the LKG was first used and it's lifetime. + + + + + Indicate that the configuration may be stale (as indicated by failing to process incoming tokens). + + + + + An opaque context used to store work when working with authentication artifacts. + + + + + Instantiates a new with a default activityId. + + + + + Instantiates a new with an activityId. + + + + + A class which contains useful methods for processing collections. + + + + + Checks whether is null or empty. + + The type of the . + The to be checked. + True if is null or empty, false otherwise. + + + + Constants for compression algorithms. + + + + + Compression provider factory for compression and decompression. + + + + + Static constructor that initializes the default . + + + + + Default constructor for . + + + + + Constructor that creates a deep copy of given object. + + to copy from. + + + + Returns the default instance. + + + + + Extensibility point for custom compression support application wide. + + + + + Answers if an algorithm is supported. + + the name of the crypto algorithm. + true if the algorithm is supported, false otherwise. + + + + Returns a for a specific algorithm. + + the decompression algorithm. + a . + + + + Defines the options which can be used to configure the internal LKG configuration cache. + See for more details. + + + + + 10 is the default size limit of the cache (in number of items) for last known good configuration. + + + + + Gets or sets the BaseConfgiurationComparer that to compare . + + + + + The size limit of the cache (in number of items) for last known good configuration. + + + + + The event queue task creation option, default to None instead of LongRunning as LongRunning will always start a task on a new thread instead of a thread from ThreadPool. + + + + + Whether or not to remove expired items. + + + + + Definition of cache for crypto providers + + + + + Returns the cache key to use when looking up an entry into the cache for a + + the to create the key for. + the cache key to use for finding a . + + + + Returns the 'key' that will be used to find a crypto provider in this cache. + + the key that is used to by the crypto provider. + the algorithm that is used by the crypto provider. + the typeof the crypto provider obtained by calling object.GetType(). + the cache key to use for finding a crypto provider. + + + + Trys to adds a to this cache. + + to cache. + true if the was added, false if the cache already contained the + + + + Trys to find a in this cache. + + the key that is used to by the crypto provider. + the algorithm that is used by the crypto provider. + the typeof the crypto provider obtained by calling object.GetType(). + a bool to indicate if the will be used to sign. + the if found. + true if a was found, false otherwise. + + + + Trys to remove a from this cache. + + to remove. + true if the was removed, false if the was not found. + + + + Specifies the CryptoProviderCacheOptions which can be used to configure the internal cryptoprovider cache. + We are using our own simple LRU caching implementation across all targets. + See for more details. + + + + + Default value for . + + + + + Gets or sets the size of the cache (in number of items). + 20% of the cache will be evicted whenever the cache gets to 95% of this size. + Items will be evicted from least recently used to most recently used. + + + + + Creates cryptographic operators by specifying a 's and algorithms. + + + + + Returns the default instance. + + + + + Gets or sets the default value for caching of 's. + + + + + Gets or sets the maximum size of the object pool used by the SignatureProvider that are used for crypto objects. + + + + + Static constructor that initializes the default . + + + + + Default constructor for . + + + + + Initializes an instance of a . + + + The cache to use for caching CryptoProviders + + + + + Constructor that creates a deep copy of given object. + + to copy from. + + + + Gets the + + + + + Extensibility point for creating custom cryptographic operators. + + By default, if set, will be called before creating cryptographic operators. + If true is returned, then will be called. The will throw if the + Cryptographic operator returned is not of the correct type. + + + + Gets or sets a bool controlling if should be cached. + + + + + Gets or sets the maximum size of the object pool used by the SignatureProvider that are used for crypto objects. + + + + + Creates an instance of for a specific <SecurityKey, Algorithm>. + + the to use. + the algorithm to use. + thrown if is null. + thrown if is null or empty. + thrown if and algorithm pair are not supported. + thrown if returns a type that is not assignable from . + + If is set and returns true. + is called to obtain the . + + When finished with the call . + + an instance of + + + + Creates an instance of for a specific <SecurityKey, Algorithm>. + + the to use. + the algorithm to use. + thrown if is null. + thrown if is null or empty. + thrown if and algorithm pair are not supported. + thrown if returns a type not assignable from . + + If is set and returns true. + is called to obtain the . + + When finished with the call . + + an instance of + + + + Creates an instance of for a specific <SecurityKey, Algorithm>. + + the to use. + the algorithm to use. + thrown if is null. + thrown if is null or empty. + thrown if and algorithm pair are not supported. + thrown if returns a type that is not assignable from . + + If is set and returns true. + is called to obtain the . + + When finished with the call . + + an instance of + + + + Creates a that creates a signature with the algorithm and . + + the to use for signing. + the algorithm to use for signing. + thrown if is null. + thrown if is null or empty. + thrown if is too small. + thrown if is not assignable from or . + thrown if the key / algorithm is not supported. + thrown if returns a type that is not assignable from . + + AsymmetricSignatureProviders require access to a PrivateKey for Signing. + When finished with the call . + If is set and returns true. + is called to obtain the . + + + A that can be used to create a signature using the and algorithm. + + + + Creates a that creates a signature with the algorithm and . + + the to use for signing. + the algorithm to use for signing. + indicates if the should be cached for reuse. + thrown if is null. + thrown if is null or empty. + thrown if is too small. + thrown if is not assignable from or . + thrown if the key / algorithm is not supported. + thrown if returns a type that is not assignable from . + + AsymmetricSignatureProviders require access to a PrivateKey for Signing. + When finished with the call . + If is set and returns true. + is called to obtain the . + + + A that can be used to create a signature using the and algorithm. + + + + Creates a that supports the and algorithm. + + The to use for signature verification. + The algorithm to use for verifying. + thrown if is null. + thrown if is null or empty. + thrown if is too small. + thrown if is not assignable from or . + thrown if the key / algorithm is not supported. + thrown if returns a type that is not assignable from . + When finished with the call . + If is set and returns true. + is called to obtain the . + + + A that can be used to validate a signature using the and algorithm. + + + + Creates a that supports the and algorithm. + + The to use for signature verification. + The algorithm to use for verifying. + should the be cached. + thrown if is null. + thrown if is null or empty. + thrown if is too small. + thrown if is not assignable from or . + thrown if the key / algorithm is not supported. + thrown if returns a type that is not assignable from . + When finished with the call . + If is set and returns true. + is called to obtain the . + + + A that can be used to validate a signature using the and algorithm. + + + + Creates a for a specific algorithm. + + the name of the hash algorithm to create. + thrown if is null or empty. + thrown if returns a type that is not assignable from . + thrown if is not supported. + When finished with the call . + If is set and returns true. + is called to obtain the . + + + A . + + + + Creates a for a specific algorithm. + + the name of the hash algorithm to create. + thrown if is null or empty. + thrown if returns a type that is not assignable from . + thrown if is not supported. + When finished with the call . + If is set and returns true. + is called to obtain the . + + + A . + + + + Returns a for a specific algorithm. + + bytes to use to create the Keyed Hash. + the name of the keyed hash algorithm to create. + thrown if is null. + thrown if is null or empty. + thrown if returns a type that is not assignable from . + is not supported. + When finished with the call . + If is set and returns true. + is called to obtain the . + + + A . + + + + For some security key types, in some runtimes, it's not possible to extract public key material and create an . + In these cases, will be an empty string, and these keys should not be cached. + + to be examined. + True if should be cached, false otherwise. + + + + Checks if an algorithm is supported. + + the name of the Hash algorithm. + Only considers known Hash algorithms. + true if: + + If is set and returns true. + + The algorithm is supported. + + + + + + Checks if the algorithm and is supported. + + the security algorithm to apply. + the . + Algorithms are supported for specific key types. + For example: + and will return true. + and will return false. + + true if: + + If is set and returns true. + + The algorithm / key pair is supported. + + + + + + When finished with a call this method for cleanup. The default behavior is to call + + to be released. + thrown if is null. + + + + When finished with a call this method for cleanup."/> + + to be released. + thrown if is null. + + + + When finished with a call this method for cleanup."/> + + to be released. + thrown if is null. + + + + When finished with a call this method for cleanup. The default behavior is to call + + to be released. + thrown if is null. + + + + Helper class for adding DateTimes and Timespans. + + + + + Add a DateTime and a TimeSpan. + The maximum time is DateTime.MaxTime. It is not an error if time + timespan > MaxTime. + Just return MaxTime. + + Initial value. + to add. + as the sum of time and timespan. + + + + Gets the Maximum value for a DateTime specifying kind. + + DateTimeKind to use. + DateTime of specified kind. + + + + Gets the Minimum value for a DateTime specifying kind. + + DateTimeKind to use. + DateTime of specified kind. + + + + Ensures that DataTime is UTC. + + to convert. + + + + + Ensures that DateTime is UTC. + + to convert. + + + + + A compression provider that supports compression and decompression using the algorithm. + + + + + Initializes a new instance of the class used to compress and decompress used the algorithm. + + + + + Initializes a new instance of the class used to compress and decompress used the algorithm. + The compression level to use when compressing. + + + + + Gets the compression algorithm. + + + + + Specifies whether compression should emphasize speed or compression size. + Set to by default. + + + + + Decompress the value using DEFLATE algorithm. + + the bytes to decompress. + the decompressed bytes. + + + + Compress the value using the DEFLATE algorithm. + + the bytes to compress. + the compressed bytes. + + + + Answers if a compression algorithm is supported. + + the name of the compression algorithm. + true if the compression algorithm is supported, false otherwise. + + + + This adapter abstracts the differences between versions of .Net targets. + + + + + Initializes a new instance of the class. + + + creation is not supported by some platforms. + For more details, see https://aka.ms/IdentityModel/create-ecdsa. + + + + + Creates an ECDsa object using the and . + + + + + Returns the size of key in bytes + + Represents ecdsa curve -P256, P384, P521 + Size of the key in bytes + + + + Magic numbers identifying ECDSA blob types + + + + + Returns the magic value representing the curve corresponding to the curve id. + + Represents ecdsa curve -P256, P384, P512 + Whether the provider will create signatures or not + Uint representing the magic number + + + + Tests if user's runtime platform supports operations using . + + True if operations using are supported on user's runtime platform, false otherwise. + + + + Creates an ECDsa object using the and . + 'ECParameters' structure is available in .NET Framework 4.7+, .NET Standard 1.6+, and .NET Core 1.0+. + + + + + Returns the elliptic curve corresponding to the curve id. + + Represents ecdsa curve -P256, P384, P512 + + + + Tests if user application's runtime supports structure. + + True if structure is supported, false otherwise. + + + + Throws during runtime if user application's runtime doesn't support structure. + + + + + Represents a ECDsa security key. + + + + + Returns a new instance of . + + + + + + instance used to initialize the key. + + + + + Gets a bool indicating if a private key exists. + + true if it has a private key; otherwise, false. + + + + Gets an enum indicating if a private key exists. + + 'Exists' if private key exists for sure; 'DoesNotExist' if private key doesn't exist for sure; 'Unknown' if we cannot determine. + + + + Gets key size. + + + + + Determines whether the can compute a JWK thumbprint. + + true if JWK thumbprint can be computed; otherwise, false. + https://datatracker.ietf.org/doc/html/rfc7638 + + + + Computes a sha256 hash over the . + + A JWK thumbprint. + https://datatracker.ietf.org/doc/html/rfc7638 + + + + Collection of text encoding related helper methods. + + + + + Obtains bytes from a string using the Encoding and then performs an action. + + String to process. + Encoding used to obtain bytes. + Operation to invoke with result which is byte array and length of useful data in array with offset as 0. + Return type of operation. + Instance of {T}. + + The encoding operation uses shared memory pool to avoid allocations. + The length of the rented array of bytes may be larger than the decoded bytes, therefore the action needs to know the actual length to use. + is passed to the action. + + + + + Obtains bytes from a string using the Encoding and then performs an action. + + String to process. + Index to start from in . + Length of characters to operate in from . + Encoding used to obtain bytes. + Operation to invoke with result which is byte array and length of useful data in array with offset as 0. + Return type of operation. + Instance of {T}. + + The encoding operation uses shared memory pool to avoid allocations. + The length of the rented array of bytes may be larger than the decoded bytes, therefore the action needs to know the actual length to use. + is passed to the action. + + + + + Obtains bytes from a string using the Encoding and then performs an action. + + String to process. + Index to start from in . + Length of characters to operate in from . + Encoding used to obtain bytes. + Input parameter 1 to action. + Input parameter 2 to action. + Input parameter 3 to action. + Action to perform with bytes. + Return type of operation. + Type of Input parameter 1 to action. + Type of Input parameter 2 to action. + Type of Input parameter 3 to action. + Instance of {T}. + + The encoding operation uses shared memory pool to avoid allocations. + The length of the rented array of bytes may be larger than the decoded bytes, therefore the action needs to know the actual length to use. + is passed to the action. + + + + + Encodes the string using given Encoding, and invokes the operation with the result. + + Return type of operation. + Input parameter to operation. + String to process. + Encoding used to obtain bytes. + Additional operation parameter. + Operation to invoke with result which is byte array and length of useful data in array with offset as 0. + Result of operation. + + The encoding operation uses shared memory pool to avoid allocations. + The length of the rented array of bytes may be larger than the decoded bytes, therefore the action needs to know the actual length to use. + is passed to the action. + + + + + Obtains bytes from a string using the Encoding and then performs an action. + + String to process. + Index to start from in . + Length of characters to operate in from . + Encoding used to obtain bytes. + Additional operation parameter. + Operation to invoke with result which is byte array and length of useful data in array with offset as 0. + Return type of operation. + Input parameter to operation. + Instance of {T}. + + The encoding operation uses shared memory pool to avoid allocations. + The length of the rented array of bytes may be larger than the decoded bytes, therefore the action needs to know the actual length to use. + is passed to the action. + + + + + A class for properties that are used for token encryption. + + + + + Initializes a new instance of the class. + + . + A key wrap algorithm to use when encrypting a session key. + Data encryption algorithm to apply. + if 'certificate' is null. + if 'alg' is null or empty. + if 'enc' is null or empty. + + + + Initializes a new instance of the class. + + to use when encrypting a session key. + A key wrap algorithm to use when encrypting a session key. + Data encryption algorithm to apply. + if 'key' is null. + if 'alg' is null or empty. + if 'enc' is null or empty. + + + + Initializes a new instance of the class. + + Used in scenarios when a key represents a 'shared' symmetric key. + For example, SAML 2.0 Assertion will be encrypted using a provided symmetric key + which won't be serialized to a SAML token. + + to apply. + Data encryption algorithm to apply. + If the is not a . + if 'enc' is null or empty. + + + + Gets the key wrap algorithm used for session key encryption. + + + + + Gets the data encryption algorithm. + + + + + Public key used in Key Agreement Algorithms + + + + + Users can override the default with this property. This factory will be used for creating encryption providers. + + + + + Gets or sets a bool that controls if the encrypted token creation will set default 'cty' if not specified. + + Applies to only JWT tokens. + + + + + + Gets the used for encryption. + + + + + Provides authenticated encryption and decryption services. + + + + + Initializes a new instance of the class used for encryption and decryption. + + The that will be used for crypto operations. + The encryption algorithm to apply. + 'key' is null. + 'algorithm' is null or whitespace. + key size is not large enough. + 'algorithm' is not supported. + a symmetricSignatureProvider is not created. + + + + Gets the encryption algorithm that is being used. + + + + + Gets or sets a user context for a . + + This is null by default. This can be used by applications for extensibility scenarios. + + + + Gets the that is being used. + + + + + Encrypts the 'plaintext' + + the data to be encrypted. + will be combined with iv and ciphertext to create an authenticationtag. + containing ciphertext, iv, authenticationtag. + plaintext is null or empty. + authenticationData is null or empty. + AES crypto operation threw. See inner exception for details. + + + + Encrypts the 'plaintext' + + the data to be encrypted. + will be combined with iv and ciphertext to create an authenticationtag. + initialization vector for encryption. + containing ciphertext, iv, authenticationtag. + is null or empty. + is null or empty. + Thrown if the AES crypto operation threw. See inner exception for details. + Thrown if the internal is disposed. + + + + Decrypts ciphertext into plaintext + + the encrypted text to decrypt. + the authenticateData that is used in verification. + the initialization vector used when creating the ciphertext. + the authenticationTag that was created during the encyption. + decrypted ciphertext + is null or empty. + is null or empty. + is null or empty. + is null or empty. + Thrown if the signature over the authenticationTag fails to verify. + Thrown if the AES crypto operation threw. See inner exception. + Thrown if the internal is disposed. + + + + Calls and + + + + + Releases managed resources. + + true, if called from Dispose(), false, if invoked inside a finalizer. + + + + Checks if an 'key, algorithm' pair is supported + + the + the algorithm to check. + true if 'key, algorithm' pair is supported. + + + + The algorithm parameter logically defines a HMAC algorithm. + This method returns the HMAC to use. + + + + + + + Called to obtain the byte[] needed to create a + + that will be used to obtain the byte[]. + [] that is used to populated the KeyedHashAlgorithm. + if is null. + if a byte[] can not be obtained from SecurityKey. + and are supported. + For a .Key is returned + For a Base64UrlEncoder.DecodeBytes is called with if == JsonWebAlgorithmsKeyTypes.Octet + + + + + Checks that the key has sufficient length + + that contains bytes. + the algorithm to apply. + if is null. + if is null or empty. + if is not a supported algorithm. + + + + Contains the results of operation. + + + + + Initializes a new + + the used during + protected text. + the initialization vector used. + the bytes that need be passed to . + + + + Gets the . + + + + + Gets the Ciphertext. + + + + + Gets the initialization vector. + + + + + Gets the authentication tag + + + + + Provides a Security Key that can be used as Content Encryption Key (CEK) for use with a JWE + + + + + Number of bits in the desired output key + + + + + Initializes a new instance of used for CEKs + The that will be used for cryptographic operations and represents the private key. + The that will be used for cryptographic operations and represents the public key. + alg header parameter value. + enc header parameter value. + + + + + Generates the KDF + + Agreement PartyUInfo (optional). When used, the PartyVInfo value contains information about the producer, + represented as a base64url-encoded string. + Agreement PartyVInfo (optional). When used, the PartyUInfo value contains information about the recipient, + represented as a base64url-encoded string. + Returns that represents the key generated + + + + Provides Wrap key and Unwrap key services. + + + + + Gets the KeyWrap algorithm that is being used. + + + + + Gets or sets a user context for a . + + This is null by default. This can be used by runtimes or for extensibility scenarios. + + + + Gets the that is being used. + + + + + Calls and + + + + + Can be over written in descendants to dispose of internal components. + + true, if called from Dispose(), false, if invoked inside a finalizer + + + + Unwrap a key. + + key to unwrap. + Unwrapped key. + + + + Wrap a key. + + the key to be wrapped + wrapped key. + + + + Provides RSA Wrap key and Unwrap key services. + + + + + Initializes a new instance of used for wrapping and un-wrappping keys. + These keys are usually symmetric session keys that are wrapped using the recipients public key. + The that will be used for cryptographic operations. + The KeyWrap algorithm to apply. + Whether this is required to un-wrap keys. If true, the private key is required. + 'key' is null. + 'algorithm' is null. + The key size doesn't match the algorithm. + If and algorithm pair are not supported. + Failed to create RSA algorithm with provided key and algorithm. + + + + + Gets the KeyWrap algorithm that is being used. + + + + + Gets or sets a user context for a . + + This is null by default. This is for use by the application and not used by this SDK. + + + + Gets the that is being used. + + + + + Disposes of internal components. + + true, if called from Dispose(), false, if invoked inside a finalizer. + + + + Checks if an algorithm is supported. + + The that will be used for crypto operations. + The KeyWrap algorithm to apply. + true if the algorithm is supported; otherwise, false. + + + + Unwrap a key using RSA decryption. + + the bytes to unwrap. + Unwrapped key + 'keyBytes' is null or length == 0. + If has been called. + Failed to unwrap the wrappedKey. + If the internal RSA algorithm is null. + + + + Wrap a key using RSA encryption. + + the key to be wrapped + A wrapped key + 'keyBytes' is null or has length == 0. + If has been called. + Failed to wrap the 'keyBytes'. + If the internal RSA algorithm is null. + + + + Provides Wrap key and Unwrap key services. + + + + + Initializes a new instance of the class used for wrap key and unwrap key. + The that will be used for crypto operations. + The KeyWrap algorithm to apply. + 'key' is null. + 'algorithm' is null. + If and algorithm pair are not supported. + The cannot be converted to byte array + The keysize doesn't match the algorithm. + Failed to create symmetric algorithm with provided key and algorithm. + + + + + Gets the KeyWrap algorithm that is being used. + + + + + Gets or sets a user context for a . + + This is null by default. This can be used by runtimes or for extensibility scenarios. + + + + Gets the that is being used. + + + + + Disposes of internal components. + + true, if called from Dispose(), false, if invoked inside a finalizer. + + + + Returns the . + + + The cannot be converted to byte array + The keysize doesn't match the algorithm. + Failed to create symmetric algorithm with provided key and algorithm. + + + + Answers if an algorithm is supported + + the + the algorithm to use + true if the algorithm is supported; otherwise, false. + + + + Unwrap a key using Symmetric decryption. + + bytes to unwrap + Unwraped key + 'keyBytes' is null or length == 0. + 'keyBytes' is not a multiple of 8. + If has been called. + Failed to unwrap the wrappedKey. + + + + Wrap a key using Symmetric encryption. + + the key to be wrapped + The wrapped key result + 'keyBytes' is null or has length 0. + 'keyBytes' is not a multiple of 8. + If has been called. + Failed to wrap 'keyBytes'. + + + + Returns the absolute DateTime or the Seconds since Unix Epoch, where Epoch is UTC 1970-01-01T0:0:0Z. + + + + + DateTime as UTV for UnixEpoch + + + + + Per JWT spec: + Gets the number of seconds from 1970-01-01T0:0:0Z as measured in UTC until the desired date/time. + + The DateTime to convert to seconds. + if dateTimeUtc less than UnixEpoch, return 0 + the number of seconds since Unix Epoch. + + + + Creates a DateTime from epoch time. + + Number of seconds. + The DateTime in UTC. + + + + This is an LRU cache implementation that relies on an event queue rather than locking to achieve thread safety. + This approach has been decided on in order to optimize the performance of the get and set operations on the cache. + This cache contains a doubly linked list in order to maintain LRU order, as well as a dictionary (map) to keep track of + keys and expiration times. The linked list (a structure which is not thread-safe) is NEVER modified directly inside + an API call (e.g. get, set, remove); it is only ever modified sequentially by a background thread. On the other hand, + the map is a which may be modified directly inside an API call or + through eventual processing of the event queue. This implementation relies on the principle of 'eventual consistency': + though the map and it's corresponding linked list may be out of sync at any given point in time, they will eventually line up. + See here for more details: + https://aka.ms/identitymodel/caching + + The key type to be used by the cache. + The value type to be used by the cache + + + + Constructor. + + The capacity of the cache, used to determine if experiencing overflow. + The event queue task creation option, default to None instead of LongRunning as LongRunning will always start a task on a new thread instead of ThreadPool. + The equality comparison implementation to be used by the map when comparing keys. + Whether or not to remove expired items. + The period to wait to remove expired items, in seconds. + Whether or not to maintain items in a LRU fashion, moving to front of list when accessed in the cache. + + + + Occurs when the application is ready to exit. + + The sender of the event. + The event argument. + + + + Occurs when an AppDomain is about to be unloaded. + + The sender of the event. + The event argument. + + + + Stop the event queue task. + This is provided mainly for users who have unit tests that check for running task(s) to stop the task at the end of each test. + + + + + Stop the event queue task immediately if it is running. This allows the task/thread to terminate gracefully. + Currently there is no unmanaged resource, if any is added in the future it should be disposed of in this method. + + + + + This is the delegate for the event queue task. + + + + + Remove all expired cache items from _doubleLinkedList and _map. + + Number of items removed. + + + + Remove all expired cache items from the _map ONLY. This is called for the non-LRU (_maintainLRU = false) scenaro. + The enumerator returned from the dictionary is safe to use concurrently with reads and writes to the dictionary, according to the MS document. + + Number of items removed. + + + + Remove items from the LinkedList by the desired compaction percentage. + This should be a private method. + + + + + Remove items from the Dictionary by the desired compaction percentage. + Since _map does not have LRU order, items are simply removed from using FirstOrDefault(). + + + + + When the cache is at _maxCapacityPercentage, it needs to be compacted by _compactionPercentage. + This method calculates the new size of the cache after being compacted. + + The new target cache size after compaction. + + + + This is the method that determines the end time for the event queue task. + The goal is to be able to track the incoming events and predict how long the task should run in order to + avoid a long running task and reduce the overhead costs of restarting tasks. + For example, maybe we can track the last three events' time and set the _eventQueueRunDurationInSeconds = 2 * average_time_between_events. + Note: tasks are based on thread pool so the overhead should not be huge but we should still try to minimize it. + + the time when the event queue task should end + + + + This method is called after an item is added to the event queue. It will start the event queue task if one is not already running (_eventQueueTaskState != EventQueueTaskRunning). + Using CompareExchange to set the _eventQueueTaskState prevents multiple tasks from being started. + + + + Each time a node gets accessed, it gets moved to the beginning (head) of the list if the _maintainLRU == true + + + Removes a particular key from the cache. + + + + FOR TESTING ONLY. + + + + + + FOR TESTING ONLY. + + + + + FOR TESTING ONLY. + + + + + FOR TESTING ONLY. + + + + + + FOR TESTING ONLY. + + + + + FOR TESTING PURPOSES ONLY. + This is for tests to verify all tasks exit at the end of tests if the queue is empty. + + + + + FOR TESTING PURPOSES ONLY. + + + + + Throw this exception when a received has invalid arguments. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class with a specified error message + and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The that is the cause of the current exception, or a null reference if no inner exception is specified. + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + Thrown when JWE compression fails. + + + + + Initializes a new instance of + + + + + Initializes a new instance of + + + + + Initializes a new instance of + + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + Thrown when JWE decompression fails. + + + + + Initializes a new instance of + + + + + Initializes a new instance of + + + + + Initializes a new instance of + + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + Represents a security token exception when decryption failed. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class with a specified error message + and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The that is the cause of the current exception, or a null reference if no inner exception is specified. + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + Represents a security token exception when encryption failed. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class with a specified error message + and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The that is the cause of the current exception, or a null reference if no inner exception is specified. + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + This exception is thrown when a security token contained a key identifier but the key was not found by the runtime + when decrypting a token. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + A that represents the root cause of the exception. + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + Represents a security token exception. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class with a specified error message + and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The that is the cause of the current exception, or a null reference if no inner exception is specified. + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + When overridden in a derived class, sets the System.Runtime.Serialization.SerializationInfo + with information about the exception. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + thrown if is null. + + + + Throw this exception when a received Security Token has expiration time in the past. + + + + + Gets or sets the Expires value that created the validation exception. This value is always in UTC. + + + + + Initializes a new instance of + + + + + Initializes a new instance of + + + + + Initializes a new instance of + + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + + + + This exception is thrown when a cryptographic algorithm is invalid. + + + + + Gets or sets the invalid algorithm that created the validation exception. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Additional information to be included in the exception and displayed to user. + + + + Initializes a new instance of the class. + + Additional information to be included in the exception and displayed to user. + A that represents the root cause of the exception. + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + + + + This exception is thrown when 'audience' of a token was not valid. + + + + + Gets or sets the InvalidAudience that created the validation exception. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + A that represents the root cause of the exception. + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + + + + This exception is thrown when 'issuer' of a token was not valid. + + + + + Gets or sets the InvalidIssuer that created the validation exception. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + A that represents the root cause of the exception. + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + + + + This exception is thrown when 'lifetime' of a token was not valid. + + + + + Gets or sets the NotBefore value that created the validation exception. This value is always in UTC. + + + + + Gets or sets the Expires value that created the validation exception. This value is always in UTC. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + A that represents the root cause of the exception. + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + + + + This exception is thrown when 'signature' of a token was not valid. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + A that represents the root cause of the exception. + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + Throw this exception when a received Security Token has an invalid issuer signing key. + + + + + Gets or sets the SigningKey that was found invalid. + + + + + Initializes a new instance of + + + + + Initializes a new instance of + + + + + Initializes a new instance of + + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + This exception is thrown when the token type ('typ' header claim) of a JWT token is invalid. + + + + + Gets or sets the invalid type that created the validation exception. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Additional information to be included in the exception and displayed to user. + + + + Initializes a new instance of the class. + + Additional information to be included in the exception and displayed to user. + A that represents the root cause of the exception. + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + + + + Represents a key wrap exception when encryption failed. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class with a specified error message + and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The that is the cause of the current exception, or a null reference if no inner exception is specified. + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + Represents a exception when the token is malformed. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class with a specified error message + and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The that is the cause of the current exception, or a null reference if no inner exception is specified. + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + This exception is thrown when a security is missing an ExpirationTime. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + A that represents the root cause of the exception. + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + Throw this exception when a received Security token has an effective time + in the future. + + + + + Gets or sets the NotBefore value that created the validation exception. This value is always in UTC. + + + + + Initializes a new instance of + + + + + Initializes a new instance of + + + + + Initializes a new instance of + + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + + + + This exception is thrown when an add to the TokenReplayCache fails. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + A that represents the root cause of the exception. + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + Throw this exception when a received Security Token has been replayed. + + + + + Initializes a new instance of + + + + + Initializes a new instance of + + + + + Initializes a new instance of + + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + This exception is thrown when a security token contained a key identifier but the key was not found by the runtime. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + A that represents the root cause of the exception. + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + This exception is thrown when a security token contained a key identifier but the key was not found by the runtime + and when validation errors exist over the security token. This exception is not intended to be used as a signal + to refresh keys. + + + This exception type is now considered obsolete and will be removed in the next major version (7.0.0). + + + + + Indicates the type of the validation failure. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The validation failures. + Addtional information to be included in the exception and displayed to user. + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + A that represents the root cause of the exception. + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + + + + Represents a security token validation exception. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class with a specified error message + and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The that is the cause of the current exception, or a null reference if no inner exception is specified. + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + The reason for being unable to validate + + + + + Indicates no validation failures + + + + + Indicates that the lifetime was invalid + + + + + Indicates that the issuer was invalid + + + + + Compression provider interface. + + + + + Gets the compression algorithm. + + + + + Called to determine if an algorithm is supported. + + the algorithm that defines the compression method. + true if supported + + + + Decompress. + + the value to decompress. + + + + Compress. + + the value to decompress. + + + + Provides extensibility for cryptographic operators. + If custom operators are needed for then can be set to + return these operators. will be before each creation. + + + + + Called to determine if a cryptographic operation is supported. + + the algorithm that defines the cryptographic operator. + the arguments required by the cryptographic operator. May be null. + true if supported + + + + returns a cryptographic operator that supports the algorithm. + + the algorithm that defines the cryptographic operator. + the arguments required by the cryptographic operator. May be null. + call when finished with the object. + + + + called to release the object returned from + + the object returned from . + + + + Defines a cache for crypto providers. + Current support is limited to only. + + + + + Creates a new instance of using the default . + + + + + Creates a new instance of using the specified . + + The options used to configure the . + + + + Creates a new instance of using the specified . + + The options used to configure the . + Options used to create the event queue thread. + The time used in ms for the timeout interval of the event queue. Defaults to 500 ms. + + + + Returns the cache key to use when looking up an entry into the cache for a + + the to create the key for. + if signatureProvider is null. + the cache key to use for finding a . + + + + Returns the 'key' that will be used to find a crypto provider in this cache. + + the key that is used to by the crypto provider. + the algorithm that is used by the crypto provider. + the typeof the crypto provider obtained by calling object.GetType(). + if securityKey is null. + if algorithm is null or empty string. + if typeofProvider is null or empty string. + the cache key to use for finding a crypto provider. + + + + Trys to adds a to this cache. + + to cache. + if signatureProvider is null. + + true if the was added, false if the cache already contained the or if should not be cached. + + if the is added will be set to 'this'. + + + + Trys to find a to this cache. + + the key that is used to by the crypto provider. + the algorithm that is used by the crypto provider. + the typeof the crypto provider obtained by calling object.GetType(). + a bool to indicate if the will be used to sign. + the if found. + if securityKey is null. + if algorithm is null or empty string. + if typeofProvider is null or empty string. + true if a was found, false otherwise. + + + + Trys to remove a from this cache. + + to remove. + if signatureProvider is null. + true if the was removed, false if the was not found. + if the is removed will be set to null. + + + + Calls and + Note: the EventBasedLRUCache is no longer being disposed of, but since this is a public class and can be used as base class of + custom cache implementations, we need to keep it as some implementations may override Dispose(). + + + + + If is true, this method disposes of and . + + True if called from the method, false otherwise. + + + + FOR TESTING ONLY. + + + + + FOR TESTING ONLY. + + + + + FOR TESTING ONLY. + + + + + FOR TESTING ONLY. + + + + + FOR TESTING ONLY. + + + + + FOR TESTING ONLY. + + + + + FOR TESTING PURPOSES ONLY. + + + + + Validators meant to be kept internal + + + + + Called after signature validation has failed to avoid a metadata refresh + + + + + ISecurityTokenValidator + + + + + Returns true if the token can be read, false otherwise. + + + + + Returns true if a token can be validated. + + + + + Gets and sets the maximum size in bytes, that a will be processed. + + + + + Validates a token passed as a string using + + + + + Interface that defines a simple cache for tacking replaying of security tokens. + + + + + Try to add a securityToken. + + the security token to add. + the time when security token expires. + true if the security token was successfully added. + + + + Try to find securityToken + + the security token to find. + true if the security token is found. + + + + Constants for JsonWebAlgorithms "kty" Key Type (sec 6.1) + https://datatracker.ietf.org/doc/html/rfc7518#section-6.1 + + + + + Represents a JSON Web Key as defined in https://datatracker.ietf.org/doc/html/rfc7517. + + + + + Initializes an new instance of . + + + + + Returns a new instance of . + + A string that contains JSON Web Key parameters in JSON format. + + If 'json' is null or empty. + If 'json' fails to deserialize. + + + + Initializes an new instance of from a json string. + + A string that contains JSON Web Key parameters in JSON format. + If 'json' is null or empty. + If 'json' fails to deserialize. + + + + If this was converted to or from a SecurityKey, this field will be set. + + + + + If this was failed converted to a SecurityKey, this field will be set. + + + + + When deserializing from JSON any properties that are not defined will be placed here. + + + + + Gets or sets the 'alg' (KeyType). + + + + + Gets or sets the 'crv' (ECC - Curve). + + + + + Gets or sets the 'd' (ECC - Private Key OR RSA - Private Exponent). + + Value is formated as: Base64urlUInt + + + + Gets or sets the 'dp' (RSA - First Factor CRT Exponent). + + Value is formated as: Base64urlUInt + + + + Gets or sets the 'dq' (RSA - Second Factor CRT Exponent). + + Value is formated as: Base64urlUInt + + + + Gets or sets the 'e' (RSA - Exponent). + + + + + Gets or sets the 'k' (Symmetric - Key Value). + + Base64urlEncoding + + + + Gets the key id of this . + + + + + Gets the 'key_ops' (Key Operations). + + + + + Gets or sets the 'kid' (Key ID).. + + + + + Gets or sets the 'kty' (Key Type). + + + + + Gets or sets the 'n' (RSA - Modulus). + + Value is formatted as: Base64urlEncoding + + + + Gets or sets the 'oth' (RSA - Other Primes Info). + + + + + Gets or sets the 'p' (RSA - First Prime Factor).. + + Value is formatted as: Base64urlUInt + + + + Gets or sets the 'q' (RSA - Second Prime Factor).. + + Value is formatted as: Base64urlUInt + + + + Gets or sets the 'qi' (RSA - First CRT Coefficient).. + + Value is formatted as: Base64urlUInt + + + + Gets or sets the 'use' (Public Key Use).. + + + + + Gets or sets the 'x' (ECC - X Coordinate).. + + Value is formatted as: Base64urlEncoding + + + + Gets the 'x5c' collection (X.509 Certificate Chain).. + + + + + Gets or sets the 'x5t' (X.509 Certificate SHA-1 thumbprint).. + + + + + Gets or sets the 'x5t#S256' (X.509 Certificate SHA-256 thumbprint).. + + + + + Gets or sets the 'x5u' (X.509 URL).. + + + + + Gets or sets the 'y' (ECC - Y Coordinate).. + + Value is formatted as: Base64urlEncoding + + + + Gets the key size of . + + + + + Gets a bool indicating if a private key exists. + + true if it has a private key; otherwise, false. + + + + Determines whether the can compute a JWK thumbprint. + + true if JWK thumbprint can be computed; otherwise, false. + https://datatracker.ietf.org/doc/html/rfc7638 + + + + Computes the JWK thumprint per spec: https://datatracker.ietf.org/doc/html/rfc7638 />. + + A the JWK thumbprint. + + + + Creates a JsonWebKey representation of an asymmetric public key. + + JsonWebKey representation of an asymmetric public key. + https://datatracker.ietf.org/doc/html/rfc7800#section-3.2 + + + + Returns the formatted string: GetType(), Use: 'value', Kid: 'value', Kty: 'value', InternalId: 'value'. + + string + + + + Converts a into a + Supports: converting to a from one of: , , and . + + + + + Converts a into a + + a to convert. + a + if is null. + if is not a supported type. + Supports: , and . + + + + Converts a into a + + a to convert. + a + if is null. + + + + Converts a into a + + a to convert. + a + if is null. + + + + Converts a into a . + + a to convert. + + true to represent the as an , + false to represent the as an , using the "x5c" parameter. + + a . + if is null. + + + + Converts a into a + + a to convert. + a + if is null. + + + + Converts a into a + + an to convert. + a + if is null. + + + + Constants for JsonWebKey Elliptical Curve Types + https://datatracker.ietf.org/doc/html/rfc7518#section-6.2.1.1 + + + + + JsonWebKey parameter names + see: https://datatracker.ietf.org/doc/html/rfc7517 + + + + + JsonWebKey parameter names as UTF8 bytes + Used by UTF8JsonReader/Writer for performance gains. + + + + + Contains a collection of that can be populated from a json string. + + provides support for https://datatracker.ietf.org/doc/html/rfc7517. + + + + Returns a new instance of . + + a string that contains JSON Web Key parameters in JSON format. + + If 'json' is null or empty. + If 'json' fails to deserialize. + + + + Initializes an new instance of . + + + + + Initializes an new instance of from a json string. + + a json string containing values. + If 'json' is null or empty. + If 'json' fails to deserialize. + + + + When deserializing from JSON any properties that are not defined will be placed here. + + + + + Gets the . + + + + + Default value for the flag that controls whether unresolved JsonWebKeys will be included in the resulting collection of method. + + + + + Flag that controls whether unresolved JsonWebKeys will be included in the resulting collection of method. + + + + + Returns the JsonWebKeys as a . + + + To include unresolved JsonWebKeys in the resulting collection, set to false. + + + + + Names for Json Web Key Set Values + + + + + Constants for JsonWebKeyUse (sec 4.2) + https://datatracker.ietf.org/doc/html/rfc7517#section-4.2 + + + + + Creates a JsonException that provides information on what went wrong + + the . + the type the reader was expecting to find. + the name of the type being read. + the property name being read. + inner exception if any. + + + + + This method is called when deserializing a property value as an object. + Normally we put the object into a Dictionary[string, object]. + + the + the property name that is being read + the type that is being deserialized + if true reader.Read() will be called. + + + + + Writes an 'object' as a JsonProperty. + This was written to support what IdentityModel6x supported and is not meant to be a + general object serializer. + If a user needs to serialize a special value, then serialize the value into a JsonElement. + + + + + Writes values into an array. + Assumes the writer.StartArray() has been called. + + + + + + + Reads a JsonWebKey. see: https://datatracker.ietf.org/doc/html/rfc7517 + + a pointing at a StartObject. + + A . + + + + Reads a JsonWebKey. see: https://datatracker.ietf.org/doc/html/rfc7517 + + a pointing at a StartObject. + + A . + + + + This method will be used when reading OIDC metadata + + + + + + + Log messages and codes + + + + + Generic implementation of object pooling pattern with predefined pool size limit. The main + purpose is that limited number of frequently used objects can be kept in the pool for + further recycling. + + Notes: + 1) it is not the goal to keep all returned objects. Pool is not meant for storage. If there + is no space in the pool, extra returned objects will be dropped. + + 2) it is implied that if object was obtained from a pool, the caller will return it back in + a relatively short time. Keeping checked out objects for long durations is ok, but + reduces usefulness of pooling. Just new up your own. + + Not returning objects to the pool in not detrimental to the pool's work, but is a bad practice. + Rationale: + If there is no intent for reusing the object, do not use pool - just use "new". + + + + + Produces an instance. + + + Search strategy is a simple linear probing which is chosen for it cache-friendliness. + Note that Free will try to store recycled objects close to the start thus statistically + reducing how far we will typically search. + + + + + Returns objects to the pool. + + + Search strategy is a simple linear probing which is chosen for it cache-friendliness. + Note that Free will try to store recycled objects close to the start thus statistically + reducing how far we will typically search in Allocate. + + + + + Returns a string message for the specified Win32 error code. + + + + + Represents a Rsa security key. + + + + + Initializes a new instance of the class. + + + + + + Initializes a new instance of the class. + + + + + + Gets a bool indicating if a private key exists. + + true if it has a private key; otherwise, false. + + + + Gets an enum indicating if a private key exists. + + 'Exists' if private key exists for sure; 'DoesNotExist' if private key doesn't exist for sure; 'Unknown' if we cannot determine. + + + + Gets RSA key size. + + + + + used to initialize the key. + + + + + instance used to initialize the key. + + + + + Determines whether the can compute a JWK thumbprint. + + true if JWK thumbprint can be computed; otherwise, false. + https://datatracker.ietf.org/doc/html/rfc7638 + + + + Computes a sha256 hash over the . + + A JWK thumbprint. + https://datatracker.ietf.org/doc/html/rfc7638 + + + + Constants for Security Algorithm. + + + + + Base class for Security Key. + + + + + Default constructor + + + + + This must be overridden to get the size of this . + + + + + Gets the key id of this . + + + + + Gets or sets . + + + + + Returns the formatted string: GetType(), KeyId: 'value', InternalId: 'value'. + + string + + + + Determines whether the can compute a JWK thumbprint. + + true if JWK thumbprint can be computed; otherwise, false. + https://datatracker.ietf.org/doc/html/rfc7638 + + + + Computes a sha256 hash over the . + + A JWK thumbprint. + https://datatracker.ietf.org/doc/html/rfc7638 + + + + Checks if can perform the cryptographic operation specified by the with this . + + the algorithm to apply. + true if can perform the cryptographic operation sepecified by the with this . + + + + Contains information about the keys inside the tokens. + + + + + Base class for security token. + + + + + + + + This must be overridden to get the Id of this . + + + + + This must be overridden to get the issuer of this . + + + + + This must be overridden to get the . + + + + + This must be overridden to get or set the that signed this instance. + + .ValidateToken(...) can this value when a is used to successfully validate a signature. + + + + This must be overridden to get the time when this was Valid. + + + + + This must be overridden to get the time when this is no longer Valid. + + + + + Contains some information which used to create a security token. + + + + + Gets or sets the value of the 'audience' claim. + + + + + Defines the compression algorithm that will be used to compress the JWT token payload. + + + + + Gets or sets the used to create a encrypted security token. + + + + + Gets or sets the value of the 'expiration' claim. This value should be in UTC. + + + + + Gets or sets the issuer of this . + + + + + Gets or sets the time the security token was issued. This value should be in UTC. + + + + + Gets or sets the notbefore time for the security token. This value should be in UTC. + + + + + Gets or sets the token type. + If provided, this will be added as the value for the 'typ' header parameter. In the case of a JWE, this will be added to both the inner (JWS) and the outer token (JWE) header. By default, the value used is 'JWT'. + If also contains 'typ' header claim value, it will override the TokenType provided here. + This value is used only for JWT tokens and not for SAML/SAML2 tokens + + + + + Gets or sets the which represents the claims that will be used when creating a security token. + If both and are set, the claim values in Subject will be combined with the values + in Claims. The values found in Claims take precedence over those found in Subject, so any duplicate + values will be overridden. + + + + + Gets or sets the which contains any custom header claims that need to be added to the JWT token header. + The 'alg', 'kid', 'x5t', 'enc', and 'zip' claims are added by default based on the , + , and/or provided and SHOULD NOT be included in this dictionary as this + will result in an exception being thrown. + These claims are only added to the outer header (in case of a JWE). + + + + + Gets or sets the which contains any custom header claims that need to be added to the inner JWT token header. + The 'alg', 'kid', 'x5t', 'enc', and 'zip' claims are added by default based on the , + , and/or provided and SHOULD NOT be included in this dictionary as this + will result in an exception being thrown. + + For JsonWebTokenHandler, these claims are merged with while adding to the inner JWT header. + + + + + + Gets or sets the used to create a security token. + + + + + Gets or sets the . + If both and are set, the claim values in Subject will be combined with the values + in Claims. The values found in Claims take precedence over those found in Subject, so any duplicate + values will be overridden. + + + + + Defines the interface for a Security Token Handler. + + + + + Creates an instance of + + + + + Returns . + + + true if attached; otherwise, false. + + + + Returns . + + + + + + Gets a value indicating whether this handler supports validation of tokens + handled by this instance. + v + 'True' if the instance is capable of SecurityToken + validation. + + + + Gets a value indicating whether the class provides serialization functionality to serialize token handled + by this instance. + + true if the WriteToken method can serialize this token. + + + + This must be overridden to get the System.Type of the SecurityToken this instance handles. + + + + + Indicates whether the is positioned at an element that can be read. + + An reader positioned at a start element. The reader should not be advanced. + 'true' if the token can be read. + + + + Indicates whether the current token string can be read as a token + of the type handled by this instance. + + The token string thats needs to be read. + 'True' if the ReadToken method can parse the token string. + + + + Gets security token. + + . + SecurityToken instance which represents the serialized token. + + + + Serializes to string a token of the type handled by this instance. + + A token of type TokenType. + The serialized token. + + + + This must be overridden to serialize to XML a token of the type handled by this instance. + + The XML writer. + A token of type . + + + + This must be overridden to deserialize token with the provided . + + . + the current . + SecurityToken instance which represents the serialized token. + + + + This must be overridden to validate a token passed as a string using + + A token of type . + the current . + The token of type that was validated. + + + + Reads and validates a token using a xmlReader and + + A pointing at the start element of the token. + Contains data and information needed for validation. + The that was validated. + + + + Provides signature services, signing and verifying. + + + + + Maintains the number of external references + see: , , + + + + + Initializes a new instance of the class used to create and verify signatures. + + The that will be used for signature operations. + The signature algorithm to apply. + is null. + is null or empty. + + + + Gets the signature algorithm. + + + + + Gets or sets a user context for a . + + This is null by default. This is for use by the application and not used by this SDK. + + + + Gets or sets the that is associated with this + + + + + Calls and + + + + + Can be over written in descendants to dispose of internal components. + + true, if called from Dispose(), false, if invoked inside a finalizer + + + + Gets the . + + + + + For testing purposes + + + + + This must be overridden to produce a signature over the 'input'. + + bytes to sign. + signed bytes + + + Verifies that the over using the + and specified by this + are consistent. + the bytes that were signed. + signature to compare against. + true if the computed signature matches the signature parameter, false otherwise. + + + + Verifies that a signature created over the 'input' matches the signature. Using and 'algorithm' passed to . + + The bytes to verify. + offset in to input bytes to caculate hash. + number of bytes of signature to use. + signature to compare against. + offset into signature array. + how many bytes to verfiy. + true if computed signature matches the signature parameter, false otherwise. + 'input' is null. + 'signature' is null. + 'input.Length' == 0. + 'signature.Length' == 0. + 'length < 1' + 'offset + length > input.Length' + has been called. + + + + Gets or sets a bool indicating if this is expected to create signatures. + + + + + Defines the , algorithm and digest for digital signatures. + + + + + Initializes a new instance of the class. + + that will be used for signing. + Algorithm will be set to . + the 'digest method' if needed may be implied from the algorithm. For example implies Sha256. + if 'key' is null. + if 'algorithm' is null or empty. + + + + Initializes a new instance of the class. + + that will be used for signing. + The signature algorithm to apply. + the 'digest method' if needed may be implied from the algorithm. For example implies Sha256. + if 'certificate' is null. + if 'algorithm' is null or empty. + + + + Initializes a new instance of the class. + + . + The signature algorithm to apply. + the 'digest method' if needed may be implied from the algorithm. For example implies Sha256. + if 'key' is null. + if 'algorithm' is null or empty. + + + + Initializes a new instance of the class. + + . + The signature algorithm to apply. + The digest algorithm to apply. + if 'key' is null. + if 'algorithm' is null or empty. + if 'digest' is null or empty. + + + + Gets the signature algorithm. + + if 'value' is null or empty. + + + + Gets the digest algorithm. + + + + + Users can override the default with this property. This factory will be used for creating signature providers. + + This will have precedence over + + + + Gets the used for signature creation or validation. + + + + + Gets the key id associated with . + + + + + Defines the default set of algorithms this library supports + + + + + Creating a Signature requires the use of a . + This method returns the + that describes the to use when generating a Signature. + + The SignatureAlgorithm in use. + The to use. + if is null or whitespace. + if is not supported. + + + + Creating a Signature requires the use of a . + This method returns the HashAlgorithm string that is associated with a SignatureAlgorithm. + + The SignatureAlgorithm of interest. + if is null or whitespace. + if is not supported. + + + + Checks if an 'algorithm, key' pair is supported. + + the algorithm to check. + the . + true if 'algorithm, key' pair is supported. + + + + Represents a symmetric security key. + + + + + Returns a new instance of instance. + + The byte array of the key. + + + + Gets the key size. + + + + + Gets the byte array of the key. + + + + + Determines whether the can compute a JWK thumbprint. + + true if JWK thumbprint can be computed; otherwise, false. + https://datatracker.ietf.org/doc/html/rfc7638 + + + + Computes a sha256 hash over the . + + A JWK thumbprint. + https://datatracker.ietf.org/doc/html/rfc7638 + + + + Provides signing and verifying operations using a and specifying an algorithm. + + + + + Mapping from algorithm to the expected signature size in bytes. + + + + + This is the minimum .KeySize when creating and verifying signatures. + + + + + Initializes a new instance of the class that uses an to create and / or verify signatures over a array of bytes. + + The that will be used for signature operations. + The signature algorithm to use. + 'key' is null. + 'algorithm' is null or empty. + If and algorithm pair are not supported. + '.KeySize' is smaller than . + + + + Initializes a new instance of the class that uses an to create and / or verify signatures over a array of bytes. + + The that will be used for signature operations. + The signature algorithm to use. + indicates if this will be used to create signatures. + 'key' is null. + 'algorithm' is null or empty. + If and algorithm pair are not supported. + '.KeySize' is smaller than . + + + + Gets or sets the minimum .KeySize"/>. + + 'value' is smaller than . + + + + Called to obtain the byte[] needed to create a + + that will be used to obtain the byte[]. + [] that is used to populated the KeyedHashAlgorithm. + if key is null. + if a byte[] can not be obtained from SecurityKey. + and are supported. + For a .Key is returned + For a Base64UrlEncoder.DecodeBytes is called with if == JsonWebAlgorithmsKeyTypes.Octet + + + + + Returns a . + This method is called just before a cryptographic operation. + This provides the opportunity to obtain the from an object pool. + If this method is overridden, it is importont to override + if custom releasing of the is desired. + + The hash algorithm to use to create the hash value. + The byte array of the key. + An instance of + + + + For testing purposes + + + + + This method is called just after the cryptographic operation. + If was overridden this method can be overridden for + any custom handling such as returning the to an object pool. + + The " in use. + + + + Produces a signature over the 'input' using the and 'algorithm' passed to . + + The bytes to sign. + Signed bytes + 'input' is null. + 'input.Length' == 0. + has been called. + is null. This can occur if a derived type deletes it or does not create it. + Sign is thread safe. + + + + Verifies that a signature created over the 'input' matches the signature. Using and 'algorithm' passed to . + + The bytes to verify. + signature to compare against. + true if computed signature matches the signature parameter, false otherwise. + 'input' is null. + 'signature' is null. + 'input.Length' == 0. + 'signature.Length' == 0. + has been called. + If the internal is null. This can occur if a derived type deletes it or does not create it. + Verify is thread safe. + + + + Verifies that a signature created over the 'input' matches the signature. Using and 'algorithm' passed to . + + The bytes to verify. + signature to compare against. + number of bytes of signature to use. + true if computed signature matches the signature parameter, false otherwise. + 'input' is null. + 'signature' is null. + 'input.Length' == 0. + 'signature.Length' == 0. + 'length < 1' + has been called. + If the internal is null. This can occur if a derived type deletes it or does not create it. + + + + + + + This internal method is called from the AuthenticatedEncryptionProvider which passes in the algorithm that defines the size expected for the signature. + The reason is the way the AuthenticationTag is validated. + For example when "A128CBC-HS256" is specified, SHA256 will used to create the HMAC and 32 bytes will be generated, but only the first 16 will be validated. + + The bytes to verify. + offset in to input bytes to caculate hash. + number of bytes of signature to use. + signature to compare against. + offset into signature array. + how many bytes to verfiy. + algorithm passed by AuthenticatedEncryptionProvider. + true if computed signature matches the signature parameter, false otherwise. + + + + Disposes of internal components. + + true, if called from Dispose(), false, if invoked inside a finalizer. + + + + An opaque context used to store work when working with authentication artifacts. + + + + + Instantiates a new with a default activity ID. + + + + + Instantiates a new with an activity ID. + + + + + Defines properties shared across all security token handlers. + + + + + Default lifetime of tokens created. When creating tokens, if 'expires', 'notbefore' or 'issuedat' are null, + then a default will be set to: issuedat = DateTime.UtcNow, notbefore = DateTime.UtcNow, expires = DateTime.UtcNow + TimeSpan.FromMinutes(TokenLifetimeInMinutes). + + See: for configuration. + + + + Gets and sets the maximum token size in bytes that will be processed. + + 'value' less than 1. + + + + Gets or sets a bool that controls if token creation will set default 'exp', 'nbf' and 'iat' if not specified. + + See: for configuration. + + + + Gets or sets the token lifetime in minutes. + + Used during token creation to set the default expiration ('exp'). + 'value' less than 1. + + + + Validates a token. + On a validation failure, no exception will be thrown; instead, the exception will be set in the returned TokenValidationResult.Exception property. + Callers should always check the TokenValidationResult.IsValid property to verify the validity of the result. + + The token to be validated. + A required for validation. + A + + + + Validates a token. + On a validation failure, no exception will be thrown; instead, the exception will be set in the returned TokenValidationResult.Exception property. + Callers should always check the TokenValidationResult.IsValid property to verify the validity of the result. + + The to be validated. + A required for validation. + A + + + + Converts a string into an instance of . + + The string to be deserialized. + is null or empty. + 'token.Length' is greater than . + A . + + + + Called by base class to create a . + Currently only used by the JsonWebTokenHandler to allow for a Lazy creation. + + the that has the Claims. + the that was used to validate the token. + the 'issuer' to use by default when creating a Claim. + A . + + + + + A class which contains useful methods for processing tokens. + + + + + A URI that represents the JSON XML data type. + + When mapping json to .Net Claim(s), if the value was not a string (or an enumeration of strings), the ClaimValue will serialized using the current JSON serializer, a property will be added with the .Net type and the ClaimTypeValue will be set to 'JsonClaimValueType'. + + + + A URI that represents the JSON array XML data type. + + When mapping json to .Net Claim(s), if the value was not a string (or an enumeration of strings), the ClaimValue will serialized using the current JSON serializer, a property will be added with the .Net type and the ClaimTypeValue will be set to 'JsonClaimValueType'. + + + + A URI that represents the JSON null data type + + When mapping json to .Net Claim(s), we use empty string to represent the claim value and set the ClaimValueType to JsonNull + + + + Creates a dictionary from a list of Claim's. + + A list of claims. + A Dictionary representing claims. + + + + Returns all provided in and . + + The that contains signing keys used for validation. + A required for validation. + Returns all provided in provided in and . + + + + Merges claims. If a claim with same type exists in both and , the one in claims will be kept. + + Collection of 's. + Collection of 's. + A Merged list of 's. + + + + Check whether the given exception type is recoverable by LKG. + + The exception to check. + true if the exception is certain types of exceptions otherwise, false. + + + + Check whether the given configuration is recoverable by LKG. + + The kid from token."/> + The to check. + The LKG exception to check. + The exception to check. + true if the configuration is recoverable otherwise, false. + + + + Definition for AlgorithmValidator + + The algorithm to validate. + The that signed the . + The being validated. + required for validation. + true if the algorithm is considered valid + + + + Definition for AudienceValidator. + + The audiences found in the . + The being validated. + required for validation. + true if the audience is considered valid. + + + + Definition for IssuerSigningKeyResolver. + + The representation of the token that is being validated. + The that is being validated. It may be null. + A key identifier. It may be null. + required for validation. + A to use when validating a signature. + If both and are set, IssuerSigningKeyResolverUsingConfiguration takes + priority. + + + + Definition for IssuerSigningKeyResolverUsingConfiguration. + + The representation of the token that is being validated. + The that is being validated. It may be null. + A key identifier. It may be null. + required for validation. + required for validation. + A to use when validating a signature. + If both and are set, IssuerSigningKeyResolverUsingConfiguration takes + priority. + + + + Definition for IssuerSigningKeyValidator. + + The that signed the . + The being validated. + required for validation. + If both and are set, IssuerSigningKeyResolverUsingConfiguration takes + priority. + + + + Definition for IssuerSigningKeyValidatorUsingConfiguration. + + The that signed the . + The being validated. + required for validation. + required for validation. + If both and are set, IssuerSigningKeyResolverUsingConfiguration takes + priority. + + + + Definition for IssuerValidator. + + The issuer to validate. + The that is being validated. + required for validation. + The issuer to use when creating the "Claim"(s) in a "ClaimsIdentity". + The delegate should return a non null string that represents the 'issuer'. If null a default value will be used. + If both and are set, IssuerValidatorUsingConfiguration takes + priority. + + + + Definition for IssuerValidatorUsingConfiguration. + + The issuer to validate. + The that is being validated. + required for validation. + required for validation. + The issuer to use when creating the "Claim"(s) in a "ClaimsIdentity". + The delegate should return a non null string that represents the 'issuer'. If null a default value will be used. + If both and are set, IssuerValidatorUsingConfiguration takes + priority. + + + + + Definition for IssuerValidatorAsync. Left internal for now while we work out the details of async validation for all delegates. + + The issuer to validate. + The that is being validated. + required for validation. + The issuer to use when creating the "Claim"(s) in a "ClaimsIdentity". + The delegate should return a non null string that represents the 'issuer'. If null a default value will be used. + if set, will be called before or + + + + + Definition for LifetimeValidator. + + The 'notBefore' time found in the . + The 'expiration' time found in the . + The being validated. + required for validation. + + + + Definition for TokenReplayValidator. + + The 'expiration' time found in the . + The being validated. + required for validation. + + + + + Definition for SignatureValidator. + + A securityToken with a signature. + required for validation. + + + + Definition for SignatureValidator. + + A securityToken with a signature. + required for validation. + The that is required for validation. + + + + Definition for TokenReader. + + A securityToken with a signature. + required for validation. + + + + Definition for TokenDecryptionKeyResolver. + + The representation of the token to be decrypted. + The to be decrypted. The runtime by default passes null. + A key identifier. It may be null. + required for validation. + A to use when decrypting the token. + + + + Definition for TypeValidator. + + The token type to validate. + The that is being validated. + required for validation. + The actual token type, that may be the same as or a different value if the token type was resolved from a different location. + + + + Definition for TransformBeforeSignatureValidation. + + The that is being validated. + required for validation. + A transformed . + + + + Contains a set of parameters that are used by a when validating a . + + + + + This is the default value of when creating a . + The value is "AuthenticationTypes.Federation". + To change the value, set to a different value. + + + + + Default for the clock skew. + + 300 seconds (5 minutes). + + + + Default for the maximum token size. + + 250 KB (kilobytes). + + + + Copy constructor for . + + + + + Initializes a new instance of the class. + + + + + Gets or sets . + + + + + Gets or sets a delegate used to validate the cryptographic algorithm used. + + + If set, this delegate will validate the cryptographic algorithm used and + the algorithm will not be checked against . + + + + + Gets or sets a delegate that will be used to validate the audience. + + + If set, this delegate will be called to validate the 'audience', instead of default processing. + This means that no default 'audience' validation will occur. + Even if is false, this delegate will still be called. + + + + + Gets or sets the AuthenticationType when creating a . + + If 'value' is null or whitespace. + + + + Gets or sets the clock skew to apply when validating a time. + + If 'value' is less than 0. + The default is 300 seconds (5 minutes). + + + + Returns a new instance of with values copied from this object. + + A new object copied from this object + This is a shallow Clone. + + + + Creates a using: + + 'NameClaimType': If NameClaimTypeRetriever is set, call delegate, else call NameClaimType. If the result is a null or empty string, use . + 'RoleClaimType': If RoleClaimTypeRetriever is set, call delegate, else call RoleClaimType. If the result is a null or empty string, use . + + A with Authentication, NameClaimType and RoleClaimType set. + + + + If set, this property will be used to obtain the issuer and signing keys associated with the metadata endpoint of . + The obtained issuer and signing keys will then be used along with those present on the TokenValidationParameters for validation of the incoming token. + + + + + Users can override the default with this property. This factory will be used for creating signature providers. + + + + + Gets or sets a string that helps with setting breakpoints when debugging. + + + + + Gets or sets a boolean that controls if a '/' is significant at the end of the audience. + The default is true. + + + + + Gets or sets the flag that indicates whether to include the when the validation fails. + + + + + Gets or sets a delegate for validating the that signed the token. + + + If set, this delegate will be called to validate the that signed the token, instead of default processing. + This means that no default validation will occur. + Even if is false, this delegate will still be called. + If both and are set, IssuerSigningKeyResolverUsingConfiguration takes + priority. + + + + + Gets or sets a delegate for validating the that signed the token. + + + If set, this delegate will be called to validate the that signed the token, instead of default processing. + This means that no default validation will occur. + Even if is false, this delegate will still be called. + This delegate should be used if properties from the configuration retrieved from the authority are necessary to validate the + issuer signing key. + If both and are set, IssuerSigningKeyValidatorUsingConfiguration takes + priority. + + + + + Gets a that is unique to this instance. + Calling will result in a new instance of this IDictionary. + + + + + Gets a value indicating if was called to obtain this instance. + + + + + Gets or sets the that is to be used for signature validation. + + + + + Gets or sets a delegate that will be called to retrieve a used for signature validation. + + + This will be used to check the signature. This can be helpful when the does not contain a key identifier. + If both and are set, IssuerSigningKeyResolverUsingConfiguration takes + priority. + + + + + Gets or sets a delegate that will be called to retrieve a used for signature validation using the + and . + + + This will be used to check the signature. This can be helpful when the does not contain a key identifier. + This delegate should be used if properties from the configuration retrieved from the authority are necessary to resolve the + issuer signing key. + If both and are set, IssuerSigningKeyResolverUsingConfiguration takes + priority. + + + + + Gets or sets an used for signature validation. + + + + + Gets or sets a delegate that will be used to validate the issuer of the token. + + + If set, this delegate will be called to validate the 'issuer' of the token, instead of default processing. + This means that no default 'issuer' validation will occur. + Even if is false, this delegate will still be called. + If both and are set, IssuerValidatorUsingConfiguration takes + priority. + + + + + Gets or sets a delegate that will be used to validate the issuer of the token. + + + If set, this delegate will be called to validate the 'issuer' of the token, instead of default processing. + This means that no default 'issuer' validation will occur. + Even if is false, this delegate will still be called. + IssuerValidatorAsync takes precedence over and . + + + + + Gets or sets a delegate that will be used to validate the issuer of the token. + + + If set, this delegate will be called to validate the 'issuer' of the token, instead of default processing. + This means that no default 'issuer' validation will occur. + Even if is false, this delegate will still be called. + This delegate should be used if properties from the configuration retrieved from the authority are necessary to validate the issuer. + If both and are set, IssuerValidatorUsingConfiguration takes + priority. + + + + + Gets or sets a delegate that will be called to transform a token to a supported format before validation. + + + + + Gets or sets a delegate that will be used to validate the lifetime of the token + + + If set, this delegate will be called to validate the lifetime of the token, instead of default processing. + This means that no default lifetime validation will occur. + Even if is false, this delegate will still be called. + + + + + Gets or sets a that will decide if the token identifier claim needs to be logged. + Default value is true. + + + + + Gets or sets a that will decide if validation failure needs to be logged as an error. + Default value is true for backward compatibility of the behavior. + If set to false, validation failures are logged as Information and then thrown. + + + + + Gets or sets a that defines the . + + + Controls the value returns. It will return the first where the equals . + The default is . + + + + + Gets or sets a delegate that will be called to set the property after validating a token. + + + The function will be passed: + The that is being validated. + The issuer associated with the token. + Returns the value that will set the property . + + + + + Gets or sets the that contains a collection of custom key/value pairs. This allows addition of parameters that could be used in custom token validation scenarios. + + + + + Gets or sets a boolean to control if configuration required to be refreshed before token validation. + + + The default is false. + + + + + Gets or sets a value indicating whether SAML tokens must have at least one AudienceRestriction. + The default is true. + + + + + Gets or sets a value indicating whether tokens must have an 'expiration' value. + The default is true. + + + + + Gets or sets a value indicating whether a can be considered valid if not signed. + The default is true. + + + + + Gets or sets the that defines the . + + + Controls the results of . + Each where == will be checked for a match against the 'string' passed to . + The default is . + + + + + Gets or sets a delegate that will be called to set the property after validating a token. + + + The function will be passed: + The that is being validated. + The issuer associated with the token. + Returns the value that will set the property . + + + + + Gets or sets a boolean to control if the original token should be saved after the security token is validated. + + The runtime will consult this value and save the original token that was validated. + The default is false. + + + + + Gets or sets a delegate that will be used to validate the signature of the token. + + + If set, this delegate will be called to signature of the token, instead of default processing. + + + + + Gets or sets a delegate that will be used to validate the signature of the token using the and + the . + + + If set, this delegate will be called to signature of the token, instead of default processing. + + + + + Gets or sets the that is to be used for decryption. + + + + + Gets or sets a delegate that will be called to retreive a used for decryption. + + + This will be used to decrypt the token. This can be helpful when the does not contain a key identifier. + + + + + Gets or sets the that is to be used for decrypting inbound tokens. + + + + + Gets or sets a delegate that will be used to read the token. + + + If set, this delegate will be called to read the token instead of default processing. + + + + + Gets or set the that store tokens that can be checked to help detect token replay. + + If set, then tokens must have an expiration time or the runtime will fault. + + + + Gets or sets a delegate that will be used to validate the token replay of the token + + + If set, this delegate will be called to validate the token replay of the token, instead of default processing. + This means no default token replay validation will occur. + Even if is false, this delegate will still be called. + + + + + Gets or sets a value indicating whether all should be tried during signature validation when a key is not matched to token kid or if token kid is empty. + The default is true. + + + + + Gets or sets a delegate that will be used to validate the type of the token. + If the token type cannot be validated, an exception MUST be thrown by the delegate. + Note: the 'type' parameter may be null if it couldn't be extracted from its usual location. + Implementations that need to resolve it from a different location can use the 'token' parameter. + + + If set, this delegate will be called to validate the 'type' of the token, instead of default processing. + This means that no default 'type' validation will occur. + + + + + Gets or sets a value indicating if an actor token is detected, whether it should be validated. + The default is false. + + + + + Gets or sets a boolean to control if the audience will be validated during token validation. + + Validation of the audience, mitigates forwarding attacks. For example, a site that receives a token, could not replay it to another side. + A forwarded token would contain the audience of the original site. + This boolean only applies to default audience validation. If is set, it will be called regardless of whether this + property is true or false. + The default is true. + + + + + Gets or sets a boolean to control if the issuer will be validated during token validation. + + + Validation of the issuer mitigates forwarding attacks that can occur when an + IdentityProvider represents multiple tenants and signs tokens with the same keys. + It is possible that a token issued for the same audience could be from a different tenant. For example an application could accept users from + contoso.onmicrosoft.com but not fabrikam.onmicrosoft.com, both valid tenants. An application that accepts tokens from fabrikam could forward them + to the application that accepts tokens for contoso. + This boolean only applies to default issuer validation. If is set, it will be called regardless of whether this + property is true or false. + The default is true. + + + + + Gets or sets a boolean to control if the LKG configuration will be used for token validation. + + + The default is false. + + + + + Gets or sets a boolean that controls if validation of the that signed the securityToken is called. + + It is possible for tokens to contain the public key needed to check the signature. For example, X509Data can be hydrated into an X509Certificate, + which can be used to validate the signature. In these cases it is important to validate the SigningKey that was used to validate the signature. + This boolean only applies to default signing key validation. If is set, it will be called regardless of whether this + property is true or false. + The default is false. + + + + + Gets or sets a boolean to control if the lifetime will be validated during token validation. + + + This boolean only applies to default lifetime validation. If is set, it will be called regardless of whether this + property is true or false. + The default is true. + + + + + Gets or sets a boolean that controls the validation order of the payload and signature during token validation. + + If is set to true, it will validate payload ahead of signature. + The default is false. + + + + + Gets or sets a boolean to control if the token replay will be validated during token validation. + + + This boolean only applies to default token replay validation. If is set, it will be called regardless of whether this + property is true or false. + The default is false. + + + + + Gets or sets the valid algorithms for cryptographic operations. + + + If set to a non-empty collection, only the algorithms listed will be considered valid. + The default is null. + + + + + Gets or sets a string that represents a valid audience that will be used to check against the token's audience. + The default is null. + + + + + Gets or sets the that contains valid audiences that will be used to check against the token's audience. + The default is null. + + + + + Gets or sets a that represents a valid issuer that will be used to check against the token's issuer. + The default is null. + + + + + Gets or sets the that contains valid issuers that will be used to check against the token's issuer. + The default is null. + + + + + Gets or sets the that contains valid types that will be used to check against the JWT header's 'typ' claim. + If this property is not set, the 'typ' header claim will not be validated and all types will be accepted. + In the case of a JWE, this property will ONLY apply to the inner token header. + The default is null. + + + + + Contains artifacts obtained when a SecurityToken is validated. + A SecurityTokenHandler returns an instance that captures the results of validating a token. + + + + + Creates an instance of + + + + + This ctor is used by the JsonWebTokenHandler as part of delaying creation of ClaimsIdentity. + + + + + + + + + The created from the validated security token. + + + + + The created from the validated security token. + + + + + Gets or sets the without synchronization. All accesses must either + be protected or used when the caller knows access is serialized. + + + + Gets the object to use in for double-checked locking. + + + + Gets or sets the that occurred during validation. + + + + + Gets or sets the issuer that was found in the token. + + + + + True if the token was successfully validated, false otherwise. + + + + + Gets or sets the that contains a collection of custom key/value pairs. This allows addition of data that could be used in custom scenarios. This uses for case-sensitive comparison of keys. + + + + + Gets or sets the that was validated. + + + + + The to be returned when validation fails. + + + + + Gets or sets the that contains call information. + + + + + Gets or sets the token type of the that was validated. + When a is registered, + the type returned by the delegate is used to populate this property. + Otherwise, the type is resolved from the token itself, if available + (e.g for a JSON Web Token, from the "typ" header). + + + + + Generates unique IDs. + + + + + Creates a unique ID suitable for use in an xml:id field. The value is + not hard to guess but is unique. + + The unique ID. + + + + Creates a unique ID similar to that created by CreateNonRandomId, + but instead of an underscore, the supplied prefix is used. + + The prefix to use. + The unique ID, with the given prefix. + + + + Creates a unique, random ID suitable for use in an xml:id field. The + value is hard to guess and unique. + + The unique ID. + + + + Creates a unique, random ID similar to that created by CreateRandomId, + but instead of an underscore, the supplied prefix is used. + + The prefix to use. + The random URI. + + + + Creates a unique, random ID suitable for use as a URI. The value is + hard to guess and unique. The URI is in the urn:uuid: namespace. + + The random URI. + + + + Contains some utility methods. + + + + + A string with "empty" value. + + + + + A string with "null" value. + + + + + Creates a copy of the byte array. + + The resource array. + A copy of the byte array. + + + + Serializes the list of strings into string as follows: + 'str1','str2','str3' ... + + + The strings used to build a comma delimited string. + + + The single . + + + + + Returns whether the input string is https. + + The input string. + true if the input string is https; otherwise, false. + + + + Returns whether the input uri is https. + + . + true if the input uri is https; otherwise, false. + + + + Compares two byte arrays for equality. Hash size is fixed normally it is 32 bytes. + The attempt here is to take the same time if an attacker shortens the signature OR changes some of the signed contents. + + + One set of bytes to compare. + + + The other set of bytes to compare with. + + + true if the bytes are equal, false otherwise. + + + + + Compares two byte spans for equality. Hash size is fixed normally it is 32 bytes. + The attempt here is to take the same time if an attacker shortens the signature OR changes some of the signed contents. + + + One set of bytes to compare. + + + The other set of bytes to compare with. + + length of spans to check + + true if the bytes are equal, false otherwise. + + + + + AudienceValidator + + + + + Validates if a given algorithm for a is valid. + + The algorithm to be validated. + The that signed the . + The being validated. + required for validation. + + + + Determines if the audiences found in a are valid. + + The audiences found in the . + The being validated. + required for validation. + If 'validationParameters' is null. + If 'audiences' is null and is true. + If is null or whitespace and is null. + If none of the 'audiences' matched either or one of . + An EXACT match is required. + + + + Determines if an issuer found in a is valid. + + The issuer to validate + The that is being validated. + required for validation. + The issuer to use when creating the "Claim"(s) in a "ClaimsIdentity". + If 'validationParameters' is null. + If 'issuer' is null or whitespace and is true. + If is null or whitespace and is null. + If 'issuer' failed to matched either or one of . + An EXACT match is required. + + + + Determines if an issuer found in a is valid. + + The issuer to validate + The that is being validated. + required for validation. + The required for issuer and signing key validation. + The issuer to use when creating the "Claim"(s) in a "ClaimsIdentity". + If 'validationParameters' is null. + If 'issuer' is null or whitespace and is true. + If ' configuration' is null. + If is null or whitespace and is null and is null. + If 'issuer' failed to matched either or one of or . + An EXACT match is required. + + + + Determines if an issuer found in a is valid. + + The issuer to validate + The that is being validated. + required for validation. + The required for issuer and signing key validation. + The issuer to use when creating the "Claim"(s) in a "ClaimsIdentity". + If 'validationParameters' is null. + If 'issuer' is null or whitespace and is true. + If ' configuration' is null. + If is null or whitespace and is null and is null. + If 'issuer' failed to matched either or one of or . + An EXACT match is required. + + + + Validates the that signed a . + + The that signed the . + The being validated. + required for validation. + if 'securityKey' is null and ValidateIssuerSigningKey is true. + if 'securityToken' is null and ValidateIssuerSigningKey is true. + if 'validationParameters' is null. + + + + Validates the that signed a . + + The that signed the . + The being validated. + required for validation. + The required for issuer and signing key validation. + if 'securityKey' is null and ValidateIssuerSigningKey is true. + if 'securityToken' is null and ValidateIssuerSigningKey is true. + if 'validationParameters' is null. + + + + Given a signing key, when it's derived from a certificate, validates that the certificate is already active and non-expired + + The that signed the . + The that are used to validate the token. + + + + Validates the lifetime of a . + + The 'notBefore' time found in the . + The 'expiration' time found in the . + The being validated. + required for validation. + If 'validationParameters' is null. + If 'expires.HasValue' is false and is true. + If 'notBefore' is > 'expires'. + If 'notBefore' is > DateTime.UtcNow. + If 'expires' is < DateTime.UtcNow. + All time comparisons apply . + + + + Validates if a token has been replayed. + + When does the security token expire. + The being validated. + required for validation. + If 'securityToken' is null or whitespace. + If 'validationParameters' is null or whitespace. + If is not null and expirationTime.HasValue is false. When a TokenReplayCache is set, tokens require an expiration time. + If the 'securityToken' is found in the cache. + If the 'securityToken' could not be added to the . + + + + Validates if a token has been replayed. + + The being validated. + When does the security token expire. + required for validation. + If 'securityToken' is null or whitespace. + If 'validationParameters' is null or whitespace. + If is not null and expirationTime.HasValue is false. When a TokenReplayCache is set, tokens require an expiration time. + If the 'securityToken' is found in the cache. + If the 'securityToken' could not be added to the . + + + + Validates the type of the token. + + The token type or null if it couldn't be resolved (e.g from the 'typ' header for a JWT). + The that is being validated. + required for validation. + If is null. + If is null. + If is null or whitespace and is not null. + If failed to match . + An EXACT match is required. (case sensitive) is used for comparing against . + The actual token type, that may be the same as or a different value if the token type was resolved from a different location. + + + + An designed to construct based on a x509 certificate. + + + + + Designed to construct based on a x509 certificate. + + A + + will be used as the key wrap algorithm + will be used as the data encryption algorithm + + if 'certificate' is null. + + + + Designed to construct based on the x509 certificate, a key wrap algorithm, and data encryption algorithm. + + A + A key wrap algorithm + Data encryption algorithm + if 'certificate' is null. + if 'keyWrapAlgorithm' is null or empty. + if 'dataEncryptionAlgorithm' is null or empty. + + + + Gets the used by this instance. + + + + + An that is backed by a + + + + + Instantiates a using a + + The to use. + if is null. + + + + Instantiates a using a . + + The to use. + The value to set for the KeyId + if is null. + if is null or empty. + + + + Gets the key size. + + + + + Gets the X5t of this . + + + + + Returns the private key from the . + + + + + Gets the public key from the . + + + + + Gets a bool indicating if a private key exists. + + true if it has a private key; otherwise, false. + + + + Gets an enum indicating if a private key exists. + + 'Exists' if private key exists for sure; 'DoesNotExist' if private key doesn't exist for sure; 'Unknown' if we cannot determine. + + + + Gets the . + + + + + Determines whether the can compute a JWK thumbprint. + + true if JWK thumbprint can be computed; otherwise, false. + https://datatracker.ietf.org/doc/html/rfc7638 + + + + Computes a sha256 hash over the . + + A JWK thumbprint. + https://datatracker.ietf.org/doc/html/rfc7638 + + + + Returns a bool indicating if this key is equivalent to another key. + + true if the keys are equal; otherwise, false. + + + + Returns an int hash code. + + An int hash code + + + + Defines the , algorithm and digest for digital signatures. + + + + + Initializes a new instance of the class. + + that will be used for signing. + Algorithm will be set to . + the 'digest method' if needed may be implied from the algorithm. For example implies Sha256. + if 'certificate' is null. + + + + Initializes a new instance of the class. + + A that will be used for signing. + The signature algorithm to apply. + the 'digest method' if needed may be implied from the algorithm. For example implies Sha256. + if 'certificate' is null. + if 'algorithm' is null or empty. + + + + Gets the used by this instance. + + + + diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/lib/net6.0/Microsoft.IdentityModel.Tokens.xml.meta b/Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/lib/net6.0/Microsoft.IdentityModel.Tokens.xml.meta new file mode 100644 index 0000000..52d9ece --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/lib/net6.0/Microsoft.IdentityModel.Tokens.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 33cb67a2650a89546b44fc09dee20cfa +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/lib/net8.0.meta b/Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/lib/net8.0.meta new file mode 100644 index 0000000..a354b4c --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/lib/net8.0.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 191e8eff1a85be649adba152c075a3a5 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/lib/net8.0/Microsoft.IdentityModel.Tokens.dll b/Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/lib/net8.0/Microsoft.IdentityModel.Tokens.dll new file mode 100644 index 0000000..b711eb3 --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/lib/net8.0/Microsoft.IdentityModel.Tokens.dll @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0e56f51e470d4334cceb6e4b471d0ec77645cfc62ea85cddbc534e316dcaa5ed +size 284192 diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/lib/net8.0/Microsoft.IdentityModel.Tokens.dll.meta b/Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/lib/net8.0/Microsoft.IdentityModel.Tokens.dll.meta new file mode 100644 index 0000000..9b534ec --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/lib/net8.0/Microsoft.IdentityModel.Tokens.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: 08e92a8c3c2efd241b2035d4be313ebe +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/lib/net8.0/Microsoft.IdentityModel.Tokens.xml b/Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/lib/net8.0/Microsoft.IdentityModel.Tokens.xml new file mode 100644 index 0000000..f04d245 --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/lib/net8.0/Microsoft.IdentityModel.Tokens.xml @@ -0,0 +1,5529 @@ + + + + Microsoft.IdentityModel.Tokens + + + + + This adapter abstracts the 'RSA' differences between versions of .Net targets. + + + + + Calls and + + + + + Base class for a Security Key that contains Asymmetric key material. + + + + + Default constructor + + + + + This must be overridden to get a bool indicating if a private key exists. + + true if it has a private key; otherwise, false. + + + + Gets the status of the private key. + + 'Exists' if private key exists for sure; 'DoesNotExist' if private key doesn't exist for sure; 'Unknown' if we cannot determine. + + + + Enum for the existence of private key + + + + + private key exists for sure + + + + + private key doesn't exist for sure + + + + + unable to determine the existence of private key + + + + + Provides signature and verification operations for Asymmetric Algorithms using a . + + + + + Mapping from algorithm to minimum .KeySize when creating signatures. + + + + + Mapping from algorithm to minimum .KeySize when verifying signatures. + + + + + Initializes a new instance of the class used to create and verify signatures. + + The that will be used for signature operations. + The signature algorithm to apply. + + + + Initializes a new instance of the class used to create and verify signatures. + + The that will be used for signature operations. + The signature algorithm to apply. + If this is required to create signatures then set this to true. + + Creating signatures requires that the has access to a private key. + Verifying signatures (the default), does not require access to the private key. + + is null. + is null or empty. + is true and there is no private key. + If and algorithm pair are not supported. + + willCreateSignatures is true and .KeySize is less than the size corresponding to the given algorithm in . + + + .KeySize is less than the size corresponding to the algorithm in . Note: this is always checked. + + If the runtime is unable to create a suitable cryptographic provider. + + + + Gets the mapping from algorithm to the minimum .KeySize for creating signatures. + + + + + Gets the mapping from algorithm to the minimum .KeySize for verifying signatures. + + + + + Creating a Signature requires the use of a . + This method returns the + that describes the to use when generating a Signature. + + The SignatureAlgorithm in use. + The to use. + if is null or whitespace. + if is not supported. + + + + For testing purposes + + + + + Produces a signature over the 'input' using the and algorithm passed to . + + The bytes to be signed. + A signature over the input. + if is null. + if .Length == 0. + If has been called. + Sign is thread safe. + + + + Validates that an asymmetric key size is of sufficient size for a SignatureAlgorithm. + + The asymmetric key to validate. + Algorithm for which this key will be used. + Whether they key will be used for creating signatures. + if is null. + if is null or empty. + if .KeySize is less than the minimum + acceptable size. + + for minimum signing sizes. + for minimum verifying sizes. + + + + + Verifies that the over using the + and specified by this + are consistent. + + The bytes to generate the signature over. + The value to verify against. + true if signature matches, false otherwise. + is null or has length == 0. + is null or has length == 0. + If has been called. + Verify is thread safe. + + + + + + + Calls to release managed resources. + + true, if called from Dispose(), false, if invoked inside a finalizer. + + + + Encodes and Decodes strings as Base64Url encoding. + + + + + The following functions perform base64url encoding which differs from regular base64 encoding as follows + * padding is skipped so the pad character '=' doesn't have to be percent encoded + * the 62nd and 63rd regular base64 encoding characters ('+' and '/') are replace with ('-' and '_') + The changes make the encoding alphabet file and URL safe. + + string to encode. + Base64Url encoding of the UTF8 bytes. + + + + Converts a subset of an array of 8-bit unsigned integers to its equivalent string representation which is encoded with base-64-url digits. Parameters specify + the subset as an offset in the input array, and the number of elements in the array to convert. + + An array of 8-bit unsigned integers. + An offset in inArray. + The number of elements of inArray to convert. + The string representation in base 64 url encoding of length elements of inArray, starting at position offset. + 'inArray' is null. + offset or length is negative OR offset plus length is greater than the length of inArray. + + + + Converts a subset of an array of 8-bit unsigned integers to its equivalent string representation which is encoded with base-64-url digits. + + An array of 8-bit unsigned integers. + The string representation in base 64 url encoding of length elements of inArray, starting at position offset. + 'inArray' is null. + offset or length is negative OR offset plus length is greater than the length of inArray. + + + + Converts the specified string, base-64-url encoded to utf8 bytes. + base64Url encoded string. + UTF8 bytes. + + + + Decodes the string from Base64UrlEncoded to UTF8. + + string to decode. + UTF8 string. + + + + Base64 encode/decode implementation for as per https://tools.ietf.org/html/rfc4648#section-5. + Uses ArrayPool[T] to minimize memory usage. + + + + + Decodes a Base64UrlEncoded string into a byte array. + + The string to decode. + Decoded bytes. + + + + Decodes a Base64UrlEncoded string into a byte array. + + String to decode. + Index of char in to start decode operation. + Number of chars in to decode. + Decoded bytes. + + + + Decodes a Base64UrlEncoded string and then performs an action. + + String to decode. + Index of char in to start decode operation. + Number of chars in to decode from . + Input parameter to action. + Action to perform on decoded bytes. + Output type of decoding action. + Type of Input parameter to action. + Instance of {T}. + + The buffer for the decode operation uses shared memory pool to avoid allocations. + The length of the rented array of bytes may be larger than the decoded bytes, therefore the action needs to know the actual length to use. + The result of is passed to the action. + + + + + Decodes a Base64UrlEncoded string and then performs an action. + + The string to decode. + Index of char in to start decode operation from. + Count of char in to decode. + Action to perform on decoded bytes. + Return type of operation. + Instance of {T}. + + The buffer for the decode operation uses shared memory pool to avoid allocations. + The length of the rented array of bytes may be larger than the decoded bytes, therefore the action needs to know the actual length to use. + The result of is passed to the action. + + + + + Decodes a Base64UrlEncoded string and then performs an action. + + The string to decode. + Index of char in to start decode operation from. + Count of char in to decode. + Input parameter 1 to action. + Input parameter 2 to action. + Input parameter 3 to action. + Action to perform on decoded bytes. + Output type of decoding action. + Type of Input parameter 1 to action. + Type of Input parameter 2 to action. + Type of Input parameter 3 to action. + Instance of {T}. + + The buffer for the decode operation uses shared memory pool to avoid allocations. + The length of the rented array of bytes may be larger than the decoded bytes, therefore the action needs to know the actual length to use. + The result of is passed to the action. + + + + + Decodes a Base64UrlEncoded string into a byte array. + + String to decode. + Index of char in to start decode operation. + Number of chars in to decode. + byte array to place results. + + Changes from Base64UrlEncoder implementation + 1. Padding is optional. + 2. '+' and '-' are treated the same. + 3. '/' and '_' are treated the same. + + + + + Encode byte array to Base64UrlEncoded string. + + Bytes to encode. + Base64Url encoded string. + + + + Encode byte array to Base64UrlEncoded string. + + Bytes to encode. + Index into to start encode operation. + Number of bytes in to encode, starting from offset. + Base64Url encoded string. + + + + Validates the input string for decode operation. + + String to validate. + Index of char in to start decode operation. + Number of chars in to decode, starting from offset. + Size of the decoded bytes arrays. + + + + Represents a generic metadata configuration which is applicable for both XML and JSON based configurations. + + + + + Gets the issuer specified via the metadata endpoint. + + + + + Gets the that the IdentityProvider indicates are to be used in order to sign tokens. + + + + + Gets or sets the token endpoint specified via the metadata endpoint. + This is the fed:PassiveRequestorEndpoint in WS-Federation, https://docs.oasis-open.org/wsfed/federation/v1.2/os/ws-federation-1.2-spec-os.html#:~:text=fed%3ASecurityTokenServiceType/fed%3APassiveRequestorEndpoint + Or the token_endpoint in the OIDC metadata. + + + + + Gets or sets the token endpoint specified via the metadata endpoint. + This is the fed:SecurityTokenServiceType in WS-Federation, http://docs.oasis-open.org/wsfed/federation/v1.2/os/ws-federation-1.2-spec-os.html#:~:text=fed%3ASecurityTokenSerivceEndpoint + + + + + Gets the that the IdentityProvider indicates are to be used in order to decrypt tokens. + + + + + Comparison class for a . + + + + + Represents a generic configuration manager. + + + + + Gets or sets the that controls how often an automatic metadata refresh should occur. + + + + + 12 hours is the default time interval that afterwards will obtain new configuration. + + + + + 1 hour is the default time interval that a last known good configuration will last for. + + + + + 5 minutes is the default time interval that must pass for to obtain a new configuration. + + + + + The default constructor. + + + + + Constructor. + + The event queue task creation option. + + + + Obtains an updated version of if the appropriate refresh interval has passed. + This method may return a cached version of the configuration. + + CancellationToken + Configuration of type Configuration. + This method on the base class throws a as it is meant to be + overridden by the class that extends it. + + + + Gets all valid last known good configurations. + + A collection of all valid last known good configurations. + + + + The last known good configuration or LKG (a configuration retrieved in the past that we were able to successfully validate a token against). + + + + + The length of time that a last known good configuration is valid for. + + + + + The metadata address to retrieve the configuration from. + + + + + 5 minutes is the minimum value for automatic refresh. can not be set less than this value. + + + + + 1 second is the minimum time interval that must pass for to obtain new configuration. + + + + + The minimum time between retrievals, in the event that a retrieval failed, or that a refresh was explicitly requested. + + + + + Indicates whether the last known good feature should be used, true by default. + + + + + Indicates whether the last known good configuration is still fresh, depends on when the LKG was first used and it's lifetime. + + + + + Indicate that the configuration may be stale (as indicated by failing to process incoming tokens). + + + + + An opaque context used to store work when working with authentication artifacts. + + + + + Instantiates a new with a default activityId. + + + + + Instantiates a new with an activityId. + + + + + A class which contains useful methods for processing collections. + + + + + Checks whether is null or empty. + + The type of the . + The to be checked. + True if is null or empty, false otherwise. + + + + Constants for compression algorithms. + + + + + Compression provider factory for compression and decompression. + + + + + Static constructor that initializes the default . + + + + + Default constructor for . + + + + + Constructor that creates a deep copy of given object. + + to copy from. + + + + Returns the default instance. + + + + + Extensibility point for custom compression support application wide. + + + + + Answers if an algorithm is supported. + + the name of the crypto algorithm. + true if the algorithm is supported, false otherwise. + + + + Returns a for a specific algorithm. + + the decompression algorithm. + a . + + + + Defines the options which can be used to configure the internal LKG configuration cache. + See for more details. + + + + + 10 is the default size limit of the cache (in number of items) for last known good configuration. + + + + + Gets or sets the BaseConfgiurationComparer that to compare . + + + + + The size limit of the cache (in number of items) for last known good configuration. + + + + + The event queue task creation option, default to None instead of LongRunning as LongRunning will always start a task on a new thread instead of a thread from ThreadPool. + + + + + Whether or not to remove expired items. + + + + + Definition of cache for crypto providers + + + + + Returns the cache key to use when looking up an entry into the cache for a + + the to create the key for. + the cache key to use for finding a . + + + + Returns the 'key' that will be used to find a crypto provider in this cache. + + the key that is used to by the crypto provider. + the algorithm that is used by the crypto provider. + the typeof the crypto provider obtained by calling object.GetType(). + the cache key to use for finding a crypto provider. + + + + Trys to adds a to this cache. + + to cache. + true if the was added, false if the cache already contained the + + + + Trys to find a in this cache. + + the key that is used to by the crypto provider. + the algorithm that is used by the crypto provider. + the typeof the crypto provider obtained by calling object.GetType(). + a bool to indicate if the will be used to sign. + the if found. + true if a was found, false otherwise. + + + + Trys to remove a from this cache. + + to remove. + true if the was removed, false if the was not found. + + + + Specifies the CryptoProviderCacheOptions which can be used to configure the internal cryptoprovider cache. + We are using our own simple LRU caching implementation across all targets. + See for more details. + + + + + Default value for . + + + + + Gets or sets the size of the cache (in number of items). + 20% of the cache will be evicted whenever the cache gets to 95% of this size. + Items will be evicted from least recently used to most recently used. + + + + + Creates cryptographic operators by specifying a 's and algorithms. + + + + + Returns the default instance. + + + + + Gets or sets the default value for caching of 's. + + + + + Gets or sets the maximum size of the object pool used by the SignatureProvider that are used for crypto objects. + + + + + Static constructor that initializes the default . + + + + + Default constructor for . + + + + + Initializes an instance of a . + + + The cache to use for caching CryptoProviders + + + + + Constructor that creates a deep copy of given object. + + to copy from. + + + + Gets the + + + + + Extensibility point for creating custom cryptographic operators. + + By default, if set, will be called before creating cryptographic operators. + If true is returned, then will be called. The will throw if the + Cryptographic operator returned is not of the correct type. + + + + Gets or sets a bool controlling if should be cached. + + + + + Gets or sets the maximum size of the object pool used by the SignatureProvider that are used for crypto objects. + + + + + Creates an instance of for a specific <SecurityKey, Algorithm>. + + the to use. + the algorithm to use. + thrown if is null. + thrown if is null or empty. + thrown if and algorithm pair are not supported. + thrown if returns a type that is not assignable from . + + If is set and returns true. + is called to obtain the . + + When finished with the call . + + an instance of + + + + Creates an instance of for a specific <SecurityKey, Algorithm>. + + the to use. + the algorithm to use. + thrown if is null. + thrown if is null or empty. + thrown if and algorithm pair are not supported. + thrown if returns a type not assignable from . + + If is set and returns true. + is called to obtain the . + + When finished with the call . + + an instance of + + + + Creates an instance of for a specific <SecurityKey, Algorithm>. + + the to use. + the algorithm to use. + thrown if is null. + thrown if is null or empty. + thrown if and algorithm pair are not supported. + thrown if returns a type that is not assignable from . + + If is set and returns true. + is called to obtain the . + + When finished with the call . + + an instance of + + + + Creates a that creates a signature with the algorithm and . + + the to use for signing. + the algorithm to use for signing. + thrown if is null. + thrown if is null or empty. + thrown if is too small. + thrown if is not assignable from or . + thrown if the key / algorithm is not supported. + thrown if returns a type that is not assignable from . + + AsymmetricSignatureProviders require access to a PrivateKey for Signing. + When finished with the call . + If is set and returns true. + is called to obtain the . + + + A that can be used to create a signature using the and algorithm. + + + + Creates a that creates a signature with the algorithm and . + + the to use for signing. + the algorithm to use for signing. + indicates if the should be cached for reuse. + thrown if is null. + thrown if is null or empty. + thrown if is too small. + thrown if is not assignable from or . + thrown if the key / algorithm is not supported. + thrown if returns a type that is not assignable from . + + AsymmetricSignatureProviders require access to a PrivateKey for Signing. + When finished with the call . + If is set and returns true. + is called to obtain the . + + + A that can be used to create a signature using the and algorithm. + + + + Creates a that supports the and algorithm. + + The to use for signature verification. + The algorithm to use for verifying. + thrown if is null. + thrown if is null or empty. + thrown if is too small. + thrown if is not assignable from or . + thrown if the key / algorithm is not supported. + thrown if returns a type that is not assignable from . + When finished with the call . + If is set and returns true. + is called to obtain the . + + + A that can be used to validate a signature using the and algorithm. + + + + Creates a that supports the and algorithm. + + The to use for signature verification. + The algorithm to use for verifying. + should the be cached. + thrown if is null. + thrown if is null or empty. + thrown if is too small. + thrown if is not assignable from or . + thrown if the key / algorithm is not supported. + thrown if returns a type that is not assignable from . + When finished with the call . + If is set and returns true. + is called to obtain the . + + + A that can be used to validate a signature using the and algorithm. + + + + Creates a for a specific algorithm. + + the name of the hash algorithm to create. + thrown if is null or empty. + thrown if returns a type that is not assignable from . + thrown if is not supported. + When finished with the call . + If is set and returns true. + is called to obtain the . + + + A . + + + + Creates a for a specific algorithm. + + the name of the hash algorithm to create. + thrown if is null or empty. + thrown if returns a type that is not assignable from . + thrown if is not supported. + When finished with the call . + If is set and returns true. + is called to obtain the . + + + A . + + + + Returns a for a specific algorithm. + + bytes to use to create the Keyed Hash. + the name of the keyed hash algorithm to create. + thrown if is null. + thrown if is null or empty. + thrown if returns a type that is not assignable from . + is not supported. + When finished with the call . + If is set and returns true. + is called to obtain the . + + + A . + + + + For some security key types, in some runtimes, it's not possible to extract public key material and create an . + In these cases, will be an empty string, and these keys should not be cached. + + to be examined. + True if should be cached, false otherwise. + + + + Checks if an algorithm is supported. + + the name of the Hash algorithm. + Only considers known Hash algorithms. + true if: + + If is set and returns true. + + The algorithm is supported. + + + + + + Checks if the algorithm and is supported. + + the security algorithm to apply. + the . + Algorithms are supported for specific key types. + For example: + and will return true. + and will return false. + + true if: + + If is set and returns true. + + The algorithm / key pair is supported. + + + + + + When finished with a call this method for cleanup. The default behavior is to call + + to be released. + thrown if is null. + + + + When finished with a call this method for cleanup."/> + + to be released. + thrown if is null. + + + + When finished with a call this method for cleanup."/> + + to be released. + thrown if is null. + + + + When finished with a call this method for cleanup. The default behavior is to call + + to be released. + thrown if is null. + + + + Helper class for adding DateTimes and Timespans. + + + + + Add a DateTime and a TimeSpan. + The maximum time is DateTime.MaxTime. It is not an error if time + timespan > MaxTime. + Just return MaxTime. + + Initial value. + to add. + as the sum of time and timespan. + + + + Gets the Maximum value for a DateTime specifying kind. + + DateTimeKind to use. + DateTime of specified kind. + + + + Gets the Minimum value for a DateTime specifying kind. + + DateTimeKind to use. + DateTime of specified kind. + + + + Ensures that DataTime is UTC. + + to convert. + + + + + Ensures that DateTime is UTC. + + to convert. + + + + + A compression provider that supports compression and decompression using the algorithm. + + + + + Initializes a new instance of the class used to compress and decompress used the algorithm. + + + + + Initializes a new instance of the class used to compress and decompress used the algorithm. + The compression level to use when compressing. + + + + + Gets the compression algorithm. + + + + + Specifies whether compression should emphasize speed or compression size. + Set to by default. + + + + + Decompress the value using DEFLATE algorithm. + + the bytes to decompress. + the decompressed bytes. + + + + Compress the value using the DEFLATE algorithm. + + the bytes to compress. + the compressed bytes. + + + + Answers if a compression algorithm is supported. + + the name of the compression algorithm. + true if the compression algorithm is supported, false otherwise. + + + + This adapter abstracts the differences between versions of .Net targets. + + + + + Initializes a new instance of the class. + + + creation is not supported by some platforms. + For more details, see https://aka.ms/IdentityModel/create-ecdsa. + + + + + Creates an ECDsa object using the and . + + + + + Returns the size of key in bytes + + Represents ecdsa curve -P256, P384, P521 + Size of the key in bytes + + + + Magic numbers identifying ECDSA blob types + + + + + Returns the magic value representing the curve corresponding to the curve id. + + Represents ecdsa curve -P256, P384, P512 + Whether the provider will create signatures or not + Uint representing the magic number + + + + Tests if user's runtime platform supports operations using . + + True if operations using are supported on user's runtime platform, false otherwise. + + + + Creates an ECDsa object using the and . + 'ECParameters' structure is available in .NET Framework 4.7+, .NET Standard 1.6+, and .NET Core 1.0+. + + + + + Returns the elliptic curve corresponding to the curve id. + + Represents ecdsa curve -P256, P384, P512 + + + + Tests if user application's runtime supports structure. + + True if structure is supported, false otherwise. + + + + Throws during runtime if user application's runtime doesn't support structure. + + + + + Represents a ECDsa security key. + + + + + Returns a new instance of . + + + + + + instance used to initialize the key. + + + + + Gets a bool indicating if a private key exists. + + true if it has a private key; otherwise, false. + + + + Gets an enum indicating if a private key exists. + + 'Exists' if private key exists for sure; 'DoesNotExist' if private key doesn't exist for sure; 'Unknown' if we cannot determine. + + + + Gets key size. + + + + + Determines whether the can compute a JWK thumbprint. + + true if JWK thumbprint can be computed; otherwise, false. + https://datatracker.ietf.org/doc/html/rfc7638 + + + + Computes a sha256 hash over the . + + A JWK thumbprint. + https://datatracker.ietf.org/doc/html/rfc7638 + + + + Collection of text encoding related helper methods. + + + + + Obtains bytes from a string using the Encoding and then performs an action. + + String to process. + Encoding used to obtain bytes. + Operation to invoke with result which is byte array and length of useful data in array with offset as 0. + Return type of operation. + Instance of {T}. + + The encoding operation uses shared memory pool to avoid allocations. + The length of the rented array of bytes may be larger than the decoded bytes, therefore the action needs to know the actual length to use. + is passed to the action. + + + + + Obtains bytes from a string using the Encoding and then performs an action. + + String to process. + Index to start from in . + Length of characters to operate in from . + Encoding used to obtain bytes. + Operation to invoke with result which is byte array and length of useful data in array with offset as 0. + Return type of operation. + Instance of {T}. + + The encoding operation uses shared memory pool to avoid allocations. + The length of the rented array of bytes may be larger than the decoded bytes, therefore the action needs to know the actual length to use. + is passed to the action. + + + + + Obtains bytes from a string using the Encoding and then performs an action. + + String to process. + Index to start from in . + Length of characters to operate in from . + Encoding used to obtain bytes. + Input parameter 1 to action. + Input parameter 2 to action. + Input parameter 3 to action. + Action to perform with bytes. + Return type of operation. + Type of Input parameter 1 to action. + Type of Input parameter 2 to action. + Type of Input parameter 3 to action. + Instance of {T}. + + The encoding operation uses shared memory pool to avoid allocations. + The length of the rented array of bytes may be larger than the decoded bytes, therefore the action needs to know the actual length to use. + is passed to the action. + + + + + Encodes the string using given Encoding, and invokes the operation with the result. + + Return type of operation. + Input parameter to operation. + String to process. + Encoding used to obtain bytes. + Additional operation parameter. + Operation to invoke with result which is byte array and length of useful data in array with offset as 0. + Result of operation. + + The encoding operation uses shared memory pool to avoid allocations. + The length of the rented array of bytes may be larger than the decoded bytes, therefore the action needs to know the actual length to use. + is passed to the action. + + + + + Obtains bytes from a string using the Encoding and then performs an action. + + String to process. + Index to start from in . + Length of characters to operate in from . + Encoding used to obtain bytes. + Additional operation parameter. + Operation to invoke with result which is byte array and length of useful data in array with offset as 0. + Return type of operation. + Input parameter to operation. + Instance of {T}. + + The encoding operation uses shared memory pool to avoid allocations. + The length of the rented array of bytes may be larger than the decoded bytes, therefore the action needs to know the actual length to use. + is passed to the action. + + + + + A class for properties that are used for token encryption. + + + + + Initializes a new instance of the class. + + . + A key wrap algorithm to use when encrypting a session key. + Data encryption algorithm to apply. + if 'certificate' is null. + if 'alg' is null or empty. + if 'enc' is null or empty. + + + + Initializes a new instance of the class. + + to use when encrypting a session key. + A key wrap algorithm to use when encrypting a session key. + Data encryption algorithm to apply. + if 'key' is null. + if 'alg' is null or empty. + if 'enc' is null or empty. + + + + Initializes a new instance of the class. + + Used in scenarios when a key represents a 'shared' symmetric key. + For example, SAML 2.0 Assertion will be encrypted using a provided symmetric key + which won't be serialized to a SAML token. + + to apply. + Data encryption algorithm to apply. + If the is not a . + if 'enc' is null or empty. + + + + Gets the key wrap algorithm used for session key encryption. + + + + + Gets the data encryption algorithm. + + + + + Public key used in Key Agreement Algorithms + + + + + Users can override the default with this property. This factory will be used for creating encryption providers. + + + + + Gets or sets a bool that controls if the encrypted token creation will set default 'cty' if not specified. + + Applies to only JWT tokens. + + + + + + Gets the used for encryption. + + + + + Provides authenticated encryption and decryption services. + + + + + Initializes a new instance of the class used for encryption and decryption. + + The that will be used for crypto operations. + The encryption algorithm to apply. + 'key' is null. + 'algorithm' is null or whitespace. + key size is not large enough. + 'algorithm' is not supported. + a symmetricSignatureProvider is not created. + + + + Gets the encryption algorithm that is being used. + + + + + Gets or sets a user context for a . + + This is null by default. This can be used by applications for extensibility scenarios. + + + + Gets the that is being used. + + + + + Encrypts the 'plaintext' + + the data to be encrypted. + will be combined with iv and ciphertext to create an authenticationtag. + containing ciphertext, iv, authenticationtag. + plaintext is null or empty. + authenticationData is null or empty. + AES crypto operation threw. See inner exception for details. + + + + Encrypts the 'plaintext' + + the data to be encrypted. + will be combined with iv and ciphertext to create an authenticationtag. + initialization vector for encryption. + containing ciphertext, iv, authenticationtag. + is null or empty. + is null or empty. + Thrown if the AES crypto operation threw. See inner exception for details. + Thrown if the internal is disposed. + + + + Decrypts ciphertext into plaintext + + the encrypted text to decrypt. + the authenticateData that is used in verification. + the initialization vector used when creating the ciphertext. + the authenticationTag that was created during the encyption. + decrypted ciphertext + is null or empty. + is null or empty. + is null or empty. + is null or empty. + Thrown if the signature over the authenticationTag fails to verify. + Thrown if the AES crypto operation threw. See inner exception. + Thrown if the internal is disposed. + + + + Calls and + + + + + Releases managed resources. + + true, if called from Dispose(), false, if invoked inside a finalizer. + + + + Checks if an 'key, algorithm' pair is supported + + the + the algorithm to check. + true if 'key, algorithm' pair is supported. + + + + The algorithm parameter logically defines a HMAC algorithm. + This method returns the HMAC to use. + + + + + + + Called to obtain the byte[] needed to create a + + that will be used to obtain the byte[]. + [] that is used to populated the KeyedHashAlgorithm. + if is null. + if a byte[] can not be obtained from SecurityKey. + and are supported. + For a .Key is returned + For a Base64UrlEncoder.DecodeBytes is called with if == JsonWebAlgorithmsKeyTypes.Octet + + + + + Checks that the key has sufficient length + + that contains bytes. + the algorithm to apply. + if is null. + if is null or empty. + if is not a supported algorithm. + + + + Contains the results of operation. + + + + + Initializes a new + + the used during + protected text. + the initialization vector used. + the bytes that need be passed to . + + + + Gets the . + + + + + Gets the Ciphertext. + + + + + Gets the initialization vector. + + + + + Gets the authentication tag + + + + + Provides a Security Key that can be used as Content Encryption Key (CEK) for use with a JWE + + + + + Number of bits in the desired output key + + + + + Initializes a new instance of used for CEKs + The that will be used for cryptographic operations and represents the private key. + The that will be used for cryptographic operations and represents the public key. + alg header parameter value. + enc header parameter value. + + + + + Generates the KDF + + Agreement PartyUInfo (optional). When used, the PartyVInfo value contains information about the producer, + represented as a base64url-encoded string. + Agreement PartyVInfo (optional). When used, the PartyUInfo value contains information about the recipient, + represented as a base64url-encoded string. + Returns that represents the key generated + + + + Provides Wrap key and Unwrap key services. + + + + + Gets the KeyWrap algorithm that is being used. + + + + + Gets or sets a user context for a . + + This is null by default. This can be used by runtimes or for extensibility scenarios. + + + + Gets the that is being used. + + + + + Calls and + + + + + Can be over written in descendants to dispose of internal components. + + true, if called from Dispose(), false, if invoked inside a finalizer + + + + Unwrap a key. + + key to unwrap. + Unwrapped key. + + + + Wrap a key. + + the key to be wrapped + wrapped key. + + + + Provides RSA Wrap key and Unwrap key services. + + + + + Initializes a new instance of used for wrapping and un-wrappping keys. + These keys are usually symmetric session keys that are wrapped using the recipients public key. + The that will be used for cryptographic operations. + The KeyWrap algorithm to apply. + Whether this is required to un-wrap keys. If true, the private key is required. + 'key' is null. + 'algorithm' is null. + The key size doesn't match the algorithm. + If and algorithm pair are not supported. + Failed to create RSA algorithm with provided key and algorithm. + + + + + Gets the KeyWrap algorithm that is being used. + + + + + Gets or sets a user context for a . + + This is null by default. This is for use by the application and not used by this SDK. + + + + Gets the that is being used. + + + + + Disposes of internal components. + + true, if called from Dispose(), false, if invoked inside a finalizer. + + + + Checks if an algorithm is supported. + + The that will be used for crypto operations. + The KeyWrap algorithm to apply. + true if the algorithm is supported; otherwise, false. + + + + Unwrap a key using RSA decryption. + + the bytes to unwrap. + Unwrapped key + 'keyBytes' is null or length == 0. + If has been called. + Failed to unwrap the wrappedKey. + If the internal RSA algorithm is null. + + + + Wrap a key using RSA encryption. + + the key to be wrapped + A wrapped key + 'keyBytes' is null or has length == 0. + If has been called. + Failed to wrap the 'keyBytes'. + If the internal RSA algorithm is null. + + + + Provides Wrap key and Unwrap key services. + + + + + Initializes a new instance of the class used for wrap key and unwrap key. + The that will be used for crypto operations. + The KeyWrap algorithm to apply. + 'key' is null. + 'algorithm' is null. + If and algorithm pair are not supported. + The cannot be converted to byte array + The keysize doesn't match the algorithm. + Failed to create symmetric algorithm with provided key and algorithm. + + + + + Gets the KeyWrap algorithm that is being used. + + + + + Gets or sets a user context for a . + + This is null by default. This can be used by runtimes or for extensibility scenarios. + + + + Gets the that is being used. + + + + + Disposes of internal components. + + true, if called from Dispose(), false, if invoked inside a finalizer. + + + + Returns the . + + + The cannot be converted to byte array + The keysize doesn't match the algorithm. + Failed to create symmetric algorithm with provided key and algorithm. + + + + Answers if an algorithm is supported + + the + the algorithm to use + true if the algorithm is supported; otherwise, false. + + + + Unwrap a key using Symmetric decryption. + + bytes to unwrap + Unwraped key + 'keyBytes' is null or length == 0. + 'keyBytes' is not a multiple of 8. + If has been called. + Failed to unwrap the wrappedKey. + + + + Wrap a key using Symmetric encryption. + + the key to be wrapped + The wrapped key result + 'keyBytes' is null or has length 0. + 'keyBytes' is not a multiple of 8. + If has been called. + Failed to wrap 'keyBytes'. + + + + Returns the absolute DateTime or the Seconds since Unix Epoch, where Epoch is UTC 1970-01-01T0:0:0Z. + + + + + DateTime as UTV for UnixEpoch + + + + + Per JWT spec: + Gets the number of seconds from 1970-01-01T0:0:0Z as measured in UTC until the desired date/time. + + The DateTime to convert to seconds. + if dateTimeUtc less than UnixEpoch, return 0 + the number of seconds since Unix Epoch. + + + + Creates a DateTime from epoch time. + + Number of seconds. + The DateTime in UTC. + + + + This is an LRU cache implementation that relies on an event queue rather than locking to achieve thread safety. + This approach has been decided on in order to optimize the performance of the get and set operations on the cache. + This cache contains a doubly linked list in order to maintain LRU order, as well as a dictionary (map) to keep track of + keys and expiration times. The linked list (a structure which is not thread-safe) is NEVER modified directly inside + an API call (e.g. get, set, remove); it is only ever modified sequentially by a background thread. On the other hand, + the map is a which may be modified directly inside an API call or + through eventual processing of the event queue. This implementation relies on the principle of 'eventual consistency': + though the map and it's corresponding linked list may be out of sync at any given point in time, they will eventually line up. + See here for more details: + https://aka.ms/identitymodel/caching + + The key type to be used by the cache. + The value type to be used by the cache + + + + Constructor. + + The capacity of the cache, used to determine if experiencing overflow. + The event queue task creation option, default to None instead of LongRunning as LongRunning will always start a task on a new thread instead of ThreadPool. + The equality comparison implementation to be used by the map when comparing keys. + Whether or not to remove expired items. + The period to wait to remove expired items, in seconds. + Whether or not to maintain items in a LRU fashion, moving to front of list when accessed in the cache. + + + + Occurs when the application is ready to exit. + + The sender of the event. + The event argument. + + + + Occurs when an AppDomain is about to be unloaded. + + The sender of the event. + The event argument. + + + + Stop the event queue task. + This is provided mainly for users who have unit tests that check for running task(s) to stop the task at the end of each test. + + + + + Stop the event queue task immediately if it is running. This allows the task/thread to terminate gracefully. + Currently there is no unmanaged resource, if any is added in the future it should be disposed of in this method. + + + + + This is the delegate for the event queue task. + + + + + Remove all expired cache items from _doubleLinkedList and _map. + + Number of items removed. + + + + Remove all expired cache items from the _map ONLY. This is called for the non-LRU (_maintainLRU = false) scenaro. + The enumerator returned from the dictionary is safe to use concurrently with reads and writes to the dictionary, according to the MS document. + + Number of items removed. + + + + Remove items from the LinkedList by the desired compaction percentage. + This should be a private method. + + + + + Remove items from the Dictionary by the desired compaction percentage. + Since _map does not have LRU order, items are simply removed from using FirstOrDefault(). + + + + + When the cache is at _maxCapacityPercentage, it needs to be compacted by _compactionPercentage. + This method calculates the new size of the cache after being compacted. + + The new target cache size after compaction. + + + + This is the method that determines the end time for the event queue task. + The goal is to be able to track the incoming events and predict how long the task should run in order to + avoid a long running task and reduce the overhead costs of restarting tasks. + For example, maybe we can track the last three events' time and set the _eventQueueRunDurationInSeconds = 2 * average_time_between_events. + Note: tasks are based on thread pool so the overhead should not be huge but we should still try to minimize it. + + the time when the event queue task should end + + + + This method is called after an item is added to the event queue. It will start the event queue task if one is not already running (_eventQueueTaskState != EventQueueTaskRunning). + Using CompareExchange to set the _eventQueueTaskState prevents multiple tasks from being started. + + + + Each time a node gets accessed, it gets moved to the beginning (head) of the list if the _maintainLRU == true + + + Removes a particular key from the cache. + + + + FOR TESTING ONLY. + + + + + + FOR TESTING ONLY. + + + + + FOR TESTING ONLY. + + + + + FOR TESTING ONLY. + + + + + + FOR TESTING ONLY. + + + + + FOR TESTING PURPOSES ONLY. + This is for tests to verify all tasks exit at the end of tests if the queue is empty. + + + + + FOR TESTING PURPOSES ONLY. + + + + + Throw this exception when a received has invalid arguments. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class with a specified error message + and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The that is the cause of the current exception, or a null reference if no inner exception is specified. + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + Thrown when JWE compression fails. + + + + + Initializes a new instance of + + + + + Initializes a new instance of + + + + + Initializes a new instance of + + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + Thrown when JWE decompression fails. + + + + + Initializes a new instance of + + + + + Initializes a new instance of + + + + + Initializes a new instance of + + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + Represents a security token exception when decryption failed. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class with a specified error message + and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The that is the cause of the current exception, or a null reference if no inner exception is specified. + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + Represents a security token exception when encryption failed. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class with a specified error message + and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The that is the cause of the current exception, or a null reference if no inner exception is specified. + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + This exception is thrown when a security token contained a key identifier but the key was not found by the runtime + when decrypting a token. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + A that represents the root cause of the exception. + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + Represents a security token exception. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class with a specified error message + and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The that is the cause of the current exception, or a null reference if no inner exception is specified. + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + When overridden in a derived class, sets the System.Runtime.Serialization.SerializationInfo + with information about the exception. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + thrown if is null. + + + + Throw this exception when a received Security Token has expiration time in the past. + + + + + Gets or sets the Expires value that created the validation exception. This value is always in UTC. + + + + + Initializes a new instance of + + + + + Initializes a new instance of + + + + + Initializes a new instance of + + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + + + + This exception is thrown when a cryptographic algorithm is invalid. + + + + + Gets or sets the invalid algorithm that created the validation exception. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Additional information to be included in the exception and displayed to user. + + + + Initializes a new instance of the class. + + Additional information to be included in the exception and displayed to user. + A that represents the root cause of the exception. + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + + + + This exception is thrown when 'audience' of a token was not valid. + + + + + Gets or sets the InvalidAudience that created the validation exception. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + A that represents the root cause of the exception. + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + + + + This exception is thrown when 'issuer' of a token was not valid. + + + + + Gets or sets the InvalidIssuer that created the validation exception. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + A that represents the root cause of the exception. + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + + + + This exception is thrown when 'lifetime' of a token was not valid. + + + + + Gets or sets the NotBefore value that created the validation exception. This value is always in UTC. + + + + + Gets or sets the Expires value that created the validation exception. This value is always in UTC. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + A that represents the root cause of the exception. + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + + + + This exception is thrown when 'signature' of a token was not valid. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + A that represents the root cause of the exception. + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + Throw this exception when a received Security Token has an invalid issuer signing key. + + + + + Gets or sets the SigningKey that was found invalid. + + + + + Initializes a new instance of + + + + + Initializes a new instance of + + + + + Initializes a new instance of + + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + This exception is thrown when the token type ('typ' header claim) of a JWT token is invalid. + + + + + Gets or sets the invalid type that created the validation exception. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Additional information to be included in the exception and displayed to user. + + + + Initializes a new instance of the class. + + Additional information to be included in the exception and displayed to user. + A that represents the root cause of the exception. + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + + + + Represents a key wrap exception when encryption failed. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class with a specified error message + and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The that is the cause of the current exception, or a null reference if no inner exception is specified. + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + Represents a exception when the token is malformed. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class with a specified error message + and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The that is the cause of the current exception, or a null reference if no inner exception is specified. + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + This exception is thrown when a security is missing an ExpirationTime. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + A that represents the root cause of the exception. + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + Throw this exception when a received Security token has an effective time + in the future. + + + + + Gets or sets the NotBefore value that created the validation exception. This value is always in UTC. + + + + + Initializes a new instance of + + + + + Initializes a new instance of + + + + + Initializes a new instance of + + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + + + + This exception is thrown when an add to the TokenReplayCache fails. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + A that represents the root cause of the exception. + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + Throw this exception when a received Security Token has been replayed. + + + + + Initializes a new instance of + + + + + Initializes a new instance of + + + + + Initializes a new instance of + + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + This exception is thrown when a security token contained a key identifier but the key was not found by the runtime. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + A that represents the root cause of the exception. + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + This exception is thrown when a security token contained a key identifier but the key was not found by the runtime + and when validation errors exist over the security token. This exception is not intended to be used as a signal + to refresh keys. + + + This exception type is now considered obsolete and will be removed in the next major version (7.0.0). + + + + + Indicates the type of the validation failure. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The validation failures. + Addtional information to be included in the exception and displayed to user. + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + A that represents the root cause of the exception. + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + + + + Represents a security token validation exception. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class with a specified error message + and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The that is the cause of the current exception, or a null reference if no inner exception is specified. + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + The reason for being unable to validate + + + + + Indicates no validation failures + + + + + Indicates that the lifetime was invalid + + + + + Indicates that the issuer was invalid + + + + + Compression provider interface. + + + + + Gets the compression algorithm. + + + + + Called to determine if an algorithm is supported. + + the algorithm that defines the compression method. + true if supported + + + + Decompress. + + the value to decompress. + + + + Compress. + + the value to decompress. + + + + Provides extensibility for cryptographic operators. + If custom operators are needed for then can be set to + return these operators. will be before each creation. + + + + + Called to determine if a cryptographic operation is supported. + + the algorithm that defines the cryptographic operator. + the arguments required by the cryptographic operator. May be null. + true if supported + + + + returns a cryptographic operator that supports the algorithm. + + the algorithm that defines the cryptographic operator. + the arguments required by the cryptographic operator. May be null. + call when finished with the object. + + + + called to release the object returned from + + the object returned from . + + + + Defines a cache for crypto providers. + Current support is limited to only. + + + + + Creates a new instance of using the default . + + + + + Creates a new instance of using the specified . + + The options used to configure the . + + + + Creates a new instance of using the specified . + + The options used to configure the . + Options used to create the event queue thread. + The time used in ms for the timeout interval of the event queue. Defaults to 500 ms. + + + + Returns the cache key to use when looking up an entry into the cache for a + + the to create the key for. + if signatureProvider is null. + the cache key to use for finding a . + + + + Returns the 'key' that will be used to find a crypto provider in this cache. + + the key that is used to by the crypto provider. + the algorithm that is used by the crypto provider. + the typeof the crypto provider obtained by calling object.GetType(). + if securityKey is null. + if algorithm is null or empty string. + if typeofProvider is null or empty string. + the cache key to use for finding a crypto provider. + + + + Trys to adds a to this cache. + + to cache. + if signatureProvider is null. + + true if the was added, false if the cache already contained the or if should not be cached. + + if the is added will be set to 'this'. + + + + Trys to find a to this cache. + + the key that is used to by the crypto provider. + the algorithm that is used by the crypto provider. + the typeof the crypto provider obtained by calling object.GetType(). + a bool to indicate if the will be used to sign. + the if found. + if securityKey is null. + if algorithm is null or empty string. + if typeofProvider is null or empty string. + true if a was found, false otherwise. + + + + Trys to remove a from this cache. + + to remove. + if signatureProvider is null. + true if the was removed, false if the was not found. + if the is removed will be set to null. + + + + Calls and + Note: the EventBasedLRUCache is no longer being disposed of, but since this is a public class and can be used as base class of + custom cache implementations, we need to keep it as some implementations may override Dispose(). + + + + + If is true, this method disposes of and . + + True if called from the method, false otherwise. + + + + FOR TESTING ONLY. + + + + + FOR TESTING ONLY. + + + + + FOR TESTING ONLY. + + + + + FOR TESTING ONLY. + + + + + FOR TESTING ONLY. + + + + + FOR TESTING ONLY. + + + + + FOR TESTING PURPOSES ONLY. + + + + + Validators meant to be kept internal + + + + + Called after signature validation has failed to avoid a metadata refresh + + + + + ISecurityTokenValidator + + + + + Returns true if the token can be read, false otherwise. + + + + + Returns true if a token can be validated. + + + + + Gets and sets the maximum size in bytes, that a will be processed. + + + + + Validates a token passed as a string using + + + + + Interface that defines a simple cache for tacking replaying of security tokens. + + + + + Try to add a securityToken. + + the security token to add. + the time when security token expires. + true if the security token was successfully added. + + + + Try to find securityToken + + the security token to find. + true if the security token is found. + + + + Constants for JsonWebAlgorithms "kty" Key Type (sec 6.1) + https://datatracker.ietf.org/doc/html/rfc7518#section-6.1 + + + + + Represents a JSON Web Key as defined in https://datatracker.ietf.org/doc/html/rfc7517. + + + + + Initializes an new instance of . + + + + + Returns a new instance of . + + A string that contains JSON Web Key parameters in JSON format. + + If 'json' is null or empty. + If 'json' fails to deserialize. + + + + Initializes an new instance of from a json string. + + A string that contains JSON Web Key parameters in JSON format. + If 'json' is null or empty. + If 'json' fails to deserialize. + + + + If this was converted to or from a SecurityKey, this field will be set. + + + + + If this was failed converted to a SecurityKey, this field will be set. + + + + + When deserializing from JSON any properties that are not defined will be placed here. + + + + + Gets or sets the 'alg' (KeyType). + + + + + Gets or sets the 'crv' (ECC - Curve). + + + + + Gets or sets the 'd' (ECC - Private Key OR RSA - Private Exponent). + + Value is formated as: Base64urlUInt + + + + Gets or sets the 'dp' (RSA - First Factor CRT Exponent). + + Value is formated as: Base64urlUInt + + + + Gets or sets the 'dq' (RSA - Second Factor CRT Exponent). + + Value is formated as: Base64urlUInt + + + + Gets or sets the 'e' (RSA - Exponent). + + + + + Gets or sets the 'k' (Symmetric - Key Value). + + Base64urlEncoding + + + + Gets the key id of this . + + + + + Gets the 'key_ops' (Key Operations). + + + + + Gets or sets the 'kid' (Key ID).. + + + + + Gets or sets the 'kty' (Key Type). + + + + + Gets or sets the 'n' (RSA - Modulus). + + Value is formatted as: Base64urlEncoding + + + + Gets or sets the 'oth' (RSA - Other Primes Info). + + + + + Gets or sets the 'p' (RSA - First Prime Factor).. + + Value is formatted as: Base64urlUInt + + + + Gets or sets the 'q' (RSA - Second Prime Factor).. + + Value is formatted as: Base64urlUInt + + + + Gets or sets the 'qi' (RSA - First CRT Coefficient).. + + Value is formatted as: Base64urlUInt + + + + Gets or sets the 'use' (Public Key Use).. + + + + + Gets or sets the 'x' (ECC - X Coordinate).. + + Value is formatted as: Base64urlEncoding + + + + Gets the 'x5c' collection (X.509 Certificate Chain).. + + + + + Gets or sets the 'x5t' (X.509 Certificate SHA-1 thumbprint).. + + + + + Gets or sets the 'x5t#S256' (X.509 Certificate SHA-256 thumbprint).. + + + + + Gets or sets the 'x5u' (X.509 URL).. + + + + + Gets or sets the 'y' (ECC - Y Coordinate).. + + Value is formatted as: Base64urlEncoding + + + + Gets the key size of . + + + + + Gets a bool indicating if a private key exists. + + true if it has a private key; otherwise, false. + + + + Determines whether the can compute a JWK thumbprint. + + true if JWK thumbprint can be computed; otherwise, false. + https://datatracker.ietf.org/doc/html/rfc7638 + + + + Computes the JWK thumprint per spec: https://datatracker.ietf.org/doc/html/rfc7638 />. + + A the JWK thumbprint. + + + + Creates a JsonWebKey representation of an asymmetric public key. + + JsonWebKey representation of an asymmetric public key. + https://datatracker.ietf.org/doc/html/rfc7800#section-3.2 + + + + Returns the formatted string: GetType(), Use: 'value', Kid: 'value', Kty: 'value', InternalId: 'value'. + + string + + + + Converts a into a + Supports: converting to a from one of: , , and . + + + + + Converts a into a + + a to convert. + a + if is null. + if is not a supported type. + Supports: , and . + + + + Converts a into a + + a to convert. + a + if is null. + + + + Converts a into a + + a to convert. + a + if is null. + + + + Converts a into a . + + a to convert. + + true to represent the as an , + false to represent the as an , using the "x5c" parameter. + + a . + if is null. + + + + Converts a into a + + a to convert. + a + if is null. + + + + Converts a into a + + an to convert. + a + if is null. + + + + Constants for JsonWebKey Elliptical Curve Types + https://datatracker.ietf.org/doc/html/rfc7518#section-6.2.1.1 + + + + + JsonWebKey parameter names + see: https://datatracker.ietf.org/doc/html/rfc7517 + + + + + JsonWebKey parameter names as UTF8 bytes + Used by UTF8JsonReader/Writer for performance gains. + + + + + Contains a collection of that can be populated from a json string. + + provides support for https://datatracker.ietf.org/doc/html/rfc7517. + + + + Returns a new instance of . + + a string that contains JSON Web Key parameters in JSON format. + + If 'json' is null or empty. + If 'json' fails to deserialize. + + + + Initializes an new instance of . + + + + + Initializes an new instance of from a json string. + + a json string containing values. + If 'json' is null or empty. + If 'json' fails to deserialize. + + + + When deserializing from JSON any properties that are not defined will be placed here. + + + + + Gets the . + + + + + Default value for the flag that controls whether unresolved JsonWebKeys will be included in the resulting collection of method. + + + + + Flag that controls whether unresolved JsonWebKeys will be included in the resulting collection of method. + + + + + Returns the JsonWebKeys as a . + + + To include unresolved JsonWebKeys in the resulting collection, set to false. + + + + + Names for Json Web Key Set Values + + + + + Constants for JsonWebKeyUse (sec 4.2) + https://datatracker.ietf.org/doc/html/rfc7517#section-4.2 + + + + + Creates a JsonException that provides information on what went wrong + + the . + the type the reader was expecting to find. + the name of the type being read. + the property name being read. + inner exception if any. + + + + + This method is called when deserializing a property value as an object. + Normally we put the object into a Dictionary[string, object]. + + the + the property name that is being read + the type that is being deserialized + if true reader.Read() will be called. + + + + + Writes an 'object' as a JsonProperty. + This was written to support what IdentityModel6x supported and is not meant to be a + general object serializer. + If a user needs to serialize a special value, then serialize the value into a JsonElement. + + + + + Writes values into an array. + Assumes the writer.StartArray() has been called. + + + + + + + Reads a JsonWebKey. see: https://datatracker.ietf.org/doc/html/rfc7517 + + a pointing at a StartObject. + + A . + + + + Reads a JsonWebKey. see: https://datatracker.ietf.org/doc/html/rfc7517 + + a pointing at a StartObject. + + A . + + + + This method will be used when reading OIDC metadata + + + + + + + Log messages and codes + + + + + Generic implementation of object pooling pattern with predefined pool size limit. The main + purpose is that limited number of frequently used objects can be kept in the pool for + further recycling. + + Notes: + 1) it is not the goal to keep all returned objects. Pool is not meant for storage. If there + is no space in the pool, extra returned objects will be dropped. + + 2) it is implied that if object was obtained from a pool, the caller will return it back in + a relatively short time. Keeping checked out objects for long durations is ok, but + reduces usefulness of pooling. Just new up your own. + + Not returning objects to the pool in not detrimental to the pool's work, but is a bad practice. + Rationale: + If there is no intent for reusing the object, do not use pool - just use "new". + + + + + Produces an instance. + + + Search strategy is a simple linear probing which is chosen for it cache-friendliness. + Note that Free will try to store recycled objects close to the start thus statistically + reducing how far we will typically search. + + + + + Returns objects to the pool. + + + Search strategy is a simple linear probing which is chosen for it cache-friendliness. + Note that Free will try to store recycled objects close to the start thus statistically + reducing how far we will typically search in Allocate. + + + + + Returns a string message for the specified Win32 error code. + + + + + Represents a Rsa security key. + + + + + Initializes a new instance of the class. + + + + + + Initializes a new instance of the class. + + + + + + Gets a bool indicating if a private key exists. + + true if it has a private key; otherwise, false. + + + + Gets an enum indicating if a private key exists. + + 'Exists' if private key exists for sure; 'DoesNotExist' if private key doesn't exist for sure; 'Unknown' if we cannot determine. + + + + Gets RSA key size. + + + + + used to initialize the key. + + + + + instance used to initialize the key. + + + + + Determines whether the can compute a JWK thumbprint. + + true if JWK thumbprint can be computed; otherwise, false. + https://datatracker.ietf.org/doc/html/rfc7638 + + + + Computes a sha256 hash over the . + + A JWK thumbprint. + https://datatracker.ietf.org/doc/html/rfc7638 + + + + Constants for Security Algorithm. + + + + + Base class for Security Key. + + + + + Default constructor + + + + + This must be overridden to get the size of this . + + + + + Gets the key id of this . + + + + + Gets or sets . + + + + + Returns the formatted string: GetType(), KeyId: 'value', InternalId: 'value'. + + string + + + + Determines whether the can compute a JWK thumbprint. + + true if JWK thumbprint can be computed; otherwise, false. + https://datatracker.ietf.org/doc/html/rfc7638 + + + + Computes a sha256 hash over the . + + A JWK thumbprint. + https://datatracker.ietf.org/doc/html/rfc7638 + + + + Checks if can perform the cryptographic operation specified by the with this . + + the algorithm to apply. + true if can perform the cryptographic operation sepecified by the with this . + + + + Contains information about the keys inside the tokens. + + + + + Base class for security token. + + + + + + + + This must be overridden to get the Id of this . + + + + + This must be overridden to get the issuer of this . + + + + + This must be overridden to get the . + + + + + This must be overridden to get or set the that signed this instance. + + .ValidateToken(...) can this value when a is used to successfully validate a signature. + + + + This must be overridden to get the time when this was Valid. + + + + + This must be overridden to get the time when this is no longer Valid. + + + + + Contains some information which used to create a security token. + + + + + Gets or sets the value of the 'audience' claim. + + + + + Defines the compression algorithm that will be used to compress the JWT token payload. + + + + + Gets or sets the used to create a encrypted security token. + + + + + Gets or sets the value of the 'expiration' claim. This value should be in UTC. + + + + + Gets or sets the issuer of this . + + + + + Gets or sets the time the security token was issued. This value should be in UTC. + + + + + Gets or sets the notbefore time for the security token. This value should be in UTC. + + + + + Gets or sets the token type. + If provided, this will be added as the value for the 'typ' header parameter. In the case of a JWE, this will be added to both the inner (JWS) and the outer token (JWE) header. By default, the value used is 'JWT'. + If also contains 'typ' header claim value, it will override the TokenType provided here. + This value is used only for JWT tokens and not for SAML/SAML2 tokens + + + + + Gets or sets the which represents the claims that will be used when creating a security token. + If both and are set, the claim values in Subject will be combined with the values + in Claims. The values found in Claims take precedence over those found in Subject, so any duplicate + values will be overridden. + + + + + Gets or sets the which contains any custom header claims that need to be added to the JWT token header. + The 'alg', 'kid', 'x5t', 'enc', and 'zip' claims are added by default based on the , + , and/or provided and SHOULD NOT be included in this dictionary as this + will result in an exception being thrown. + These claims are only added to the outer header (in case of a JWE). + + + + + Gets or sets the which contains any custom header claims that need to be added to the inner JWT token header. + The 'alg', 'kid', 'x5t', 'enc', and 'zip' claims are added by default based on the , + , and/or provided and SHOULD NOT be included in this dictionary as this + will result in an exception being thrown. + + For JsonWebTokenHandler, these claims are merged with while adding to the inner JWT header. + + + + + + Gets or sets the used to create a security token. + + + + + Gets or sets the . + If both and are set, the claim values in Subject will be combined with the values + in Claims. The values found in Claims take precedence over those found in Subject, so any duplicate + values will be overridden. + + + + + Defines the interface for a Security Token Handler. + + + + + Creates an instance of + + + + + Returns . + + + true if attached; otherwise, false. + + + + Returns . + + + + + + Gets a value indicating whether this handler supports validation of tokens + handled by this instance. + v + 'True' if the instance is capable of SecurityToken + validation. + + + + Gets a value indicating whether the class provides serialization functionality to serialize token handled + by this instance. + + true if the WriteToken method can serialize this token. + + + + This must be overridden to get the System.Type of the SecurityToken this instance handles. + + + + + Indicates whether the is positioned at an element that can be read. + + An reader positioned at a start element. The reader should not be advanced. + 'true' if the token can be read. + + + + Indicates whether the current token string can be read as a token + of the type handled by this instance. + + The token string thats needs to be read. + 'True' if the ReadToken method can parse the token string. + + + + Gets security token. + + . + SecurityToken instance which represents the serialized token. + + + + Serializes to string a token of the type handled by this instance. + + A token of type TokenType. + The serialized token. + + + + This must be overridden to serialize to XML a token of the type handled by this instance. + + The XML writer. + A token of type . + + + + This must be overridden to deserialize token with the provided . + + . + the current . + SecurityToken instance which represents the serialized token. + + + + This must be overridden to validate a token passed as a string using + + A token of type . + the current . + The token of type that was validated. + + + + Reads and validates a token using a xmlReader and + + A pointing at the start element of the token. + Contains data and information needed for validation. + The that was validated. + + + + Provides signature services, signing and verifying. + + + + + Maintains the number of external references + see: , , + + + + + Initializes a new instance of the class used to create and verify signatures. + + The that will be used for signature operations. + The signature algorithm to apply. + is null. + is null or empty. + + + + Gets the signature algorithm. + + + + + Gets or sets a user context for a . + + This is null by default. This is for use by the application and not used by this SDK. + + + + Gets or sets the that is associated with this + + + + + Calls and + + + + + Can be over written in descendants to dispose of internal components. + + true, if called from Dispose(), false, if invoked inside a finalizer + + + + Gets the . + + + + + For testing purposes + + + + + This must be overridden to produce a signature over the 'input'. + + bytes to sign. + signed bytes + + + Verifies that the over using the + and specified by this + are consistent. + the bytes that were signed. + signature to compare against. + true if the computed signature matches the signature parameter, false otherwise. + + + + Verifies that a signature created over the 'input' matches the signature. Using and 'algorithm' passed to . + + The bytes to verify. + offset in to input bytes to caculate hash. + number of bytes of signature to use. + signature to compare against. + offset into signature array. + how many bytes to verfiy. + true if computed signature matches the signature parameter, false otherwise. + 'input' is null. + 'signature' is null. + 'input.Length' == 0. + 'signature.Length' == 0. + 'length < 1' + 'offset + length > input.Length' + has been called. + + + + Gets or sets a bool indicating if this is expected to create signatures. + + + + + Defines the , algorithm and digest for digital signatures. + + + + + Initializes a new instance of the class. + + that will be used for signing. + Algorithm will be set to . + the 'digest method' if needed may be implied from the algorithm. For example implies Sha256. + if 'key' is null. + if 'algorithm' is null or empty. + + + + Initializes a new instance of the class. + + that will be used for signing. + The signature algorithm to apply. + the 'digest method' if needed may be implied from the algorithm. For example implies Sha256. + if 'certificate' is null. + if 'algorithm' is null or empty. + + + + Initializes a new instance of the class. + + . + The signature algorithm to apply. + the 'digest method' if needed may be implied from the algorithm. For example implies Sha256. + if 'key' is null. + if 'algorithm' is null or empty. + + + + Initializes a new instance of the class. + + . + The signature algorithm to apply. + The digest algorithm to apply. + if 'key' is null. + if 'algorithm' is null or empty. + if 'digest' is null or empty. + + + + Gets the signature algorithm. + + if 'value' is null or empty. + + + + Gets the digest algorithm. + + + + + Users can override the default with this property. This factory will be used for creating signature providers. + + This will have precedence over + + + + Gets the used for signature creation or validation. + + + + + Gets the key id associated with . + + + + + Defines the default set of algorithms this library supports + + + + + Creating a Signature requires the use of a . + This method returns the + that describes the to use when generating a Signature. + + The SignatureAlgorithm in use. + The to use. + if is null or whitespace. + if is not supported. + + + + Creating a Signature requires the use of a . + This method returns the HashAlgorithm string that is associated with a SignatureAlgorithm. + + The SignatureAlgorithm of interest. + if is null or whitespace. + if is not supported. + + + + Checks if an 'algorithm, key' pair is supported. + + the algorithm to check. + the . + true if 'algorithm, key' pair is supported. + + + + Represents a symmetric security key. + + + + + Returns a new instance of instance. + + The byte array of the key. + + + + Gets the key size. + + + + + Gets the byte array of the key. + + + + + Determines whether the can compute a JWK thumbprint. + + true if JWK thumbprint can be computed; otherwise, false. + https://datatracker.ietf.org/doc/html/rfc7638 + + + + Computes a sha256 hash over the . + + A JWK thumbprint. + https://datatracker.ietf.org/doc/html/rfc7638 + + + + Provides signing and verifying operations using a and specifying an algorithm. + + + + + Mapping from algorithm to the expected signature size in bytes. + + + + + This is the minimum .KeySize when creating and verifying signatures. + + + + + Initializes a new instance of the class that uses an to create and / or verify signatures over a array of bytes. + + The that will be used for signature operations. + The signature algorithm to use. + 'key' is null. + 'algorithm' is null or empty. + If and algorithm pair are not supported. + '.KeySize' is smaller than . + + + + Initializes a new instance of the class that uses an to create and / or verify signatures over a array of bytes. + + The that will be used for signature operations. + The signature algorithm to use. + indicates if this will be used to create signatures. + 'key' is null. + 'algorithm' is null or empty. + If and algorithm pair are not supported. + '.KeySize' is smaller than . + + + + Gets or sets the minimum .KeySize"/>. + + 'value' is smaller than . + + + + Called to obtain the byte[] needed to create a + + that will be used to obtain the byte[]. + [] that is used to populated the KeyedHashAlgorithm. + if key is null. + if a byte[] can not be obtained from SecurityKey. + and are supported. + For a .Key is returned + For a Base64UrlEncoder.DecodeBytes is called with if == JsonWebAlgorithmsKeyTypes.Octet + + + + + Returns a . + This method is called just before a cryptographic operation. + This provides the opportunity to obtain the from an object pool. + If this method is overridden, it is importont to override + if custom releasing of the is desired. + + The hash algorithm to use to create the hash value. + The byte array of the key. + An instance of + + + + For testing purposes + + + + + This method is called just after the cryptographic operation. + If was overridden this method can be overridden for + any custom handling such as returning the to an object pool. + + The " in use. + + + + Produces a signature over the 'input' using the and 'algorithm' passed to . + + The bytes to sign. + Signed bytes + 'input' is null. + 'input.Length' == 0. + has been called. + is null. This can occur if a derived type deletes it or does not create it. + Sign is thread safe. + + + + Verifies that a signature created over the 'input' matches the signature. Using and 'algorithm' passed to . + + The bytes to verify. + signature to compare against. + true if computed signature matches the signature parameter, false otherwise. + 'input' is null. + 'signature' is null. + 'input.Length' == 0. + 'signature.Length' == 0. + has been called. + If the internal is null. This can occur if a derived type deletes it or does not create it. + Verify is thread safe. + + + + Verifies that a signature created over the 'input' matches the signature. Using and 'algorithm' passed to . + + The bytes to verify. + signature to compare against. + number of bytes of signature to use. + true if computed signature matches the signature parameter, false otherwise. + 'input' is null. + 'signature' is null. + 'input.Length' == 0. + 'signature.Length' == 0. + 'length < 1' + has been called. + If the internal is null. This can occur if a derived type deletes it or does not create it. + + + + + + + This internal method is called from the AuthenticatedEncryptionProvider which passes in the algorithm that defines the size expected for the signature. + The reason is the way the AuthenticationTag is validated. + For example when "A128CBC-HS256" is specified, SHA256 will used to create the HMAC and 32 bytes will be generated, but only the first 16 will be validated. + + The bytes to verify. + offset in to input bytes to caculate hash. + number of bytes of signature to use. + signature to compare against. + offset into signature array. + how many bytes to verfiy. + algorithm passed by AuthenticatedEncryptionProvider. + true if computed signature matches the signature parameter, false otherwise. + + + + Disposes of internal components. + + true, if called from Dispose(), false, if invoked inside a finalizer. + + + + An opaque context used to store work when working with authentication artifacts. + + + + + Instantiates a new with a default activity ID. + + + + + Instantiates a new with an activity ID. + + + + + Defines properties shared across all security token handlers. + + + + + Default lifetime of tokens created. When creating tokens, if 'expires', 'notbefore' or 'issuedat' are null, + then a default will be set to: issuedat = DateTime.UtcNow, notbefore = DateTime.UtcNow, expires = DateTime.UtcNow + TimeSpan.FromMinutes(TokenLifetimeInMinutes). + + See: for configuration. + + + + Gets and sets the maximum token size in bytes that will be processed. + + 'value' less than 1. + + + + Gets or sets a bool that controls if token creation will set default 'exp', 'nbf' and 'iat' if not specified. + + See: for configuration. + + + + Gets or sets the token lifetime in minutes. + + Used during token creation to set the default expiration ('exp'). + 'value' less than 1. + + + + Validates a token. + On a validation failure, no exception will be thrown; instead, the exception will be set in the returned TokenValidationResult.Exception property. + Callers should always check the TokenValidationResult.IsValid property to verify the validity of the result. + + The token to be validated. + A required for validation. + A + + + + Validates a token. + On a validation failure, no exception will be thrown; instead, the exception will be set in the returned TokenValidationResult.Exception property. + Callers should always check the TokenValidationResult.IsValid property to verify the validity of the result. + + The to be validated. + A required for validation. + A + + + + Converts a string into an instance of . + + The string to be deserialized. + is null or empty. + 'token.Length' is greater than . + A . + + + + Called by base class to create a . + Currently only used by the JsonWebTokenHandler to allow for a Lazy creation. + + the that has the Claims. + the that was used to validate the token. + the 'issuer' to use by default when creating a Claim. + A . + + + + + A class which contains useful methods for processing tokens. + + + + + A URI that represents the JSON XML data type. + + When mapping json to .Net Claim(s), if the value was not a string (or an enumeration of strings), the ClaimValue will serialized using the current JSON serializer, a property will be added with the .Net type and the ClaimTypeValue will be set to 'JsonClaimValueType'. + + + + A URI that represents the JSON array XML data type. + + When mapping json to .Net Claim(s), if the value was not a string (or an enumeration of strings), the ClaimValue will serialized using the current JSON serializer, a property will be added with the .Net type and the ClaimTypeValue will be set to 'JsonClaimValueType'. + + + + A URI that represents the JSON null data type + + When mapping json to .Net Claim(s), we use empty string to represent the claim value and set the ClaimValueType to JsonNull + + + + Creates a dictionary from a list of Claim's. + + A list of claims. + A Dictionary representing claims. + + + + Returns all provided in and . + + The that contains signing keys used for validation. + A required for validation. + Returns all provided in provided in and . + + + + Merges claims. If a claim with same type exists in both and , the one in claims will be kept. + + Collection of 's. + Collection of 's. + A Merged list of 's. + + + + Check whether the given exception type is recoverable by LKG. + + The exception to check. + true if the exception is certain types of exceptions otherwise, false. + + + + Check whether the given configuration is recoverable by LKG. + + The kid from token."/> + The to check. + The LKG exception to check. + The exception to check. + true if the configuration is recoverable otherwise, false. + + + + Definition for AlgorithmValidator + + The algorithm to validate. + The that signed the . + The being validated. + required for validation. + true if the algorithm is considered valid + + + + Definition for AudienceValidator. + + The audiences found in the . + The being validated. + required for validation. + true if the audience is considered valid. + + + + Definition for IssuerSigningKeyResolver. + + The representation of the token that is being validated. + The that is being validated. It may be null. + A key identifier. It may be null. + required for validation. + A to use when validating a signature. + If both and are set, IssuerSigningKeyResolverUsingConfiguration takes + priority. + + + + Definition for IssuerSigningKeyResolverUsingConfiguration. + + The representation of the token that is being validated. + The that is being validated. It may be null. + A key identifier. It may be null. + required for validation. + required for validation. + A to use when validating a signature. + If both and are set, IssuerSigningKeyResolverUsingConfiguration takes + priority. + + + + Definition for IssuerSigningKeyValidator. + + The that signed the . + The being validated. + required for validation. + If both and are set, IssuerSigningKeyResolverUsingConfiguration takes + priority. + + + + Definition for IssuerSigningKeyValidatorUsingConfiguration. + + The that signed the . + The being validated. + required for validation. + required for validation. + If both and are set, IssuerSigningKeyResolverUsingConfiguration takes + priority. + + + + Definition for IssuerValidator. + + The issuer to validate. + The that is being validated. + required for validation. + The issuer to use when creating the "Claim"(s) in a "ClaimsIdentity". + The delegate should return a non null string that represents the 'issuer'. If null a default value will be used. + If both and are set, IssuerValidatorUsingConfiguration takes + priority. + + + + Definition for IssuerValidatorUsingConfiguration. + + The issuer to validate. + The that is being validated. + required for validation. + required for validation. + The issuer to use when creating the "Claim"(s) in a "ClaimsIdentity". + The delegate should return a non null string that represents the 'issuer'. If null a default value will be used. + If both and are set, IssuerValidatorUsingConfiguration takes + priority. + + + + + Definition for IssuerValidatorAsync. Left internal for now while we work out the details of async validation for all delegates. + + The issuer to validate. + The that is being validated. + required for validation. + The issuer to use when creating the "Claim"(s) in a "ClaimsIdentity". + The delegate should return a non null string that represents the 'issuer'. If null a default value will be used. + if set, will be called before or + + + + + Definition for LifetimeValidator. + + The 'notBefore' time found in the . + The 'expiration' time found in the . + The being validated. + required for validation. + + + + Definition for TokenReplayValidator. + + The 'expiration' time found in the . + The being validated. + required for validation. + + + + + Definition for SignatureValidator. + + A securityToken with a signature. + required for validation. + + + + Definition for SignatureValidator. + + A securityToken with a signature. + required for validation. + The that is required for validation. + + + + Definition for TokenReader. + + A securityToken with a signature. + required for validation. + + + + Definition for TokenDecryptionKeyResolver. + + The representation of the token to be decrypted. + The to be decrypted. The runtime by default passes null. + A key identifier. It may be null. + required for validation. + A to use when decrypting the token. + + + + Definition for TypeValidator. + + The token type to validate. + The that is being validated. + required for validation. + The actual token type, that may be the same as or a different value if the token type was resolved from a different location. + + + + Definition for TransformBeforeSignatureValidation. + + The that is being validated. + required for validation. + A transformed . + + + + Contains a set of parameters that are used by a when validating a . + + + + + This is the default value of when creating a . + The value is "AuthenticationTypes.Federation". + To change the value, set to a different value. + + + + + Default for the clock skew. + + 300 seconds (5 minutes). + + + + Default for the maximum token size. + + 250 KB (kilobytes). + + + + Copy constructor for . + + + + + Initializes a new instance of the class. + + + + + Gets or sets . + + + + + Gets or sets a delegate used to validate the cryptographic algorithm used. + + + If set, this delegate will validate the cryptographic algorithm used and + the algorithm will not be checked against . + + + + + Gets or sets a delegate that will be used to validate the audience. + + + If set, this delegate will be called to validate the 'audience', instead of default processing. + This means that no default 'audience' validation will occur. + Even if is false, this delegate will still be called. + + + + + Gets or sets the AuthenticationType when creating a . + + If 'value' is null or whitespace. + + + + Gets or sets the clock skew to apply when validating a time. + + If 'value' is less than 0. + The default is 300 seconds (5 minutes). + + + + Returns a new instance of with values copied from this object. + + A new object copied from this object + This is a shallow Clone. + + + + Creates a using: + + 'NameClaimType': If NameClaimTypeRetriever is set, call delegate, else call NameClaimType. If the result is a null or empty string, use . + 'RoleClaimType': If RoleClaimTypeRetriever is set, call delegate, else call RoleClaimType. If the result is a null or empty string, use . + + A with Authentication, NameClaimType and RoleClaimType set. + + + + If set, this property will be used to obtain the issuer and signing keys associated with the metadata endpoint of . + The obtained issuer and signing keys will then be used along with those present on the TokenValidationParameters for validation of the incoming token. + + + + + Users can override the default with this property. This factory will be used for creating signature providers. + + + + + Gets or sets a string that helps with setting breakpoints when debugging. + + + + + Gets or sets a boolean that controls if a '/' is significant at the end of the audience. + The default is true. + + + + + Gets or sets the flag that indicates whether to include the when the validation fails. + + + + + Gets or sets a delegate for validating the that signed the token. + + + If set, this delegate will be called to validate the that signed the token, instead of default processing. + This means that no default validation will occur. + Even if is false, this delegate will still be called. + If both and are set, IssuerSigningKeyResolverUsingConfiguration takes + priority. + + + + + Gets or sets a delegate for validating the that signed the token. + + + If set, this delegate will be called to validate the that signed the token, instead of default processing. + This means that no default validation will occur. + Even if is false, this delegate will still be called. + This delegate should be used if properties from the configuration retrieved from the authority are necessary to validate the + issuer signing key. + If both and are set, IssuerSigningKeyValidatorUsingConfiguration takes + priority. + + + + + Gets a that is unique to this instance. + Calling will result in a new instance of this IDictionary. + + + + + Gets a value indicating if was called to obtain this instance. + + + + + Gets or sets the that is to be used for signature validation. + + + + + Gets or sets a delegate that will be called to retrieve a used for signature validation. + + + This will be used to check the signature. This can be helpful when the does not contain a key identifier. + If both and are set, IssuerSigningKeyResolverUsingConfiguration takes + priority. + + + + + Gets or sets a delegate that will be called to retrieve a used for signature validation using the + and . + + + This will be used to check the signature. This can be helpful when the does not contain a key identifier. + This delegate should be used if properties from the configuration retrieved from the authority are necessary to resolve the + issuer signing key. + If both and are set, IssuerSigningKeyResolverUsingConfiguration takes + priority. + + + + + Gets or sets an used for signature validation. + + + + + Gets or sets a delegate that will be used to validate the issuer of the token. + + + If set, this delegate will be called to validate the 'issuer' of the token, instead of default processing. + This means that no default 'issuer' validation will occur. + Even if is false, this delegate will still be called. + If both and are set, IssuerValidatorUsingConfiguration takes + priority. + + + + + Gets or sets a delegate that will be used to validate the issuer of the token. + + + If set, this delegate will be called to validate the 'issuer' of the token, instead of default processing. + This means that no default 'issuer' validation will occur. + Even if is false, this delegate will still be called. + IssuerValidatorAsync takes precedence over and . + + + + + Gets or sets a delegate that will be used to validate the issuer of the token. + + + If set, this delegate will be called to validate the 'issuer' of the token, instead of default processing. + This means that no default 'issuer' validation will occur. + Even if is false, this delegate will still be called. + This delegate should be used if properties from the configuration retrieved from the authority are necessary to validate the issuer. + If both and are set, IssuerValidatorUsingConfiguration takes + priority. + + + + + Gets or sets a delegate that will be called to transform a token to a supported format before validation. + + + + + Gets or sets a delegate that will be used to validate the lifetime of the token + + + If set, this delegate will be called to validate the lifetime of the token, instead of default processing. + This means that no default lifetime validation will occur. + Even if is false, this delegate will still be called. + + + + + Gets or sets a that will decide if the token identifier claim needs to be logged. + Default value is true. + + + + + Gets or sets a that will decide if validation failure needs to be logged as an error. + Default value is true for backward compatibility of the behavior. + If set to false, validation failures are logged as Information and then thrown. + + + + + Gets or sets a that defines the . + + + Controls the value returns. It will return the first where the equals . + The default is . + + + + + Gets or sets a delegate that will be called to set the property after validating a token. + + + The function will be passed: + The that is being validated. + The issuer associated with the token. + Returns the value that will set the property . + + + + + Gets or sets the that contains a collection of custom key/value pairs. This allows addition of parameters that could be used in custom token validation scenarios. + + + + + Gets or sets a boolean to control if configuration required to be refreshed before token validation. + + + The default is false. + + + + + Gets or sets a value indicating whether SAML tokens must have at least one AudienceRestriction. + The default is true. + + + + + Gets or sets a value indicating whether tokens must have an 'expiration' value. + The default is true. + + + + + Gets or sets a value indicating whether a can be considered valid if not signed. + The default is true. + + + + + Gets or sets the that defines the . + + + Controls the results of . + Each where == will be checked for a match against the 'string' passed to . + The default is . + + + + + Gets or sets a delegate that will be called to set the property after validating a token. + + + The function will be passed: + The that is being validated. + The issuer associated with the token. + Returns the value that will set the property . + + + + + Gets or sets a boolean to control if the original token should be saved after the security token is validated. + + The runtime will consult this value and save the original token that was validated. + The default is false. + + + + + Gets or sets a delegate that will be used to validate the signature of the token. + + + If set, this delegate will be called to signature of the token, instead of default processing. + + + + + Gets or sets a delegate that will be used to validate the signature of the token using the and + the . + + + If set, this delegate will be called to signature of the token, instead of default processing. + + + + + Gets or sets the that is to be used for decryption. + + + + + Gets or sets a delegate that will be called to retreive a used for decryption. + + + This will be used to decrypt the token. This can be helpful when the does not contain a key identifier. + + + + + Gets or sets the that is to be used for decrypting inbound tokens. + + + + + Gets or sets a delegate that will be used to read the token. + + + If set, this delegate will be called to read the token instead of default processing. + + + + + Gets or set the that store tokens that can be checked to help detect token replay. + + If set, then tokens must have an expiration time or the runtime will fault. + + + + Gets or sets a delegate that will be used to validate the token replay of the token + + + If set, this delegate will be called to validate the token replay of the token, instead of default processing. + This means no default token replay validation will occur. + Even if is false, this delegate will still be called. + + + + + Gets or sets a value indicating whether all should be tried during signature validation when a key is not matched to token kid or if token kid is empty. + The default is true. + + + + + Gets or sets a delegate that will be used to validate the type of the token. + If the token type cannot be validated, an exception MUST be thrown by the delegate. + Note: the 'type' parameter may be null if it couldn't be extracted from its usual location. + Implementations that need to resolve it from a different location can use the 'token' parameter. + + + If set, this delegate will be called to validate the 'type' of the token, instead of default processing. + This means that no default 'type' validation will occur. + + + + + Gets or sets a value indicating if an actor token is detected, whether it should be validated. + The default is false. + + + + + Gets or sets a boolean to control if the audience will be validated during token validation. + + Validation of the audience, mitigates forwarding attacks. For example, a site that receives a token, could not replay it to another side. + A forwarded token would contain the audience of the original site. + This boolean only applies to default audience validation. If is set, it will be called regardless of whether this + property is true or false. + The default is true. + + + + + Gets or sets a boolean to control if the issuer will be validated during token validation. + + + Validation of the issuer mitigates forwarding attacks that can occur when an + IdentityProvider represents multiple tenants and signs tokens with the same keys. + It is possible that a token issued for the same audience could be from a different tenant. For example an application could accept users from + contoso.onmicrosoft.com but not fabrikam.onmicrosoft.com, both valid tenants. An application that accepts tokens from fabrikam could forward them + to the application that accepts tokens for contoso. + This boolean only applies to default issuer validation. If is set, it will be called regardless of whether this + property is true or false. + The default is true. + + + + + Gets or sets a boolean to control if the LKG configuration will be used for token validation. + + + The default is false. + + + + + Gets or sets a boolean that controls if validation of the that signed the securityToken is called. + + It is possible for tokens to contain the public key needed to check the signature. For example, X509Data can be hydrated into an X509Certificate, + which can be used to validate the signature. In these cases it is important to validate the SigningKey that was used to validate the signature. + This boolean only applies to default signing key validation. If is set, it will be called regardless of whether this + property is true or false. + The default is false. + + + + + Gets or sets a boolean to control if the lifetime will be validated during token validation. + + + This boolean only applies to default lifetime validation. If is set, it will be called regardless of whether this + property is true or false. + The default is true. + + + + + Gets or sets a boolean that controls the validation order of the payload and signature during token validation. + + If is set to true, it will validate payload ahead of signature. + The default is false. + + + + + Gets or sets a boolean to control if the token replay will be validated during token validation. + + + This boolean only applies to default token replay validation. If is set, it will be called regardless of whether this + property is true or false. + The default is false. + + + + + Gets or sets the valid algorithms for cryptographic operations. + + + If set to a non-empty collection, only the algorithms listed will be considered valid. + The default is null. + + + + + Gets or sets a string that represents a valid audience that will be used to check against the token's audience. + The default is null. + + + + + Gets or sets the that contains valid audiences that will be used to check against the token's audience. + The default is null. + + + + + Gets or sets a that represents a valid issuer that will be used to check against the token's issuer. + The default is null. + + + + + Gets or sets the that contains valid issuers that will be used to check against the token's issuer. + The default is null. + + + + + Gets or sets the that contains valid types that will be used to check against the JWT header's 'typ' claim. + If this property is not set, the 'typ' header claim will not be validated and all types will be accepted. + In the case of a JWE, this property will ONLY apply to the inner token header. + The default is null. + + + + + Contains artifacts obtained when a SecurityToken is validated. + A SecurityTokenHandler returns an instance that captures the results of validating a token. + + + + + Creates an instance of + + + + + This ctor is used by the JsonWebTokenHandler as part of delaying creation of ClaimsIdentity. + + + + + + + + + The created from the validated security token. + + + + + The created from the validated security token. + + + + + Gets or sets the without synchronization. All accesses must either + be protected or used when the caller knows access is serialized. + + + + Gets the object to use in for double-checked locking. + + + + Gets or sets the that occurred during validation. + + + + + Gets or sets the issuer that was found in the token. + + + + + True if the token was successfully validated, false otherwise. + + + + + Gets or sets the that contains a collection of custom key/value pairs. This allows addition of data that could be used in custom scenarios. This uses for case-sensitive comparison of keys. + + + + + Gets or sets the that was validated. + + + + + The to be returned when validation fails. + + + + + Gets or sets the that contains call information. + + + + + Gets or sets the token type of the that was validated. + When a is registered, + the type returned by the delegate is used to populate this property. + Otherwise, the type is resolved from the token itself, if available + (e.g for a JSON Web Token, from the "typ" header). + + + + + Generates unique IDs. + + + + + Creates a unique ID suitable for use in an xml:id field. The value is + not hard to guess but is unique. + + The unique ID. + + + + Creates a unique ID similar to that created by CreateNonRandomId, + but instead of an underscore, the supplied prefix is used. + + The prefix to use. + The unique ID, with the given prefix. + + + + Creates a unique, random ID suitable for use in an xml:id field. The + value is hard to guess and unique. + + The unique ID. + + + + Creates a unique, random ID similar to that created by CreateRandomId, + but instead of an underscore, the supplied prefix is used. + + The prefix to use. + The random URI. + + + + Creates a unique, random ID suitable for use as a URI. The value is + hard to guess and unique. The URI is in the urn:uuid: namespace. + + The random URI. + + + + Contains some utility methods. + + + + + A string with "empty" value. + + + + + A string with "null" value. + + + + + Creates a copy of the byte array. + + The resource array. + A copy of the byte array. + + + + Serializes the list of strings into string as follows: + 'str1','str2','str3' ... + + + The strings used to build a comma delimited string. + + + The single . + + + + + Returns whether the input string is https. + + The input string. + true if the input string is https; otherwise, false. + + + + Returns whether the input uri is https. + + . + true if the input uri is https; otherwise, false. + + + + Compares two byte arrays for equality. Hash size is fixed normally it is 32 bytes. + The attempt here is to take the same time if an attacker shortens the signature OR changes some of the signed contents. + + + One set of bytes to compare. + + + The other set of bytes to compare with. + + + true if the bytes are equal, false otherwise. + + + + + Compares two byte spans for equality. Hash size is fixed normally it is 32 bytes. + The attempt here is to take the same time if an attacker shortens the signature OR changes some of the signed contents. + + + One set of bytes to compare. + + + The other set of bytes to compare with. + + length of spans to check + + true if the bytes are equal, false otherwise. + + + + + AudienceValidator + + + + + Validates if a given algorithm for a is valid. + + The algorithm to be validated. + The that signed the . + The being validated. + required for validation. + + + + Determines if the audiences found in a are valid. + + The audiences found in the . + The being validated. + required for validation. + If 'validationParameters' is null. + If 'audiences' is null and is true. + If is null or whitespace and is null. + If none of the 'audiences' matched either or one of . + An EXACT match is required. + + + + Determines if an issuer found in a is valid. + + The issuer to validate + The that is being validated. + required for validation. + The issuer to use when creating the "Claim"(s) in a "ClaimsIdentity". + If 'validationParameters' is null. + If 'issuer' is null or whitespace and is true. + If is null or whitespace and is null. + If 'issuer' failed to matched either or one of . + An EXACT match is required. + + + + Determines if an issuer found in a is valid. + + The issuer to validate + The that is being validated. + required for validation. + The required for issuer and signing key validation. + The issuer to use when creating the "Claim"(s) in a "ClaimsIdentity". + If 'validationParameters' is null. + If 'issuer' is null or whitespace and is true. + If ' configuration' is null. + If is null or whitespace and is null and is null. + If 'issuer' failed to matched either or one of or . + An EXACT match is required. + + + + Determines if an issuer found in a is valid. + + The issuer to validate + The that is being validated. + required for validation. + The required for issuer and signing key validation. + The issuer to use when creating the "Claim"(s) in a "ClaimsIdentity". + If 'validationParameters' is null. + If 'issuer' is null or whitespace and is true. + If ' configuration' is null. + If is null or whitespace and is null and is null. + If 'issuer' failed to matched either or one of or . + An EXACT match is required. + + + + Validates the that signed a . + + The that signed the . + The being validated. + required for validation. + if 'securityKey' is null and ValidateIssuerSigningKey is true. + if 'securityToken' is null and ValidateIssuerSigningKey is true. + if 'validationParameters' is null. + + + + Validates the that signed a . + + The that signed the . + The being validated. + required for validation. + The required for issuer and signing key validation. + if 'securityKey' is null and ValidateIssuerSigningKey is true. + if 'securityToken' is null and ValidateIssuerSigningKey is true. + if 'validationParameters' is null. + + + + Given a signing key, when it's derived from a certificate, validates that the certificate is already active and non-expired + + The that signed the . + The that are used to validate the token. + + + + Validates the lifetime of a . + + The 'notBefore' time found in the . + The 'expiration' time found in the . + The being validated. + required for validation. + If 'validationParameters' is null. + If 'expires.HasValue' is false and is true. + If 'notBefore' is > 'expires'. + If 'notBefore' is > DateTime.UtcNow. + If 'expires' is < DateTime.UtcNow. + All time comparisons apply . + + + + Validates if a token has been replayed. + + When does the security token expire. + The being validated. + required for validation. + If 'securityToken' is null or whitespace. + If 'validationParameters' is null or whitespace. + If is not null and expirationTime.HasValue is false. When a TokenReplayCache is set, tokens require an expiration time. + If the 'securityToken' is found in the cache. + If the 'securityToken' could not be added to the . + + + + Validates if a token has been replayed. + + The being validated. + When does the security token expire. + required for validation. + If 'securityToken' is null or whitespace. + If 'validationParameters' is null or whitespace. + If is not null and expirationTime.HasValue is false. When a TokenReplayCache is set, tokens require an expiration time. + If the 'securityToken' is found in the cache. + If the 'securityToken' could not be added to the . + + + + Validates the type of the token. + + The token type or null if it couldn't be resolved (e.g from the 'typ' header for a JWT). + The that is being validated. + required for validation. + If is null. + If is null. + If is null or whitespace and is not null. + If failed to match . + An EXACT match is required. (case sensitive) is used for comparing against . + The actual token type, that may be the same as or a different value if the token type was resolved from a different location. + + + + An designed to construct based on a x509 certificate. + + + + + Designed to construct based on a x509 certificate. + + A + + will be used as the key wrap algorithm + will be used as the data encryption algorithm + + if 'certificate' is null. + + + + Designed to construct based on the x509 certificate, a key wrap algorithm, and data encryption algorithm. + + A + A key wrap algorithm + Data encryption algorithm + if 'certificate' is null. + if 'keyWrapAlgorithm' is null or empty. + if 'dataEncryptionAlgorithm' is null or empty. + + + + Gets the used by this instance. + + + + + An that is backed by a + + + + + Instantiates a using a + + The to use. + if is null. + + + + Instantiates a using a . + + The to use. + The value to set for the KeyId + if is null. + if is null or empty. + + + + Gets the key size. + + + + + Gets the X5t of this . + + + + + Returns the private key from the . + + + + + Gets the public key from the . + + + + + Gets a bool indicating if a private key exists. + + true if it has a private key; otherwise, false. + + + + Gets an enum indicating if a private key exists. + + 'Exists' if private key exists for sure; 'DoesNotExist' if private key doesn't exist for sure; 'Unknown' if we cannot determine. + + + + Gets the . + + + + + Determines whether the can compute a JWK thumbprint. + + true if JWK thumbprint can be computed; otherwise, false. + https://datatracker.ietf.org/doc/html/rfc7638 + + + + Computes a sha256 hash over the . + + A JWK thumbprint. + https://datatracker.ietf.org/doc/html/rfc7638 + + + + Returns a bool indicating if this key is equivalent to another key. + + true if the keys are equal; otherwise, false. + + + + Returns an int hash code. + + An int hash code + + + + Defines the , algorithm and digest for digital signatures. + + + + + Initializes a new instance of the class. + + that will be used for signing. + Algorithm will be set to . + the 'digest method' if needed may be implied from the algorithm. For example implies Sha256. + if 'certificate' is null. + + + + Initializes a new instance of the class. + + A that will be used for signing. + The signature algorithm to apply. + the 'digest method' if needed may be implied from the algorithm. For example implies Sha256. + if 'certificate' is null. + if 'algorithm' is null or empty. + + + + Gets the used by this instance. + + + + diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/lib/net8.0/Microsoft.IdentityModel.Tokens.xml.meta b/Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/lib/net8.0/Microsoft.IdentityModel.Tokens.xml.meta new file mode 100644 index 0000000..2f1a944 --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/lib/net8.0/Microsoft.IdentityModel.Tokens.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 76596794d479eab41b4702276a149480 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/lib/netstandard2.0.meta b/Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/lib/netstandard2.0.meta new file mode 100644 index 0000000..29aa7ba --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/lib/netstandard2.0.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5af3d716ce484c74fb8323246f7a3a44 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/lib/netstandard2.0/Microsoft.IdentityModel.Tokens.dll b/Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/lib/netstandard2.0/Microsoft.IdentityModel.Tokens.dll new file mode 100644 index 0000000..03b6b9f --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/lib/netstandard2.0/Microsoft.IdentityModel.Tokens.dll @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:59efb0282597fe42fea54d5282ce266cc0c3b0efcfcfd875bdfad9e3c26b6372 +size 281120 diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/lib/netstandard2.0/Microsoft.IdentityModel.Tokens.dll.meta b/Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/lib/netstandard2.0/Microsoft.IdentityModel.Tokens.dll.meta new file mode 100644 index 0000000..4a0eab6 --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/lib/netstandard2.0/Microsoft.IdentityModel.Tokens.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: ad4441fbab4eb854ca76368c14d4b193 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/lib/netstandard2.0/Microsoft.IdentityModel.Tokens.xml b/Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/lib/netstandard2.0/Microsoft.IdentityModel.Tokens.xml new file mode 100644 index 0000000..ce8c782 --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/lib/netstandard2.0/Microsoft.IdentityModel.Tokens.xml @@ -0,0 +1,5507 @@ + + + + Microsoft.IdentityModel.Tokens + + + + + This adapter abstracts the 'RSA' differences between versions of .Net targets. + + + + + Calls and + + + + + Base class for a Security Key that contains Asymmetric key material. + + + + + Default constructor + + + + + This must be overridden to get a bool indicating if a private key exists. + + true if it has a private key; otherwise, false. + + + + Gets the status of the private key. + + 'Exists' if private key exists for sure; 'DoesNotExist' if private key doesn't exist for sure; 'Unknown' if we cannot determine. + + + + Enum for the existence of private key + + + + + private key exists for sure + + + + + private key doesn't exist for sure + + + + + unable to determine the existence of private key + + + + + Provides signature and verification operations for Asymmetric Algorithms using a . + + + + + Mapping from algorithm to minimum .KeySize when creating signatures. + + + + + Mapping from algorithm to minimum .KeySize when verifying signatures. + + + + + Initializes a new instance of the class used to create and verify signatures. + + The that will be used for signature operations. + The signature algorithm to apply. + + + + Initializes a new instance of the class used to create and verify signatures. + + The that will be used for signature operations. + The signature algorithm to apply. + If this is required to create signatures then set this to true. + + Creating signatures requires that the has access to a private key. + Verifying signatures (the default), does not require access to the private key. + + is null. + is null or empty. + is true and there is no private key. + If and algorithm pair are not supported. + + willCreateSignatures is true and .KeySize is less than the size corresponding to the given algorithm in . + + + .KeySize is less than the size corresponding to the algorithm in . Note: this is always checked. + + If the runtime is unable to create a suitable cryptographic provider. + + + + Gets the mapping from algorithm to the minimum .KeySize for creating signatures. + + + + + Gets the mapping from algorithm to the minimum .KeySize for verifying signatures. + + + + + Creating a Signature requires the use of a . + This method returns the + that describes the to use when generating a Signature. + + The SignatureAlgorithm in use. + The to use. + if is null or whitespace. + if is not supported. + + + + For testing purposes + + + + + Produces a signature over the 'input' using the and algorithm passed to . + + The bytes to be signed. + A signature over the input. + if is null. + if .Length == 0. + If has been called. + Sign is thread safe. + + + + Validates that an asymmetric key size is of sufficient size for a SignatureAlgorithm. + + The asymmetric key to validate. + Algorithm for which this key will be used. + Whether they key will be used for creating signatures. + if is null. + if is null or empty. + if .KeySize is less than the minimum + acceptable size. + + for minimum signing sizes. + for minimum verifying sizes. + + + + + Verifies that the over using the + and specified by this + are consistent. + + The bytes to generate the signature over. + The value to verify against. + true if signature matches, false otherwise. + is null or has length == 0. + is null or has length == 0. + If has been called. + Verify is thread safe. + + + + + + + Calls to release managed resources. + + true, if called from Dispose(), false, if invoked inside a finalizer. + + + + Encodes and Decodes strings as Base64Url encoding. + + + + + The following functions perform base64url encoding which differs from regular base64 encoding as follows + * padding is skipped so the pad character '=' doesn't have to be percent encoded + * the 62nd and 63rd regular base64 encoding characters ('+' and '/') are replace with ('-' and '_') + The changes make the encoding alphabet file and URL safe. + + string to encode. + Base64Url encoding of the UTF8 bytes. + + + + Converts a subset of an array of 8-bit unsigned integers to its equivalent string representation which is encoded with base-64-url digits. Parameters specify + the subset as an offset in the input array, and the number of elements in the array to convert. + + An array of 8-bit unsigned integers. + An offset in inArray. + The number of elements of inArray to convert. + The string representation in base 64 url encoding of length elements of inArray, starting at position offset. + 'inArray' is null. + offset or length is negative OR offset plus length is greater than the length of inArray. + + + + Converts a subset of an array of 8-bit unsigned integers to its equivalent string representation which is encoded with base-64-url digits. + + An array of 8-bit unsigned integers. + The string representation in base 64 url encoding of length elements of inArray, starting at position offset. + 'inArray' is null. + offset or length is negative OR offset plus length is greater than the length of inArray. + + + + Converts the specified string, base-64-url encoded to utf8 bytes. + base64Url encoded string. + UTF8 bytes. + + + + Decodes the string from Base64UrlEncoded to UTF8. + + string to decode. + UTF8 string. + + + + Base64 encode/decode implementation for as per https://tools.ietf.org/html/rfc4648#section-5. + Uses ArrayPool[T] to minimize memory usage. + + + + + Decodes a Base64UrlEncoded string into a byte array. + + The string to decode. + Decoded bytes. + + + + Decodes a Base64UrlEncoded string into a byte array. + + String to decode. + Index of char in to start decode operation. + Number of chars in to decode. + Decoded bytes. + + + + Decodes a Base64UrlEncoded string and then performs an action. + + String to decode. + Index of char in to start decode operation. + Number of chars in to decode from . + Input parameter to action. + Action to perform on decoded bytes. + Output type of decoding action. + Type of Input parameter to action. + Instance of {T}. + + The buffer for the decode operation uses shared memory pool to avoid allocations. + The length of the rented array of bytes may be larger than the decoded bytes, therefore the action needs to know the actual length to use. + The result of is passed to the action. + + + + + Decodes a Base64UrlEncoded string and then performs an action. + + The string to decode. + Index of char in to start decode operation from. + Count of char in to decode. + Action to perform on decoded bytes. + Return type of operation. + Instance of {T}. + + The buffer for the decode operation uses shared memory pool to avoid allocations. + The length of the rented array of bytes may be larger than the decoded bytes, therefore the action needs to know the actual length to use. + The result of is passed to the action. + + + + + Decodes a Base64UrlEncoded string and then performs an action. + + The string to decode. + Index of char in to start decode operation from. + Count of char in to decode. + Input parameter 1 to action. + Input parameter 2 to action. + Input parameter 3 to action. + Action to perform on decoded bytes. + Output type of decoding action. + Type of Input parameter 1 to action. + Type of Input parameter 2 to action. + Type of Input parameter 3 to action. + Instance of {T}. + + The buffer for the decode operation uses shared memory pool to avoid allocations. + The length of the rented array of bytes may be larger than the decoded bytes, therefore the action needs to know the actual length to use. + The result of is passed to the action. + + + + + Decodes a Base64UrlEncoded string into a byte array. + + String to decode. + Index of char in to start decode operation. + Number of chars in to decode. + byte array to place results. + + Changes from Base64UrlEncoder implementation + 1. Padding is optional. + 2. '+' and '-' are treated the same. + 3. '/' and '_' are treated the same. + + + + + Encode byte array to Base64UrlEncoded string. + + Bytes to encode. + Base64Url encoded string. + + + + Encode byte array to Base64UrlEncoded string. + + Bytes to encode. + Index into to start encode operation. + Number of bytes in to encode, starting from offset. + Base64Url encoded string. + + + + Validates the input string for decode operation. + + String to validate. + Index of char in to start decode operation. + Number of chars in to decode, starting from offset. + Size of the decoded bytes arrays. + + + + Represents a generic metadata configuration which is applicable for both XML and JSON based configurations. + + + + + Gets the issuer specified via the metadata endpoint. + + + + + Gets the that the IdentityProvider indicates are to be used in order to sign tokens. + + + + + Gets or sets the token endpoint specified via the metadata endpoint. + This is the fed:PassiveRequestorEndpoint in WS-Federation, https://docs.oasis-open.org/wsfed/federation/v1.2/os/ws-federation-1.2-spec-os.html#:~:text=fed%3ASecurityTokenServiceType/fed%3APassiveRequestorEndpoint + Or the token_endpoint in the OIDC metadata. + + + + + Gets or sets the token endpoint specified via the metadata endpoint. + This is the fed:SecurityTokenServiceType in WS-Federation, http://docs.oasis-open.org/wsfed/federation/v1.2/os/ws-federation-1.2-spec-os.html#:~:text=fed%3ASecurityTokenSerivceEndpoint + + + + + Gets the that the IdentityProvider indicates are to be used in order to decrypt tokens. + + + + + Comparison class for a . + + + + + Represents a generic configuration manager. + + + + + Gets or sets the that controls how often an automatic metadata refresh should occur. + + + + + 12 hours is the default time interval that afterwards will obtain new configuration. + + + + + 1 hour is the default time interval that a last known good configuration will last for. + + + + + 5 minutes is the default time interval that must pass for to obtain a new configuration. + + + + + The default constructor. + + + + + Constructor. + + The event queue task creation option. + + + + Obtains an updated version of if the appropriate refresh interval has passed. + This method may return a cached version of the configuration. + + CancellationToken + Configuration of type Configuration. + This method on the base class throws a as it is meant to be + overridden by the class that extends it. + + + + Gets all valid last known good configurations. + + A collection of all valid last known good configurations. + + + + The last known good configuration or LKG (a configuration retrieved in the past that we were able to successfully validate a token against). + + + + + The length of time that a last known good configuration is valid for. + + + + + The metadata address to retrieve the configuration from. + + + + + 5 minutes is the minimum value for automatic refresh. can not be set less than this value. + + + + + 1 second is the minimum time interval that must pass for to obtain new configuration. + + + + + The minimum time between retrievals, in the event that a retrieval failed, or that a refresh was explicitly requested. + + + + + Indicates whether the last known good feature should be used, true by default. + + + + + Indicates whether the last known good configuration is still fresh, depends on when the LKG was first used and it's lifetime. + + + + + Indicate that the configuration may be stale (as indicated by failing to process incoming tokens). + + + + + An opaque context used to store work when working with authentication artifacts. + + + + + Instantiates a new with a default activityId. + + + + + Instantiates a new with an activityId. + + + + + A class which contains useful methods for processing collections. + + + + + Checks whether is null or empty. + + The type of the . + The to be checked. + True if is null or empty, false otherwise. + + + + Constants for compression algorithms. + + + + + Compression provider factory for compression and decompression. + + + + + Static constructor that initializes the default . + + + + + Default constructor for . + + + + + Constructor that creates a deep copy of given object. + + to copy from. + + + + Returns the default instance. + + + + + Extensibility point for custom compression support application wide. + + + + + Answers if an algorithm is supported. + + the name of the crypto algorithm. + true if the algorithm is supported, false otherwise. + + + + Returns a for a specific algorithm. + + the decompression algorithm. + a . + + + + Defines the options which can be used to configure the internal LKG configuration cache. + See for more details. + + + + + 10 is the default size limit of the cache (in number of items) for last known good configuration. + + + + + Gets or sets the BaseConfgiurationComparer that to compare . + + + + + The size limit of the cache (in number of items) for last known good configuration. + + + + + The event queue task creation option, default to None instead of LongRunning as LongRunning will always start a task on a new thread instead of a thread from ThreadPool. + + + + + Whether or not to remove expired items. + + + + + Definition of cache for crypto providers + + + + + Returns the cache key to use when looking up an entry into the cache for a + + the to create the key for. + the cache key to use for finding a . + + + + Returns the 'key' that will be used to find a crypto provider in this cache. + + the key that is used to by the crypto provider. + the algorithm that is used by the crypto provider. + the typeof the crypto provider obtained by calling object.GetType(). + the cache key to use for finding a crypto provider. + + + + Trys to adds a to this cache. + + to cache. + true if the was added, false if the cache already contained the + + + + Trys to find a in this cache. + + the key that is used to by the crypto provider. + the algorithm that is used by the crypto provider. + the typeof the crypto provider obtained by calling object.GetType(). + a bool to indicate if the will be used to sign. + the if found. + true if a was found, false otherwise. + + + + Trys to remove a from this cache. + + to remove. + true if the was removed, false if the was not found. + + + + Specifies the CryptoProviderCacheOptions which can be used to configure the internal cryptoprovider cache. + We are using our own simple LRU caching implementation across all targets. + See for more details. + + + + + Default value for . + + + + + Gets or sets the size of the cache (in number of items). + 20% of the cache will be evicted whenever the cache gets to 95% of this size. + Items will be evicted from least recently used to most recently used. + + + + + Creates cryptographic operators by specifying a 's and algorithms. + + + + + Returns the default instance. + + + + + Gets or sets the default value for caching of 's. + + + + + Gets or sets the maximum size of the object pool used by the SignatureProvider that are used for crypto objects. + + + + + Static constructor that initializes the default . + + + + + Default constructor for . + + + + + Initializes an instance of a . + + + The cache to use for caching CryptoProviders + + + + + Constructor that creates a deep copy of given object. + + to copy from. + + + + Gets the + + + + + Extensibility point for creating custom cryptographic operators. + + By default, if set, will be called before creating cryptographic operators. + If true is returned, then will be called. The will throw if the + Cryptographic operator returned is not of the correct type. + + + + Gets or sets a bool controlling if should be cached. + + + + + Gets or sets the maximum size of the object pool used by the SignatureProvider that are used for crypto objects. + + + + + Creates an instance of for a specific <SecurityKey, Algorithm>. + + the to use. + the algorithm to use. + thrown if is null. + thrown if is null or empty. + thrown if and algorithm pair are not supported. + thrown if returns a type that is not assignable from . + + If is set and returns true. + is called to obtain the . + + When finished with the call . + + an instance of + + + + Creates an instance of for a specific <SecurityKey, Algorithm>. + + the to use. + the algorithm to use. + thrown if is null. + thrown if is null or empty. + thrown if and algorithm pair are not supported. + thrown if returns a type not assignable from . + + If is set and returns true. + is called to obtain the . + + When finished with the call . + + an instance of + + + + Creates an instance of for a specific <SecurityKey, Algorithm>. + + the to use. + the algorithm to use. + thrown if is null. + thrown if is null or empty. + thrown if and algorithm pair are not supported. + thrown if returns a type that is not assignable from . + + If is set and returns true. + is called to obtain the . + + When finished with the call . + + an instance of + + + + Creates a that creates a signature with the algorithm and . + + the to use for signing. + the algorithm to use for signing. + thrown if is null. + thrown if is null or empty. + thrown if is too small. + thrown if is not assignable from or . + thrown if the key / algorithm is not supported. + thrown if returns a type that is not assignable from . + + AsymmetricSignatureProviders require access to a PrivateKey for Signing. + When finished with the call . + If is set and returns true. + is called to obtain the . + + + A that can be used to create a signature using the and algorithm. + + + + Creates a that creates a signature with the algorithm and . + + the to use for signing. + the algorithm to use for signing. + indicates if the should be cached for reuse. + thrown if is null. + thrown if is null or empty. + thrown if is too small. + thrown if is not assignable from or . + thrown if the key / algorithm is not supported. + thrown if returns a type that is not assignable from . + + AsymmetricSignatureProviders require access to a PrivateKey for Signing. + When finished with the call . + If is set and returns true. + is called to obtain the . + + + A that can be used to create a signature using the and algorithm. + + + + Creates a that supports the and algorithm. + + The to use for signature verification. + The algorithm to use for verifying. + thrown if is null. + thrown if is null or empty. + thrown if is too small. + thrown if is not assignable from or . + thrown if the key / algorithm is not supported. + thrown if returns a type that is not assignable from . + When finished with the call . + If is set and returns true. + is called to obtain the . + + + A that can be used to validate a signature using the and algorithm. + + + + Creates a that supports the and algorithm. + + The to use for signature verification. + The algorithm to use for verifying. + should the be cached. + thrown if is null. + thrown if is null or empty. + thrown if is too small. + thrown if is not assignable from or . + thrown if the key / algorithm is not supported. + thrown if returns a type that is not assignable from . + When finished with the call . + If is set and returns true. + is called to obtain the . + + + A that can be used to validate a signature using the and algorithm. + + + + Creates a for a specific algorithm. + + the name of the hash algorithm to create. + thrown if is null or empty. + thrown if returns a type that is not assignable from . + thrown if is not supported. + When finished with the call . + If is set and returns true. + is called to obtain the . + + + A . + + + + Creates a for a specific algorithm. + + the name of the hash algorithm to create. + thrown if is null or empty. + thrown if returns a type that is not assignable from . + thrown if is not supported. + When finished with the call . + If is set and returns true. + is called to obtain the . + + + A . + + + + Returns a for a specific algorithm. + + bytes to use to create the Keyed Hash. + the name of the keyed hash algorithm to create. + thrown if is null. + thrown if is null or empty. + thrown if returns a type that is not assignable from . + is not supported. + When finished with the call . + If is set and returns true. + is called to obtain the . + + + A . + + + + For some security key types, in some runtimes, it's not possible to extract public key material and create an . + In these cases, will be an empty string, and these keys should not be cached. + + to be examined. + True if should be cached, false otherwise. + + + + Checks if an algorithm is supported. + + the name of the Hash algorithm. + Only considers known Hash algorithms. + true if: + + If is set and returns true. + + The algorithm is supported. + + + + + + Checks if the algorithm and is supported. + + the security algorithm to apply. + the . + Algorithms are supported for specific key types. + For example: + and will return true. + and will return false. + + true if: + + If is set and returns true. + + The algorithm / key pair is supported. + + + + + + When finished with a call this method for cleanup. The default behavior is to call + + to be released. + thrown if is null. + + + + When finished with a call this method for cleanup."/> + + to be released. + thrown if is null. + + + + When finished with a call this method for cleanup."/> + + to be released. + thrown if is null. + + + + When finished with a call this method for cleanup. The default behavior is to call + + to be released. + thrown if is null. + + + + Helper class for adding DateTimes and Timespans. + + + + + Add a DateTime and a TimeSpan. + The maximum time is DateTime.MaxTime. It is not an error if time + timespan > MaxTime. + Just return MaxTime. + + Initial value. + to add. + as the sum of time and timespan. + + + + Gets the Maximum value for a DateTime specifying kind. + + DateTimeKind to use. + DateTime of specified kind. + + + + Gets the Minimum value for a DateTime specifying kind. + + DateTimeKind to use. + DateTime of specified kind. + + + + Ensures that DataTime is UTC. + + to convert. + + + + + Ensures that DateTime is UTC. + + to convert. + + + + + A compression provider that supports compression and decompression using the algorithm. + + + + + Initializes a new instance of the class used to compress and decompress used the algorithm. + + + + + Initializes a new instance of the class used to compress and decompress used the algorithm. + The compression level to use when compressing. + + + + + Gets the compression algorithm. + + + + + Specifies whether compression should emphasize speed or compression size. + Set to by default. + + + + + Decompress the value using DEFLATE algorithm. + + the bytes to decompress. + the decompressed bytes. + + + + Compress the value using the DEFLATE algorithm. + + the bytes to compress. + the compressed bytes. + + + + Answers if a compression algorithm is supported. + + the name of the compression algorithm. + true if the compression algorithm is supported, false otherwise. + + + + This adapter abstracts the differences between versions of .Net targets. + + + + + Initializes a new instance of the class. + + + creation is not supported by some platforms. + For more details, see https://aka.ms/IdentityModel/create-ecdsa. + + + + + Creates an ECDsa object using the and . + + + + + Creates an ECDsa object using the and . + 'ECParameters' structure is available in .NET Framework 4.7+, .NET Standard 1.6+, and .NET Core 1.0+. + This method is supported only on Windows as other platforms don't support operations with . + + + + + Returns the size of key in bytes + + Represents ecdsa curve -P256, P384, P521 + Size of the key in bytes + + + + Magic numbers identifying ECDSA blob types + + + + + Returns the magic value representing the curve corresponding to the curve id. + + Represents ecdsa curve -P256, P384, P512 + Whether the provider will create signatures or not + Uint representing the magic number + + + + Tests if user's runtime platform supports operations using . + + True if operations using are supported on user's runtime platform, false otherwise. + + + + Creates an ECDsa object using the and . + 'ECParameters' structure is available in .NET Framework 4.7+, .NET Standard 1.6+, and .NET Core 1.0+. + + + + + Returns the elliptic curve corresponding to the curve id. + + Represents ecdsa curve -P256, P384, P512 + + + + Tests if user application's runtime supports structure. + + True if structure is supported, false otherwise. + + + + Throws during runtime if user application's runtime doesn't support structure. + + + + + Represents a ECDsa security key. + + + + + Returns a new instance of . + + + + + + instance used to initialize the key. + + + + + Gets a bool indicating if a private key exists. + + true if it has a private key; otherwise, false. + + + + Gets an enum indicating if a private key exists. + + 'Exists' if private key exists for sure; 'DoesNotExist' if private key doesn't exist for sure; 'Unknown' if we cannot determine. + + + + Gets key size. + + + + + Determines whether the can compute a JWK thumbprint. + + true if JWK thumbprint can be computed; otherwise, false. + https://datatracker.ietf.org/doc/html/rfc7638 + + + + Computes a sha256 hash over the . + + A JWK thumbprint. + https://datatracker.ietf.org/doc/html/rfc7638 + + + + Collection of text encoding related helper methods. + + + + + Obtains bytes from a string using the Encoding and then performs an action. + + String to process. + Encoding used to obtain bytes. + Operation to invoke with result which is byte array and length of useful data in array with offset as 0. + Return type of operation. + Instance of {T}. + + The encoding operation uses shared memory pool to avoid allocations. + The length of the rented array of bytes may be larger than the decoded bytes, therefore the action needs to know the actual length to use. + is passed to the action. + + + + + Obtains bytes from a string using the Encoding and then performs an action. + + String to process. + Index to start from in . + Length of characters to operate in from . + Encoding used to obtain bytes. + Operation to invoke with result which is byte array and length of useful data in array with offset as 0. + Return type of operation. + Instance of {T}. + + The encoding operation uses shared memory pool to avoid allocations. + The length of the rented array of bytes may be larger than the decoded bytes, therefore the action needs to know the actual length to use. + is passed to the action. + + + + + Obtains bytes from a string using the Encoding and then performs an action. + + String to process. + Index to start from in . + Length of characters to operate in from . + Encoding used to obtain bytes. + Input parameter 1 to action. + Input parameter 2 to action. + Input parameter 3 to action. + Action to perform with bytes. + Return type of operation. + Type of Input parameter 1 to action. + Type of Input parameter 2 to action. + Type of Input parameter 3 to action. + Instance of {T}. + + The encoding operation uses shared memory pool to avoid allocations. + The length of the rented array of bytes may be larger than the decoded bytes, therefore the action needs to know the actual length to use. + is passed to the action. + + + + + Encodes the string using given Encoding, and invokes the operation with the result. + + Return type of operation. + Input parameter to operation. + String to process. + Encoding used to obtain bytes. + Additional operation parameter. + Operation to invoke with result which is byte array and length of useful data in array with offset as 0. + Result of operation. + + The encoding operation uses shared memory pool to avoid allocations. + The length of the rented array of bytes may be larger than the decoded bytes, therefore the action needs to know the actual length to use. + is passed to the action. + + + + + Obtains bytes from a string using the Encoding and then performs an action. + + String to process. + Index to start from in . + Length of characters to operate in from . + Encoding used to obtain bytes. + Additional operation parameter. + Operation to invoke with result which is byte array and length of useful data in array with offset as 0. + Return type of operation. + Input parameter to operation. + Instance of {T}. + + The encoding operation uses shared memory pool to avoid allocations. + The length of the rented array of bytes may be larger than the decoded bytes, therefore the action needs to know the actual length to use. + is passed to the action. + + + + + A class for properties that are used for token encryption. + + + + + Initializes a new instance of the class. + + . + A key wrap algorithm to use when encrypting a session key. + Data encryption algorithm to apply. + if 'certificate' is null. + if 'alg' is null or empty. + if 'enc' is null or empty. + + + + Initializes a new instance of the class. + + to use when encrypting a session key. + A key wrap algorithm to use when encrypting a session key. + Data encryption algorithm to apply. + if 'key' is null. + if 'alg' is null or empty. + if 'enc' is null or empty. + + + + Initializes a new instance of the class. + + Used in scenarios when a key represents a 'shared' symmetric key. + For example, SAML 2.0 Assertion will be encrypted using a provided symmetric key + which won't be serialized to a SAML token. + + to apply. + Data encryption algorithm to apply. + If the is not a . + if 'enc' is null or empty. + + + + Gets the key wrap algorithm used for session key encryption. + + + + + Gets the data encryption algorithm. + + + + + Public key used in Key Agreement Algorithms + + + + + Users can override the default with this property. This factory will be used for creating encryption providers. + + + + + Gets or sets a bool that controls if the encrypted token creation will set default 'cty' if not specified. + + Applies to only JWT tokens. + + + + + + Gets the used for encryption. + + + + + Provides authenticated encryption and decryption services. + + + + + Initializes a new instance of the class used for encryption and decryption. + + The that will be used for crypto operations. + The encryption algorithm to apply. + 'key' is null. + 'algorithm' is null or whitespace. + key size is not large enough. + 'algorithm' is not supported. + a symmetricSignatureProvider is not created. + + + + Gets the encryption algorithm that is being used. + + + + + Gets or sets a user context for a . + + This is null by default. This can be used by applications for extensibility scenarios. + + + + Gets the that is being used. + + + + + Encrypts the 'plaintext' + + the data to be encrypted. + will be combined with iv and ciphertext to create an authenticationtag. + containing ciphertext, iv, authenticationtag. + plaintext is null or empty. + authenticationData is null or empty. + AES crypto operation threw. See inner exception for details. + + + + Encrypts the 'plaintext' + + the data to be encrypted. + will be combined with iv and ciphertext to create an authenticationtag. + initialization vector for encryption. + containing ciphertext, iv, authenticationtag. + is null or empty. + is null or empty. + Thrown if the AES crypto operation threw. See inner exception for details. + Thrown if the internal is disposed. + + + + Decrypts ciphertext into plaintext + + the encrypted text to decrypt. + the authenticateData that is used in verification. + the initialization vector used when creating the ciphertext. + the authenticationTag that was created during the encyption. + decrypted ciphertext + is null or empty. + is null or empty. + is null or empty. + is null or empty. + Thrown if the signature over the authenticationTag fails to verify. + Thrown if the AES crypto operation threw. See inner exception. + Thrown if the internal is disposed. + + + + Calls and + + + + + Releases managed resources. + + true, if called from Dispose(), false, if invoked inside a finalizer. + + + + Checks if an 'key, algorithm' pair is supported + + the + the algorithm to check. + true if 'key, algorithm' pair is supported. + + + + The algorithm parameter logically defines a HMAC algorithm. + This method returns the HMAC to use. + + + + + + + Called to obtain the byte[] needed to create a + + that will be used to obtain the byte[]. + [] that is used to populated the KeyedHashAlgorithm. + if is null. + if a byte[] can not be obtained from SecurityKey. + and are supported. + For a .Key is returned + For a Base64UrlEncoder.DecodeBytes is called with if == JsonWebAlgorithmsKeyTypes.Octet + + + + + Checks that the key has sufficient length + + that contains bytes. + the algorithm to apply. + if is null. + if is null or empty. + if is not a supported algorithm. + + + + Contains the results of operation. + + + + + Initializes a new + + the used during + protected text. + the initialization vector used. + the bytes that need be passed to . + + + + Gets the . + + + + + Gets the Ciphertext. + + + + + Gets the initialization vector. + + + + + Gets the authentication tag + + + + + Provides Wrap key and Unwrap key services. + + + + + Gets the KeyWrap algorithm that is being used. + + + + + Gets or sets a user context for a . + + This is null by default. This can be used by runtimes or for extensibility scenarios. + + + + Gets the that is being used. + + + + + Calls and + + + + + Can be over written in descendants to dispose of internal components. + + true, if called from Dispose(), false, if invoked inside a finalizer + + + + Unwrap a key. + + key to unwrap. + Unwrapped key. + + + + Wrap a key. + + the key to be wrapped + wrapped key. + + + + Provides RSA Wrap key and Unwrap key services. + + + + + Initializes a new instance of used for wrapping and un-wrappping keys. + These keys are usually symmetric session keys that are wrapped using the recipients public key. + The that will be used for cryptographic operations. + The KeyWrap algorithm to apply. + Whether this is required to un-wrap keys. If true, the private key is required. + 'key' is null. + 'algorithm' is null. + The key size doesn't match the algorithm. + If and algorithm pair are not supported. + Failed to create RSA algorithm with provided key and algorithm. + + + + + Gets the KeyWrap algorithm that is being used. + + + + + Gets or sets a user context for a . + + This is null by default. This is for use by the application and not used by this SDK. + + + + Gets the that is being used. + + + + + Disposes of internal components. + + true, if called from Dispose(), false, if invoked inside a finalizer. + + + + Checks if an algorithm is supported. + + The that will be used for crypto operations. + The KeyWrap algorithm to apply. + true if the algorithm is supported; otherwise, false. + + + + Unwrap a key using RSA decryption. + + the bytes to unwrap. + Unwrapped key + 'keyBytes' is null or length == 0. + If has been called. + Failed to unwrap the wrappedKey. + If the internal RSA algorithm is null. + + + + Wrap a key using RSA encryption. + + the key to be wrapped + A wrapped key + 'keyBytes' is null or has length == 0. + If has been called. + Failed to wrap the 'keyBytes'. + If the internal RSA algorithm is null. + + + + Provides Wrap key and Unwrap key services. + + + + + Initializes a new instance of the class used for wrap key and unwrap key. + The that will be used for crypto operations. + The KeyWrap algorithm to apply. + 'key' is null. + 'algorithm' is null. + If and algorithm pair are not supported. + The cannot be converted to byte array + The keysize doesn't match the algorithm. + Failed to create symmetric algorithm with provided key and algorithm. + + + + + Gets the KeyWrap algorithm that is being used. + + + + + Gets or sets a user context for a . + + This is null by default. This can be used by runtimes or for extensibility scenarios. + + + + Gets the that is being used. + + + + + Disposes of internal components. + + true, if called from Dispose(), false, if invoked inside a finalizer. + + + + Returns the . + + + The cannot be converted to byte array + The keysize doesn't match the algorithm. + Failed to create symmetric algorithm with provided key and algorithm. + + + + Answers if an algorithm is supported + + the + the algorithm to use + true if the algorithm is supported; otherwise, false. + + + + Unwrap a key using Symmetric decryption. + + bytes to unwrap + Unwraped key + 'keyBytes' is null or length == 0. + 'keyBytes' is not a multiple of 8. + If has been called. + Failed to unwrap the wrappedKey. + + + + Wrap a key using Symmetric encryption. + + the key to be wrapped + The wrapped key result + 'keyBytes' is null or has length 0. + 'keyBytes' is not a multiple of 8. + If has been called. + Failed to wrap 'keyBytes'. + + + + Returns the absolute DateTime or the Seconds since Unix Epoch, where Epoch is UTC 1970-01-01T0:0:0Z. + + + + + DateTime as UTV for UnixEpoch + + + + + Per JWT spec: + Gets the number of seconds from 1970-01-01T0:0:0Z as measured in UTC until the desired date/time. + + The DateTime to convert to seconds. + if dateTimeUtc less than UnixEpoch, return 0 + the number of seconds since Unix Epoch. + + + + Creates a DateTime from epoch time. + + Number of seconds. + The DateTime in UTC. + + + + This is an LRU cache implementation that relies on an event queue rather than locking to achieve thread safety. + This approach has been decided on in order to optimize the performance of the get and set operations on the cache. + This cache contains a doubly linked list in order to maintain LRU order, as well as a dictionary (map) to keep track of + keys and expiration times. The linked list (a structure which is not thread-safe) is NEVER modified directly inside + an API call (e.g. get, set, remove); it is only ever modified sequentially by a background thread. On the other hand, + the map is a which may be modified directly inside an API call or + through eventual processing of the event queue. This implementation relies on the principle of 'eventual consistency': + though the map and it's corresponding linked list may be out of sync at any given point in time, they will eventually line up. + See here for more details: + https://aka.ms/identitymodel/caching + + The key type to be used by the cache. + The value type to be used by the cache + + + + Constructor. + + The capacity of the cache, used to determine if experiencing overflow. + The event queue task creation option, default to None instead of LongRunning as LongRunning will always start a task on a new thread instead of ThreadPool. + The equality comparison implementation to be used by the map when comparing keys. + Whether or not to remove expired items. + The period to wait to remove expired items, in seconds. + Whether or not to maintain items in a LRU fashion, moving to front of list when accessed in the cache. + + + + Occurs when the application is ready to exit. + + The sender of the event. + The event argument. + + + + Occurs when an AppDomain is about to be unloaded. + + The sender of the event. + The event argument. + + + + Stop the event queue task. + This is provided mainly for users who have unit tests that check for running task(s) to stop the task at the end of each test. + + + + + Stop the event queue task immediately if it is running. This allows the task/thread to terminate gracefully. + Currently there is no unmanaged resource, if any is added in the future it should be disposed of in this method. + + + + + This is the delegate for the event queue task. + + + + + Remove all expired cache items from _doubleLinkedList and _map. + + Number of items removed. + + + + Remove all expired cache items from the _map ONLY. This is called for the non-LRU (_maintainLRU = false) scenaro. + The enumerator returned from the dictionary is safe to use concurrently with reads and writes to the dictionary, according to the MS document. + + Number of items removed. + + + + Remove items from the LinkedList by the desired compaction percentage. + This should be a private method. + + + + + Remove items from the Dictionary by the desired compaction percentage. + Since _map does not have LRU order, items are simply removed from using FirstOrDefault(). + + + + + When the cache is at _maxCapacityPercentage, it needs to be compacted by _compactionPercentage. + This method calculates the new size of the cache after being compacted. + + The new target cache size after compaction. + + + + This is the method that determines the end time for the event queue task. + The goal is to be able to track the incoming events and predict how long the task should run in order to + avoid a long running task and reduce the overhead costs of restarting tasks. + For example, maybe we can track the last three events' time and set the _eventQueueRunDurationInSeconds = 2 * average_time_between_events. + Note: tasks are based on thread pool so the overhead should not be huge but we should still try to minimize it. + + the time when the event queue task should end + + + + This method is called after an item is added to the event queue. It will start the event queue task if one is not already running (_eventQueueTaskState != EventQueueTaskRunning). + Using CompareExchange to set the _eventQueueTaskState prevents multiple tasks from being started. + + + + Each time a node gets accessed, it gets moved to the beginning (head) of the list if the _maintainLRU == true + + + Removes a particular key from the cache. + + + + FOR TESTING ONLY. + + + + + + FOR TESTING ONLY. + + + + + FOR TESTING ONLY. + + + + + FOR TESTING ONLY. + + + + + + FOR TESTING ONLY. + + + + + FOR TESTING PURPOSES ONLY. + This is for tests to verify all tasks exit at the end of tests if the queue is empty. + + + + + FOR TESTING PURPOSES ONLY. + + + + + Throw this exception when a received has invalid arguments. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class with a specified error message + and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The that is the cause of the current exception, or a null reference if no inner exception is specified. + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + Thrown when JWE compression fails. + + + + + Initializes a new instance of + + + + + Initializes a new instance of + + + + + Initializes a new instance of + + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + Thrown when JWE decompression fails. + + + + + Initializes a new instance of + + + + + Initializes a new instance of + + + + + Initializes a new instance of + + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + Represents a security token exception when decryption failed. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class with a specified error message + and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The that is the cause of the current exception, or a null reference if no inner exception is specified. + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + Represents a security token exception when encryption failed. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class with a specified error message + and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The that is the cause of the current exception, or a null reference if no inner exception is specified. + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + This exception is thrown when a security token contained a key identifier but the key was not found by the runtime + when decrypting a token. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + A that represents the root cause of the exception. + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + Represents a security token exception. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class with a specified error message + and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The that is the cause of the current exception, or a null reference if no inner exception is specified. + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + When overridden in a derived class, sets the System.Runtime.Serialization.SerializationInfo + with information about the exception. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + thrown if is null. + + + + Throw this exception when a received Security Token has expiration time in the past. + + + + + Gets or sets the Expires value that created the validation exception. This value is always in UTC. + + + + + Initializes a new instance of + + + + + Initializes a new instance of + + + + + Initializes a new instance of + + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + + + + This exception is thrown when a cryptographic algorithm is invalid. + + + + + Gets or sets the invalid algorithm that created the validation exception. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Additional information to be included in the exception and displayed to user. + + + + Initializes a new instance of the class. + + Additional information to be included in the exception and displayed to user. + A that represents the root cause of the exception. + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + + + + This exception is thrown when 'audience' of a token was not valid. + + + + + Gets or sets the InvalidAudience that created the validation exception. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + A that represents the root cause of the exception. + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + + + + This exception is thrown when 'issuer' of a token was not valid. + + + + + Gets or sets the InvalidIssuer that created the validation exception. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + A that represents the root cause of the exception. + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + + + + This exception is thrown when 'lifetime' of a token was not valid. + + + + + Gets or sets the NotBefore value that created the validation exception. This value is always in UTC. + + + + + Gets or sets the Expires value that created the validation exception. This value is always in UTC. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + A that represents the root cause of the exception. + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + + + + This exception is thrown when 'signature' of a token was not valid. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + A that represents the root cause of the exception. + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + Throw this exception when a received Security Token has an invalid issuer signing key. + + + + + Gets or sets the SigningKey that was found invalid. + + + + + Initializes a new instance of + + + + + Initializes a new instance of + + + + + Initializes a new instance of + + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + This exception is thrown when the token type ('typ' header claim) of a JWT token is invalid. + + + + + Gets or sets the invalid type that created the validation exception. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Additional information to be included in the exception and displayed to user. + + + + Initializes a new instance of the class. + + Additional information to be included in the exception and displayed to user. + A that represents the root cause of the exception. + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + + + + Represents a key wrap exception when encryption failed. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class with a specified error message + and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The that is the cause of the current exception, or a null reference if no inner exception is specified. + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + Represents a exception when the token is malformed. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class with a specified error message + and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The that is the cause of the current exception, or a null reference if no inner exception is specified. + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + This exception is thrown when a security is missing an ExpirationTime. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + A that represents the root cause of the exception. + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + Throw this exception when a received Security token has an effective time + in the future. + + + + + Gets or sets the NotBefore value that created the validation exception. This value is always in UTC. + + + + + Initializes a new instance of + + + + + Initializes a new instance of + + + + + Initializes a new instance of + + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + + + + This exception is thrown when an add to the TokenReplayCache fails. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + A that represents the root cause of the exception. + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + Throw this exception when a received Security Token has been replayed. + + + + + Initializes a new instance of + + + + + Initializes a new instance of + + + + + Initializes a new instance of + + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + This exception is thrown when a security token contained a key identifier but the key was not found by the runtime. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + A that represents the root cause of the exception. + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + This exception is thrown when a security token contained a key identifier but the key was not found by the runtime + and when validation errors exist over the security token. This exception is not intended to be used as a signal + to refresh keys. + + + This exception type is now considered obsolete and will be removed in the next major version (7.0.0). + + + + + Indicates the type of the validation failure. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The validation failures. + Addtional information to be included in the exception and displayed to user. + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + A that represents the root cause of the exception. + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + + + + Represents a security token validation exception. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class with a specified error message + and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The that is the cause of the current exception, or a null reference if no inner exception is specified. + + + + Initializes a new instance of the class. + + the that holds the serialized object data. + The contextual information about the source or destination. + + + + The reason for being unable to validate + + + + + Indicates no validation failures + + + + + Indicates that the lifetime was invalid + + + + + Indicates that the issuer was invalid + + + + + Compression provider interface. + + + + + Gets the compression algorithm. + + + + + Called to determine if an algorithm is supported. + + the algorithm that defines the compression method. + true if supported + + + + Decompress. + + the value to decompress. + + + + Compress. + + the value to decompress. + + + + Provides extensibility for cryptographic operators. + If custom operators are needed for then can be set to + return these operators. will be before each creation. + + + + + Called to determine if a cryptographic operation is supported. + + the algorithm that defines the cryptographic operator. + the arguments required by the cryptographic operator. May be null. + true if supported + + + + returns a cryptographic operator that supports the algorithm. + + the algorithm that defines the cryptographic operator. + the arguments required by the cryptographic operator. May be null. + call when finished with the object. + + + + called to release the object returned from + + the object returned from . + + + + Defines a cache for crypto providers. + Current support is limited to only. + + + + + Creates a new instance of using the default . + + + + + Creates a new instance of using the specified . + + The options used to configure the . + + + + Creates a new instance of using the specified . + + The options used to configure the . + Options used to create the event queue thread. + The time used in ms for the timeout interval of the event queue. Defaults to 500 ms. + + + + Returns the cache key to use when looking up an entry into the cache for a + + the to create the key for. + if signatureProvider is null. + the cache key to use for finding a . + + + + Returns the 'key' that will be used to find a crypto provider in this cache. + + the key that is used to by the crypto provider. + the algorithm that is used by the crypto provider. + the typeof the crypto provider obtained by calling object.GetType(). + if securityKey is null. + if algorithm is null or empty string. + if typeofProvider is null or empty string. + the cache key to use for finding a crypto provider. + + + + Trys to adds a to this cache. + + to cache. + if signatureProvider is null. + + true if the was added, false if the cache already contained the or if should not be cached. + + if the is added will be set to 'this'. + + + + Trys to find a to this cache. + + the key that is used to by the crypto provider. + the algorithm that is used by the crypto provider. + the typeof the crypto provider obtained by calling object.GetType(). + a bool to indicate if the will be used to sign. + the if found. + if securityKey is null. + if algorithm is null or empty string. + if typeofProvider is null or empty string. + true if a was found, false otherwise. + + + + Trys to remove a from this cache. + + to remove. + if signatureProvider is null. + true if the was removed, false if the was not found. + if the is removed will be set to null. + + + + Calls and + Note: the EventBasedLRUCache is no longer being disposed of, but since this is a public class and can be used as base class of + custom cache implementations, we need to keep it as some implementations may override Dispose(). + + + + + If is true, this method disposes of and . + + True if called from the method, false otherwise. + + + + FOR TESTING ONLY. + + + + + FOR TESTING ONLY. + + + + + FOR TESTING ONLY. + + + + + FOR TESTING ONLY. + + + + + FOR TESTING ONLY. + + + + + FOR TESTING ONLY. + + + + + FOR TESTING PURPOSES ONLY. + + + + + Validators meant to be kept internal + + + + + Called after signature validation has failed to avoid a metadata refresh + + + + + ISecurityTokenValidator + + + + + Returns true if the token can be read, false otherwise. + + + + + Returns true if a token can be validated. + + + + + Gets and sets the maximum size in bytes, that a will be processed. + + + + + Validates a token passed as a string using + + + + + Interface that defines a simple cache for tacking replaying of security tokens. + + + + + Try to add a securityToken. + + the security token to add. + the time when security token expires. + true if the security token was successfully added. + + + + Try to find securityToken + + the security token to find. + true if the security token is found. + + + + Constants for JsonWebAlgorithms "kty" Key Type (sec 6.1) + https://datatracker.ietf.org/doc/html/rfc7518#section-6.1 + + + + + Represents a JSON Web Key as defined in https://datatracker.ietf.org/doc/html/rfc7517. + + + + + Initializes an new instance of . + + + + + Returns a new instance of . + + A string that contains JSON Web Key parameters in JSON format. + + If 'json' is null or empty. + If 'json' fails to deserialize. + + + + Initializes an new instance of from a json string. + + A string that contains JSON Web Key parameters in JSON format. + If 'json' is null or empty. + If 'json' fails to deserialize. + + + + If this was converted to or from a SecurityKey, this field will be set. + + + + + If this was failed converted to a SecurityKey, this field will be set. + + + + + When deserializing from JSON any properties that are not defined will be placed here. + + + + + Gets or sets the 'alg' (KeyType). + + + + + Gets or sets the 'crv' (ECC - Curve). + + + + + Gets or sets the 'd' (ECC - Private Key OR RSA - Private Exponent). + + Value is formated as: Base64urlUInt + + + + Gets or sets the 'dp' (RSA - First Factor CRT Exponent). + + Value is formated as: Base64urlUInt + + + + Gets or sets the 'dq' (RSA - Second Factor CRT Exponent). + + Value is formated as: Base64urlUInt + + + + Gets or sets the 'e' (RSA - Exponent). + + + + + Gets or sets the 'k' (Symmetric - Key Value). + + Base64urlEncoding + + + + Gets the key id of this . + + + + + Gets the 'key_ops' (Key Operations). + + + + + Gets or sets the 'kid' (Key ID).. + + + + + Gets or sets the 'kty' (Key Type). + + + + + Gets or sets the 'n' (RSA - Modulus). + + Value is formatted as: Base64urlEncoding + + + + Gets or sets the 'oth' (RSA - Other Primes Info). + + + + + Gets or sets the 'p' (RSA - First Prime Factor).. + + Value is formatted as: Base64urlUInt + + + + Gets or sets the 'q' (RSA - Second Prime Factor).. + + Value is formatted as: Base64urlUInt + + + + Gets or sets the 'qi' (RSA - First CRT Coefficient).. + + Value is formatted as: Base64urlUInt + + + + Gets or sets the 'use' (Public Key Use).. + + + + + Gets or sets the 'x' (ECC - X Coordinate).. + + Value is formatted as: Base64urlEncoding + + + + Gets the 'x5c' collection (X.509 Certificate Chain).. + + + + + Gets or sets the 'x5t' (X.509 Certificate SHA-1 thumbprint).. + + + + + Gets or sets the 'x5t#S256' (X.509 Certificate SHA-256 thumbprint).. + + + + + Gets or sets the 'x5u' (X.509 URL).. + + + + + Gets or sets the 'y' (ECC - Y Coordinate).. + + Value is formatted as: Base64urlEncoding + + + + Gets the key size of . + + + + + Gets a bool indicating if a private key exists. + + true if it has a private key; otherwise, false. + + + + Determines whether the can compute a JWK thumbprint. + + true if JWK thumbprint can be computed; otherwise, false. + https://datatracker.ietf.org/doc/html/rfc7638 + + + + Computes the JWK thumprint per spec: https://datatracker.ietf.org/doc/html/rfc7638 />. + + A the JWK thumbprint. + + + + Creates a JsonWebKey representation of an asymmetric public key. + + JsonWebKey representation of an asymmetric public key. + https://datatracker.ietf.org/doc/html/rfc7800#section-3.2 + + + + Returns the formatted string: GetType(), Use: 'value', Kid: 'value', Kty: 'value', InternalId: 'value'. + + string + + + + Converts a into a + Supports: converting to a from one of: , , and . + + + + + Converts a into a + + a to convert. + a + if is null. + if is not a supported type. + Supports: , and . + + + + Converts a into a + + a to convert. + a + if is null. + + + + Converts a into a + + a to convert. + a + if is null. + + + + Converts a into a . + + a to convert. + + true to represent the as an , + false to represent the as an , using the "x5c" parameter. + + a . + if is null. + + + + Converts a into a + + a to convert. + a + if is null. + + + + Converts a into a + + an to convert. + a + if is null. + + + + Constants for JsonWebKey Elliptical Curve Types + https://datatracker.ietf.org/doc/html/rfc7518#section-6.2.1.1 + + + + + JsonWebKey parameter names + see: https://datatracker.ietf.org/doc/html/rfc7517 + + + + + JsonWebKey parameter names as UTF8 bytes + Used by UTF8JsonReader/Writer for performance gains. + + + + + Contains a collection of that can be populated from a json string. + + provides support for https://datatracker.ietf.org/doc/html/rfc7517. + + + + Returns a new instance of . + + a string that contains JSON Web Key parameters in JSON format. + + If 'json' is null or empty. + If 'json' fails to deserialize. + + + + Initializes an new instance of . + + + + + Initializes an new instance of from a json string. + + a json string containing values. + If 'json' is null or empty. + If 'json' fails to deserialize. + + + + When deserializing from JSON any properties that are not defined will be placed here. + + + + + Gets the . + + + + + Default value for the flag that controls whether unresolved JsonWebKeys will be included in the resulting collection of method. + + + + + Flag that controls whether unresolved JsonWebKeys will be included in the resulting collection of method. + + + + + Returns the JsonWebKeys as a . + + + To include unresolved JsonWebKeys in the resulting collection, set to false. + + + + + Names for Json Web Key Set Values + + + + + Constants for JsonWebKeyUse (sec 4.2) + https://datatracker.ietf.org/doc/html/rfc7517#section-4.2 + + + + + Creates a JsonException that provides information on what went wrong + + the . + the type the reader was expecting to find. + the name of the type being read. + the property name being read. + inner exception if any. + + + + + This method is called when deserializing a property value as an object. + Normally we put the object into a Dictionary[string, object]. + + the + the property name that is being read + the type that is being deserialized + if true reader.Read() will be called. + + + + + Writes an 'object' as a JsonProperty. + This was written to support what IdentityModel6x supported and is not meant to be a + general object serializer. + If a user needs to serialize a special value, then serialize the value into a JsonElement. + + + + + Writes values into an array. + Assumes the writer.StartArray() has been called. + + + + + + + Reads a JsonWebKey. see: https://datatracker.ietf.org/doc/html/rfc7517 + + a pointing at a StartObject. + + A . + + + + Reads a JsonWebKey. see: https://datatracker.ietf.org/doc/html/rfc7517 + + a pointing at a StartObject. + + A . + + + + This method will be used when reading OIDC metadata + + + + + + + Log messages and codes + + + + + Generic implementation of object pooling pattern with predefined pool size limit. The main + purpose is that limited number of frequently used objects can be kept in the pool for + further recycling. + + Notes: + 1) it is not the goal to keep all returned objects. Pool is not meant for storage. If there + is no space in the pool, extra returned objects will be dropped. + + 2) it is implied that if object was obtained from a pool, the caller will return it back in + a relatively short time. Keeping checked out objects for long durations is ok, but + reduces usefulness of pooling. Just new up your own. + + Not returning objects to the pool in not detrimental to the pool's work, but is a bad practice. + Rationale: + If there is no intent for reusing the object, do not use pool - just use "new". + + + + + Produces an instance. + + + Search strategy is a simple linear probing which is chosen for it cache-friendliness. + Note that Free will try to store recycled objects close to the start thus statistically + reducing how far we will typically search. + + + + + Returns objects to the pool. + + + Search strategy is a simple linear probing which is chosen for it cache-friendliness. + Note that Free will try to store recycled objects close to the start thus statistically + reducing how far we will typically search in Allocate. + + + + + Returns a string message for the specified Win32 error code. + + + + + Represents a Rsa security key. + + + + + Initializes a new instance of the class. + + + + + + Initializes a new instance of the class. + + + + + + Gets a bool indicating if a private key exists. + + true if it has a private key; otherwise, false. + + + + Gets an enum indicating if a private key exists. + + 'Exists' if private key exists for sure; 'DoesNotExist' if private key doesn't exist for sure; 'Unknown' if we cannot determine. + + + + Gets RSA key size. + + + + + used to initialize the key. + + + + + instance used to initialize the key. + + + + + Determines whether the can compute a JWK thumbprint. + + true if JWK thumbprint can be computed; otherwise, false. + https://datatracker.ietf.org/doc/html/rfc7638 + + + + Computes a sha256 hash over the . + + A JWK thumbprint. + https://datatracker.ietf.org/doc/html/rfc7638 + + + + Constants for Security Algorithm. + + + + + Base class for Security Key. + + + + + Default constructor + + + + + This must be overridden to get the size of this . + + + + + Gets the key id of this . + + + + + Gets or sets . + + + + + Returns the formatted string: GetType(), KeyId: 'value', InternalId: 'value'. + + string + + + + Determines whether the can compute a JWK thumbprint. + + true if JWK thumbprint can be computed; otherwise, false. + https://datatracker.ietf.org/doc/html/rfc7638 + + + + Computes a sha256 hash over the . + + A JWK thumbprint. + https://datatracker.ietf.org/doc/html/rfc7638 + + + + Checks if can perform the cryptographic operation specified by the with this . + + the algorithm to apply. + true if can perform the cryptographic operation sepecified by the with this . + + + + Contains information about the keys inside the tokens. + + + + + Base class for security token. + + + + + + + + This must be overridden to get the Id of this . + + + + + This must be overridden to get the issuer of this . + + + + + This must be overridden to get the . + + + + + This must be overridden to get or set the that signed this instance. + + .ValidateToken(...) can this value when a is used to successfully validate a signature. + + + + This must be overridden to get the time when this was Valid. + + + + + This must be overridden to get the time when this is no longer Valid. + + + + + Contains some information which used to create a security token. + + + + + Gets or sets the value of the 'audience' claim. + + + + + Defines the compression algorithm that will be used to compress the JWT token payload. + + + + + Gets or sets the used to create a encrypted security token. + + + + + Gets or sets the value of the 'expiration' claim. This value should be in UTC. + + + + + Gets or sets the issuer of this . + + + + + Gets or sets the time the security token was issued. This value should be in UTC. + + + + + Gets or sets the notbefore time for the security token. This value should be in UTC. + + + + + Gets or sets the token type. + If provided, this will be added as the value for the 'typ' header parameter. In the case of a JWE, this will be added to both the inner (JWS) and the outer token (JWE) header. By default, the value used is 'JWT'. + If also contains 'typ' header claim value, it will override the TokenType provided here. + This value is used only for JWT tokens and not for SAML/SAML2 tokens + + + + + Gets or sets the which represents the claims that will be used when creating a security token. + If both and are set, the claim values in Subject will be combined with the values + in Claims. The values found in Claims take precedence over those found in Subject, so any duplicate + values will be overridden. + + + + + Gets or sets the which contains any custom header claims that need to be added to the JWT token header. + The 'alg', 'kid', 'x5t', 'enc', and 'zip' claims are added by default based on the , + , and/or provided and SHOULD NOT be included in this dictionary as this + will result in an exception being thrown. + These claims are only added to the outer header (in case of a JWE). + + + + + Gets or sets the which contains any custom header claims that need to be added to the inner JWT token header. + The 'alg', 'kid', 'x5t', 'enc', and 'zip' claims are added by default based on the , + , and/or provided and SHOULD NOT be included in this dictionary as this + will result in an exception being thrown. + + For JsonWebTokenHandler, these claims are merged with while adding to the inner JWT header. + + + + + + Gets or sets the used to create a security token. + + + + + Gets or sets the . + If both and are set, the claim values in Subject will be combined with the values + in Claims. The values found in Claims take precedence over those found in Subject, so any duplicate + values will be overridden. + + + + + Defines the interface for a Security Token Handler. + + + + + Creates an instance of + + + + + Returns . + + + true if attached; otherwise, false. + + + + Returns . + + + + + + Gets a value indicating whether this handler supports validation of tokens + handled by this instance. + v + 'True' if the instance is capable of SecurityToken + validation. + + + + Gets a value indicating whether the class provides serialization functionality to serialize token handled + by this instance. + + true if the WriteToken method can serialize this token. + + + + This must be overridden to get the System.Type of the SecurityToken this instance handles. + + + + + Indicates whether the is positioned at an element that can be read. + + An reader positioned at a start element. The reader should not be advanced. + 'true' if the token can be read. + + + + Indicates whether the current token string can be read as a token + of the type handled by this instance. + + The token string thats needs to be read. + 'True' if the ReadToken method can parse the token string. + + + + Gets security token. + + . + SecurityToken instance which represents the serialized token. + + + + Serializes to string a token of the type handled by this instance. + + A token of type TokenType. + The serialized token. + + + + This must be overridden to serialize to XML a token of the type handled by this instance. + + The XML writer. + A token of type . + + + + This must be overridden to deserialize token with the provided . + + . + the current . + SecurityToken instance which represents the serialized token. + + + + This must be overridden to validate a token passed as a string using + + A token of type . + the current . + The token of type that was validated. + + + + Reads and validates a token using a xmlReader and + + A pointing at the start element of the token. + Contains data and information needed for validation. + The that was validated. + + + + Provides signature services, signing and verifying. + + + + + Maintains the number of external references + see: , , + + + + + Initializes a new instance of the class used to create and verify signatures. + + The that will be used for signature operations. + The signature algorithm to apply. + is null. + is null or empty. + + + + Gets the signature algorithm. + + + + + Gets or sets a user context for a . + + This is null by default. This is for use by the application and not used by this SDK. + + + + Gets or sets the that is associated with this + + + + + Calls and + + + + + Can be over written in descendants to dispose of internal components. + + true, if called from Dispose(), false, if invoked inside a finalizer + + + + Gets the . + + + + + For testing purposes + + + + + This must be overridden to produce a signature over the 'input'. + + bytes to sign. + signed bytes + + + Verifies that the over using the + and specified by this + are consistent. + the bytes that were signed. + signature to compare against. + true if the computed signature matches the signature parameter, false otherwise. + + + + Verifies that a signature created over the 'input' matches the signature. Using and 'algorithm' passed to . + + The bytes to verify. + offset in to input bytes to caculate hash. + number of bytes of signature to use. + signature to compare against. + offset into signature array. + how many bytes to verfiy. + true if computed signature matches the signature parameter, false otherwise. + 'input' is null. + 'signature' is null. + 'input.Length' == 0. + 'signature.Length' == 0. + 'length < 1' + 'offset + length > input.Length' + has been called. + + + + Gets or sets a bool indicating if this is expected to create signatures. + + + + + Defines the , algorithm and digest for digital signatures. + + + + + Initializes a new instance of the class. + + that will be used for signing. + Algorithm will be set to . + the 'digest method' if needed may be implied from the algorithm. For example implies Sha256. + if 'key' is null. + if 'algorithm' is null or empty. + + + + Initializes a new instance of the class. + + that will be used for signing. + The signature algorithm to apply. + the 'digest method' if needed may be implied from the algorithm. For example implies Sha256. + if 'certificate' is null. + if 'algorithm' is null or empty. + + + + Initializes a new instance of the class. + + . + The signature algorithm to apply. + the 'digest method' if needed may be implied from the algorithm. For example implies Sha256. + if 'key' is null. + if 'algorithm' is null or empty. + + + + Initializes a new instance of the class. + + . + The signature algorithm to apply. + The digest algorithm to apply. + if 'key' is null. + if 'algorithm' is null or empty. + if 'digest' is null or empty. + + + + Gets the signature algorithm. + + if 'value' is null or empty. + + + + Gets the digest algorithm. + + + + + Users can override the default with this property. This factory will be used for creating signature providers. + + This will have precedence over + + + + Gets the used for signature creation or validation. + + + + + Gets the key id associated with . + + + + + Defines the default set of algorithms this library supports + + + + + Creating a Signature requires the use of a . + This method returns the + that describes the to use when generating a Signature. + + The SignatureAlgorithm in use. + The to use. + if is null or whitespace. + if is not supported. + + + + Creating a Signature requires the use of a . + This method returns the HashAlgorithm string that is associated with a SignatureAlgorithm. + + The SignatureAlgorithm of interest. + if is null or whitespace. + if is not supported. + + + + Checks if an 'algorithm, key' pair is supported. + + the algorithm to check. + the . + true if 'algorithm, key' pair is supported. + + + + Represents a symmetric security key. + + + + + Returns a new instance of instance. + + The byte array of the key. + + + + Gets the key size. + + + + + Gets the byte array of the key. + + + + + Determines whether the can compute a JWK thumbprint. + + true if JWK thumbprint can be computed; otherwise, false. + https://datatracker.ietf.org/doc/html/rfc7638 + + + + Computes a sha256 hash over the . + + A JWK thumbprint. + https://datatracker.ietf.org/doc/html/rfc7638 + + + + Provides signing and verifying operations using a and specifying an algorithm. + + + + + Mapping from algorithm to the expected signature size in bytes. + + + + + This is the minimum .KeySize when creating and verifying signatures. + + + + + Initializes a new instance of the class that uses an to create and / or verify signatures over a array of bytes. + + The that will be used for signature operations. + The signature algorithm to use. + 'key' is null. + 'algorithm' is null or empty. + If and algorithm pair are not supported. + '.KeySize' is smaller than . + + + + Initializes a new instance of the class that uses an to create and / or verify signatures over a array of bytes. + + The that will be used for signature operations. + The signature algorithm to use. + indicates if this will be used to create signatures. + 'key' is null. + 'algorithm' is null or empty. + If and algorithm pair are not supported. + '.KeySize' is smaller than . + + + + Gets or sets the minimum .KeySize"/>. + + 'value' is smaller than . + + + + Called to obtain the byte[] needed to create a + + that will be used to obtain the byte[]. + [] that is used to populated the KeyedHashAlgorithm. + if key is null. + if a byte[] can not be obtained from SecurityKey. + and are supported. + For a .Key is returned + For a Base64UrlEncoder.DecodeBytes is called with if == JsonWebAlgorithmsKeyTypes.Octet + + + + + Returns a . + This method is called just before a cryptographic operation. + This provides the opportunity to obtain the from an object pool. + If this method is overridden, it is importont to override + if custom releasing of the is desired. + + The hash algorithm to use to create the hash value. + The byte array of the key. + An instance of + + + + For testing purposes + + + + + This method is called just after the cryptographic operation. + If was overridden this method can be overridden for + any custom handling such as returning the to an object pool. + + The " in use. + + + + Produces a signature over the 'input' using the and 'algorithm' passed to . + + The bytes to sign. + Signed bytes + 'input' is null. + 'input.Length' == 0. + has been called. + is null. This can occur if a derived type deletes it or does not create it. + Sign is thread safe. + + + + Verifies that a signature created over the 'input' matches the signature. Using and 'algorithm' passed to . + + The bytes to verify. + signature to compare against. + true if computed signature matches the signature parameter, false otherwise. + 'input' is null. + 'signature' is null. + 'input.Length' == 0. + 'signature.Length' == 0. + has been called. + If the internal is null. This can occur if a derived type deletes it or does not create it. + Verify is thread safe. + + + + Verifies that a signature created over the 'input' matches the signature. Using and 'algorithm' passed to . + + The bytes to verify. + signature to compare against. + number of bytes of signature to use. + true if computed signature matches the signature parameter, false otherwise. + 'input' is null. + 'signature' is null. + 'input.Length' == 0. + 'signature.Length' == 0. + 'length < 1' + has been called. + If the internal is null. This can occur if a derived type deletes it or does not create it. + + + + + + + This internal method is called from the AuthenticatedEncryptionProvider which passes in the algorithm that defines the size expected for the signature. + The reason is the way the AuthenticationTag is validated. + For example when "A128CBC-HS256" is specified, SHA256 will used to create the HMAC and 32 bytes will be generated, but only the first 16 will be validated. + + The bytes to verify. + offset in to input bytes to caculate hash. + number of bytes of signature to use. + signature to compare against. + offset into signature array. + how many bytes to verfiy. + algorithm passed by AuthenticatedEncryptionProvider. + true if computed signature matches the signature parameter, false otherwise. + + + + Disposes of internal components. + + true, if called from Dispose(), false, if invoked inside a finalizer. + + + + An opaque context used to store work when working with authentication artifacts. + + + + + Instantiates a new with a default activity ID. + + + + + Instantiates a new with an activity ID. + + + + + Defines properties shared across all security token handlers. + + + + + Default lifetime of tokens created. When creating tokens, if 'expires', 'notbefore' or 'issuedat' are null, + then a default will be set to: issuedat = DateTime.UtcNow, notbefore = DateTime.UtcNow, expires = DateTime.UtcNow + TimeSpan.FromMinutes(TokenLifetimeInMinutes). + + See: for configuration. + + + + Gets and sets the maximum token size in bytes that will be processed. + + 'value' less than 1. + + + + Gets or sets a bool that controls if token creation will set default 'exp', 'nbf' and 'iat' if not specified. + + See: for configuration. + + + + Gets or sets the token lifetime in minutes. + + Used during token creation to set the default expiration ('exp'). + 'value' less than 1. + + + + Validates a token. + On a validation failure, no exception will be thrown; instead, the exception will be set in the returned TokenValidationResult.Exception property. + Callers should always check the TokenValidationResult.IsValid property to verify the validity of the result. + + The token to be validated. + A required for validation. + A + + + + Validates a token. + On a validation failure, no exception will be thrown; instead, the exception will be set in the returned TokenValidationResult.Exception property. + Callers should always check the TokenValidationResult.IsValid property to verify the validity of the result. + + The to be validated. + A required for validation. + A + + + + Converts a string into an instance of . + + The string to be deserialized. + is null or empty. + 'token.Length' is greater than . + A . + + + + Called by base class to create a . + Currently only used by the JsonWebTokenHandler to allow for a Lazy creation. + + the that has the Claims. + the that was used to validate the token. + the 'issuer' to use by default when creating a Claim. + A . + + + + + A class which contains useful methods for processing tokens. + + + + + A URI that represents the JSON XML data type. + + When mapping json to .Net Claim(s), if the value was not a string (or an enumeration of strings), the ClaimValue will serialized using the current JSON serializer, a property will be added with the .Net type and the ClaimTypeValue will be set to 'JsonClaimValueType'. + + + + A URI that represents the JSON array XML data type. + + When mapping json to .Net Claim(s), if the value was not a string (or an enumeration of strings), the ClaimValue will serialized using the current JSON serializer, a property will be added with the .Net type and the ClaimTypeValue will be set to 'JsonClaimValueType'. + + + + A URI that represents the JSON null data type + + When mapping json to .Net Claim(s), we use empty string to represent the claim value and set the ClaimValueType to JsonNull + + + + Creates a dictionary from a list of Claim's. + + A list of claims. + A Dictionary representing claims. + + + + Returns all provided in and . + + The that contains signing keys used for validation. + A required for validation. + Returns all provided in provided in and . + + + + Merges claims. If a claim with same type exists in both and , the one in claims will be kept. + + Collection of 's. + Collection of 's. + A Merged list of 's. + + + + Check whether the given exception type is recoverable by LKG. + + The exception to check. + true if the exception is certain types of exceptions otherwise, false. + + + + Check whether the given configuration is recoverable by LKG. + + The kid from token."/> + The to check. + The LKG exception to check. + The exception to check. + true if the configuration is recoverable otherwise, false. + + + + Definition for AlgorithmValidator + + The algorithm to validate. + The that signed the . + The being validated. + required for validation. + true if the algorithm is considered valid + + + + Definition for AudienceValidator. + + The audiences found in the . + The being validated. + required for validation. + true if the audience is considered valid. + + + + Definition for IssuerSigningKeyResolver. + + The representation of the token that is being validated. + The that is being validated. It may be null. + A key identifier. It may be null. + required for validation. + A to use when validating a signature. + If both and are set, IssuerSigningKeyResolverUsingConfiguration takes + priority. + + + + Definition for IssuerSigningKeyResolverUsingConfiguration. + + The representation of the token that is being validated. + The that is being validated. It may be null. + A key identifier. It may be null. + required for validation. + required for validation. + A to use when validating a signature. + If both and are set, IssuerSigningKeyResolverUsingConfiguration takes + priority. + + + + Definition for IssuerSigningKeyValidator. + + The that signed the . + The being validated. + required for validation. + If both and are set, IssuerSigningKeyResolverUsingConfiguration takes + priority. + + + + Definition for IssuerSigningKeyValidatorUsingConfiguration. + + The that signed the . + The being validated. + required for validation. + required for validation. + If both and are set, IssuerSigningKeyResolverUsingConfiguration takes + priority. + + + + Definition for IssuerValidator. + + The issuer to validate. + The that is being validated. + required for validation. + The issuer to use when creating the "Claim"(s) in a "ClaimsIdentity". + The delegate should return a non null string that represents the 'issuer'. If null a default value will be used. + If both and are set, IssuerValidatorUsingConfiguration takes + priority. + + + + Definition for IssuerValidatorUsingConfiguration. + + The issuer to validate. + The that is being validated. + required for validation. + required for validation. + The issuer to use when creating the "Claim"(s) in a "ClaimsIdentity". + The delegate should return a non null string that represents the 'issuer'. If null a default value will be used. + If both and are set, IssuerValidatorUsingConfiguration takes + priority. + + + + + Definition for IssuerValidatorAsync. Left internal for now while we work out the details of async validation for all delegates. + + The issuer to validate. + The that is being validated. + required for validation. + The issuer to use when creating the "Claim"(s) in a "ClaimsIdentity". + The delegate should return a non null string that represents the 'issuer'. If null a default value will be used. + if set, will be called before or + + + + + Definition for LifetimeValidator. + + The 'notBefore' time found in the . + The 'expiration' time found in the . + The being validated. + required for validation. + + + + Definition for TokenReplayValidator. + + The 'expiration' time found in the . + The being validated. + required for validation. + + + + + Definition for SignatureValidator. + + A securityToken with a signature. + required for validation. + + + + Definition for SignatureValidator. + + A securityToken with a signature. + required for validation. + The that is required for validation. + + + + Definition for TokenReader. + + A securityToken with a signature. + required for validation. + + + + Definition for TokenDecryptionKeyResolver. + + The representation of the token to be decrypted. + The to be decrypted. The runtime by default passes null. + A key identifier. It may be null. + required for validation. + A to use when decrypting the token. + + + + Definition for TypeValidator. + + The token type to validate. + The that is being validated. + required for validation. + The actual token type, that may be the same as or a different value if the token type was resolved from a different location. + + + + Definition for TransformBeforeSignatureValidation. + + The that is being validated. + required for validation. + A transformed . + + + + Contains a set of parameters that are used by a when validating a . + + + + + This is the default value of when creating a . + The value is "AuthenticationTypes.Federation". + To change the value, set to a different value. + + + + + Default for the clock skew. + + 300 seconds (5 minutes). + + + + Default for the maximum token size. + + 250 KB (kilobytes). + + + + Copy constructor for . + + + + + Initializes a new instance of the class. + + + + + Gets or sets . + + + + + Gets or sets a delegate used to validate the cryptographic algorithm used. + + + If set, this delegate will validate the cryptographic algorithm used and + the algorithm will not be checked against . + + + + + Gets or sets a delegate that will be used to validate the audience. + + + If set, this delegate will be called to validate the 'audience', instead of default processing. + This means that no default 'audience' validation will occur. + Even if is false, this delegate will still be called. + + + + + Gets or sets the AuthenticationType when creating a . + + If 'value' is null or whitespace. + + + + Gets or sets the clock skew to apply when validating a time. + + If 'value' is less than 0. + The default is 300 seconds (5 minutes). + + + + Returns a new instance of with values copied from this object. + + A new object copied from this object + This is a shallow Clone. + + + + Creates a using: + + 'NameClaimType': If NameClaimTypeRetriever is set, call delegate, else call NameClaimType. If the result is a null or empty string, use . + 'RoleClaimType': If RoleClaimTypeRetriever is set, call delegate, else call RoleClaimType. If the result is a null or empty string, use . + + A with Authentication, NameClaimType and RoleClaimType set. + + + + If set, this property will be used to obtain the issuer and signing keys associated with the metadata endpoint of . + The obtained issuer and signing keys will then be used along with those present on the TokenValidationParameters for validation of the incoming token. + + + + + Users can override the default with this property. This factory will be used for creating signature providers. + + + + + Gets or sets a string that helps with setting breakpoints when debugging. + + + + + Gets or sets a boolean that controls if a '/' is significant at the end of the audience. + The default is true. + + + + + Gets or sets the flag that indicates whether to include the when the validation fails. + + + + + Gets or sets a delegate for validating the that signed the token. + + + If set, this delegate will be called to validate the that signed the token, instead of default processing. + This means that no default validation will occur. + Even if is false, this delegate will still be called. + If both and are set, IssuerSigningKeyResolverUsingConfiguration takes + priority. + + + + + Gets or sets a delegate for validating the that signed the token. + + + If set, this delegate will be called to validate the that signed the token, instead of default processing. + This means that no default validation will occur. + Even if is false, this delegate will still be called. + This delegate should be used if properties from the configuration retrieved from the authority are necessary to validate the + issuer signing key. + If both and are set, IssuerSigningKeyValidatorUsingConfiguration takes + priority. + + + + + Gets a that is unique to this instance. + Calling will result in a new instance of this IDictionary. + + + + + Gets a value indicating if was called to obtain this instance. + + + + + Gets or sets the that is to be used for signature validation. + + + + + Gets or sets a delegate that will be called to retrieve a used for signature validation. + + + This will be used to check the signature. This can be helpful when the does not contain a key identifier. + If both and are set, IssuerSigningKeyResolverUsingConfiguration takes + priority. + + + + + Gets or sets a delegate that will be called to retrieve a used for signature validation using the + and . + + + This will be used to check the signature. This can be helpful when the does not contain a key identifier. + This delegate should be used if properties from the configuration retrieved from the authority are necessary to resolve the + issuer signing key. + If both and are set, IssuerSigningKeyResolverUsingConfiguration takes + priority. + + + + + Gets or sets an used for signature validation. + + + + + Gets or sets a delegate that will be used to validate the issuer of the token. + + + If set, this delegate will be called to validate the 'issuer' of the token, instead of default processing. + This means that no default 'issuer' validation will occur. + Even if is false, this delegate will still be called. + If both and are set, IssuerValidatorUsingConfiguration takes + priority. + + + + + Gets or sets a delegate that will be used to validate the issuer of the token. + + + If set, this delegate will be called to validate the 'issuer' of the token, instead of default processing. + This means that no default 'issuer' validation will occur. + Even if is false, this delegate will still be called. + IssuerValidatorAsync takes precedence over and . + + + + + Gets or sets a delegate that will be used to validate the issuer of the token. + + + If set, this delegate will be called to validate the 'issuer' of the token, instead of default processing. + This means that no default 'issuer' validation will occur. + Even if is false, this delegate will still be called. + This delegate should be used if properties from the configuration retrieved from the authority are necessary to validate the issuer. + If both and are set, IssuerValidatorUsingConfiguration takes + priority. + + + + + Gets or sets a delegate that will be called to transform a token to a supported format before validation. + + + + + Gets or sets a delegate that will be used to validate the lifetime of the token + + + If set, this delegate will be called to validate the lifetime of the token, instead of default processing. + This means that no default lifetime validation will occur. + Even if is false, this delegate will still be called. + + + + + Gets or sets a that will decide if the token identifier claim needs to be logged. + Default value is true. + + + + + Gets or sets a that will decide if validation failure needs to be logged as an error. + Default value is true for backward compatibility of the behavior. + If set to false, validation failures are logged as Information and then thrown. + + + + + Gets or sets a that defines the . + + + Controls the value returns. It will return the first where the equals . + The default is . + + + + + Gets or sets a delegate that will be called to set the property after validating a token. + + + The function will be passed: + The that is being validated. + The issuer associated with the token. + Returns the value that will set the property . + + + + + Gets or sets the that contains a collection of custom key/value pairs. This allows addition of parameters that could be used in custom token validation scenarios. + + + + + Gets or sets a boolean to control if configuration required to be refreshed before token validation. + + + The default is false. + + + + + Gets or sets a value indicating whether SAML tokens must have at least one AudienceRestriction. + The default is true. + + + + + Gets or sets a value indicating whether tokens must have an 'expiration' value. + The default is true. + + + + + Gets or sets a value indicating whether a can be considered valid if not signed. + The default is true. + + + + + Gets or sets the that defines the . + + + Controls the results of . + Each where == will be checked for a match against the 'string' passed to . + The default is . + + + + + Gets or sets a delegate that will be called to set the property after validating a token. + + + The function will be passed: + The that is being validated. + The issuer associated with the token. + Returns the value that will set the property . + + + + + Gets or sets a boolean to control if the original token should be saved after the security token is validated. + + The runtime will consult this value and save the original token that was validated. + The default is false. + + + + + Gets or sets a delegate that will be used to validate the signature of the token. + + + If set, this delegate will be called to signature of the token, instead of default processing. + + + + + Gets or sets a delegate that will be used to validate the signature of the token using the and + the . + + + If set, this delegate will be called to signature of the token, instead of default processing. + + + + + Gets or sets the that is to be used for decryption. + + + + + Gets or sets a delegate that will be called to retreive a used for decryption. + + + This will be used to decrypt the token. This can be helpful when the does not contain a key identifier. + + + + + Gets or sets the that is to be used for decrypting inbound tokens. + + + + + Gets or sets a delegate that will be used to read the token. + + + If set, this delegate will be called to read the token instead of default processing. + + + + + Gets or set the that store tokens that can be checked to help detect token replay. + + If set, then tokens must have an expiration time or the runtime will fault. + + + + Gets or sets a delegate that will be used to validate the token replay of the token + + + If set, this delegate will be called to validate the token replay of the token, instead of default processing. + This means no default token replay validation will occur. + Even if is false, this delegate will still be called. + + + + + Gets or sets a value indicating whether all should be tried during signature validation when a key is not matched to token kid or if token kid is empty. + The default is true. + + + + + Gets or sets a delegate that will be used to validate the type of the token. + If the token type cannot be validated, an exception MUST be thrown by the delegate. + Note: the 'type' parameter may be null if it couldn't be extracted from its usual location. + Implementations that need to resolve it from a different location can use the 'token' parameter. + + + If set, this delegate will be called to validate the 'type' of the token, instead of default processing. + This means that no default 'type' validation will occur. + + + + + Gets or sets a value indicating if an actor token is detected, whether it should be validated. + The default is false. + + + + + Gets or sets a boolean to control if the audience will be validated during token validation. + + Validation of the audience, mitigates forwarding attacks. For example, a site that receives a token, could not replay it to another side. + A forwarded token would contain the audience of the original site. + This boolean only applies to default audience validation. If is set, it will be called regardless of whether this + property is true or false. + The default is true. + + + + + Gets or sets a boolean to control if the issuer will be validated during token validation. + + + Validation of the issuer mitigates forwarding attacks that can occur when an + IdentityProvider represents multiple tenants and signs tokens with the same keys. + It is possible that a token issued for the same audience could be from a different tenant. For example an application could accept users from + contoso.onmicrosoft.com but not fabrikam.onmicrosoft.com, both valid tenants. An application that accepts tokens from fabrikam could forward them + to the application that accepts tokens for contoso. + This boolean only applies to default issuer validation. If is set, it will be called regardless of whether this + property is true or false. + The default is true. + + + + + Gets or sets a boolean to control if the LKG configuration will be used for token validation. + + + The default is false. + + + + + Gets or sets a boolean that controls if validation of the that signed the securityToken is called. + + It is possible for tokens to contain the public key needed to check the signature. For example, X509Data can be hydrated into an X509Certificate, + which can be used to validate the signature. In these cases it is important to validate the SigningKey that was used to validate the signature. + This boolean only applies to default signing key validation. If is set, it will be called regardless of whether this + property is true or false. + The default is false. + + + + + Gets or sets a boolean to control if the lifetime will be validated during token validation. + + + This boolean only applies to default lifetime validation. If is set, it will be called regardless of whether this + property is true or false. + The default is true. + + + + + Gets or sets a boolean that controls the validation order of the payload and signature during token validation. + + If is set to true, it will validate payload ahead of signature. + The default is false. + + + + + Gets or sets a boolean to control if the token replay will be validated during token validation. + + + This boolean only applies to default token replay validation. If is set, it will be called regardless of whether this + property is true or false. + The default is false. + + + + + Gets or sets the valid algorithms for cryptographic operations. + + + If set to a non-empty collection, only the algorithms listed will be considered valid. + The default is null. + + + + + Gets or sets a string that represents a valid audience that will be used to check against the token's audience. + The default is null. + + + + + Gets or sets the that contains valid audiences that will be used to check against the token's audience. + The default is null. + + + + + Gets or sets a that represents a valid issuer that will be used to check against the token's issuer. + The default is null. + + + + + Gets or sets the that contains valid issuers that will be used to check against the token's issuer. + The default is null. + + + + + Gets or sets the that contains valid types that will be used to check against the JWT header's 'typ' claim. + If this property is not set, the 'typ' header claim will not be validated and all types will be accepted. + In the case of a JWE, this property will ONLY apply to the inner token header. + The default is null. + + + + + Contains artifacts obtained when a SecurityToken is validated. + A SecurityTokenHandler returns an instance that captures the results of validating a token. + + + + + Creates an instance of + + + + + This ctor is used by the JsonWebTokenHandler as part of delaying creation of ClaimsIdentity. + + + + + + + + + The created from the validated security token. + + + + + The created from the validated security token. + + + + + Gets or sets the without synchronization. All accesses must either + be protected or used when the caller knows access is serialized. + + + + Gets the object to use in for double-checked locking. + + + + Gets or sets the that occurred during validation. + + + + + Gets or sets the issuer that was found in the token. + + + + + True if the token was successfully validated, false otherwise. + + + + + Gets or sets the that contains a collection of custom key/value pairs. This allows addition of data that could be used in custom scenarios. This uses for case-sensitive comparison of keys. + + + + + Gets or sets the that was validated. + + + + + The to be returned when validation fails. + + + + + Gets or sets the that contains call information. + + + + + Gets or sets the token type of the that was validated. + When a is registered, + the type returned by the delegate is used to populate this property. + Otherwise, the type is resolved from the token itself, if available + (e.g for a JSON Web Token, from the "typ" header). + + + + + Generates unique IDs. + + + + + Creates a unique ID suitable for use in an xml:id field. The value is + not hard to guess but is unique. + + The unique ID. + + + + Creates a unique ID similar to that created by CreateNonRandomId, + but instead of an underscore, the supplied prefix is used. + + The prefix to use. + The unique ID, with the given prefix. + + + + Creates a unique, random ID suitable for use in an xml:id field. The + value is hard to guess and unique. + + The unique ID. + + + + Creates a unique, random ID similar to that created by CreateRandomId, + but instead of an underscore, the supplied prefix is used. + + The prefix to use. + The random URI. + + + + Creates a unique, random ID suitable for use as a URI. The value is + hard to guess and unique. The URI is in the urn:uuid: namespace. + + The random URI. + + + + Contains some utility methods. + + + + + A string with "empty" value. + + + + + A string with "null" value. + + + + + Creates a copy of the byte array. + + The resource array. + A copy of the byte array. + + + + Serializes the list of strings into string as follows: + 'str1','str2','str3' ... + + + The strings used to build a comma delimited string. + + + The single . + + + + + Returns whether the input string is https. + + The input string. + true if the input string is https; otherwise, false. + + + + Returns whether the input uri is https. + + . + true if the input uri is https; otherwise, false. + + + + Compares two byte arrays for equality. Hash size is fixed normally it is 32 bytes. + The attempt here is to take the same time if an attacker shortens the signature OR changes some of the signed contents. + + + One set of bytes to compare. + + + The other set of bytes to compare with. + + + true if the bytes are equal, false otherwise. + + + + + Compares two byte spans for equality. Hash size is fixed normally it is 32 bytes. + The attempt here is to take the same time if an attacker shortens the signature OR changes some of the signed contents. + + + One set of bytes to compare. + + + The other set of bytes to compare with. + + length of spans to check + + true if the bytes are equal, false otherwise. + + + + + AudienceValidator + + + + + Validates if a given algorithm for a is valid. + + The algorithm to be validated. + The that signed the . + The being validated. + required for validation. + + + + Determines if the audiences found in a are valid. + + The audiences found in the . + The being validated. + required for validation. + If 'validationParameters' is null. + If 'audiences' is null and is true. + If is null or whitespace and is null. + If none of the 'audiences' matched either or one of . + An EXACT match is required. + + + + Determines if an issuer found in a is valid. + + The issuer to validate + The that is being validated. + required for validation. + The issuer to use when creating the "Claim"(s) in a "ClaimsIdentity". + If 'validationParameters' is null. + If 'issuer' is null or whitespace and is true. + If is null or whitespace and is null. + If 'issuer' failed to matched either or one of . + An EXACT match is required. + + + + Determines if an issuer found in a is valid. + + The issuer to validate + The that is being validated. + required for validation. + The required for issuer and signing key validation. + The issuer to use when creating the "Claim"(s) in a "ClaimsIdentity". + If 'validationParameters' is null. + If 'issuer' is null or whitespace and is true. + If ' configuration' is null. + If is null or whitespace and is null and is null. + If 'issuer' failed to matched either or one of or . + An EXACT match is required. + + + + Determines if an issuer found in a is valid. + + The issuer to validate + The that is being validated. + required for validation. + The required for issuer and signing key validation. + The issuer to use when creating the "Claim"(s) in a "ClaimsIdentity". + If 'validationParameters' is null. + If 'issuer' is null or whitespace and is true. + If ' configuration' is null. + If is null or whitespace and is null and is null. + If 'issuer' failed to matched either or one of or . + An EXACT match is required. + + + + Validates the that signed a . + + The that signed the . + The being validated. + required for validation. + if 'securityKey' is null and ValidateIssuerSigningKey is true. + if 'securityToken' is null and ValidateIssuerSigningKey is true. + if 'validationParameters' is null. + + + + Validates the that signed a . + + The that signed the . + The being validated. + required for validation. + The required for issuer and signing key validation. + if 'securityKey' is null and ValidateIssuerSigningKey is true. + if 'securityToken' is null and ValidateIssuerSigningKey is true. + if 'validationParameters' is null. + + + + Given a signing key, when it's derived from a certificate, validates that the certificate is already active and non-expired + + The that signed the . + The that are used to validate the token. + + + + Validates the lifetime of a . + + The 'notBefore' time found in the . + The 'expiration' time found in the . + The being validated. + required for validation. + If 'validationParameters' is null. + If 'expires.HasValue' is false and is true. + If 'notBefore' is > 'expires'. + If 'notBefore' is > DateTime.UtcNow. + If 'expires' is < DateTime.UtcNow. + All time comparisons apply . + + + + Validates if a token has been replayed. + + When does the security token expire. + The being validated. + required for validation. + If 'securityToken' is null or whitespace. + If 'validationParameters' is null or whitespace. + If is not null and expirationTime.HasValue is false. When a TokenReplayCache is set, tokens require an expiration time. + If the 'securityToken' is found in the cache. + If the 'securityToken' could not be added to the . + + + + Validates if a token has been replayed. + + The being validated. + When does the security token expire. + required for validation. + If 'securityToken' is null or whitespace. + If 'validationParameters' is null or whitespace. + If is not null and expirationTime.HasValue is false. When a TokenReplayCache is set, tokens require an expiration time. + If the 'securityToken' is found in the cache. + If the 'securityToken' could not be added to the . + + + + Validates the type of the token. + + The token type or null if it couldn't be resolved (e.g from the 'typ' header for a JWT). + The that is being validated. + required for validation. + If is null. + If is null. + If is null or whitespace and is not null. + If failed to match . + An EXACT match is required. (case sensitive) is used for comparing against . + The actual token type, that may be the same as or a different value if the token type was resolved from a different location. + + + + An designed to construct based on a x509 certificate. + + + + + Designed to construct based on a x509 certificate. + + A + + will be used as the key wrap algorithm + will be used as the data encryption algorithm + + if 'certificate' is null. + + + + Designed to construct based on the x509 certificate, a key wrap algorithm, and data encryption algorithm. + + A + A key wrap algorithm + Data encryption algorithm + if 'certificate' is null. + if 'keyWrapAlgorithm' is null or empty. + if 'dataEncryptionAlgorithm' is null or empty. + + + + Gets the used by this instance. + + + + + An that is backed by a + + + + + Instantiates a using a + + The to use. + if is null. + + + + Instantiates a using a . + + The to use. + The value to set for the KeyId + if is null. + if is null or empty. + + + + Gets the key size. + + + + + Gets the X5t of this . + + + + + Returns the private key from the . + + + + + Gets the public key from the . + + + + + Gets a bool indicating if a private key exists. + + true if it has a private key; otherwise, false. + + + + Gets an enum indicating if a private key exists. + + 'Exists' if private key exists for sure; 'DoesNotExist' if private key doesn't exist for sure; 'Unknown' if we cannot determine. + + + + Gets the . + + + + + Determines whether the can compute a JWK thumbprint. + + true if JWK thumbprint can be computed; otherwise, false. + https://datatracker.ietf.org/doc/html/rfc7638 + + + + Computes a sha256 hash over the . + + A JWK thumbprint. + https://datatracker.ietf.org/doc/html/rfc7638 + + + + Returns a bool indicating if this key is equivalent to another key. + + true if the keys are equal; otherwise, false. + + + + Returns an int hash code. + + An int hash code + + + + Defines the , algorithm and digest for digital signatures. + + + + + Initializes a new instance of the class. + + that will be used for signing. + Algorithm will be set to . + the 'digest method' if needed may be implied from the algorithm. For example implies Sha256. + if 'certificate' is null. + + + + Initializes a new instance of the class. + + A that will be used for signing. + The signature algorithm to apply. + the 'digest method' if needed may be implied from the algorithm. For example implies Sha256. + if 'certificate' is null. + if 'algorithm' is null or empty. + + + + Gets the used by this instance. + + + + diff --git a/Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/lib/netstandard2.0/Microsoft.IdentityModel.Tokens.xml.meta b/Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/lib/netstandard2.0/Microsoft.IdentityModel.Tokens.xml.meta new file mode 100644 index 0000000..99846c1 --- /dev/null +++ b/Game/Assets/Supabase/Microsoft.IdentityModel.Tokens.7.0.3/lib/netstandard2.0/Microsoft.IdentityModel.Tokens.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 4fd325377f6582542aaec3ec1420f4a4 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/MimeMapping.2.0.0.meta b/Game/Assets/Supabase/MimeMapping.2.0.0.meta new file mode 100644 index 0000000..530ecb6 --- /dev/null +++ b/Game/Assets/Supabase/MimeMapping.2.0.0.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 4f67a58b98d808048833fd9da8a88e17 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/MimeMapping.2.0.0/.signature.p7s b/Game/Assets/Supabase/MimeMapping.2.0.0/.signature.p7s new file mode 100644 index 0000000000000000000000000000000000000000..1df43ee75374c612215b641753586a0a3ef9a333 GIT binary patch literal 11512 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

-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

#TpbV} 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

Ex0 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

  • *4_mT0cF=#ieATW2FI~n+Gy=?E;<2O;knO12XZm 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

    yh$!R}Fk*z1DPPX? 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

    u6Vs=-TdV>y_H&y0~v2&;#mIQ z2=8UZSvQye3HhIK6NN~#BfKY|T@S}OT}PSlF5m$!r^`GuYuuxqa-G3CxvjI$JmH*- zC|HJ_LZG18`Q!;#Nd#<&6NnXr15xI!yFe{A6OPcS6lTDqbt=^v@JyXbj`i8n zV>CrZ+@UaUZHRjmKFO!hW2BanA$b@rRB*XN&umG#;I(X-MeStX&XO%~=kAo~U4a_d zgn+PsGyXO*FTV-gEHcWHcR^`Nc~1LcI&kc7N`u`oO#HSJ=RpEnZ^YZ|aK%|*UM9zD zGIa3orEtn*F`>*-G9wodvdLf56TY^x?ElRw+%V$SUOqHfi5(KDY>%L=3X*#|qNa*KYFS(jGxz>`5>G$Z%s?#72p1C|x}`B6GD@*m744yi(aux2Sqe^)k}AMg1=k11y8Y5%XStE+sKHlK*CKSIO!xR7HH zwT=s%*x+59E(AV=zu*6J>+EVwh0S|n_76~4%u$NEp5b?`H-NKr|J9hYqGB4_@W=yu zX#x8Nl`Zf2g>N`C{cQvnrt?~)@+j(WjR)|z`^Tu_7P8-cGJe3$5sD6~Nj&A}>oK3f zM#%8}3tJNN#-peg4HtU+&JwiX0-H1$Gm}@g-_&E^%G82?1bb6MpXrjQS8c<$rT&BV z2Lb!Y@H_PnTF7E>5n*GI`p^q%t99+J)5A@ z92dZm?JBG)J&tJeqv;du2zxy%`z`bc?ZUR_D(x@IKaveSP?uhMt}3@>H{bFN$Z*g) zzI1%UVUZ(U@i}laDga15wCo@7k@WIQojdcpt>*joRFH0M+l?@U}*XCcr4p1#kK?`ll7O*&ES6XkC#SHOg7 z_^EQPdhj(=7Rz8B5JtI58 zv!gWa1QBdE6PhAe-LrwS6j`FsKaKYfQB`xpey-O|f`Q^xj%d$Pu5lW!Y$CKWJuN_a z%k$S#M!~J6Bj04S=QNod(f$YyRBy?aRFasoWS=2P2%!>T z-Yxbb>zH9?NQF|AE$i5qY!$K$MiE&@87AwM6_j4}J~zTcnk|F`^KzvXpb=iKL> zd$#*L=RD`0=RD^;X>-lzDN0l3&EjF^*ZxU9t^kKH0L)&F*uSnuAbkr|J1=ztY#br9 zjq?Em$%nHNma^H=|6o>9p^$%~SHwyE-{!lf(oZoIYG5XcJD_FOA9vIP*yTMwPwWho zm{IC5j}$D5ybP2Vn#lZNUWUuw4xJf~^Dp6truup|9$UXS^Po)`bTgSQG!2MQZFq7W zutOx12vI-5Tq-IpH^KxFKFptN|N?-DN+C79@E1SQ{dC9Ts>bdKV#Gp9tmMfnu!3tLby2tjfi7P(nR>+>3>NF6qN+9 zoDNPTCb%sBDN}+b?A9;N>)^yOh0&+iP%{7+&~G;mXF6$#Tu??0q) z0xZPc(RW(|-oTFPdCkg>dP$PL89PXI%_<7$K}W;1A$uhiPJwlSutVFS(*VVR z>|O(0YR2>fL`Y#L-+S7$BPP<39`kRPTE^d-76?ZG9c;}9JP7ow^~cNj$89uNdcG_q z1vL#cf!KtP5c5cg=s&E?9kN>TZ)Y3D6ts~5>5qvuO%4y&@2#Pk#5ktBmTEzQpPEc z{6RYIKr1pqA;E6RA|?E9^w_?5Xl_ZAzDf1&kSM+=p(UomAO4=Xs<^Hg@dNJ~x0Jl` zSC4S6aumt(c%k7H_k8dZ?e{Pxoyc4_;uLmJ4rSY`FF5ANhjoTQY<>fJ>1D6F}IKd(J^rQ>_- zs~toU)PV+~wi!h9^5J}?R36W{oPN|=SyJ$_XcMV4Z zRHk!8AR-gx8Hgp)?v;~OnGJr^^KJ!aJAHLt9muRnMqK=BvQ}txir7axXd$LOZzUZw+1C~6WXtNzGI!? zZ&)w#MR&g$+GHMP@B@1$ld+08V~4llXPGxv@4@j}RSpuA(*ssnX^7?ycwCL`1IXzq z^G5$MZf4HzDV-Jn-BZ^%cwtWfqD zS9NCI?zyYt|J-Gz+~>K=YfY1$=wwkvM^47m#PapiSKzT5hh}{sc6$P~tDdQdJIKFq zSt0E;t?Ep=)H8n8KiXv_$vfKRwUR`SQnL98N6w9tKr$suc=E>CSs%3dkw9&~T8Akc zxWTLs?h4>F$J)sk818NygB=2r9S-OrCwD12(pJbovb^XGu^xjHjx;RbkuN{p*fqEJ z$1vy5uGy*K2GnoycO9qWtag@6m7Iy<$Ujk;X^LGsS>-#Xs`G(nf{iS9jb3`*pcUXf z^Q*0l1{rFT6LJv`Xz5@`68C4ZTWh2mMA}A~Gy1>WB38#=EnN+72`pgy)dW`Kthu|N zh|Oem=*0!?ENN{I-pM@jM15wWqcJW>xCB?S%WqRB!012dmeOSy6-qTIMbRZF$^*7p z3c3ur0_doy%l?2JGdnv(A{|I_yCXTmPbxb^;`U2Q?Xp2C9NV=TnfVhJxBsxz8TA8M zY!v9ggmqh;gp{KCWtUyL3|H4(4fRp4B#AaI1_3KT-6zJP3`OkyR_$3zIWfY9Z=ek`sp`s4@lBU~DA0mFLv>Jn%ao{=f-`OXHGDyE(3(~eAx`*nAF^wB{ZA~cQH)6H z$GQ|yj}EMC=--6v^eFtSTJV&8N!!8SHQSO4-OXq`HT7D7wUp?e2R0jK(smHLoo$5> z@{xwq&V`IxNg{Qof$Eb}vHc;7Ee5^@A7mswLnz2=bq_Pw6?;sRV@j1Dek-F<+dH1S zN-c%i-kbS$ChLvWWfz%%$7dSZVvx)5XB)sW#``B!1K!yHyP5nBGbjJ#?NFlKgOLh{ z+Iy($L*&i~DXmWW(5mzDGJ%^&*U4R9;X+pYakqZfGf78lqq)15tQ)>O(mlw1w)B(z zJvTd9*f{eNG9aYtgFTl>Ez2*E0gWmbHR z3p(ne`G;7?7D&eA+y}%0qzQAk^5v$e6;LQRRL@# z+x<{gfn67HBzZ>N!Hx2+xxnts9Mozw8@qot8#WzrJuU1cc#xOKj7IIQ6}jn3+HpgB zwf1SwK~y4Rw;jnjTRfgV73)~aI*=!^y{H(plzibWB=9lLJ zi*Sc={l~(iUe*tppzgB+3UWl%qXI#`2zIHKm-1ZqBJ?;htR(*+9hsqij0qn+GUqy^ z@Ue8mH4!R;B5tbvb*nWTF{J*%MQ6L-3-KEOj?aC0x)sTPdvlazz$3VBP2_sDMo`VSER(DqFKJXtCOUe;4dZ=^cVZrGF8&}>x2NmvoMF%;t4?G zED#@Gvx#gM&dQ*L)zc{?hG#Op?>CZhH=_sHp-J9~L%3OI`FAGeFzdLLW#^_|Vz$^G z5i|Kz?2(owAvw~6&Ob5K?K_&S5zlg9eTiWgrlci7#UgWCJHbNw;#@Rk zo=KU6kqx8$cC6UX(Z0fWA$MyX96R2{5|(4QW`O`D+%2U1OF0y1Kx&~oS8OoII6Jr8 z*p>6d?MuS%l^r~7U>Y5fyTuvwNwOB5EK37W5nN>7}XR*Ar_!qfwS+v ztB8}(x`tGoY0m{kk#@7yy`HhoE))V*Ogg%}9J4mW<_~k87`;NBV(PVQolmyP=kM1( zIPw7=5Qrg`)Gl%%B^4sppZMz3#bUJgFZq%2{m$6EE5s9&^3Ns%X$63*0bDuYuz)K8 zTs`2b0S8U#g8O(U(vNy2(uc=RP*i^dj*@@C}<<$1g&5K;=p~JuEN;u(SvLX znU_Jhehl$w=i-D(`gEff^XGF*W5|&Y zD)~jp1B15rpJ3XpM!PJo+a)M)!xjB^@Ql2S|HyxZ@1B&=+M}Sr#?+fHSc)1VvitFbt zwe3A9Y!YsqAi8pzwA#s)sQsnJ*EJ?8(t=-2m^I4WItmu5H-O?N5rx&1l&s%uZfVElNeJFK?-lUn$zKb z!8w1`sxD{^>MoR+7{pqAj3~J~ro5QCWzkq&|2@*GQD)wMWYc?G+!#BN<=>>|hXqM% zyO-xTxM@#T&RiIjpFvD&pvFBX_1LJjm73%8%Gz?cUVmd%&rgDZck7dSzU%J~D>woy z^Lxgn1fG8BD_!P!X@OCVx*R3qGBA~i@nUxc&`nx8SRUQHuMpqSZCD#qSZB_{O!Z8} z&f4bGTAJ~zR%RcK?o z0$I@`5MyV*XS}m!Wk(wBhTp$k>B^e4Kqu9lJlaD#HCt_(lU4WWGAlD5<61MaoX=gh zUl}P|Xvdy~U;!q-iC7B-WZ;Y#>KTC0d^e6{6nnmnOWk99Y zt422_<}&(`7By*)bfxB8YIH`H8cv?4rK^$iU|YW@j9`72UBiPzIW3 z@3D)S>z$s}&Xx0d>NAox=Kh9<<_tUqv-t%kNk2d%@Vi&O|GA#$;zE&{sCOE|eJQ6z z+pOWL>4(!wS&w4bOhmjH*LX|ptX!W#y7)y}PEA-e0y3SW ziFmLF)j+v|9|;hd{}C=ulVuG|>X^@za&jSJfaH=FRETsw3rvyTE3HiF$58h2Y+cP) zl0}`=btz?a)t8}rbjc-NQa@6VfAlDeA?a&b(N8}pJg0Q%T#s%(*dT0dP^zrawO+ak z3qpOo)|HfAliB*FpiOPJ`o8dCWCij~hk*|!Xw=;?iUclMjL4%v3(%0i2k81XUhxgT zv!2VrRKn*Y++V#32b+(C>pS^p@xR-VOnc-B%&g)W&vy+SS^JIjQN39txk7S%-#ROp z`&Y69&062ikKpjK%DHmpM93$XcXRK~r#)<(&H9eH6(IKRZ1q%m;SIiVvTa`T%jjee zmU=4f{(rnGJ%72PnNz_g2?)WjgGSKk9KQv-^#nwjvbB*n)xyCx1M!QHltbV8sV~28 zvy7x$t55T-Dno zgev9bR8M1mePGo>WtQsy`gm6l`u%xn7Iu6$Bj?8sp0Y7cn0;&Fqz=QNjAX$Bq_Ot6 zBz87|R)|t&7*NhQ2WLqT3Z`@#Z{U%oUC$9W4NroW0&3)S{x=?TLPqUe>vI`K8Pido zprc;)PkmYwF$}oVKU!b^JCAZH;`;ZYwR|^*TVD(U7mq-eI)2}~@1q-JiBa=^^6*A5 zv|N`kqnzodRw@u7ke;${WnoS%iGSn^{a?JkNkr^RCCNxRHrC~Lz;DfeNl1U@ZJrpq z>;LXi-heNE*WCL}o&mnND_s7Ck>c-ynZ+w!w(qx|dH+AWuvN@_+4i}6zl){-tBzHj z7?mcUx|iWYHrSK3s+a%Yo(8NMU)BJU_+2uExq6Ru=C{;y-G8Oxv+?2AJ~&t{#7FWx_Z6F_aAJ z=i$22&Khp_YP;4sW6V2^{LBB2Xxj%Lc$tWKF%{Cr9BlP^-nV~Dh34MU5+p1`;77Xs zP7|7%+P<;uGa=5Dj}7ATQ385_@eXF{#zR?t%McPU{mYZu->brJa11Wv`$gL`um_rt4o*qaP~tw zoi3soKC?|81zbNfM{PO`0#N3hmEXzfQHkfgvXM$vIeOur~ZnH>^YYjc|v5D;>|~Kk{P#?-^IG# z*m>@;@%hGEI)`dSQvUj|zo<0WLFb&Gm0c!HkAf`Z@EH6lUV6Hwr^i56(3A$RcM}AP zAb%Yq-MBfEEM4+cw_FiFNcwcGRay2GieEb=_4wzoxSLqZgP(HZQ>BX)F{`^n)W7kn zRM<*`hCJ6-g+|!FLVRSa%v7~PK<}6y;#}~H7Eu%%T!ev1jB9Q-@ec!3w*G-f9PYAi zG|T!cz`4U)qC_O?@yGfY%cXdn`iW4J0h z?X!cifi1qwIk2K>_~!gNZ`)<9S6F4$qsR>CkqBFLQ4vPV@fYDt1*8x8^YDPI@ zfEch+><_NSYm!9{(M%VjhsmDJ7sywP`|FSJP$zR27xitP1>{?6$RB$A4y8609D$?a z@~!R7&y1Z4LFZeehk4Gm7F#Qrktg@B4Kp~;7~H^N^5b_DlL`wqIV{PrglxUhY;glq zf_&EnoH7$FFK#OV+qY#NS#ONhTKQ#Ny>g3w@>e`254n2_)ZTiHbAF}9T0<=9@wzK<)@q!~~KB9|Te-kR#Q{GoUizwk92pmiCcJy4NjBq?2UE%dV&FH0kwU?gP}{#DkV$W$*;WbIofE&D{6 zt~DKiyEWabKOA;{ID!yFa^bum@H?58^~xG7;hoJ!;U4&1yZ<91h^<@NM2< zlp9-mQ+2R<56{V;+;qb&zqupqbf@Y?H|Z^-k2=!$eCYQ?X5+quu0KgjD{Cu8x$}#^ zYlGMw1B*#)sQOsr-zC5O*A)kkQ#0t?1#;Lo84jQb4lwOy~VbxDKd>JRhAL;!kL8aAox-MUVlKn-@2J*0Jd8=N}(HT+ToYT`59Cn{`P z3u=JGy+G;bDM`!Bk3hS49)%t`l(FbVTOrMN{P_0xxE1to51DLVH3{}j}(u{z@e#DxKI8#CRr&fCb!&#WDaiP1Ie_@gK$9uOAWZu-9j z+1A7h!ZO^m`o_m>BL}Ki2W!(EkbO*N}JD>eWrhIdyh(f$F86QBP{P zKBE!Wd+PrT{PPJlK!OUOj2fW8M|ay3tC+-*?ZvgH0%^^8-tMyUrYHtMhd_cqAM|M% zCgy1Tt@C*KS-G>xxQu}F?N+YLaRHecYAyJ%^lHk1d0%%IKc{I`=4f4}Q;er1Mf;tH zGUNG8xn)`J-1McojG}=xp{}8)o8oWh7Zv?*K_E$CF@Dor?;-^FguvPab8}Z%?$ISU=qz^P@gNhMkX~ zJyKvE`~~uSqv*$Jz{>OaSbH4()?ieph&V3KYqHvHJH6OmQ2BVmR9tX-9LjjIR|`*n z=ffwfGqT_LxCL8JhHnr2LFd}a?xz_#(IMli&4hZ}!?=8Ei&8&X?Yg9M)+xqWtEAbm zAze_Dn`aFHdtJv0*&7^0?`^7*#QUdGlzZv#{8CxYiyka7D;+Dj>oxjN85SnYmb!>? zv_m=0!>9K3W6$vZ+PF+_p2B&vy9@Vuy=6-#6dd@l^;%uKX4RsGprX3oVA*f4Tr|Nw zYMNaVNPl*eYEV8g;rjv=$H%f#OsOqXKfm#@bM4`NPbYqEERbQoW8poDH$3-K-ku;i zOuJ5#ghHbEVzrMa277%VSkXIDA)e&&PiRwAMXTWNcFu!N*?jJ?g;Q%?R8oWSFjVh0 zDe(HR+9q&h)?*pi9oj3(qs9GoZ3E*ciDi!`9&^UN%1qb$zyq1Xxu}_q+G_@y(p@_R zhc-idt1RdQN$a}B*XR#+{ zB6fj04A0POwGA^eHdQB}$>DJR$->9mIXAl`cG$S$c5hgJg!Ir4`Msr~L%2OC;_v!R z#+df)PSs|$xJl;Msqt@!8)~#=yNHT8QWM{^!kyA<8|5#yj}pOD^-2#>Iwp!iJX$6f2K z2XH&L4ZYq_bVw(8juL^Bd}-wbvcraKzEqWXi| z%h@mS_16TBes2NG#V47t97_FTm#fUAqcgDc^T^um_VCq6+=F#YuweEMcX7Zp1MOeT zA8?8> z3KP@p``HCbe7GoZNt$ayNY(JSW+1EfyhzykT{cQ*f#!Oi_#Jm=6_V6&9{2?l`mm&} z&hLq@<~sj`w}8Adveu0T53PKweRY0HC$vB2<-pQG?~G&Nr@fLxKYf>od3iXxbr1Z} zdZpM=<<{-$gFPTIR#ygUESD?!3LWt7v#s&env5A52|((o`%gauThI5+c7G>j0`lD>Hg&S)>Lw45*K+S4XPU;@1F z)yjs1sCh*OJS|il^i&jA^VTaK^S<+Em%F2EcCB^cKd%;9{XVUhEK} z{Gj2=KC5`d(Gnq^ts>~WlUw!7k+g}4Qtrz{bm^kp>z?W>kXMwSGprz+w2&aDo|@#e zv?r67xE{Q{#Ok`Sf!S8fZ5=yjWUQa`o+{p{@3@;)m@G+1nE7gCy#KT&Kr z*dw@|;hf0Mw2ww+qvL$Vugk34@)Do6wb z9-lV%1Cbh=y0(Ny6 zyJZWuf>3x#NF}OKKZG?*fe;XI6tLAS;Cd=^pI}y4^b{?cqB8L@oDCY|r|!Q?KooUP zmE4-x_r`x2TI9M!nf-;tPNI);*^RNG)f$tfYe3Vb{Jp0er{N zmpxWl@5PQzhebD~_5}5fo})>v7QtSJO9nFS4NHIyG9hkkWHr~&VpU!3hyZQker|@f zEX*153Q@N6N^6iZNbRj*ah=$9V-y2Ab_W6X_-5`iNrVJvdpz*=DQ;R#d!4kTkD7?- zDmJE-U=+3~zHVbR=(1Wt6QWG83_Zt;LYGa5hA?CA!?OV*(#j2+Vw0rH=+7^uTo5mp@7i(>Rnd1cT>hTq5N44G zWT?+Z7k+`(-MxWR1lS_hv&6A1UdgkBHd#FK)BU$!d%Vom33n>evuu<3w&<6@Jgo=j z6d!u=w~;8=2CKUwS!?x6eJ@szs@wU4>GyCS$AOQ3bsau87=m^PK3lk@6MNmemHlek zA^vdsFJ!@QYq{Gz<2_t={ek;DoR-#H$Do9^pA~2M2%q@=WP^soF2|gRoQM}JBM1Cm zYRFtgQnphMoZ>L<&=uLfzXgSV=Ej5d+he{pA8O%CghF1p`YmGQw-0)u7Kv^I@-eIL zVBK4-)j?KsIDaoHEwpT%JxFNI8$Z42nRZkVQXpO1uvzK{ zj4w}8f7NThm!h=QYrAarVRKP}QMTSaNvOB8z(JGmXh$1>=VIbtPfqO{8~I3i|5?!e z8(UTT^{(L??+4Wlfkz@H8?ZUsyVuf+9Raj(!Eb zdF#nOt?9I_;L<ZJVFy6dyae?IK=NA_ZZgD>HFi0+bI+}01{Ok=SM{k|x zrDNz9;^Mbjk^9VstFbXfv%AXIjo6bxcY1{WTUOr*-@9b zyq|QXnY-D$Ne4qF>&^SIy|$1%iubYJ+t*o#5W?I1+(jgtSABs8HRzq*KZI|wPZ(ER zRi5sREeBMm0vLkd(gwc<(C4TloENjyLL3v684z)V{va@99QP**?3i}kjskL2rvK*l z+Q{D|gB$hBVzSEb*4&!w9&V}Pq`OS^83aRaGBIp;VtF{dwO@Y#18oo@bg&x52)N~r z!89-^lp3z&nATv)yxZI4e{(~Yqe6^#MF{p2<7rDgkc(!aQKLsz>{OKQZH9jT?|Keu z?eQ_@FiocS;l!y(%Ie`Un^tIr`!9Z_`*>2di61Cw{jc!!&G8WpR@JA}ZWv(SK^${# zse!4mEma!+qE?xCVBoIez-2j#x1@ibAIXn_A--1>ParLAnDVN(#*YO4>txg{XSSloojKP>x3&`VPqrz&_;Lh?U zKZ|35-_8H7KOFkjeFLmuV74q-`^pq;uxYoTu*2FOlLr>z1toR?DhVE?AbZSnJ}9v( z594GPvUPw;BDJw=6PbIOdXU;X2t5FoWbY~^-~1_B3d><<&(NEU zO&3L|HH0*{LUP(Czx}Kpjk4a2q)*5^>$RZs6n=YeBWW$LtYD^a!lJR}j3-i(>Po<- zS|N|<%=z_9YU>dNcC@^y8W(ELv1FNK8Eri#CV$Gd1>H!{{B*YdY`st5YVXw+>y{Q5 zYVs}>aeMiS?nc@Xh9cFpw}^iYP+FRMn~}vSwNoepH@Q$>cBmvc$X9nal8!L;QV;hQ zxm|m?ab&Ixh>~N6DFy?%L_Smj*l%TbBmT%gVyNDtR`aNhopaBDC_WC*!q(ENArUXn zZrYEyD6a6VrxBs>@Q{7(_9r9 zn%rcL3KK{snuth31U)Bw|EN;0QtunM>Uk9z$!^jt_b3*pD8#%d#c1b~KFg1yw?D#Qf*PKd^ zgSOtdGQ*oXq*`cm<;BK&x@*i+hU8!>@s>j6&e zKNu(?fIj|*h+9O$IAL71NZllILuf7vKz6g8LLs=po_g@vS#dl058ZHqokB6V*`B)R z%Grb)@@4-907SLlf+kcY^Clk5=jKq1%y z8CbN8$teVzAz!iymZKmeGh_xJ>hw-g0DNhxCc*P|4{AXgXt17Tcpz7N4FMR9?J##$ zIN1Q;fGGjv?6-9A4$$0IW8}S}Wly(U0Ap|2GnS*c=4;3}wj`q{$JY24aqc+Y zhUKU~?lRDo_Er147cE!QyvV%qPENgbRds>&))35|RyZ|!hDaPe!=YeHVRkg1q@^XF zB;Lj(0b2&E?`DM5ck_Ww4Mv3Uu~{}^>>(rq#BigwoWp&nA3Vb$$q<0+aUk;brBNEt zGcX8rrVA9Ex$N(64_sfm8QS9yA>pqOuMp)xk;7*=L;%x-aUjLYrO|4zG0^giGhIl= znaj2S#;+kiT37jhwB9NZuM23dv);a}v$S8mfa6d@H19iz4LUS-zv!YSjk;U5RTux_$YWC8ojMiuj(lZMNJ(!;)at?~qeQvqt3)Aute}c5W0m zdBVR!-|tb@9no`~mu$yw@M`CW82qv4+(TXX{#zTai_p^??A`L&=F#{EN(0d!#R=Oy zbKF62gXLCuy)>xSvK10t{!qXKmJV)rqe|Z1+L%1-ROcuV#A>)5Sy$Fu>g@30@(VB` z3P463=F*T)maR~7d4szsr$ZQ-|jQCn5Rk|eBiE6%9g9UUIM&WopcMnK4!@t!C7 zwcQ~PDvsj>3wqNl!=J@lySJl;H+X*4smS%{c!m4iL*$rakiM{c9cbD0lRzDQI<}cR z_VQWxIuj~WX@UixQCrBs_TEn03#g~-N%3h{xH&2fIA7q~)1KM_xiFLBF-~e^(M2G0 zbn1FgJmvvc7LXBx61D}Gn=ij6p@UZmO&7lpe}iN2AJoH{f zOt&C&K7gDVOQ`@ps8x8%y$381bC|(eOXHrTPcTWz+ings;ns09?bEGa!*SBZ7pIR!e-E*Ms+a(RT-?MG; zJ6T`Yt~22xDt;X}IMlOQcLwdTdsP6Sr*tpa+tTPMphIz88f}qbk2%r5E!~N~fO@fB z6Q5?rwLJuKBr_Fwwo*C5#e|DLG*DlY*E5?{LJq!+hu-H(lGBdi4z#pR6)z9b?kEu~ zs3${`5Z77?cb8!Zr|Paf{w3s{s8xG)E9zk7TOPB0w%zw3hPQ{chw)ZB!nWAZ5_@*; z)A1A}lkEGDYxwC575TCdW9CxeM=As*42>OqKo`?A$?Gdm0 zZ2K$Hb(bWzJrB{a83S322ZQIy?#BQb|DyH=Nv*#@ud`pV%2|*U!-GiW;@loInm>u! z7t1lT*1^(*)HM8}0_gEco)g>*-w}a)D12V^B5LpYFgsg=>*p4`gq{EWheS_r^m#xEmSzOUfTXnh8N_%mk=v$ZnTdO<#$z?y=1*!S(@mR2?0m zW)02I+(o@7&vXVWj9AJOox91-s&E(I(+R#SzjJh^DbA{_=01uUxK93uahBjVr>ojX zpBR3eeQ;K0P)k#1myZSp!#Xgp`5yl_IQk!8MC|dl68GSI-FxC?w>rNcR}Cj|k#0lJ zwwgm1YTM2?d!7)0twFjg_XZEqMbjZ|+#U1c7toRa{FVL9ZyW3QH0)sR8GEe-8v;trV? z&VwSJHb}M=ji{U^_VC`FtlAult9h*#HnoE|2M~aFdhkF%QJm`c29+603CEWW_8loF ztBwSmj#IJ_JnY8^8sk9wBYcn!ew7n2_>5`=FF_BYE60>uvwmN`pcgc-OHC3QwY~B0 zQp@^W9LP2TKGS;``bIZ!6aN$9NT=|uvQAImT*~k9g$pE09=QJ5^t~Y5@yXAP_9}xv zzX^@hCkD99>A&gKw0#ag*XN)(urJ_tY|Z5?_nEUpxa$I7DO(%;DX5aH`%Ay9>yMi< zFVZu6no)(_(xOAwrbL@zK8Rj#+sNY`OQ+rN`h2E~GRtu36vi`qmR@nVIVa>PvBqYt ziMWna;Z1JBhDg?ESU+@`*Rdk%S0~o%qRfjko7ific*5}=JkbfF54*()Dsu2pz4gRj zbmu+BmU1L%>^_?{vPk(Np!zk$X}~a z*)B!vOb<`v2ZnFXCMaE&m6(Y=Wd2O|WQT;}n>`6i*A4HnV-^*P(eL^H1;p|te(5Ht zz9HK$wMn*>P$bsF>)Of%GSr*oWmEGrInzP*JR^nah6>?OjJw zA^IKPf~~xW`7dArQ#$7fx#FTH?A8jz|Mf93(#D26kmib^&bGvrYvHr=cM57ayZqI zb?p6rZb9G|GDP*0Mx1QVSJhCot#;LB-;qA)D+3)I%eVL?^w% z6Y@ES_XDw|v^1IkJbe7`4}$<@bpAgQ>F``PVLwS`Xh$^&C!4_?aK+OmfZJ)5uMwq; z-f+INWl0NO)oHUKR+S1FL9ELY=CN4Yq5bm{q8T0&N62TSb-EiY za!O8-J&!?Z+^EOgiM>G=>QSQ;L4W;$zucD5c7?!pY2ml^I`JB)RDkPZ=0f^3Y@^`& zmWsse16mAmmP!$juSi2!z6ph|>W)Kl zZe5M= zQq#qH0#T&hx5iz-9wz+l2BIV06Wg2R=NT8OW8g-8OWtXmZ|z*vJhR?vQaOoLx#df# zc+?qmkOlKb^kx~DJf5$APkIQ*XszdU(*HXEFr}!_GUcNW`8PPJjm$68de69UYkVe0 zbnpT_<~`&G*JNH?1D(i1$_ztJ?Q4?kgwdh&@yz&L;g)pFq40KqU47l$l4Pt*q!0QKSEbd zhjeo-=5005?^sEFn1}pRbkFyYA@z{D&wUtQl2Q041?I&KQt9GK4Q_XaCtsHCnGWgY zI?dxX(5b8%z+OE6JYDKNZcv@k^b$Bq2L~Gq zt3K#M{zlBf-{MY12s3 zS59j*6DdmLh)pr&nrQ~7a0Ss!v?xs=RtB2Chw|^j*o5N_GL1Gsu0;#VB?qIA_tD%@ z;`H$Mq;{_SJo5rBhGo=8yN80%IR=G(>D}DhT@kQ?IF39EKU6!6G$`%o0_HCJ{55dh z+%x|J5Pc6BRAdZ3?Ngv$>vOCB3n&5dVX?giec-qU|KAbi|4$ur{X&#;p(#J;%6|ar z#FcdAF~yLvA1$0M7=e`c7g+%@PQTpjjm*qtL zzl+31i7nT$fiZ;c4~f;m*8sJs_uru-OXyB5NEK!HLC!}6G%(n*Mb)z;9@eB^RF#t1 zT;f1=gm=qiR|rN`LOyV3dD-@9Js3q@=z)7Q8Z(N0u@j3g~8=hx(GsUHZ;N5fb4T9FE=`T+qE6Ji;>E)lr zZ4f(sd$UIH2bDW(k`?HstHtD(aawDJCz%TSC39A@y=yEdR>gkOl zn=SSJ&7~fBl|xKN*T&6xZ

    ?74=tGceq-a`GZ8A^JNgSGOfOFHQr*X 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�FGi3v#vrIlF+Ilf`jQEGZQ46|<*% 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:a-!tCGJ0A^lFs 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%0AU#f$MdsvZa-(+*`KDsq;!H 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

    Qsb50(2aEokR0d-GJ1N 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

    qO5L2-zxz_9? z4zsIZRPK+%9|d|p91t@pGEt>j@S9a`pWQXh=asTG%U!sJlL~KVOo_@i%sv9CV*krB zK1-gd;P>%bj`O~6%_855We~^)Lx-VQAxQwwFo`yHYL<@bcqOHe!Ppz zpKw9rQsM5g=7Tn><+U#W&qrUFh<`sN$PUBZiY?}^7y=fZYQn@oeRw}Pkq;L$i?BLr z_38!4EBF4Ft-B8amH;>O)&%^?pZ9QH=XH`>Jvg0#>8eXD^%ih}ksOu>D!|UYD@sVp zteh+yY24VB=_BtMOPb(Vvu!5I+r^B3NGRKdvx~Yf2{=lYOa_2-O*2<3I6KyBfxnAO zpG~Jri7`I+z^eoj|0;89;Kv>+ca|SucP4WSXkn8~)hweP@8}QC%&L^1gA7=W#D2yc z_1!PU501V<&K@HWR9;|2>M_M+Cd_rNh5|2*PqS$}7ppMTyiOKv7weW2Eh6j7Quyo~%jXb9Y{faFYTILGzrM$WJIB+@Zw!-GZ|+k$_n z<;SWrgazfN39(`Ap~XCR_<5}I2XZ6oOW=0%N%1$CEhZ1MWIV%@Rm)p5&&H2QUG-0o{@N?b!Z5h%jP=< z@ZX5N%KS^D0Pwq;{6vSGBSjn-uSEn6%2S1y<3bo1pGNrAWg+Hx;0MN6;eT~qh`Mhg z?NT~=5O+d;bY=+hURD%@05HNn(IET3_(Fh$6cB(Nasupcrulvd%us+H!~*Q?T>t5i zfE_mc>~FCD>Ck{VKf>(o+j)KnO%Q-J2Z%cr5SqbxDiB^*;w@>HAW!}_H*a|w2My^V zh(WYM`2U)2jesa^=YIag$VqAir0D7+54aGZ)u3rOgH3}#zCd1Z<8 z)rKNYH@`ASCK;O0kn@UT0WKDTZGX`OBDwO%ap4a-E4aByN^s< zDj71Qd6QE-;BTOqMXQYXa(QJse$wdLAgTw~3D48n+)A3&nbu~jKZx`c*gyq!X*faG~}K?zZ;>e&LxJvmQqY52^_ zs$yP@n}`G|NUY1)9W*9Y3Z3PhPu$Xf2;lFwZ(S>}FZ!z1B!lEa0myK>eS)xEHD@_g zcw1`2bG_rRW`etC)If34&5w zJpT%~s(f6}v#19zCgpp)*H`E$z+V}=UsUCTPm>SqW#b!MyL)*<7B(q|A3Xo7E6Q9E z2?nUwfq*+|pgpytvpXOm$Xo(M9`s8S?)Obg2y6uunmkG}PLiez&@Z1TZFLTe6!Db8 zuP;AS0X|K+KT$-RUa4b_fu1PHusP?Fv zKTLtftw|j{%k3)=jKIDYSO=OrttHDg%epQ*PV2<=vO(B;j0SzO^}s$Ze-|H|AcT`^ zH`+==G8H>whV5mIb``02%KKJDlP4EWyxQ2{$NN;`6)EzSG?h17VA72yNtat&JuBd| zy3{Yfsje5=lrNEiv94)p&}Gf1dT7!x{kpic zXJRrvZY5t~_a+Uf*In35`con2g$eF+=gg(SQ_&j{u$t*^M4O>j2K0kf1~iRjZ_ioM zJd_;LwKEe*?F9lyxOflrqLGd$Jqf&J)_IK0##R?gnpoIH?A)T(jSTMYj;m_nqy;T# z;1bs0?ppDc=J6p3V6*VoO*53H;UMtm)ZmfMQ~<}~MTn+z?|SRJ`&#U7y!O01X;BRO z&7kVs`FmK!VS0y|E0s510OdJBJ3nIf@v(=6D-N zbS026SsBT}n|_XnL57(F1O$Bgg8LERZPSh=_v9j|!^Nj-{=CV17hb&EYKXfVX|Hs9 z0a+V^KiQ)He(P72ZVGa}Xt)es`CGm0nX5C2wnSO1P^cyW_v}DUb8z?X3i=E}X&Zin z(TJ@>))y;N<5c~Jn5xhdP+Q}i#++HU;Ilvw~IddiUw06p&_g-?Lb&Lv%(NWR5jD*q0FXg4? zdRlBi;)|3bZW6h>9N>e&IL^;)#K+q1kJ?$`{fM6*pIR!DJt3Z!V>maakj{n)_VX5n z#ZCbJBXe=bX(`0MlrucF_lcf&wyLcc>5TbMl4ditlD{0%gB9);67@o%M009Jx@u}n z=>FWuF9A3`))`^Ow`v6FAJF3=s+wz73xdLB1BD4S<3s2yXv0*|?d@(z6ByrG(YM5pCQP(a|a(453JmG89wU zJLXIKu0o&7TD4_bO;Ajr~YLRV>NmA9cw@%IU<<>G4tu;#U z{RQa#h35Uvm-P%YxV-;@P6(FAj^m+%RS~g9gvVhvtp$SAj4s5=fiu;{-vZ-bRQP!i z+ZF=|zsj@uI5Ne>ZQh-^c@mJRc@eDQJX~?2ur9pw0Z?kQ>J&q+WXfR}HnXy<88#i8B8}nI2q>cz<0HQU!N)dH|3S98M3RNrI-t z*?nt`5@A6}OC%ggVZcn<2sl2WT98aTWTnJ|Hv7(qgHqfabPo&oBT&qdTY6ex3Ic$L zM4-pM$0NPQV4&jV2fYT7Z`xL0k|G&=CwT5U;VC8=X7KtH1|Figm zf*@?QGikDss|DFvRo4lFORfrEXZ^MYal3z2`1t!Dl?VdxVSz`1opkS_u>`KUUV@@a83 z$!T2Bua#>&TkPVUA$NCtG5+TzD3|geJuDpe)zbqW)?^fZ;!kH;QI*N*3^p+nVEIn& zD$l%yk#GrvNr-7LfOD@3jInVk=&?dq)Oe}M5l^%#v9vP%nt|>s4u>9Ww5~8w;cDf| znaF<+CiQ(m`A?+(20fOgQ5t;kCzNylpd0o1k;2Eh1}E=G0^w=wg4L5_tw2T6IlPoP>2#Y(7$CU*V+RJbS;k@5s~LG&xjpg`uF zLw6*-_wl7TpOs5ZN4v5dtsQ(jKFuQGo_ug%Fsz&GK{aoJ{YNf;kaaTui4pRZGUYIU zLP3*Ts#fd4H1i0gyU8WAnDFkA@kNEOfecy}`A*m3bcnQXexGu$fV>N325ah?6H>c& zR9`j9?-VJAjDB|afrv#`Lt!E1?*yf{NdJ3u*kk&QiAs)zP1|F7%Hv%ZO5gGFPtwr) zRP6~RXK%TSozXSB>tal%Y1AFYk}heJ5EWt}D&C}1qIk+$ek#@&BwQA0D}_&O zr;z!A0Gg^LCS1xc|ik%)RwJeMryycaEhyfURb{qQ9WI3D`1U z{%Mf#1%thrU_)M~HepX?Ncg3xj>387BM$wV9h1I~s&bm42n1nKcxV%M_)SarTRNVZ1Odu~*@fUNLnQ%4xb;Vp2K74@M4U^d0)!&qj|wtV?ok9lcHtO9 z*zlNc@vNK5ZA+xF{B&~%Zbf|pFxwnz^vC}LT=toUN$@oX_s>uwx*30s5#gkh6Ku^x zZPX9@<^n_h_xM=#x~9GEf`(KfP}GACA%TCf!CEgFj=7eZU>Ur%u!xvS`I8j|x+^%j z^(zka5lA`eV-XW6R9=qAsq`0LGVC6cQo07Bg8}fhzzW3i!~@O~2hv=f@D`3}pqV6k=Yen{m$g=xj%|&f zt`}O47!1?8R`rW&-n3JB`jwfYgJ>My!l4O`#yLarIBX4%<)r-z?}+PYIIc*_o=F?@ zK>+&Y!;8p8fpP}(tt-m9tZlRV%z{tLPM?@Y

    b&0p%Tj1~V=q5@z|y9N9DChbXt& zGHY2g6bU*;nTwc48H<=mX^U^2#XWEr-ID5f?}LtBD~PFNMYz}t_3=<4w5~vQEoE4g zsDF{9W#fU4v~@Snv9A-i0{Y|Zpi=*AI*-g-bbJ?Gxzsu86%n(8sGRU}w$X>?Gl~aN z@3}|D!!3<{V=MpD+;|_A463ImM(UUruJ+fsqSyXeve;1BiZX<-D8@1`uTkW4RKUh$rJJ(Quu zIqKNO7`RTp$s#>s7G#oCo@i8qBJ-L=vKB}>c^<^_y?@0kD=GkRpD)%v9@O8(Il5+y zXIW%1*GsC&fpfHMF51V_qihnmy2IEJF#XC=BJh@zkNz_4?!*wfA=`Zud;%5B8j@y3x zgk8Om>~j%Ba=v=KBDWakvrYHKJpVgf>F?%n5yMo9;k>&s@>wwNwWF>8ug%yId&f z!j!eOKPE$T&8v^Sj7zcpSj8!Ot&&ms6_Xf$8m(e|;AsV&A=-=mA?r<%f|ORG%;5#! zPD69btD}#%PJG=Ok8w+04qH5-esjwKJRNEjCAK*Pf)ww8hB$jVu@yI(g28>$sNj|a zN=~Gn2P@be4M`ZPkP0a0HaiiL=IaYHdnNW0H3>vAQ!1f zi$Y!xx*w6x(T^7cD-T{1xQX`}Ty*Z;gJTX{IdrKBab5H3!6zClhhFgF!KY0kMA6(V zZ5E(UKR8kxY5`>Fmfc^OZJ8|uqir>bp+2pLBCc+o(|#=qH8W->zriM+*!x1ejdRyk z_Bysu$f0?4E*~7)`8}3gDWk3InL;}$dpux?lnmI(2JmAPA`OoBhb0y5#(OV$gY!5j zFrskV;Y1$)uZo2-_LoNhUBx_4c}BtLe!mm4KkccLXdw%{gyQOu zna7?!(v$l;(i}(6Yrvn7(rD0G4WH(=bxvGJ9s+QR+_W!^>F=uXnMwbn2`IhF`B;AK zW0Hux$P)23_Y7>Ev!r}kqeoSAzvybZS4)B8Kt)l5zkkbR!Rs9%pJmT+NCJkCJY=!| zoZrd>n&A%;O3iW{yMmO)IvK{l7q9c5dG=HJ4{Q+{l!e1NjxPW-Cj^E&6W}@7&WVAY z|D^{am{FXU!02Odhnhp@xecp-%leArVxYS zu)Mo)hGGy>%%PR39t9MSp$f%A`~Oa9Mrbplwj-$?Nvb1q{=*>jbJTTP@^8eK5yKh6 z1PSF7S7MY&J03E_>i-4<1OMbL=!LdsrW~v1md@L_O(oRHrwFgj5Je7#j3R?7h$1Ul zTaEJI2mch`v+BS@kiGy6rfhtrAh?*K&8tb8Mk^y5%&@D$UiEU^?#B&kxA6iuu+5aW zF62xS+vLW~IBh|VGO~WfTr1uOPPL<&vZDDKhEWvkgJsku zZDXH3ns9suvW%{~NSWs`UKdg4!AO zY_+o5VhgYjUyhd?=McHv*}{3v{kVVL$ag)%DBsNMKrc*xoluxn)g1nKKp^q~GOg@O z$aY;0MP#F1x_2v6Rple(oXH9T4 z&x-@{q8;(F4|TS9A%JJ|lIB(t*6OmiBdjtZm>>PpMtITBY`mzoMp;;?n0%JkX^#B^Sqst>=gXC!3I0 zLZ>U+?^H#h)tOd9r<2~EIO*<{VEO~B6!glfJ}{{93sp22EfDpfdV*_$7V7M~^(2p? zRHc9ngYzu$7y2uATFZw9R#hW}=$oFY;HrPQ(+bEpOIrEWgs8csX)q<05X?qMIP&Jp zd@Jm!a~MX)ES&W@t%BfUTrtc^D&dD7b0zymKC2IS1Qp}TG0Fc-`?kK^C2!|`QvB?| zbAI1Wa`AnO`h5MYeZ0!C@@)O_>DM}RXF1GayL8vpLG#)Bh!?xjxLJ171^f23yur8B zQ_tmV_?DEjdaDhg6Jakz2h z`|kg_7x_y6dExWz^u6r-S#5OvyvY4tJ?`!DKInT&eaOw$dg5E|?fSg=e%Ws=vHFRP zPu2XkU47!?d{oP=@jV*D2m5X<#pcb?=zN>`@qB~-;ruz}iT$3wbJp^CUwqN@{o(7{ zUO23Nn0V*AbnI4x;=S>kZD^gpd|`Ftxz)q>Qt6rz>o)5`v_lDy16n7(ZG{&X?H0KC zK(H0)BLs@+yP-=B^RbIurS-}L?3w2R_}SlmdeqBh13=;Ny9R&%;%~?EVFRkVl8H&( zcLlyZ)cf{rUA6MczuJTT=?!O>4jYg4Fxc8g>P*0tr^fiX2DMRW1-|t?`Um4JO;)~C;_0?>i^3fE`H z=kYI&;dG7C8c3l0q`ZdCzAeEG>x`k$LD~Xm$ePU0AmDa^gCH3DR0VW z?w?_lg&kH3-m^NmJAE5D2S_!oyI_Qz44*=M3YP-7U;xD`5m67r@eDOCQr@jxP{w8% z`Ti^kyN|(`EZq!AVt{A(&REOf%TQYn!!XK#&Y{OhUiVxD9^n%XSzku1_~?g|6h&C2 z#H0M2Hk!tTE#66c8_igoiWOE*fS)4Yt2O}Dq8DT&(m&Nl!BEKn{3jiz#rX`B=`~QN z@Aao~lM8~@c!=6vtjoX-!iW0S6=g$FVlNa>Goa)TNIp4)7SJn(JRTs%f+|4<(kB~O zK9U#l7ef%dIJ9tuzyY1WE5JMs$%bc_&JJ8W8_grc4X|ZWxQq+J#-G103RaR`w};@ae?nIz}tYY@b^Izs0I}9zKCjo9nL#Ly&tt~*Q8-wXE0KEfIr?CKDqY{ zdJM2@yF5_ZW%MNo93lRmokj43g`CSm@^7Mm5$}Jg7|`LBa-;OJItbv|L&b>h5kFwg zVNIO&dy^H~qFj)VJmmv~ZhwS+21p;bpnpHPbKWF2AOye(bTp*J=YmqA#k5u1)k&Fh z1L!FjC3j&nj#KzWCcHJ6t^vw5Jis%5hfuEKwlG#G^`jZ^8Og;cW_SZW2?{fTF+`{Xaka(X7Z8QwX?)S-_1h z1AEo^#Bkm5mnfFul3g5%_bl05-c+T~S8IG0#Wx#3FF}P(zG3V+Gyf*ui1EHD);NnDC20C#@hzyk^aRvfvt7X4zP{ zsxVeLrJO1 zI-m#S6!;jh=6TGk*-wpa+Mf+4s1s7XDIcb!AK09uw#XPvLP?hkMRWAsqs3=Y#dqWs z>$;y5rnFz$qXua^W-)rxUg*o@Fj?*?=kP2CBJ#-6G^1(Sj_RKsHch*g@zx3_x^F)~ zitp%deCDYsNUI(&kWYAC#@5Vmg6xV0S;L(-t0274Cm(CP4$u+T)`c6no&43n`Em6 zQm13pWqTa{XgtYK@m=vwEPsIhiBh;|q)w{z54uhgq#0K@?+(HJ%B(C^IgCg!e%`5= zQjQ%zY^Safw*)81ch~OpUpLj7W|i)Y<;y+UJB9as9n@Rl@0(n%u9#j~KDpS)3DSqg z)c%3A9;Gjk>&Ja{MDjHq%f6#;xK3obg}0ON3gFZ0n|0L1-5X(={tUGxjEy%lgF1SX z%a7MFs>ePj*jmB~@*nLxinbTHd@_Ri!Vx@mJ_G8(y{jN|7Yf}W=@mEYUtxJuVoz(6 zbL>j4wmP|_JVZ9eAB3JHICd(J$wRR9+*jJd-hW7YBpd9VZHfJ92>aP*$!4KSIkaMQ z^2(BJr&3S9hmKlG?6u7OWHDW?)mlPB-K8ZfAqcucXZdh}@=mkh^TuoDr2m#RfR<5! zIh&L9cC;$^q7dbRGJSj`4f4a2tS{){nc)W7#oJ> z9ZdR{5)G;_LaV`9=IJ0%`Jtd1$S-Eay0aA95&Eev7Cq$g4gHSg<6)sn|Qkt@ii5QOr@1t2|h zBv<3J|A6bIW67`G_S0h!!QXQUs(t!#9BDgx#%)cepn22E&(=a% zHH038CYrxcx$dbDixYy8KQPaA;^NZ`zM=LZpQY$3EYibkET?pW8Ab~diD>~4prZ{2 za6CZUnc1sNa2VK{deu=p8iSwCqUbmEWSo&tsTzgZcy`ckdOM!+{Tr z_K(H*>QWLH*q4vfYPa;#gU_FNG)bl71u{GOv;FnpfY z@kqX5v@wf&S-(|ae*eE@=&D^`7@$7DPBQX5l;LF+cYq%%J|W1v=PZlI`{T0+ybAro zvRmP)D&)1=LO9AxTh0hPLVBHH@E7VUK=vjV5P|tF0wTv&-t!)2lEr-Lur}hX zP*il0ejBm1_JFROe#l7IL4d|g$N@sZ<+%G4FS08F=s=B3XFPebL=m6%QrAQOu&hd) zV@ddRQAl`#`h7JSZDAClGupyp9`a8~U#ghhgsN^ggHoYJ-Tb~Ks5>`K;pLl$Cl5aP zpEmqTxQ;F|rQ|YLTYjlYfc!B81+d54V4&&D zf<=5oi}Pg6MDV24Dd1~#iiH^d2lsxO0fA6zs%-9dWLF&PJvL-Dr^yvq0JZ>gOLVeK z(4L^f+YY9TgA@lfy!2=mOsfH;>79t;clB5ta`PrvlZR`9OAPGF2#miIdNMj!puHhK zG$~`qsXwuX3PXR+<2hWnU|7a-yUJ)9eTSE1*s)`1Sw|5Ob=iOytr%5FGjf6;LvFMh zvXi1X#il-GgIIxdI0?I7TAt*$oZ@GN4BsK**=ccuprSMV&Rc3*F`PB zrWK$%JhwBTtYw6Up*CRK98?`s{Liq%rao4c+P_r;$WAt|H=DARyvwC3XvYAun>OBv zc9A#jm7oU6tCaM0hKl<#&BH8tRU!GdlV<<2@^5wPnde5rIhSVsbkg5zi zTC(&eW5R#$D+yS@l{w_1 zu)l;tDT6Q{&ot?%6;Tx@F?SCLr#Ir5h9hB^lC;_Rp9m+VnjAK4=x1Ob?bof2$QhHThpOfH7ZqKo#;cNn?4(dza}uA!piMD(jKIq{^7rRBCm@ z=++fh#9N83;Hb=YD;Iv*cA>Ojp8MY^%z;Xto|r(#_C%PCj{RC55~}J<#bwIFe=!jQuzGFMkE}V+F*KHDnJY% zHMQWC7>Pn~Xwj}2k08hnz>y)sL@*t5PPGDd$kreMOTo(Epps83FKN|IWeIXQi341- zwCKP97>sJxnsi$qMcCE|lYsfl|vT7MnseE?cR!u z7GBf{ogx6juh3k^5DgAK!lyZ`T#6s#yi@=P>sOmoWfO@v5P;>HjMgwq%63NqDu80X zam*hafa;u(Sx*b&!j?w}vnm?T$t0kub8v0vz{d7A0}S>T?-KMjv%-;3H($*8E5#}h zJ|l_(VR-lV%Y!e6f~L*guAL>bOwtS)3Ur>9`Av!l8rn`n2TJn~#^37`n8@jI+&XoJ zO(w+k==3q$QZlP6Cxe4=pD;ZX&j3&;U53Y?(K;5{`shI6J)kedu&rOGh(t9 zdWXf>7Jbtwi-DncRNK#*=gFyh*tE5qyM#2peL8}k zp>n;J2o2n9l?V0Y5A8@MIBFo^n zlIO(}Ah<*(rNcN48l)R3nf7#Sfl!NOlNj&vmKy#UP{h^JObXfdqX?Ta44)kdGxW7o zNPpBk2MP0XHIlA6i5U5NJ7c>3EmT4QJ)5cyPagt7Avif9W9J+pq7>c0L|DS4hJes-<7V7N}P$U?^zp>6{>; zngE=COu}XwM=qtP__M3!+;MymaMqG^M`U}CG8uejy_RA4_v9qV{DzLrv_fud>uhGA zMR~EE-8Sqy=dTjkGzwizUZaEOgoJ(Qe@Xj zjNxUC?x);jx#J1^)u9vB>5s@W#tkzmIu98=s)=A1-i23<7R>1h!Yw5PSJvA)&y7;l zh)Z5oTO%WDmQ5rpav~e&HE>eqy$3DVV{)&{3_= zaT7vZJ-3C{B#h$vA&6|;dG}1m=uBrjD2-`zAOs*ITW9tY%Dqd2|ElXJVFDq7`pYh{ zq|@*DFoADyAtMnY5rPKVF7YJO-_=&;Jk<`ENQGer4346)#nTU0^ZQ+ml82>(0EztT z*?cfeYGR28Z%!&E@xYOV!3ymb2qv<69bo$OWb4KMG6@zje3QZFPknKnB780@PgY=< zhT(|rSpri?y@sXk127ZAupjqE!KkxPAeAIN_`xziF?LI5A@lgM(}Hw^tKnlShzg+3P}Lr4y&XZfrd zm;Y!xv;W@wR*D)W>3EqP=Sj)*o)wwFL7;Y4CgBeM&NfUUc(mG`B&fEpX{PkOPj^I$ z%QG1dhx+LBXgNYTNw8j8@2?GWIYGdtMy?-lEIs>ko^+0WFKLo8Fo2ngff5yZ$i6kP zbcP-pnQ-eB!)94Hz#Y4px`E%evWyWrKJSfcv|Q=H39v)mi=t9AYOHZcy92X^QZ!p_ zJ>$EQ%fN8f%H=>o^LK%aR7Yqr>N3)Kz@HG(>aM# z26IEAE)^YN-1DJ_(SAhzDpLcDXC`(Q-;@v1iyXJi4~;+Fw_i;IoXQ`s#cUvDekD@1m=y501)~6_NN;1cet$9G&pBI<->H zrxX#AjD?qY=jRq|g++GzF{TF)%SO%s1dS?i2?J_jMJS6-iUj`!hDZ^aOV^V$p(9M0 z0}Vk5b&0^~1l3G<1<%7IM;TB@z+Q`=VQ0A=$2`ygr6T(M8wELpjS6T-5HAS;OByA_ z`Q5nPwQ72T|IhJu9H~3nzqeQzt8uwASXfT_i!8C(Ey}FtmpJ{7!ZLDqM=RkLiX5C` z)U1Fkb$p67&Cp)VKXhmM8?)SPB05h+nt)C7Q5>CLh!R@VZGVJsa$pJr25xxGEX$aG ze5*pMIe2whU1qx0aZ-SDC%J)%_bk$`>0uY^pE#1K{27A+znPJ0x+55Bu54#MaOk}% zBvrb5B?wEBBm=*CVuAj*e=>syubdR)W^1xYHs_1rQ{sHl{OrzNna4-?nvI&@o=gI($?xoskO`bvpx`I&Q||5hHgz9GTPmd)Yc~b&!5t8J7rK zjvlK#^`0NVEJBE4VDn1)@EU$i6cYHNEp(ubaCpm}dQp5tx*E9(raW^Dg|4ipa6CjM zzJgN%rWi%yA+mdGaq;XRN(~w1Ntd|tp$3gkdsd|kda-y{t#)FJfMvKuGBT#tBnu04 z%3ZNM8OH?Ko=++atywo!hr4vEEbKNZ%&1LBnxpdx1q_nYpxzk+(8ge&;~~9$wr{m`tZURyf*Q&^YOs1Iz*5B_KtT;Y{fjk}CkkJb?Jd$pVl5X*>Z90Ew z=v2BdoTns?4{MZ12qFD!u_x9$-sS=$9-DB58U! z0vCV?>a!gSYqFsI_^ZgO^Q9FNSIp;!^lz(mw`&G4jDQJ(ru0rt2U^xhktsR4%uRJx zI8ilXFcU_ngpy9$M|YUGN)v@bWWmtTIoI2&qiP!fDr&HZp<}ajyy~WIbSDh@DuCFj zM$d($psvN2kimJ<{wx zhZ}B?oiCT?{T5RWx^`Zj+N-0_zADQhOPQDBxmk({%$yCZ&aj$cgm02*s4Jc|n?;91 zGn9iI$}dy?p@!lA;haC3TBFjT;dw;ijZ&qBZm=d^sS+bsq~_-L*`p1}0GaREc9uyS{)N3(G3h$x@@>G`3Ayg~%cAx-Je%`p_YR%)e--@Bw~*_6 zzX+xN5aJ`#@9rLyb`0(wmp($;r#gkHK#DLJOOhox`Y-&OeDPlxPyPBzO8o*ZUgW^u z>nYwi_LUUQnEd(nqWk%H=>EK+Kf3Sjo%;n0e}TyVfZ=0b-}2vtl>6JR-oEfThy*Fg~4@B7|;YL9_ORGHKtmV|-<&+iOD zfw=&igmTaC$?mk@=>3Ka-}NoGiz2j@jN-Rl>a`UMnzf#Lsv|4KysdYbT`{};dh z8~^A3Z?oyo|BDL!&mczHKmlLwe~tMsD#`yT9iKNMbU&UolRrMcmGS+yBiHHwSi0u$ zNPlQu+qP}nwzjsrwT-E^wry?OEw=5}?$&m0>9NpjxgWS%+Cm*foy zj@$piQg!`*SfJtj4_4s_s3j3lv%dd90trm|Kmu}*0Qx@!piY!Bx6QrU357Hs1STtxj6+x(b5kS%!kf~mU%&%8|_y0zDudj@tsbr5jegOYuAR*5U=HqDW<)DN&%`;Hu8)Q5dzT@fPXG{-u zpci$Y({B0a601mG0kqxc+66%k6zH*>VfCpVWA%CSL*Fd$LBpNrn*0~y?KFG~u5LWl zaNz@q`JvG!lwa<8O@N?Tk~s18kOQ7-<{Hr&;OeZaSe*Tn6f~1Svw?BSGw`l7^GmXG z$ftHG(fAWJB<8K16Xfgvekngd{VN8!9@G!p#Zm*g|1yrR-_%Krb|Vs1gQaITUYc0H zM%aJ{5qvZt$B)sCrkGsb0U&sV18j38*xTmKNYl+-b0zQ>#aKzq;TUrn06|#l3O&*` z904AFyyr*Qno?GdNPj?A+j5ngfT_Mi-yrpZiI+KKbBo-oX*rmHh5Q-00jgqGP~yDB zM*hjWg{S?oNQcopu=5t{T`9_{18!Vf1I9Y06-;{0(5LE#jV3YNfpGJ!6QONOwQc*F zcI&!#Om)|)Pxa8MXsyW*8c%No_v2R<*nzAO^b2Tht7k$h7#-c{;JKs@;v=dCZ2OR* z&$|ubX0r|=j+}W~E0{gtZ_@0`z6bWsNISv}CaBhuA+!&B9YmLp4tUU_R`4}Q)oBR* z0up^-)j?p`(s5#dN~wUfB{g88{aV4@($r>ny5^uVuAnlyAjObYu&^3J^MtBDeShI~ zITWBc6XWBrvBFK}nMP>uBIu#UlfJ+AA1EWbTn_b>7)am$h1;37^A&5NaPzff2ujk8 z6r#LdEtc&hU)A8BtDn|}@kkkh6i6AI_~k}&-z)rvsamku%No9ShXG23-T3os!%-b! zJV2cPG1o4?F+%6E5j>@qsU{5|&3AnNCf;|MlZBc%?!fsPyN>ZxDrygVoe6pS8_!Ae zW@x(gBZ(;e5wJTz*aTf$BlDuDXHBg`92BjMB1A;|OaC>XjcPSA=K864uU5Y+@~~sA zcxF!~7imUxKcMObUPKcqENdcCLGym+uYaio)VcY3WDMhv3RLXg9Mp6*sS{@EY7Axg zz)bt}boKA1-3@HI>sqmmI|>cZlQocENc04>gRDCI_(A-eV>c7Fsu7iU#TwNZ0FsR6 zpN5qi89aLdYlZcw*Z}x|s!=9?agH7=h4p}ds&E7r<9!sMw-gkuilQlGG9GsP4%=qzvR!bH_5@({NZx(FbDHCGLv%3d~%S zzq=P%c+r!3mvfX6ifDekzN=-MVBsF)L%*seGyXWi7-|9ys;h`*Kqjcg;Yfw%IKHBB zflwC?qc{tWfU36Rzt)IhzY^0#G(9Q|xj6ogQ`~`8gy)9!KrX@sxu_FVogGxY6;ypW zGKTbAQo6N;9fKx@X!Ayui`F4pNX9g_?unr z{o4m}5VkDD6L&NicwBT3MA6%jSDG8lUpFe#tvK#q>>yFzH-;aXk~ATdA^J1+g4W<8xb@vx$^9DumB%?8wnpw%%>2B$$zyX-|6X0QvToo|K|RC@TG+l7~c=7Z2gy3 zUm{-XCDkWL9i>q{=Ti6m#9w%-5IsA-T)px4G31skga)N2!sXbFlRdZfG0Z_FmD>+! zu5q>FRtayZp}WRVwz!04b8iedEm&JQc_HP6geALQT5 zP{XiGfsa#2L~)V_`)JUJAx~D=ns02i@;XrEu|`y2OVZ01eZ2M#sgUbwqq(X>I9F=A zj5Q7vKRT95Jfkhbm5(*D(diFE#>laa#C05mZKx#J^<{Qn)16?1mpskbMD5MhHbjTn zXef5KksIBxIWL(aZZ}l7Fd{Yc(Nk}Id+_kBNe3urnZ>V%E;XMWmW?m;a}>0w_qW&Q z(a$Lp#E;d(r{_2G2_n2sT-nG2i?M>T&Hu7&;X!Clj&<9@pky7)-=7`PAgp#6I@MiQX z+%sCDJ%#%sxv#%Zn3U4vaKvO)-;-rvY*~K_O#N01j#A_=G`F4GJaV3Q;zYn`yw576 z|5>Med_7;miQu3cZ1|#OVKupRkJ=cHm(t&;vz95M@;;B}K9R!6CiByryV^;$ zu;kKqvFMS3o#FITC=qr zi&w-|k-&E!bNOv{S}#^T|FD}Kr$#k*xO_+?)s9)xYTi3pnVr07%ddI2zAegiI*ZTZ z?jf9M$X=NSY5e3)n7nItGjOneG(IYVF@k8m>zHlJ&K|L0Na;=DOl)n%WS*A;OcKV2qct*4uZ97pE{ z4{@>;8%uHEabTTU;+Dk&=k3c)U-ht5G|Mnrt>lBX-l%~vmxK$y5;`uFa$$Z^z8U`N zChph24|aE*I;zNts(UI^y5zWKpdjF^y-y_oCC{i8o6~3&!mCwSa{E;eg z3AM_ae@Mm}IT$*DO&PsA4^>E#qfI5|;nAW-O;}!CWC`odADwnkoy}O_JZznZFM4&0 zE-*2cOB;A!av|7vqdIx6EtOgyaGgmN{c3R;KV}rexa*_9MrTK*FWvgM<6zQU9!6bg zY$#930K_F!GiUS3-(68_X@my}FR$X~yypOAWunz;l>b6!1ZPE8I2hKsPW>2YP12^t z+>KYvR>1{JG=SuAO;#m)S)f+Hp^*r@QEhUC5SK3smFUXGbvH;wD9%6 zPmo^CwR>%IqY% z0tSBfWa$BE)F~A8dk3e=VuYBF?A|^fE)d;d7i_~!es{jf5i`x(59YASXE^(_E=@1f z#s-NV&ek_41t+DAB`aK~9D1&`a?zWljO=AP4Z(f{H(IX-rGUkIHvUv{Fky8O|2V!e zenJ4>0R?kS*;VMNT^AyIMp!#qA>XlO@1G$vOX@_FLp$Ye)iMx%jg(j*%)MJYGHe@l zNZ$28EHtankgz`P>MOM*hFU`}7Pi>Ajz)euidG$eMrwHO$Bc>2(&fHp2f5Y~!9&xJ zMeS5ZK86Cr+uEiRZ4ZOJmy+XoN%k{!9@C*KQ(r74o^`EVV#+1|Bxd6o6-mR;h(X$` zAnAl~6U>&qP;z(aMY{1LNcr(%ezzBzt>ydBsKqDgh3lDV(f!ENQWyWD&)BL zTg+d9$)e?%Y*3I?UP$t5rB0Dqk8q#qa^O3=&8UtwSSU)#k*DCowHn^*lgkU*rsj8* zx11X~l{G#}ZF^9{F!Lc${v{$5udPxQ%BfR4J(|Y6gpE``)+uE@L+U0_=I^#d?ao`e z^t+!=&pYY-{u4#2p)baC5?UKCJ3I^!aJUjrscmG2#Kn7?YvJ+~5XoxaPA#P%R+q6x z`O`f?&OaSX-qN9@TY)!bhT6tc)e7_GXjnPT03NFC+xK^DlyA{tX2u_yrF+5z>k}?n znw^Bk6R)YE7(-k5kNiaBsClTFz#KzAyMGXFK4b|ES#?pJz<(PbeBZAZP80bCtOaSV z9?#wGk3q{VL%y^L4H27I&X4Eri2I<$mV{?5BC|vR=B=Y+cf{j}lWX}qLn8EDH?yuy z=TT-Ah$>gWZ_@oJyjID5SfGT{t%g`W@lqFotkmCj-mO#KqYN30sz)_X(h+pm+vx=F zSLOEd{}x#&<45+RMyXatI)O(U^9oShq>9I1d=xxu=yxQ&)U6L1;+vw1=g9mN9XSRE z-9h$OXL2wtz4=?bZc+iBv}5l9qTY{X=cV#?9O!y8cm1WhT-zEg6@4XD{f}{IcZ&oq72~yo-igaF%U}RZiuF(-z3;ok;t99`w6>8 zz%ZjWAoR%h>W4)6!asb&wmsLtD^S~|8^R!-X@o_?IS7#OuL#lEd`Fozpy=+z?kuF} zDosbDJ9)srMQ&h36bYio)jxs0Hsa@=zp<)+z(MTH4LnCGJ9Au~w z(Y?s!*u<(?H<5F`X22*BxG6GWUqGZDtt3nuh=+WXZIIJYA9((}q1ydVTlD8<&0 zbZFlJYZfMl!s4)-{p7n!R)XAUUm%BCM&huY)-d4uAU=@ss9C(ITbcOjUA5qS7fLca9=a$IgjeGa$>BszSvseb=ugEqTPzLXGEB8*|i)sGJ*c zag==%!OCtwh{g-Qa=LK)hqn=qywGQ>Ohr-lBbs`P`YXoGXZMCKV^prU1(gnft5RrA z4>jw&SvtNcoubpYIDgXmIg>ttSgFK>zqvat$pAchPhUr@bYRjdUCD3tcyoLya0}d> z#;n57e(vnkJ!xet*)VC_4}HTri^atz1oC`}wfDJ1h z8$G2+tM*RqFO1_x7{G(ADX2-d={s@mv|4?PjMK~L$2Z`g{`l0Iiw-ilTp_td%~S0E zwu%4hAc_DM(4vTpzE;BL7qNCNCE56Q3r9@V|AI_)de*~F*f!t0#sJGh!Dhr=|YgaD_8w zZDGe`#A`SeYO~rUwirqARD8Vc~=6Fl|L9pu-A-c%p}W zoNfcn_V8bJ$ef-BSv0VIt2fwE&-%aKu6A&? z)FIKs*;mjn&ppA*N;7`ii;vLN$vrqP<~Ae<992O=8?CDB`Eoi-3Z7-xkSu!cD-Jzt zOX6)M+e{15k;=MK-u4(pnF|nPb%Lj0s5V8sY}BKIrHMRCxe~(@uM^B&AQrz=j3)MAnnJOm%Cu0=?KPAGC zc^z7?6raeO=G|OuZq&;-#o!WQdXW=h;7tF_P&gFY zZXBa;93yyF;|-&ScO-u+|GrJhHeBzzgFpPclkzwEK-(ysG}^FZ?9LzCjVG{?U|7l_ zI5X&HnRoFJBh?q%ru(vN)ku;kZa3`Y>3>EQG)DysV&7(b&qn47QkR5D)p5z=I??)# z)T9AtOKNkN!TW9x^YPSVpS$`>)!xYHMj9VngbV0~^U1xq(M05Yc7<=VcrB`daz%-8 z@B=>+U9?@!Fzx?KO5T~l?~&e^Lqw?6Lc|OAM*Ys*d@O}Mvv&%AjJ$p;+-(awyFURX z?t5(*rd0EcP+t_mijyWxBbKWE;@Ba1zH&O2;%Zw;vK9JJ{fkPt@m<+07*&=BQy%d5 z)_(EnybJbGbrYkxrz{Y^xbLj}nC(Q2P>!cOvUfIjyRxr_L7(`eDGydx2jt_a2klU2 zM9>${bnd0AZQjqQ2UT}SiKvDpoFX9^ z_>b1s_{+K3*xKFMdg30^lr5Z^ht_T5uBTIJ4VpH~;pbD61fkwP&Zm@cLB(3;{5U1K zU52YdFzA>1@JnG7CO7kzw_KLd!d;Vt3d!;u{Y%#V@Gfr7T*Tg7FSJRbZ;&&;%X!pd z;N2&{bS;`q3;hyQ>cXp_7WqXja-BrSHgK*dyy-O$fwmz7)dBNsUJhz*mg|0hcGe@2 zoeNryVo5TFOC#CSc%s8}g5b;MTZV)i&xx5#tT^1haqN!qLiTM3B`4l+m$S4Fx`goP zWTY4BK=j)$L3Owa?#ao@EABY($~o5~w+({ffms6Uqox;bB{*68tn8W8Wj1uCUuM>I zRP|;=KKg@`0qTy(`(;JkleYD51T+y5%WReQ^R;H?Kffcp3lusbr;35{POnLAkwv6}F#zXA}5r`M(%={485Pd@F!I z?qyyix-+M+z-a)iMd|lHNC)w7)L_kqd-P#HZe(@0D0T=R-f4;xt~q_S?C7jGJ;EL- z;^k9S_X@QxW!oXa746>DNdwoF7A54sTFQ~KSk6N*;qH<7d`Z5D`|iPP3$w%^Jd8CU zT}ggD-%Q2bMq3Az0qOJ+Z&?V$1Ec;<{OP`-hYDVsu%-`IkSId=K|GZ*xi7e$$m6s2 zgv-K7O&5e;;#3k$x1>33$*ItTdY^Cp{=y3WeBE@@>LYB)Rrt_%KAn|9wxJFId3W#O z=#TMaeoEnKK@Z#c8-NNTRgkMV=iqX>;3aw^gT+mzNT{;elP zj$#={NbUNCZ=fxSA4%?|`%hj7+(CqU5s_<#;5frGQj0Q-D;aFZ?E6E}Gj|d+172CI zEc-vVPp$WZ`o@Oh6N5Gku+7bv*2c6$hLB7yMGavD-N_Nsp?a~USahw{R$Hyp5;80_ zt=ffSLb{0tx}O9EB8k{?OSAisYP&^YB0*?2zt!qS3Wqg7Ykab?G3&XpvCB>OIYjU|3DDl(!zDsr0}w=*>4=^g}{=9 zDE-K8Igx5J@6N(I|9hazI{ep;A{_CYTa9=do;o_cTKX7)KiSCXh-nGJDgDGR>(qyI zQ^MGSCRMn8T-bzjJ3QnQtO$!%9o^7^MpC}}yL>mEb%(C(4UDtK=%-8~A)m-mF{r?MZdZ(}v%8(ygSP!>d7DNkQmTdbi&S zW{F({1+&x@JaN+*Ji1?^7S;2qHLZE%Ug*GA*SO3&H|X=xL^P*NB;dZC)ILb>vssJ% zunS|EfUqn+4_?kI4|-hVx!Q=^LK2`wnXP@D?7ykaCR+q5DVaJ$0)F#75QQO34{kbF z-SeyV;tK3E!+9N!tf}H&^qU2(v3Uq=$E>H3#c~!egcXChGjHK>6!u9!N@l&ukqo{I z9bA>ti|FOja9|B%DQW(r9nP7!%fTg51&^*`;?Iuw8*+g@U`u=!_PT=--|?WJ4;wQ~ zQ5648XaTbH7n1l5^q0$2>{X=M5NoLA9f2WJiKWMF;`;PG(CLO0d#D zk?L?ocUkeP1n>iG`RE%e@$1h7Sk2aV=dnCkwaRuVS3k@>k zTTI9w4pONyJ1RLLVCYm@135_6k{ArL0}ft^?qE+lVBz7rrRYA&W9Os0s>q*m z=9h&SQIVBO+;n|kbvW?29E8$}W|i-D5R%=E&qy+1Xai+Jhkw;DLNCCY>K7yk#eCgc zP_mE3BKUGr`0&Q853tcW?+}cZwi7fTTe+|D;jW0|{dq(Eb@nN&?L*nFfN)oV@$Y1z z?_&ERaXV-b$ngDqM-oQE2i2-4(8U)0DloJsGh%HdfRrKnnabE)=Ule_X zk0m}K$vrldzA9+L(of!S18o{mI`eJZ=o{Q1T8#q62Y6$hnK1w2CyA& zXrz#FQ?ixvEAL-FfHQ`LPrCM*4_-@JHcS+xuq#jAfT93<@7Uelj z+)Njd%8DmYqCi-D)S!ISz=s^H_@pHJ*f*Hk!p5#HMJEZ3=eTC@87#+;-H6=e5_1~EH=PmA5OkqoAE~PvINC_eCO$%&s z{gHn$gDnIJsir|HMIV9Tx6*2dI>u=;{y_#0(#do)=X4=ZW}{NX){B*MX%YL2B&O)R zPx!fp)fL6tQFCFS49jjCXC!r36`cy~BuiQpl zxua0IOPqPlKIa}f{Xra4qF1d1$v$jt965&dE%5dM-Jzi&deB-<7ee*ATqAo67Jevu ziRhZ=PG;Y*Ro6EpWz^a@9F^D)nlaWZUuI)n>B=zI|F46#tt(LAY_hm0yTL zCKj`?4X z*o7pt-NhT}7LYQEWy+p_BLvt`BX@%q=ELMsALRkDM){StWRU{6Lz%W|{ zq0BH_3&G4Vt8fb1fQp+22^cwo4Q1IEkcMwF>A-r+F)UVDoY#@LM!oY^2ei(4|7v6$ zO-cbjC6fzl!5wYje%d1M&l!9VgStcz&%|tI{(U`i(}Mn@5Nfi&dTF7w7Sdk8#+dIP z5O?mir;YBUH91XU;cwBvi{|Bd5k#`zI=rWY`FRv>Bvi4QA?AvyzLC-9J;Jq)Y3oFj zBUp2>%Dxn)Rpmro{iyYPn&o7p)v+E`NBj4RhzB^v=s61_$N1#-RstZ#!}qgxDG2vT zUmyeTsc4PoLtmpFS{S$bG* zmd?b*X%`qi%azvyJZ|38Tgr_r-cgaCzHAS(J0}j2H?2NQyjg*3115)e6?ZTwY&|xT zGs9Ppge#QPA?#3Jk0d9jqAo=n3!U&T-MJHlE2JlztKUQ#8aG;97eadOj<)V1rqT;S zAPITuwwrrxzC8~YAVUHT7~XlGiB~sFPA}IqjeBiPEdZ)k6JT=mkl(EChk@_@Z~nYa zr<+{>)BTXoI}mX_>P5Z73I1xcs|5h?91@@V&U-<6!ru^NdjB>Bgd}|PTXFu^90VvQ zU8Hwj>k29YU`iS4pYt={@LqnQSQC}R)Cy40gK{r zM#2Zy;e?O3`a4Kclnt3^wK>S$S=B_fz18MxxS${&1l4IvZLQ7f>kWAR{vJ|Z>Adh6 zGYAoF#O3kTwRin`mlI_3uM8`K_CS||(c&H(l870rQLXtb z4E1O0u7N;FRS|x^H`DFW{<vL+rHs~_*t4am_HA}#_x>h&(0efPhGj3 z#?jCy@x&x2gD{3?fC|YkaMJ--7U7c5i0(X-)JD9Mt ziblXzE$oKrd#5p<8Z9lx&98^=hiny|Ws8ra3$5uWNXV&3GY09m+Tje=KhIsPn*Hx1 z)`gt)hV7BfgzIVdxkWYjIk-6B)P?U?Z;A;~6B0=9U+0ayh1vQ1TpYeSK8tCu3GfJ@ z>AjKd>-5hGmTkIPc0v3#pv6}U*(b*~i}MwR(q~c<|KA)NuqnM9H=EZ^AvlXD%vH9} z{r$-rU$eW{?#byp=QnDnv$MOj41?v#jg+zx5weVs=L$tD#XX-2whm<)1OjRV!n*XE z2EOJuH%8BrD39?%?ro$36N8c#l;yOHrLd7O3bJo7k&3DzTjf3TyW`)=Hv=iRJKaSs zJChJM^~cS%P1A-@bYzB6;w7ZQA`9s*N#5Q*lgDqK-=9dUYZ)*3g2(^LNi4nhZ1eiS z*{-CN$hBXAk0Oswd!izt3j3nYC8DH9JS9FMOWb0>2LPqZ0a)W+5Y>-T$cJN}l9Iq} zN$iLO(?8UQQwf7f*MX2kv@{`0^Ll=G^UnvL{ew(D?hbl#={6Hl6XG6;88+8>IaX&3 zy&r{_c=@W!N-s1-sahT;XYnj4Y1WGIM?RD-!{2bHlqi;8bqRhF5!Vn!41~uuxCMJq z+$Q0!b8KaT-s0Ze%z19()gXyBHC^9eS_G97y;L5oXh%xGBt65oY?M?@OqjegE)=kd~7n4}O4aA_ONG&;-LDB-yJcX=;f^ zAmzcKOk6GO!6yo4bdDKVn*J|Y{bh;3Qa-X4XHek#>rG>*G*3Y0xvf>((|cg#u$TmU z-1n-g*X-k8X7Jplv*x*xBPiRP92_r0W|O&H6wg8?Q}>!fmrN;bc15|b1;^ZjE;4eQ zg>qv!^5@^3ngLRn6h<<%i9I(4(&_5Ke~>QxVZjo*OeMe;lWz%_)goY`Xb3Zk`EA_c z;AZVPjTP|_b`IHwr26s}g0N7c((&u3LPqhTD~Q60ej@gS3MC;e`xdzw9*3|%=EI6N zo(RE-iIdCc)xxjY1L<9f-q`9EjuX8fD)8+r+zmL&`GRprdTMK#*K>u*ono zI~l2FqnfE>BZ@RKqcZOtp!2*yC~awGR4VE=GK;fZ!yZPo*vOWy%9^CeJ0q_8HczTo z3Uik^uKB8&UEMPUqY9S(6I{xw8eAjWZa}j_Uo8D6kEWF!TrCGTl1?^(c$HGTxn@O2 zc0=koDW0Gb&;>Y(hkR1t4e4!#u5=mFzniR{GiA=g*ic~+uqg*^jR{%MnsG0hU5g{I zXhya*`ZqPA?FtO(PbsXhGh*hhkPnzU7=Nql?sRUGm*vgrTo~Y{i`ei65lc-}<2C4z z4Gu!Sv(1`GL&Fg|lM)~nvVHKci3-9V6*VP??pe@qEJMwSxi(B!AWC%9F<|WPv6&Zn z_7pntRA2OH4Zb??G7q5EOw!r0IF!kQH5*_mjZlqXP)r(0I= z+_ovrDpRl~30S`>#${bTD=KUdJSk5hIW0_F1>UEOV4fBvu5I3H#j;g+2aR3jf8ouI zcul)|9e>C!Q};N3dV6huuvX|utT@!VxKd*<0d5spcW0~2>b{}bC+XMVG*VS*A$~@o zLj$-XaHandr53*mYP1A+x7{7gJ~N_*{D*DYL|s2GlUP(s(1Rrhfb@GQ5@mR4$Z z*RD-X>W~Zb;@3zW|3F%c6es?P--i8LO(SU%GtF1Po^RPore`@msd!c&fMJv@4HT!> z4i*S(qxdzig)1vbfXv*ER}HHNq@3z;sbGAq$q4LwffKRR==xi8sCmAPqoE@&yn6} zxbRV*i2c&EF4@!+fJ;b>56>Zv=}PZYz{m)h;Rwb~I_H*T1C&s}kLG<}M{ zC2jL^D1&yesHmC+%PqXTd^a9JXmM|NwAp-~PaNgwNLtaAV0;g01w+}7Lsj+-CqX1} z33{s@PCdu7#l@8*5|qGXNo+8#3%-B`4y23+aH{q8T7flzRe*mRhfqWB_098gprebX z*LL4YFN)(kr8414{}*q481kO+RvSrVL|)?$vIibqEJRMsIs2}Oavhq7ES>K2S_wgNYJjNGU?2jeQrNXqQaUWE%@$Eo~Ym zrG7tL_Ox{x54OLW%}8Q%^jmxe5)Y%=R9+*7*PELUOAGoiosLfqR5ze%BhD57~+Zg@*|3J4_TL{ z#w)jQlbuh0^D!ca62ICgO&{n9@1t;+i61EQ2+A$s6t7>P_EO2hYlrKoq%TFIUhO=h>ZFb>k zxrfr#U4iQbc)2zXr-DUj=brN^FTvT9{1c`65h!%>7F)BFaNE%0oIQO%VPM@CsPq4tUPH-ntedND-Q;<+fj* ztmXMS2}q0wFz;;pk$q&per9&^k$)L1zu236Y~i0wJ-C4Admd$K?+vbA?6-mC2DA0R zV)4)G>u0Kjv1|Czdf`tU{9rWWNZ*IAN{PH7_cvkkH!FirX)?08{GCCi_pb~&Dn6&L z9A|)c1^^e8*7U=S%R3oQugf~GjCAD%*y^0Y=E~$(r4}21xTy5 zt5fn37z4OB2gsM-TmWPsx3TXTkzYt!*U>R__mV|KDFVH4d5KD3eBZYr0zJUTWv&>S<^B)FvK?*?dB zW|Y52PKYI|*L~F{DJGCcyI?xKYU*uUK@Iy*!7Mi3!ANfX@>kY~DI8w7Xzl=5Q{ZIT ztsJ!tuOTd-W-@eCIXF=)u#)Xd3KG0~C)nrWsMV#7hRs^Bm9&j259y0Qe*1-GA<>kW ztYU+i7#*ecwm~pB2_i7JQ_p|`ppdAusH(Z_EcrqYiIV@Q8VK%5e6)?zx|R>AReR+l)%7%3gdfRx=*Lc1Gd8&qW~0*009v8C=P^hou!>WnsURKAqGAnMc;+p ze}MH9Clwu#Us|4qcyM~ZAkWtBJ2;!{ixPFMi{zF6tc_r0Im+L3iAXl3*$SQA@sElTw0&^HwZ@v{?K!% zJE#>n4|vV~PMm^|P@?Y@GA@t+McA)ZEUpzWz$4gChVM+OXb3NghL8cx;*!WW&j>ql zl(R5XL64CZ<(~$LXD}I}&U?M~VE_fFm|#5G30kr7`rzZL zHzPj&8+phNE%3sn8)1eJ5pFO-!}=H~O)>aNSIBM%KThcDwz*TVE4LkRSQXlTFLUR+ zUpafQzn}?rtLg)ELU`)vRaksKf}3w7(*_lNE;|bjdUzkfl(9eS4Dz0wcSLu67JX_1gc}bv3&Ml+%ew}-o8Y6QU9pmppdkF@@@=%W$1uW&VR;Ey_~kX zx>$%!pIVP4^l1gVK(gDcjOe^IWX7z&N z9=^UmPbft2LJasZ20^5vyN~zHu$9ZZ{}+a$Ebf70ki^p<10LSX^(Gnf=1nZv3T!M6 zi<1}R(GyP(vT?Y9=>yKoh=c%u`?j}e4UkC)TMEMk^_%t+c6Ij~pk+{6C!BHy)^SDX zVdlDavw~RQcG10-P21PcqSO4f)Nak%MBzLm%=YSPtx1;U7tyzrqQssZG=RVeb&lY| z=421TPh^Or_h4s!9{~IoBl!8V7sW5U)0PylqC31l?cv@$SIeYH=9?mwlJ{=QHp^z zhrIg!mKVmK5M)0-(lv4GYb7a&Zsl~v~2%yG$F?S;B?gMAfw#T@@voSs~ zow@`}kGMb8<^MsQ2Iu!*Uwn2~ebF|tz0~LQzp8A+@IAPG%_#*ymg)DVp6xIFd;~C2 z*C`Tr;U4!V@9FN4n2fNVnuH~dJl8#SuhY#Mo{8FlIPyfN1HZB^dO4~fkWNq_OL|3S zX|f;_+fYb>HipgcQT?B^i~X;zJ6J9v;NTSc?mP5Ojs9z3gVFcVy;icllhwJAn4e0~ zMkAL`s56JAwx@R!2JjR7{(L(?tWNBkl#7?&@Pf1_v8lwzyQlz*&{${}r;G*Mvzal~ zQ6MQMaO>d%JBc>vt1+iys{lK3?{wo6QQU{ko|=PK6;u3BhTF zXm5or9z%zwZF(>A18?3KXi0&9xP>)QkuSnR$rYs+QL+TG4|^i=#YSJ4XHWPpvfkWo zNsD6SxOFWEIyRKZWg~cJ8kc1vZ}gmf?eX0-l8TNOis_lrdw;PBCvcKofEi3EyTP#m zncc`B!Uo{u<@$z4S9Zq-mq}XI02X$A5E!j%syzV4S6l^+R^=LF#p=w*)MI-MuhF1Kd8KDwp{a&-*1Kz_3nW= z^FhSY_2NzQRqvz(em&&UbBExhy>{3w?)77WmJ0yaN2F9qUI{>fnnM3Tcon5J}vn>7Mdyc;fT$u;15C3-NnK_J6+7V&P%IUXKi&e)rE>f_kDlsW}n!Wy{ zr6Nt)*LQcao&Gt>CB6wJAs@F|s8)UIN_0POrf=C9n2I+YE3dSGU+k|Ql;Go5#t^-v zAk*v&$wh(l$xq-@cKL^r7|q9}*QO!r;~KhRb#rm&JagkaWzqxm3c-Zhi2nN`C;?$F zW`lgv++1%vA(3IkS&g5LafNA;^gShH=jF?Oss9isRP6l?n;cy|^m+;rzy-UZ@4M=ePQABM95k$%IVa>)$OFn-@2{JJEtOa zIScOg#C6Dr2V$3+=8Qjx?Ub8;fnu(ctWhZP)m%rU^NeIx5Jb8D?<}57^>Ez=ChSqN zdd7V_HxnktK}hB4H+f?P?Vhh64Xd!|O&CzuIP?st+QB;Dg!86Hg|lRqCarm=A*EZ! zfJK`h>g-sFe}0RVp~Qn#a6!oXYvrAy|IOFI@H*8(EBM>v&=zy-VVj%z=t1|ePG@Vo zXr)q4kCA%}$8rEh?xepH*|Tp#>*v9WTga7EtAcW;EWV@=w7^09MMk*q%rSGS&l4l< zs82a8ss=I&5(0!`lHkL>O<3}jB_u_H@6YQrUjOzoE4Sq_ zZx)tv#wB|f(-x8gdBmTVIJHPy-PwW;o~pv%bO!WL*PBu5c`;jldE#Z|13ISZ$**nC zucD14+!S-V)Sip&k=ztgYg&u?wlHRD0t)5S(Y8lUDyUvRKc!N36B01B54~8{H@bs8 zfW)k+(LSf?ESQB8It^4K_gO02-t)aI=vbM`N`-l5;s3bilfV1Kaj6Ye{6(gl=6orm zsm*ma-(6l!*P(85#Q1>JVL3vf{oF09(Q>Y`d{?#)7G=%s`C{U52=;X{Ey5l%-9QWb zAmb`(SGigk%Jr>p8&@YfeUA8DdjY>Q&PdtP^qxzX!El&js5H!rc zRmV(UahKFAes`eeZs5e9BoLw1J9^a>xs}(s%|Jc9in^A*Ppn!r!R|9(Y4OUM&mH18 z%x~nu2yxKm1?aYY{Yfr-A*w{MdE>X8sPa6^ZvHU)CsX4rRB7}bKi2xtl8zYhmnSN{EA(?GeK4}Un)HM0gwwy zFEUBw>c=s4gH)w;XrmHfc5Mt0I{wn{5$W*(W{L2O+lo0ddGpcR4yZXF|8uRk*Z}axwHG!xfGi1rNY#r@mVR~>FafOcL>I0%QD~1RfS>~^S zjm|~PW|NUikE4%%?yA-wcPf4AwUoZb_1{Yt4j$+J`D?v#tv1=Un*^ji>R{?=LAfcv zr;#v3#?p)#GP~@!QJ+ zQb6oXC#GVJG;6W@_y=M&dUzwx*M!R2e5br#!8t*fG&M<@@S1H?ron z5c(>iJiMI!_Jsd4H??H3P^)(XuAn>DO2Hi}=3%;QxzxBjlHtC0MtXkJKCEzH)g_JX zYVUzwhh7QU&sTtWZ2^iswQx=AxyJjBc&@9jlN~6gfTOFF|C>aagLu}!>h&;>@Vm4d zxbw(7FP#d~Th|;0H(|`2mn~z(e6_;#`{LS!cQU^2;8**8x%I%YCN(E;|B<5ECah&4 zVOT9DFq6+3ni=Txr1p+5RTh0#i(57$orZWZE1(T}L(t3cjpWQmXq6j4FYt``6&I2- zOt~iFWWOyJAW*3tjGL+Upj9fVuW<=5Uit>`&D1hA zd747|=kTg>Jf7Z#32on5E?Yx}&HL9AUtoh5<0)&4M8><2Zil{P24zk)l z4hp(wjjR1Gm80bu9Zm#B=r~~!DP{dk+3##m!90vQx5`lPuR;Uw>#j-%9S%#Oj?*f} zAGRJUY}_zZcC~s&B4kxeRTYogS$j?3INA*fy%`@1k|QcpuIGU?hjk%f+d{yzX##{A+zr-huW8o6n2U0tiYqK3a^Bp(u%oW^XyS`!af!`8<@*dG;((=N7i1*So}AP+MoD& zW7C5Hxnl{$O_CK)r09+^zT1*U4UyVT?uwTW&cI|3{!aQPd}%vZR|Q%dW6%t zkX151>T~ynx521g|GV+8%o5)sY;GLSvVB&pf;m;>sbB%Dcp;c_#&ewG=|ROJ`p9N9 zP(4!Nj^$qIAmS@nDP7E>EY8kdWk5k;Ep<}4e9I6R!ta24w=@?Li&fM5e%L@uMRHZs zYoX$S(55~!QF4}-x#k=r9e#ZGd&@>^X;f5nro~+Z=nlp}jAX6ygeXjnpW|To+XNZsdL^u@d?3h@ z?Z)B&bL^-$Ei@hk^oIxOK(F?jXNPCL4KwVG(UU_o+@1fkKEBkV;{Bqn#PvPv=WFdcw?fDXRF^zqb z?r=YFS6{Aayc$4k2BYw?F|`vMJ2ptIFwAg`d&`|+Hj z7nTZfnZaIvP|Q=JqS*rk=Wz9y{geX%D;9FKuiM#Z_XTV_u4YrBg04eNhpV1)AyH@Q z@8QgCqZGXN_D7Pq<$rnIwfk6l@9?q|6I8DSQC$d5F(GplbrEol3^JR=7(?ojmdUo- ziocd~v(7aVjWh6c=ewF_y~|4D-?an3dHbQ0XFQ!)iF{ognVU{Q?q4R4md3tU$JW=& z)fsWv0{%#21A}VjVuT5fY0ruF%ca6l#}2E%K9 z`tN&-PwOZ}MalQk7F(obAJ{gZER2@N2%xG^HsQzn$?YwK*ITn-S~w@R`CB276%kDsktk1P@+=A zy5?igo3ytND<5_ayhWV}c3~{*jICqYoY9nuO=Yn)WXUQjmY27 z(0fn|Jp1Tb8(7xCXZ08SYSTS+}I7H8hcRdA6E0ggv#3 zG+_u5=+CKv(M+0QBxZbe$BgL+5jm5dj zm#9+Bco&1@T%;5%$V|G#MxPg<3$&K)SQKUmrQ$VKX*=7!9cZFSK z_^${%wfK8e$W9BWPN=Ge-xL(9HxpTmmUAUjZ@tM7^1_vuwH3B|S1C364T{7a5rDkr zRLe;f*D9`9qZH$U$XxrAogXeVKaNLdq=>D1q%3Pe0f zMi}(OJgp!|#`wU9=@EiqQ*<#M!QMxDXGI#qdsij%?Jw4}QH-#Bn{{ChA9SJM?=T~4 zfIbBce@qR{Qw9uQ5u#qG0%=K|Yli z#4VTl`ACxy65pB2>qB~){S$#@*L7d(aAS8{Z)$)44wCus;ws&t&axR9N0Fq0R5+PELUA#8 zurJ1N^^#0`JSywie8>m%af%Lf-7&8j&4zGUL0w8TfgUDogtWk%J#1FIA=DJAq5);o zYpoffDVVVvi?Uw37|^e$KhfAB)3~2j%xY&Uu*Rjp^bxvdEcbMsZoyn}apK#-LZ-sL z|L(V~&9#-;$*$)3K(+&!f4y-aWmhyZF{9zg_hCqpIVjqdIHQYri_~!^iUNMd9>Kd9 znd3r7WC6>-(4!jI-nBlT50!Ieb?VgiCT%wRw2!z_61G$!`>NwZ9h1f^%Wl}4qaAH< zRzowdw2&(dLC@AMO|;h9h}`H2IgW;i%9)b2xkyC|2yU~-5$GuhFh_lH5jJV#v=Kq+ zcLc%d7P7@QFs?94eT!qAQz?Np!q1G zAaH8wisPP&rfHEcTuE6wRkn_mhDAR`OVza8g^|jw!DL!YZG?lo;xb^&axP*ft!(pC z#X64Fbd=M4yD>HA<*iGija`rMca3`=pR}mgL}->orn`{wcbCl5Q6io4q#m%h|?q5wsXP*ZHS&SWYfhtUq_=RNld8VP*iXU-; zfz+KAo8<B$(J5Yca&z`}493((?19EH`y6@-jBVYS^Hm-?ce%59 z-?ZtC*4qh~VAxQeMR0}}7Nm=D34$lu*UofijbB3Z`&gK+w^w_g$uzIWB5W6f0_vE` zrznxDG}5j?H5pGHoE^1L1HROS)~V~u7KNjA)OJ6uG@3N7{Wj=h^_WbXhRs5`j=u)LqkOVt}a#6Icze$@=_&j{;LzcWQXnNh;QBmCxWMm9Y60q=J4) ztO<;w7Wn9n;;rLDM*VbOENH>K5vHywL`(~V<9S`Dj1e+LGxp`yZz%Jo`4BZU8_|qj zLlm2!?;SYNyD34VuxG3M0gB%)qvs-OT{J8PIcT|UnRpddXvxgIVH_UO^nd*xo|7Y zT=WYv6->AZiLgX7Zgf3hh_i-LEa`oTf-^N%y?lLK$G*c2c2Xm&-N2Q)2~)PvVGV;_ zQ*AUM!&qf0i|DI~MHmBv)=KWp%4Wtq>TsH+pXM8aV7ZeX<(DvjClAe0)7A<*u0I_h z6^}-_RpJ(u7)2MsSnTF1u|!B@QoqW(t8X2sme3dUx~xVht*7*)g4qPW>7gk$+G)Kh zv_mUJm_w|jB5i9Ut6ij=Fez}eXY*k|udiA>ypOHSc=goFK|)JiA!V&Le&ILIdwVd4 zeSwnU^je?bh&aC(>h4OD(a|-UT;!BH9~{6C<^_Grk0ujsHHWbbPo4FPQu2(JuQ*cE zQRsbQ(i|;~xabfo=R&gF5xqq#ykeO;Lf|`fYwV8Z)=BpzniuB2%y;(dSbL{cb|c?z zRyL0ibKH(obO4!@ZqH^?24# z4a0FG1YPl!b%=$3c&NP)F|r+D#M?PTEfum-F`|iPTOO>@bBv2@biGv8=D&4H77;az zkSPh4fvGO!sn0q(GU@UuJ4E3XpTrPkST*r{Is{H)IBjDTBDs2`scjN9n>!!kQNb41 zwOvQ#HKWuJS-vV}1-tlB&dVXV-9;wM{E`gjLO+7F;a zDTp(qg29liq|YYP?qscAk^cumU6rzHd7&m2MODl5~bO1a%o!TG8+c#H0f3^h{@ z8!N^Xb$}ir<1{}NHl^7RB&q?EMGJ{`PQZxfrWD5Ff$i)x|6H&rNr#CVIVA};UPx;l zeYrXFs1ywgTGX=@*v|87)B){~-rMpHp%yM8c;osh)F%4X2${bt2Y(lzH-o@5&2CVk zX_RMb{zxd3{BMz*GC0PoC`f0Hsgvn=$ud{I?O}7 zbYl^mt5o^>5V{WF2CU7wGP>ZZ+o50RQnLhzW`X&4wfT~CJ_c_LGGHgI%>~0|@zKFM zv6|pmw3vGPkoPI)Y5T;$o9Qx4col5O%Nj-9^FEpR=qsfR3(j{^0Qb_q25D+xLoIQx zFf+~GIBYOQ-?Od)iRY`3RByW>6^BNBsfE+MGY?F=^TJguqf>H=ypk)SM$pHMlsQIa zjVqw-H3w8ouY(^(vpLJBYIjirA`JFFCESy#x)}Kks_o_qlWFzj?)Ww$mWP5Q)zPKq(j^p_H}^4dn!!xk6W?SD*R*#t z+^vQB8}yU=P8mrBp;4Uaa3;kWyM`#9M)=7_S5bu-m7ZJY-?Z)9bPjGYky@QHoM9kq z=S8*YLE>0kC6-&mQQ|ppl5f*jV>)4wL?wq98rSm^n8XK|lOxCJr>^YY5wDDhb%8mx zsG!dAcF{bWJtq|^+b5nnLO3@K-3`J#`Eq;ONGd85U6DR=X3s^Ssk1@+nnqg8y)A0@ zx%a!RN_E=r^lrbWewQOaWcRKx_bH|aek#49s;1E(;@v7lrfdCn2LfjZkVe7%TRQKq zi1hMqbX}H;YOZ+L2qVrkHztN2Vfhlt)X&%Kea4selrZgSeT| zaph=dsx{tMJUkM#!i8}>DYFNA^ua~yyYB-yKNNGOzxGZGtAw6NnYJ6dGhIhYi8!5s zdErgUHbd$cZn`R#??OFj@z3$II_7O1f&P>PS$n!SLCz|(3Fg_>>B%YU-B|9l+XpDx zFJ@;UaZdAb)fH4V9UHh%SCBdSM^f;iEPR602bUN~h3l{J%V5N|7y~V$W)_cIVWi+E zqH~z)E%+Ql_|Vdx?Ex^dt{I)QSW=hcW$l7vk;H;0d#809qBYjY13D*BZK0d-H=&et zZ8P&>%WzUA3;V?gX&3e#JIUg%Euv<`eQJkH2-uTL5I9-4T&GB;P=U<$LBS3t2`5!f-NHVL)LXHSJCSL&OWgW3^MPQbE>hCnvh* z7{FeWXM{?RW*wCDT6hzcPfPnnvaQl{c+m=* zdG^G|fpLxUKaa_(qb<))N=2zJ;uLV@~t{j$_Mwjg_sJCDla1wY;pOv~hS0$~p6ookNaMuw{ zOwrO0W1O2gXB2GcO3&Js;7wRQ>+ctruZ-a7xg%e3EV-Ry0Hu4jnZQmc&fLPKPOUiFt`5`zKf{Y4cewKsU0Rb;ALX?Q4d}R~+W}H};|ei~PE8nzHR4W9?arOaJ{?`v z!lj&@DKq9s8dsuMT^DUS$?M2Br>J5&qeq*Hv_$%kE@W}mbW(uTIdh6Rl%}6@Zsw}d zU3*s=r!Hx41`Ttvi5B9mBa^dYRYm;&CKbehjO>dGw5;t08HoG8(~JfbJqd>&T>!nat!xhCG! zUXIH9nAu#guK(2jc`my|4zFJ4!;w>lW|E6hxSB;9yHT9ItFXdUfK(aFqo`qOT>gqn zfE&@m8*Nu$)STIDuP~utSJgSDkr^Wt&k&}} zQ5Joa^iwB|!p-YwD9ui1v=@8RXU;I~#xz6aStd9o%rr|P$kFFFS_olEk~fS&#qOA? zIrH za(+})gv8SJ9|f7TL$u5Yarl%CSXp4NxsW@xvD8t)m8KqZJIDf>**t8Zz#0%$T2!L!8lvet_3G7 zwvcwXyHvrn;k-3BzW;@xWMaPCEUEsU61k>|;1K~cNWKk3!pyb=IDU|9-(-mD!UrK7 z2#KW|v>^+?m)V7LJ8PgTJ?ln+@}oRMo=@sP;&nkd(g~`TbFB~iXBAKX)sire8#S^De0FD@hT|;L(YxQScNH!2<$Xbr zK%$pNju~1gGKZXZJx4SnWE3p9MxZe5(GcIeCdpxYF~8LaPLK{NF1B5TPwS{QXQ4~p zNoCb2VoOtw$5%=*O0c7I<|o2zIg2K3<}9@mUL(ft`ZiK$#2!d-6rP7PGBqRbpLwIe zk+8}D>=&xj5D6Rr?KeBl;#q(bm{siQ*F(0P!`EDhrosBHU8U+oWO*W7k?rO%x`G+o zhLG9{Gha|!aTVIJIMvj$xy6#|ajLPOINt1%$<^Ap>}Q@)4=&T zr8W5a6ewU<4Gxj&q|1wE?&*xbLNG0cNLLBJCR|cYs*UEd#;CqJ87NW`4WqP7t$h80 ze?}^?+d;QiF;UpM=F|L_xyp>3He|16*9{Z@vgdDgA(2843KTqO_rMOEk{HWRFAuQz z=!8&rymKbPqObg2rasw?*02eS`N1`o$7%JcRiB-XlCNxJD*kb@PbK)Z@>rPlGftB^ z=$9(#j$P?}i18zhzyo&s(~fEbq01_z?fj zrPec2=qsIjw%<7w9hq^Jp&N<4uH2ckLLT+C-b|KHjKsfErDmsihK@$u8#POMQjTKz zlI>^0tGn4W!;r|ktt|4u79O>*L5(yJ|$q;1-rKU7P?s|&yJZt4}WGsmoLbL4Hh!rk*D?htQ&Tvj0 z!?Z<_Kt?NUaTXH$rP}-xe?SKt>J|#6^i2M13mSHO&sExK$Vqn+`ocx?Rc0vXGy z!+=!|dfNi!xbt+ll5KUxJx|GIImfxNkylUAa?+n^o6R5I%PtiSnmyI(8ZiaC_L!na zaYmJ_Z&?RzBciOD7puePLh$^}xgi%HIwD)I!f#uQ9|p(r0{XFvsjr=ePWze#F0oeA zuT0S_ndn-@z$wAg0=gI~xf^96--d>v+2inj6W_~UJNvm7m~{#|qXabHi09hH(csK_ z#~RGo7jAr2TqayxMlo^FTQi_n0Oqlg163BW8$-l-_66H}r zf)DL*mB-8B+@NtJKH4MoW?9L3p@W9#VL*k`eoZVN)hXH01Uua|bJQ z`odUn_}Yd2w!8ZWSdZSK?)@i7*0QeBQForf64`}JZE>sa+*1-clA@h)bzA{^Uy4Q? z5^6y4Twy-Av6}uhNkd3Hl&;yvLMKNYLA)3n+^6rWY1}@Haw>zLG|Xa@TZ3+(I9V^J zZX@K4qKcuo@Nwy)?xo8h2CK;0cyh8;Q0j4Gw%f6&(27enorQIhtG)N07M(o)penCI zN)IzSYR^M<-UVc#HcK8!&UfL=3kaID(79?co$$~ZSXxx2;0<4G=_|LtrZ()Tne1_t z2Sn>P=N0i&+s|rpeEw9Mbo(Ad7!~kMb}Nt1Ma$D8+lfY>*)e5+i22r9pzOg);X@Tw z183%lS1Op!(QkHq%N^kKV7Qu6C)yH0zgWF^@S%7yE9%XHtPXVRWOKFwe|`(nrgpbC znXQnpo~^JS#5_|+$XW$sTEci$KcP={deo8kPK)(0LnQ1nAF~^U-}9#Kwa+YS<}l;~WW~C5j9yc&eouA|K5QAv zm~ah?a5(0PgEw`!oEbOTM4EGYHu5H15>0aTvwbPwb=T+&r^D!WHe_Jb@Kbg@%i^ZPx@X;Y6sgZ$K~A4w2xFI8^r}Fgx>SDM*+sVhh=}r zn}!Gh3XU-Y>ZJ7>ZAt)_4()b?x<+Q^>J1?aG(9SaDO$NHF|}V(To(F zV{Q^39&uuIsF3|uI!+)`G$(b4ZU?7qR{}vu>vG+plU`2^Nw1e)LA=pr4kO~U;0l`sg}Ltd$T&FTg1NRs zFmR}^F!G?$fRfHp2*_%14sLDr6hqenOD6%fA zB(A3eB+R1%^&Tb&b%%&UWhLyQ3kTp|-e-P|F3eYLsK_y&F!o{`qU4NuI~EiNQWoiA&Tu|BAkZB5qx(EI%1SF}Lb6opjG90;1byuhi;t4K?5f~sgr zCSe^F$S0h@;(ZdAw%WnJkkbs_hO*S#y(s=PADUi8`}&$uOtA~d-=gOZ94e#g3!X(O z2TZSASUCPbM@aRd(3*&95Nc6aby-k}?u(ZeM1dnCtlNg8m^?v6wTX#?pWbrd^UP$o z5y!o-ZflOG0(Z9qy2ql zVP$snJ7G??^Xg&C7C3U7`I})THuJh+6E^cF=P$5?(5?Z<9D{9loPvzR?Y{fOL($hxpxLE~oa3NtUWRotNGNh0IT`xGa&O?Xgd1_D#c=()? z9UuG@xhr+ucQI~i}+FrA9PndJQ^@Q2gb$voOj4wKP8D_##H3Y*Ps zb1?%p?E@NgD%#S*M#7mFO$=UCARl1{y2J7e`I1>hApZ8~OWj|ZRib4z8mbmF-YWrWfzmUw*zBFAKQdo2rP{EtiCher0lPYx2(FsU@J5Wu zCpfE?(I-ADoNMJ=_6 zXl+9*M=yd@l1mBX4s?5Li@F3wE?g^rr|nUNLe`?lDo|SnsvK}ts}2pHqV2VD6+Y-X zk6d{mw`^@S6C2}4fd{uDXqPMwUZs;8bBInCZ|c(WaSZWscvx(A=U@A>|NI4FpdT?H z-Tyu?fb7P3no`-zY85EeT2v1j1*t$mYEdOXg;z9!C3H;6n8-LV3 zdCf-OtXB8(id{P9LJ#7}m(pEiI}WC>M#|yO`LXrn2!Os&s<%B@d2fC0h|5dKZKZH& z?=uO_^pyzz#Sm>*s^u2aEk(_ zN)2~6*BJNPZm}JF)Av8At=M=e)b?~)Yo#}3<_!IAY`1JA_E!b8Yf1+ss89y6Y5%Hi zh*kTM`SqItO*uW*+uV^wBh-r13Q{o|&;|N_#?dh3Ho4(la zRW2a=Jyp}*Sy`3)9}4DIwF9hjMMc}oU}SSsT4N#4R>w59vG-3mcU&DgsW>%b`ZQ^bL|i@=?Os%z#_ zOxu7GMj6K1{D}JjoL*zrvM0reto^!b!c`+sR!-6~3S|Lo7YMbb~sVjt}+pT1Q72i=dtz%OjLs(>iIP(XOSQ9CJ&m zv}Ny1$2+`6Z$6i4oX=OYkO&7U06^C<^%GShZkA-Hm)hCK#=kAPnH~ATBJNE7@PnNE ztecW4z(ctYQ7uV%kgV9w6~lKUDHuxB=hof%fO9xanh$4WFodvp~Zz%3Mda>%ugqtC>3 zzGb9oa{42xFJV0&^57aVB$Tg$hN2^{j>LJIw=}l5*6%Xi2ynQ=-{;rzKg`HW1RFQFB z*_7m>lR#X{Wk-%dcd&n0I;!v(F_2zXS;eJ3n6>&?_du8CqoXU&D@AdqpSS+oKGrzo;k`lFZaY^&_on%ScbJi>%*C^V#a@i4F}^bp-sR%%tz#*&xvA0M;QHGkL*k<8|Rq_IjTMvMf(C_>=4=B530>RW5JxOM7R`8Te&Ax9u4(u3t)IW zUiQZPLI!3Ml~a{8nq`MjVGgORz76|)TeW=N6jc&q6B}9qski^~&}v3vEJhNbsosoM zs`+Y@=xfS=x106cKDOuU1{5C09bDR(#UD(_W^@%WgmZ{N(>)8G-;INV8WGD@$@l-N zk|;%s7*Q?bE|{vZUP;ur3#-C3%WlNdi%8+BXRpu3^e=y0QG7PUBBB0F@oggg2Z>6> z(rfe_Y84`$9n-kuc9MYB*R&l*aD~*~(-HR7zC$KbIpYOov!uHr+&od+Ro`@7OQQE& znE8iTr=AjfFB8(X-J*Z)PFeI~i|(8GM`Z-b(%Gh~l!eMjPUg67-e^X2&_;zp^fW{9 z%U;f;Nu73MhZsII3q|L>(ereHUa)MAx&vqMUX+aWh%34-b*F2M1ZOp~qHtF8%o}-) z#k)scj=gFP9kt+L*qqW`a{YQzTaR|of({b-0ez;X{m;NRg&Z55*ikNzV{F-S9_SOI zz(5i8=2V8yhmEgNPbj=QGXpWYLto*jhUP76<*DwFn2&d=elUwH(Nio5kFKyVMsqH= z-|?9d+Kmufh>owYJKA5JH6O?8s&<~&L(>s=lqE1LtU3;x7I#sy97=e>BSwdz9$hGc zyiu##Cm+(%ST6E}F@W+JICJnO)fT041Us}XS&iChJLBOk=z}cI%^@kWR!481fS2ER z6gK6)5+&S@dV``euDG~?$->nqhc=-^8RBY`U zRY2DTKKyBh&18`uoYfv6RHDF<(?eG=aKPpl)hwu{!u!?4vO{8oMseD9H%Q(f(ga3O z08;C)Lc{2d(t|~;y>17{89arNmU6>_$ly05@$c=28mgJY0fNxqirIs8*14fbnM8W4_hK8{QXM>B+@yOCOB;HK&m?{1U#ahc7!q12^c z^u(ExlhJU4{)(!4%z#fM$BORYwFJtdMoexB=GG%j$1p;u6)}@y^I7TTV1kC7=I(C7 zNm1l2zd%hzP|N7|X3Ly*b|g&DX96cW?NEk0DlW7N*}IO*sS z+j)2iVox!jwmMFsMGxViy!j>16SZ@vyFP*f&bnZ)SY$Oq8oc_4=u<3JlYBzFP4sr3 zc52&eMot7lSw}EKa4*zDA1bS-D6rlY?9HYt2BoaersQv9@is^uSU)w}SN#l5`fL_1 z6*s)f^l|>I#O#T*yN0Vr0y>e>^1f+zHMgj~tWz(T5i>^&x*pAFp|=?~#9?}fh^IYO zhZT`mG?+sYT)8JY*Zt)c9U}HzdHCD-yon~)lYDa+cOpY8zMtUX>N4gGv8Mg`%_vgR zM>NT;%5ZS*Cb--VR~5RmWL8G#R*UA+yGFU*dUrmWhUiZg1zEDT6ESV}TkdzpXjH{+ z^aNWH?Qeg&?pX9^2hFn_MmEIsm6CW5qG%b|$+=n97|fVloq)IwfW5gMcj_?SI-WpI zQwi|HzuCVV2GA|bH%|&J4d7@JKY!gRL`%c^J-g&DS zeX(N4=BZ&VKnxy@VdC>zR*t2TuHZC?w+u3Nh4FWm%yuZuzTZz5+i2Z}-)exFZCwM1XP1b|`2sCgeLw-{AIEGxMwYRG(u$#+8@V+k#N z@aM2T#~?~+#!V`=SMbHHeyU;s(d>9zM{KbwlAnIgvt6mqQ@QQSt(;LY`Q>KjYLueJ zJzsw4)+thry-IZ}?ae|VMj_qh0*4NNZ#uSVF;(GMUnrbt!9tQbXaO9oKj7Fj3NQoc zO}ZXw^Wl|i%uO8- z;X2~GQ0YPdzH-FuoI!SLoY{j(f_R~RNP{Va$4vdRuyaDHn>Hrh)kHq9M_Np!#F zwcg1JqYwjta>*`86S#mU6gR2EfeC^7uutxz6}OPklMQs$N0j*;Q&o!zE!3 zfP*hy9xCA@}Dss7wf1fiTAb>D^vNQN{yGRx+q{4cgG4J#PhB~0$O!Q4ihN>&-P zvXEC9-djaodmP03J|k4vXX<)ds?E#m9&VvysW4zh`QQ+mG?$mgMHUrfYV&b4P=eZ7 zZoimry(saDV|ra5@gUc+h;KOE)g`(0p4;Yu@_y_*0;+|5N11ZOJiDmo!`)ramUZ#f z(P&Ir`UQ8tbf6(d(XhtK*%jXWUrc%lSQBU4_1ju&tF9kP(V^90YsKG31lIYfXNT`5&k=6$Oeg-cs_@H=c9Z8kf2=#8 zx>3Jh{YOW$MV&OMVg1zgdYt+X#QkghD2v5T*kKq>*^mnE|KiOq%^~&QQP8ap7o+=M zou?mUV-dHW55%(nU6XP1zuQmNRC6}tTk5>8vgA)O9WZ3XTX@ag_y65pAsD^LvLBGu zceRA^Tr14p)zg20%lDAKkowS8r6>c=U zkn~Z)$>qk6pt96iuIAOdckg_Y;6K-&s(k%E|I7yc^JlM~T(o_->*rUy_Sx(zUuo+f zr}feLq$_p(FD~WaCz39y=iffJle;%J6<)}i_^7*nwT8DAnvoEaO_3MYEwYCc!h|*| zk>WXIm8%dw=PE)d+%7AMTBvVR$i7nXAe&_m%A=5WcxsNiO)20=QhR16zE4+134LO;GU%af| z?ygr>G0VcuZB#1?cgTveBuwWjUhKF(6|hKba9$#XXxVbX^`q-`ntY?tgL)M|k2m4e zcoSCKoi+z=0yUaGmg@wV%}JKZTK7B6WQX67Zk|XsJ$>o^CTtNfP8AlVNUSYD9dK2N|z?w^t_inbu^txh3SCDlxFg?@LsE?e}w1T6hE8DIT|DFSJ#S#Y>7rF zxgoXCfBTp#%O)jDoAn2R!0c1W@GX)by3)t2fW>U!AE9fT!j=McS#{!mpkAbmzq2AL zh2duJH|n0RGD%$8ruC86Ds+8@8Pe5JzCe9j2l3wXxAYIG+_wW?!`DotVh&OkJWCtfUNQYgjHrLqBG+DR3KKn;>g6N3T zWP4M4M>BW*TajOycH$7}CAAHkE==_IED|IVJnIB1KTmweskdJpQLgi+Ti=aY`rs(M z44g#qA2#3XJ@oe%xQ61bHA^4%9DR8ii56eBcp%zCilrj1U8Gpu`hB}QvuXXsve9(f zF6{dyT*KR~GrKwy6(c>=SfKWVu<>F1KJ4FGm#?iWdB5IRHa~@bEqHB@Tt0o1p+3cC zEZ3gAI{o^>weYJA!PAFjw_Ju^EawuZYJI%JYbilT23>!fT_rS*=S7U(@t(fb_d>+v zy*K_+@6OChx*jy&?uzu5;{$vAB0Qh34;067ulrx6`39tvu;ZAky5lb7R2f(0C@05u zR*qd-6SpjWX!s6QN&C(`sd48nL;~MQ7BX@8_U~2*y?0XhT1?#<#8{mjVyv~u-F*Ss zCO%6?W@=tM`BOnBKTZTVn9B`yAAvvSbHwTVBe@5JH#?4t_L#m>?5{P*8hGvExA9x8 zclvpoJnu&Qac7|Vhk8S2-TO!l2MqloV{@y#^=Ue&JLa^Am=9)>={c~{J|Q>F!5Rd0?~%#{sppKO!_B|2R(i{FmOIEQh-DobK{}@@cyjVU%ytvs*|J9ceFj6V@Is8~GoGCMqnxH~V{X+f zOclLQpCEy(~L2R_Lls~h|%q1>9lt<9#{7s zpG*9Sq2!>Vbo{*F89pl*;4|y_6*iS#Wm`DRDNccow5#UDqz%GgKx5Upl4xB~^ooNy z-~Z~dAn=2!q~&o|k#!AK)q2%w25c*L&_WaSdn-d{9xQn7xkS6lsy9JLy;H6-518<1 zda0)TR6RW-t2Rt+wKRH@y`rIO&P4#4) z^iGLlQ;l1FwihvsZWa8CFW=A=;)ncCrmuX*_4O6zTCQd!4xZ>cMAJqx-_K5-!|{_A zOaE+XG~;i$o%rMBk>$zIYu_epS-63N4xL+4I51m2D!?2-%$4Ss{a7YSkbIVS{8x!D zcID=tYlmmNhj^@Ft3hLF7s>r{SyuIKDP*%AG1DI_-UA%Qj)vdJjM)&A4+WU_J9hWm zC>~>JF5>V7|=Vvi+axww=u_k?S_Vy*a#JQTAL`{DT>gg(?B+jt?in8)bh zJ0ceDZ%54Vrwp+-uTG8&BHAt6fHV7DuPYd`DyK*>Y4GXWU!={EPXdfxclJ(i8N!F6 zqjYd)={O{QPmE*ML!;!!lpWOb*p;Fi;0k#tX;m2g__g)e>W<}j+eCt8=km2EU~xe36n~B*wVZjF|%qPJoRyCRa~Gq?S*wEKF&c!vAc>{+%=elimAVE zfiMKeWF{$mKFwZuUBFO&Zx@x~g`NnnmLC@?9%B%lOLXJ!N2Bx_JE>9fA8e!ih!}Z7 zs9ckko{@exJu^MaC&TBiPo@t+ClswP3YHOeI%zb$F3T>%?yh75(VV!2xRJP-XhF2( z+gDiA37)4s37+8}qH=~L5s&yyXrQ8p!V_4EpegO^xlD(x2^W z^6P2}>(XTAQ`RA9>N6hvbz3`C31m;w8z;pMa(sWexdc72Pc>#c2Glha(OyNW3C53N z%{X`Q8rQYkI!!mpOEsjt(y@Qg2+b+Jjg+n&nRYqIr-<%Jn#g6CG#{bi@o{oPy1X~R z-t=2bxpN}m{k0Sn8eh>xb_{rZr@9jf${OoYWyr^%fUVq z-CCNgazM<$F*|ZM)Gf&+RC5xKzu9`Pe&4rgxah?X${H5+vDKya*hE*$PS3u3tse60 zi<4PAQO2B{%Tn$N@k(WA2@mOo$s-Wm550#{Fj3gogU?=|B6<$7=^YZ-Gs{ z$IGeN21|sYdk6NZ<>JcN>TLZ-8qu=Y&Gl%iam=%)gX*>Xhs6H!62(mXu-}JVX7bt{ zr6ZzDj|7}d4toIL=1uW8@ol0^P&z|ta?tU9d)bV4Jh&510$|V@CTGlbMZL==yEM5|D=*cwx-G^O+7Z`h zDQL*P7YSCS{Obx^m#3L zDQzbG0IYk{$~meKMDFO^s*j^(y6%$F6OUts*@A3wSp4Nd;TM1hL7x8LT0+&#c!dQQ?>v$6E+ijCw5Ob zO&pz~#I^^8@z2Yyy37~OYBDr;HJO?$vkd%ZV7D{C3y zV3u!zGzTy^N1ToEC{(GnQv@pxDEdJuXwg7#=HczfY|$UuI9SDPwuNw*%pu*qk$EeMd4W8|LQ_)0hSR87^a zGn<-Sh~6&WBap>xj(H9Z9i)A)ysQ^(%t_jMQJHu*F^qn$1m}wA_g3DL?nu7}aly1g zPDOP;QJDMBmd`ppHXP8c?zruUw+$rS+uo_ZZBxi8R%YGJ3Zq{t;kmWk3MAQVmwzRY z6>Tbd20cDVi^V=I?}BfYbq{(5UMu93S7V66mdm%l<=))LCIv$!Q!`bw4oqr%-S(WM zgBO*x8MWu=S4()?5VYv!Z@Gi;Nyj4wm8w@uFGR)rni|*Z?D;v(Pp4*TX6Kkz=dK$5 z`H1&ZU$gP*H>NXr)s(F`)a7wv!U>`7QdFXKOd0>s0n2Krnk;j5w!9BbPydoH`H2A) zPG8KIbVZaY!`V!UFybfWSP3D7?txW~l@fyKYZ7C-VW z-t|n`^F0tcub$0&_%$syQyLpvev|G{mptm}2^~!=lE*v^&>4D9?*aaU(5>n{Z4czN zY@0IMZ3|?y9G)^eH1acafh;p~9jSsgPM^!ivlvkD^k_bQG$LKunYR%cx6tbJLQb9J z{XD=UnIShGtiS}oNkMf2yEsC$8C#qyHOK9~JdQ8%S5JiIO$F8@Q?Xq+GafA1%bhD^Y3 z1yq7-!Mosypg>U2aawR%oXiUjYz(~~#@U9Y1&Zs?PxlRuFlXodxfOyr0{6$}`!ZKn za#W@(Gx=1eD?2$cvnel`Ky{$TQLU)qR1az@bq&>rYG+T0!B)t>XC{YIU8zY_Gb)ja zp;D+w>VLD4z3D$;k{?-kUl8U>g5w?Sg7ywufo(^npt2*XiW?Pe5c;KYwbvD&C{8G> zKtE6n+JlckIO&8KUD3GXAjL1OS`gz$>n()b%{dN=CNz%dN#Y*ie#P~La+2$lGm{@_ z&)dtfiff8ga5JdsaOkKN)ON%P;vR63zG>z0b<5y-S&2*99+lpAx+%EYbe8Kk-Q?ca zkT;9pNZCl)OtGL?$~VY2$<5_kFo@=XUHqW(FXw8Yc z6t~QYD22eBXrrhy&&^A&5>%op0zfgk;uvU;uJ8vRp)0(>Sad}YIE$`03L?-Ieqb@W z;v^V`t_TF*N_m^j`>p%@gv%G5sEf^s$EJ(Y8Pb$U>~s-PsbU}Ce@u=bZpoirCtkXZ zjyzFF%4euDFJes~nTv`1iJ^B!i<^NE|H9C7U8lSw&UBs1VQ5Zuv1{Labu@y>n3=1C zk=_GVKL6Qc(q?g;zffWpYAcnG{F)V)r|@jJG_JFrBW1zz0F1y#n9%R!A);62NKx`C z>T#-VF|WQkQ|4Nb?40RZl)Mf*8biozGH)u>yKMIK66u& zS8vKjOXYT*Vn~=pvXizx-hFS*Lu&XtbNbW1W<2yMV&S?u!Z1R{PVmcY28ji;HOzY4 zUP4Z2v5hVGgC5>y2bA7l)3_}zLM$@;fmw_J`N%MHLrg73) zxz!41C#7j_%BEb>j!uxEp^IjZnZIBON&e$Zs2l2f?FAeTz z{{8s=-;W?}$5Cn8E+@nSX6M^hV^Q+Q*TSsK{pmK;i_ek_m>_>|gO9Ig2p9~K$?{eoZ>E7agl-l0T>VVMht}*x{ywh!IJ&AX=>Dy}L$U zGMkDvZWe5Q;91Aizxm2p9r2r(-Q;<;y1`q@zO%a4ivw#fgi+@gpHpZKRuqU_8HIp z5F|9z>?A{8fkdp)_}mhqVc%d=O%HQ>_;o#e&JxG)fWLK@VerUo?x$jCO*fP-g3`O7 zbSBjc7coq^CGhc2+k^n{t}uf1_B_+&8Z=Dd%J@z?3luIGq=;66Sj**(gGARmJG|T6-SnmXFGM?G18`! z{~)9y=|P*51*S;F)QFmq&yPVk1W@;T2-m-he~x>Hq0tZD#pkV@x0`z&`621%&`kO( zQW{F%?LCXZ6&f#Elmnp0M=tDohzK(wfcsJ%R>Wcx-m00d+dbCE6_WoKck;DASq+(%I&0bxl^8k_L-%)Hop0U`l+d- zs3TMm+A$&+>2MXeb^sX^@ruEox6epO^GOR$BSKADo)!+3A&sqagVjy~lquk_LdX6I zXdFot1J*i>_`O*qQ=zFc>zdY8UcZZoVv4&AeN7xaZSr=)`T;Fp1}|#w}hu>T=!N;&Z&Dw^hy;lNVRly!b7dzp4`zY43avl$F6n5`8ry+-rzG~||; z!w4tP+w`?hb)Caup6^++R#G6e-xFoN;07mg;+jd5ZFoC~-3%p99@oFBOj^B$q?A>n%i*xBG*kPj!Xs z*#dU7iE~V-Tl`v??h?Q@Uif_;pmeEAkK*Fn!^vrDMgofIg#q~RYL4w-Kbq1wnGj}5 zdB#(T@ngUJkoM}%ZFmZXY~Ir4d7-1fon6U7lgE+gx;g=?i2^A488l@M5LY;x%>feV z@PHqI*43hcY{3YN$}|3$T%O#Pd{cW|;R9xaxgDi~(g$3QNO39avE+=xMe)7jOGS{v zNpV%NQxU1ay_KlDjo%#sIsTBdJ1)(s^X5(2=Pqg1%gYb64%cF=cv}G5PANrf8?Vjb z_T4%D43bCdcWgm!H0?45Lu~Cs?LBRbf~xrZQ7-#c1)aH|snxnF>=m&Jgd$Agu1Ha= zR-BB*6jilBPKs`GK0GI))3dpCe!#W!N{TO3JtRSb;UN;hKb5y{L5@-Eh|NtBy8&>S z(Kl`HUnD>uAtZJyU**i?irnzYj?1bOIX=Ybl^EH17f(A*(4Fe;s4%z$FZ)u zc?&{9IUNpO7rE^mD$tFvli^B(&5^9{fCY<=KtW(fub{UBt~4D_$f=E6nl?6VZn9{y zOxlpNDakx(OA^!YptiZRxpfFIi1#S%$WUcb$>Wr*M4_%@?iD{MZ{bjITg&x_y(q{Oe+RNdW$QHE^n$b5v+3Z4znQGKxcx&ryI2Vq`E;OKX&rgxHr8PCNRm`VwIH- zT0KPecIk1;--0h4;G}qw{Q~a`sNFZ z@`!fa)si)CMK5ykJ*&z~-*)a(?HV-#C2I!N+=QLS#!ML1SECh4J?(o;PgC3y`ctPj z=9`*QPzn9|>EL|RAD$(RGsjh1y8!Y|!kDT)W&0HVKyJ-~X$U$zg?A?YykHvlWHy@C zsjM0dq!POUH4t49FlIukHjNrhB{i?q8Z;zu&2HpNJj)w_d%D0;tEf&ArCQsUorC3|KP_7I0=l{i_$&%W$e;JNSZ#26hMk>*w35kiFKK9k! zam1XX6WqRlTQ4)nDZ!N3jZ=F>s3V+I#C?u8qoT2NVha|rP`MVtuRB$+U4r|SsnC19 z7WXbxewxCi4WWQo%VWyAFiGJv-V-t{ynCe)KHxAn7Bt*M`|H+Gsouk5x98SVbgRQK zc$q90PiR_Mid5iy$2-Bh4ljXMN1LFngC?ML7^=7ivDWzVBXi^)#ZmB2&>FlCUH~V- zjUW?-^#f#R=fKvtkx^)%?6D+SF$aE*HJr%gTPys`IgScgbYS5F!9lbURvUbweb|Xm zj=drbYlv5DS41er!2cz5R<$|pmKtRL5;l4$H-H-fRV3fm(iHxRy^1Tbxp7rqPYV`Q zKgM&ehal%VtOUrrcyr1oz;OaK;b=U;Jvp3I8_!8FmpDzpDPjU{s7%;SI84}0U~s#} zW=_4u!8AWH6Pd5IG&hBOm~(i`BM~60Ou#`Q7o-a$S!P+e8Nde99;08{*J%MCRR67t z3O@w~Bz5pJiJ8Q#e&3Y-F2%}rgoHz@VDRmJKO)q$Mda(wvvdZhK~kZP#MGS+)Lwt7 z#mVEqInW9$1@VF=0dSX+Wipp+lx&t*nD+57^do&2+mEYUl(wqxl~JlMl@_WXz;)gNm-iPp^^zy&M)Tlc%P6t4r~A>BVLtrVTK#%sA-{Yz*I? zUN)v%=X~)ph1yFBp?gx(uAyfrJ=$>Oc8d8u{&lKcb6LEHWCP0!XUlHE=X&fVg{Z8% zayR&}9Ndxjl_!gVZxsiZCz?RdE`8i>f#ex}z#ifi0+ta4-c`5en*16(n#qD)KAvf66B+ z@@udI6$w{QRAdPF02O%-j7CMC0jE%rk>F-jWH4Cg$7Kl|2;BcEoPt^c_l_XWpIa!1 zBXDyB|6e~7Sow3A0xJSHQ&9TG@|3yxVDQlCYTUP=LN4Ysg@PCsmH&OAZrcmV+vz!(`?OU<+cfKd zsY!g#5(Tvax ziDliUI-5#vEtb!>oEd{Ro`ho;XXc3FYtV>}+{IGE^;Q9Y|)q!G#rEkt^2f zRe_l~E5<72f4d3C`r_Nqs1oi{Y;Ae(Aj^)Vyp57r-f_iw@;tJ&H%Xk@qbZZV`3;^! z4YMAw zg5gsv#m~rL0pUuMO-#dNj?O-T-%5_>r^16TK086f7HW<_UnybL5Uy16Oc}laih4|ygH&)3ZgtyPN3B$m^D#d$ zW;&VVGBa;xFi9+W6DbyJ+jyJc=_LANb8;Vv+&IL*zMoR^p1;j2WEl6K2UXT{oC?Nr z|E|70x?BZ+ML9CW%WPhE7%Y60A#5Zo5O zq5m7Q5djeqU7@h%NJ5L>bNrbDK*4UQHvA4leYSA^9VRb1B{MWnc{*R&wtG3$Pw9{a zcObf;U;Vhh55=s{9Lb-J%Z$sKg9$g`Iy#a#8VZBnN1Qt$75~*&u>9&*{DW-cgO(-C zzA7Nr-av4eC7mOfUU{z+HNN6Ez=ztFFgvP%**yk=-7M*_ozaU-`#rDTcwUT7cz;P9 z8IU+P_-@`T>n+Ypl+3BIbAPeEt>?mp1D%=)av5G@UFk^^?;*l^`7=%GGx9tDYmson z^=9;nHGKGs0_}e6FwpGo=~!)G?5c!p;XvMl{gBw;Ug+F60$YqKgscO6Dp^ijRcyR2 z=Iqj0i1+kcnR8GTj;c~vkVIF~YnTH&Yf7U|L4nw5*P9Go8!Yy!CtUNi{}#A$LD5Zk zXO|Qr!|E9Rh|@RiA7lHHELp+ElVnHv4y<~n1IFWF$AtQL0zAPIbR}@sTPXj?(N0R2 zq>{G-XY$(QmZ+MB3uw6ay%)N3App`p1<%rY zX9A96iR^fOFGv&>C%n0sb6oKROd!iBuAON4{?1CM96S$mq<5efd8t3OS0UE-e7*wP6*)AkQWD z$n6qsN{kP+TM;^Zsl_QM8MHlGX()#$)2@S`H^2kXl{mmwntaV)NhBB%V!XqYyInUP z!`r2^MAQ8s55yc028NR9p=f$w+W#<0tr_g=*oVyl0Ds!MLWqwt<;Wxj%5nCTX`e!G z4(y`uSzh*q&Q5DiR0IA(%{siZ-F;|=EQ6bb`B132DV?D+#Rd86c&G#3JPrfepZLjZ zird>%$qx+mwo-VcGp0JwsUs#(%iWQer;Dau=S{uNpL)%jdL4Al z>v9?Y^~Mo&C2x+|rdcI|d*I*X{4#5G*NR!+2Ac@HO7f^)qhD83yuA$vEt_^#a-Xor z*Ji>*Gw_<-<)xSfQS(j;%nRvju+?&3p?da&aQRHkwM$mN=e5n4U?-8QJu%6iXl73& z+7mJMM2bBTX-_2C6Y=&$6H0SaxZM9A>{HUGEQMz1CM>xu{^_?fy@!&Ke3?~atwMSW z6<6I5I$M_KIx*5uU7^YHVJo=tU%;#AtQhIzZOFAt1@LfyRe4&VjdzkmSeDj0ws=Bf zmKV%>y)~v-sZ1 z5r5+v7C%TiLNI;HrwwLz>de)?;+}$WXtHN|l=oic<(BnUzj$fp@pKTpSJXZo|25x7 z)NES5>F!Zr@`0b~3z$QD_@M}&q}iRdi< z6bmR}NEHa|O6zkLki(FgQm&;~Ir$n-!tyK{Yuu?x67vJRO=-6o63dpox)ITX_~xLi zm)h5h`F=wAtnnyJjG9m;B9_jVxgdakeUVIJUD^8%t$99KAu|PDz1&Vy?zh_MYdntS z0aBRytB?ev1(u#WWsi_ZmIIU=w#V2%KY4cFDPo!Kjt|}e9s_H)8oK!~&}c6HV^Gh& zBW!0?e^HDpW2h~%vT)u}85u-UfKTfL|BVB*UO!$;Vsp`CD5C0g&pSaL+FotWH#AV zrv2N?kR`F8KEHLh9}_LHU4y5`_r)qUB*DlnRisR1)f;a3rQ9H-ten+&D_ME6Xv2M?u#p>c-HtN^;e!bd25e2u2b)$e58Q)IlfHKjY-pLqKdQv% zL%ArRQU*BcN>RXb8DO&zlhwe1gK}T&FF&`*Ep}C!MwtyKM9}xFHjN3!)QeTb<14LR zCwWwm|x* za=tjh?P9^bqH5ERj56dtJm$5W2qXL8Or&ikw{rn z3fFBjh+~y!XMUQtxw_))=b&2`Yz%|Qpxfgr3~eGk#?2hxV_2NzCX&o-@@K>3cEPt#h&GKFJUh0 z9`+Z(6_%wm*y>FFJdDjj336izatl11boD5FqpXt&HM5XJrIbMbSWMib%S7SpWp+%c ziiNb+F*$elqiFdi<*K+v4BetFlh?Mfbj@4fK2beQo+2E~$;;M4XcpFlKhV>)BkU zFw&CXxV*`LDrDDOmSAnvhk~uhU9zsEEf?rCwy7ifGw|A@t>0yf%VVe>9feoiH)7;5 zp`q$Nj3c(~*0qb1jR#;3fwV;fn-F7(2NC^vp|9~QwsF!8TLCbNppk#ifZbzA3$$rH z{OSYYU+E-^;WmgW_Yv9CbPoR ze8-+5Xtk`*#SsPX+lYa5_>?SL^G_Gf%Y7QYXe6acun_|c$(_fP_GcN5Mt`Rq!?Ks6 zBqQf&s7-38lhtsEL#sAUcEZW{W6Rnd{Nc&&MTwdeSy8&t5@WY!sI7(?@V}>$b`X{zVd*(Ke?Sy-YqUQ~g|z znyR$@0M6??oLX#Wi`srdbreEgy5!5d(L8@-fc^&wX{zx|GkDRK9DgAo0YPUkoEhQ-iP{JYWT= zcc0>8rq@rZcH{Xx#$5U_nGads`kyj=v8(PEiRHfdMY)p7Bi&-C%70-VH++=ZFNKv; z12fo!7QMlt#mVW9zplc#0rK+KBBu3Vk+n4K;Wcs$vcGOEf_CLJwomdaGg$Ikd^U1D zc4e%DJmj+v`=K>RHg`0&e*~r>Uf5|8Noke${LRa+lvd0E{K4In?{{w6Vlb3yX-{`g z|2f1f@y2~Vs!zQE+baTv%O}^VHpD;^CkU$jG2GmVyA1V97_%jmit3F&3>e2)1GrIU zz1JAK-f-BL8$~YrdBEEPPG0lz3(;Gj5H0_`iLN&O{iU6gjJcUbvOL8DF~ar|H`C`& z^8PkkPMKj|;yQ3fr*g4%nvKlS0My z#uS!njNI_qoDmBuwrKXKl>TaqYHY|94|Dv{OBFu)&hN3HM~}*$2aAt4ijrLsni_S6hBZJ} z!#%xvXcb6Ao17IhEZ{3>HA3GHo8?5>)RwxA|MGDkq2hgBk0}*aux>D&4eK7ZA>pRK zVV45gfzQlk4eZR#1hydUU>g1yh&VDfhe8-SFt8Vf4-0O5xV^xsL75t493})K`@WUI zAL{XC|N3=N(zK-zS%m4>C_uN9Cf_J#=%0kb`7g9L>oV~BrK#|M<-~HvN{cnmPq+f( z`;`fElfAA9Z7kB} zely+zHuPphY$(Goy0)RD$agf6f<6In1!vvt?lk6QFcu2#&9}*eyi-^#s&S)r4t!?> zx|Naej{8dTODbF2Y z1%7Xy4=O7@$u_+B0x?2}7Qeww!7_s~*ufANn;N<+D)n?@P~5&J#Ldq%+z9Y>?2UQ; zp&sN*^{;+H1MeKUtZsOB6Uy%Ta%d+vr;tH~XHu`9Le;5b9+W!(-@MiS%3&Yn(16FcR(bDvM^iG+WEV`I-95X&Rk49WBPs}mq& zCfKWItjuTZ<>095`%&Nqa{vb$p?G8I4E5WQGZ#Jf@j1=-sVKnen~9@_KaZ$_X53xA zz{+9ynf+z<-Knv_WoO5|kuN7C?d$=3&W2o6ls?<0(zG@3DdVt>v?T4ZBV{{6lPF}@ zn~10=gI&0(M-e;SCPPdcWW~Xsr*T4bF(=Vx+d3=XlDC^?U>$0P)y7|A7y9hNPJ~|d zaV92Thp~w=6rFgmUJ;^bB|8FPU*E}F4!i2N9moaunAR%v>%>?#zn|urT2lfIYC4M&?(XeT{^Aa5VqcRh$+`RMR?s>4^|7v`;l0^4cps{x zoU8pwYlB#j!k)=aIeADEt=O!9YtBerW*tFC$)nP#r-o?1^HO?n8=2kZpx$Yn^+f|X=%_0xWo@fgHnNJktL_>c)8`UdIQ z%jNaNGtTdi^^tC!d;F|@21W}ajG#Hr3e4U1pJ*QN*gl*Kd3a* zUmD-fiQi1Oe@&u_o{Qdl{O*Q4AU(HMGcPRxK6{*tAMNZ(K67WrPtntPe!J!-$PRVm z?05amMEM)aYI%WK(S?7kq72c^GcDKyB$Rcf$!~AY2A|!v76;Wud*BXN8RM|8br2jG z;vp=pgq;18P)#I6W?$dWsZPFu1ra?lnvK8`t?fbgt_xcAEyFK9Y zkM1KpjX#c4t&ZVR3h`mjf2Mk!`eB|XK_C*UHz2w(0YYQsiHLj#^#FFFZcmV!Cl9E` z*gK(B4zLI6%2N%q%VUmp7_ZLmY(S^Yp~HcEdYdV@U2K9K7&9sYI2_hea< zU6g4SmOWlF8B{y$=&6{@By^PS9a;BI{JPBa-Q1jE=kGd~*P;F7@|!~A>nw($))k=- z<&fXqR2%8A_jMT-F6N2ex=(%6b|Jd0${zc?yj^Zun`NXs<^vhJFAHL}wq&T@{q}xF zE<#@A!5AQtfwH`A^l)4;9FpZ?B{c@%iCZr_+jW}2Nn3vv!zO9`>ScBH}?@x z>g%)sq2QC8UvojAnioi3sTE#W_oS*+#oK9Z8zE(ruA6 zoUR$(cFH3FHT5=k1oxB)Jj=C`S*R6jbk#J-enEb>W5kJ1x|$G5+$K7&E2dXnD<5oT) zdYsCORX1QiyH72ZDn`DK9abEyOZ)6@#;Md?7{4@9U-LH5$&F0?(0a<}f0l-vwY%Ui z97pPF-v+w4k(WQTn)<{>_inA*w3^ODz_r-RheQvH+VR7_O>TV23?9%nVLKwd{pfss zD9!eyf>{!d6ILUYhcM$?j|N0dROcxc%M~jWqt+y~mi3$O+RwQU7&=Gvu@_@PZ%dNMiKlcc zN@5I7%@R@ewCPPwq5^d_Th#A4H@qJz%*#2@+n=ut8?a@o^|`q>zdE4S@1_D9uw=jK z|Lq}7C%ijNdmdw;G+V7h+gleXrI#1#WLB8SL}=5(f+uR(zY5csf4SMj-|lUl3^SfY z=-Hk`kTTK>^^zoU28{bGlwled*-d?&?$Y#)Ww>NTOv8>@x(@yxV?a+@3;!afL3bAG zt3jELC=UDPp3D3jk}W7}Y)%fZ|LY&RvnNsQGQXZW>MlJBOYF;0hE>_J6Z@UrCpf&r z42NmdG-Wyq^hH#3_;t`aBs=gOppCW@w9t0echq+`>}o#Qs>I&t6jcz^Y^p#81M~{k`2XdtJfI~XB+k{ zc}SCq#p4rSA|HlYg{t8RqZ8eojMfmLP(NCIVN+hyXRbN5>Mxw8X3_trP|`45Uo?o_ z*>75Db}>KNsQTWrkL(h&H!s>r;5a!!icAhgvi9SV-zU5emAV1ZHgBXV`a>Pfgl@ogi`3saxPajZCjWV2h@Mx|l?{Xd+#aaSq)lc)zB( z2I%bHl?AXO|b*o+w?6;BWRccXYPU_np)S>tp-cbIn<6@?}Yq z;bStlN@uw`F)P?q>bkV%Ec>}5VNa)Z*G*09?#i^vY+|B8g28Dh4V&-edGM*980{$S zFileOh@?3F5MBZ=210%w@?l;`pt}J!+|`UL53~*Vm$tr_bq`Ed4x6z$#UH16j})oS8ZZ*K9NirMy|4M% zNQEINgk~=mrGYIqN|6$2H=bP)yKqym2ttIBeB6f3XVCXjj9wMQc10jc5YSnue6N&h zuasP`)Tv%6rQU+$y#?~U1>Or%S_7jM`J={I2cYrn0onoT&j9{VKkPE5EiPvBWDmh> z5&|AE?ICWBPH}#}cHj$2{~eG^(t}cVqK8L~r#n?(B1^G?gV5gVxA~8z>6wm%-mV60 zeIbs&X{w#7q}F%+U&NXjNFH3&E=O7bTUEK-(<+2rDO=ZVEF;Y>u+`;TQ{4;Phi9wx z1H*#dDFMe__z@F6)F%c&uBib)eR3??480#|M2TX&znfiMX=0@=`#xNdyckQ=1m*MYRV$TLziCnjNFnxe9lE#< zJzQ*w!Ps~;DA$uaD$x82AHHALKf)lG2R5V|vswCozi*VT@HZn_^%|+HqJ8K(QZm>a z9Qkbw`?%E2=ta9zJmqK#ejzO4ZT>)KZ&q@{=4qDPGjdpnS%@zl+s3^gJfK5AmJ5oXN@*UJDI+h$e$&D>G1{u$uWWV;-sa%UKPZgX)4Zw)`o9ICMyGPUGCcw*n#+c{2+6dJN>R2<+~E#IGHH(QgCQ zL9*}N|4R&@CNB^6MK;Rz@+=42^{Q}r#H&7p`E-VMZ1%8&cDIAZtb-g|#Ru~Wy*2#m zt9jw$!U48RXiPotM|l*LlfoRz&@m>2@L`pv1^YL1|*YyNikjp9Ke8?qR!wp<$&Qn0no&aen3A?pnl7=O)W*N+a4dh`#W*L?%4>AUQ z^KYwW0xK`_dfnWMZ7|&SplanMt<1fC$K;16kEB-quA9Mgt1HAT)a+k{Z&PZ zte1GmF;3;}Rtk=8^Uf0BV19PbE|xxKYrI3+X%~wOpQx`-8>2=KY;wLD&AibYR&aQq z7DXi%FPCAUAzd9Q}}{H)E1Z9^vNAHx;dca)sa)LDlEm%|V&2e+Xkx zY8wX$vy$3|eNdj8i*}XcXY1xB^=c6)P1v+M|L#8vGds)WJG2U46HXVE+lQkA7J_f% zBLc(zYSG5`tmKt{8}Z)-Yp01X`3;0M+9DqbDJuEj{U)*)U$?Ls(-Lu&h&S}>JIlBAW^L`@GHKNmWQ%92z zKN`)CR=^Vau*440Cy0+rVrlcVv*g>Ta6ms?gkD`v3{1LpQ~pGLhxw@X?TAj~b< z7?66woG6X4Qo!JFv~!4xo<)Z<;{pTr0mcs6qnZ~)tQ1?R@2Pw9L&#{LQvcH;mZ4HG z=j3B@pEase+QFf0OjdV9p!++T_!Q?i?AM=>4VnzL%p3s5^7h8e1CsrY1E&kK8u>d( zy*AVtjpbN!t>Mm(wBApMm-j$jOASnmZ_szr{L!n4qY8puV3_DD2t>Py3T$k7kCg5t ztqBzJ`PvmBlS_rEpF|4HuCB7!=LewP76i?gApSL1v+H*g9A~%ZUxkYT4N6 z-&qJJR!|=fL?EW1&?QFWnrOl+M9kTNId}Q1eQc6VsN*%zw*d$)aFHQLsx!@(96Y*U zT9fqMCre}g<{}H3sEqHhPQ~aAtFC{6(-%#O4O;sUaeauA8Kq3NQf|bN;2*=CJfYH- z^Xb7Y61Oz|;%K9e)XaehkyH7N**e8=#dNnGr+XZgkm6o| zW6y?GLDaT530krDS^jmchFz24>laKwm86@8kXA;@hAKQW11lGspC~*;(|0MK+m{|} z=9KQ9C!N=t098P$zuvgl4w;7|)~K0l*dDY+4!h@+Ygz)Uo!trDadS3#Z@#Z8bQj%K zwg7a?6o|MPd=57x6VzmBP;q(Uiy0!AoC0#>i63TMGPtiZktw+Kt3@XLjgO6G&l`;D z>ffvKsvx&a{P2c#6xZf5*NPl$rJAQdE(ASEyHh<*PbnWXI{(j&l2Vdxf8bHN2t5%Ovgcn z_7hs2_(u@*++?Z$z^$!==$UXX?4T{Vd*Vqs9VCOu3IBWBH;r&Rate-DZw&6H6)PGl z_N-M2I<#>@QcDAsH;gtl{0tZDJ?R9{qD{yOj>V+oI0R(6+V7RJK7krY)%v3s9mwh5kuhq$ z9Q)kxCpgOB#t33Z;qS-oGbhj{1?L4}9TQpe3nC$RL#ATmVf`&Pv71j9{}7M-XFgWI zxW{}Qr~q}OpiCTZLlP{z4ga%p{J*eb&m6Sj@9ZWjv+?o*&?}|Rc99pnoZ}lCa}{9uh{bk=3Tbu57yhpB-Nm*4^iBQ zXq{0?XDek#oCu!Qy>)J0XU}hrl&v=NWJd;i*ySj6BQPt&adHMdj7-wyoXaI-F8-k( zu24ip-jXi{oxb#p*)k=HY}785Kub4*?PXYgw}F{&2HQ{E4{Uxwa~nf0afT)zO|R}+ z?>jZFnPyNuL(7W51Pg(7igb`%QG$}1zGi~LDN_QpC?;8Bg7cAkf~~tXE$pp;4?$ej zyUTWj9wJn?fO?emg$IH`Z0Vk zzt!}26O4&nY!QjM(%H0W+VuO+ot|=~m$j?1N6i1pm@Azz$A7Yx*!?oY?!l$3Z!a&3 z?|7B;Y|z9^Nn!929`WXYo*VgqxOaS4y;B} z^9@4>w98qlIJlrR?5_;22BUKp!(jTrfz1zLi)b7hTFQd;LMX5bHHU+!>_ke~8axi3 zN^_T?fw!>27?N6+Y?m$wXYjm7tmNEu_*{c4-gD0a?B3)fIG~>or~2)sJWkqY%ZxQy z6qL0kyyaJbeox}Rh|e0_{Y3&>nZbu#e;h}}2Ula(1EsL5_D(%b3dRQOp(c=d?T|rY zzYh)-C5ysg%_uEN$#x-vT?-VisUs4C?Epkz4nz!|02*YkON-C>zNIVRf=!86NNMN8 z^lW`8C@88KYlwPF6#u-U7RG;bZ=>4xP9o6?O4$lIK)JnApBr2}t)duNTvs}MIV%Ps z#py-0Il09wKq#1jD4?M=wh&%L*8BJMq=QamE4|@x#Al`zFHj7%7+6qZR#ChD>nnt_ zI-*=!Ft^bULB*POLnvebvap~s1uA^?Isg~Z-vC8r|1lsfZ!7Me#y*C}ipoYvBx5B} zee?hzkL(9U#Y98E5!dS)!+G(!0m^D31nU6TFrwS=wV*AzoOfVquY|xWom@yjO~lo# zH?w!I+)*4%)dn_Br3nrCF-!*=-b^Rj6|*Kaw`pGD$3vx@w=}Yz zBqs!sdo~X%YI^Qsm%-QT#c+$JEci0H`02$^ zoq=$=4zS_}9pVe4vL#{jUkO7DtIwN*IskhH<+15-kAZ#764>GigHTj#Ovyg%SxNp2 z4X%O*rgiv_K)j9sta4^?44JgR2QKf|d3vht?;qxDXrpWe#=t#UOG&>DvsfHUaZqUyV-)bsk(A4OmGMAG{*!=u;E$5e!&ilep6wp+=IX` z{53U<^rqZT3~^iFjkWL;hB9CfUV>TGtQ<^HOvA9$D1TNqq*fF=BV-rCfl5uJA6J3P z6Kc*+8I-~?xNJM%Z&2gT=7i4h0(fyXvAsdWoxfx9HH7FFg8%OVDPos9e>=t;UVQe* zcUge7whQ1)dGEknhGWvcCBut1^x&=gC3RNxI@8(-3E+wiU+I13{d>9D(;h1{FmgvZ z+V+Vnn6`1ZEk2GB(~`nyKV-IT^H%3(flwTHA@&f3a>xu4kvKj0SMw3Lfv6AH_>rhE z#uCoob=Cl7f`ol(FuOOe+GZ>+*n`dZZ^=>0_d{mKA|!hQZC7{11FNR7fPqryoIx?X z82f5(^Yvhl&cW@ai(eRbL?+v398&(}n4|VP>1^FssOp6DkKq`xTSmCK{2i$5!v|ix zX&7o}p$?Spo4}!352IEcZs0cbeQ|@tBVm8DAQV=IVq3I$xHpcakV->O@p=fYew~m} zCzUplJd-;Bq+Q<+_xHL*+F=p5*pEKArSBSJJ_cQ5wWg?HqVYDEH(v%?+WIX&_!w&V z?j^+hk)=b4zj?2YpBJs=-uoG>FCk0B4i^QVlc7KpWZMR7*dLTocLbg|hKYY5@XIU~ zQrcRyE9N}B74;ntpC|GlD7FrS5~H(iQ<)O?U8fV?$%B-d{j^}P6xkTaIzg^YvvTE^ z(ql_372 zm%P@**OU+-53{qb8rY0Y_>H51*E{K6eL@&Fb}1iDfUj>PLQ&j(P!wOnVo?7kj*d|G z#jUkG0+VPNu7;bYRZdnz;nr#j;XNdA+#JW<$aCjX34ERY69;d#f|i;f+aX~uKej2k z^2`9pEYApt5JUl$M3aLtnSY3J@G37oZGfW>2Zu26>oWN(gib!jd-7LYg1-l#{H0q1 zuH(yg{xKJGqW#yjL~?O%L8NlxnRT z>8cE;^X>Ed%SU57cTT2(=X-jO>v|9X5+nZH70+J1iOo{IeFs`IaXk) zqZp-*B&2<3ljaTVCCxl(NN3VI1fgGwxsn1OApQ(;bKlHrd@fgkj?W3m#!qq7x)D#E@<&4PqKAS&W&5Q;jM zycbZ^M796H*`JV6)+q=D+L7B9ShIe!6T-W$W62(R3?C3I#gTp4OD`!`09PdsC@MM( zg=2+n($Bf3iR4+FnoE*<+TJJe8?O;FCbDzIsb3hRrW zKH1q&9GMMYC!NMI*h|-n1Slgxn2}%&4r_uAVGH5ZKw%UY=(Ggxd1k@QV84%r{_fx8 zkBYU?#0d#Rr8tCRvlXMFt&&68oZQ9DXOd{-acJNJqD&j1mj3|^ViFj{(b3TmN>m^M z6@|S@5<&5Ubk?iS;T(%$zP4l?VgAFl`jfah-tRo)0AP&*0vKL44Q!hFAf++UaB6PB z9D5t8k8ERv$%j{I+G|x+Z$9j1wQg8XB`@+_yzfit0(`D2SiAk(@V{cPNx^$jQT2QH zo+A9rpM$pmS6HA{IlTB&s5Zba3{pt&A|hehUy*I{V8Cg+ zAUQ$sI9MB1x>s;&rMd^UA*G=MFnBU3^}!7soDX||b;1!x*H5n4b@HGtE`O`HkuUQb zu&ZLI>_C?=t`1m=R`;P|ii1+%R5}tDY{KnED5stX;h-)-hDJ$(Kn>5FzxJ9W!{AbU8de6MFbKQ5gMh9SCL4gYf zASCPoFzpVbaa-5k{o1XMg1zg{8;I5hXdlDk-X%FAUsq7JaPXF0Mgfp$8&|hjU2o}j zS7XuqZHw(aLwWEKhZB@29OWm^x~+AQuUIp9Oc!9}_JQTc32-g;1&``Y@EK0~0F6$J zFB>B}PdgRI%Ryl1&&A){1wWnMR?BTkI=C`=%;4K%K5<+NWH`?q)b8C-;iy%4=MqV4 zANIoba4XZ9HK&5IKNB$YJUDL>jw(zu+GbT?%6bYYJHY!>+u*)~G2fmB??Od=+KDZS zL*)pR&-uu{YIy8sM)!RFb#zCu@(fF3W~>dnJJR#jz95+}#4@c+8(_atqfn9-^2=Il zU4vt5V=!s6OS>i>bdDCm=l_{P@H)U2q@~3Ow1sk?f;hTC#3JgDg*Rp2?q+l{s`5s z>iosyYk(l2x`v97XlP_se=#`EPD@MCtGmJK+_5qWnMG-!vgwgH3ep zvLWYpt*q*ffd1(r*W|zxK~lMd6M$=l2KaYNf)3F~!EDfQ$_9HR$oM|?*4sbN;l-r< zy%TXi2UmXy2LL7m-x%sL__>C{;Ol_n>sVjmaP%4+53lm0E^K<;M5H)+p1Oe}hq~{c zux6Nm9ZQ$fghe;vZJI^fD^>2j&OZ+lRRx`Gf83&MAf?>vdne*^HVy-1mF1l#)?Msa zXi%U8IRt=^_fDCqx8~r8P80afdeu*@C9o`|H&7JEv4>;Y!%#@#ltD=`KHMCUId>^KyK0ppzg`wN5>@7~6Y zckg1xn`F$2G(MT7L2rP$!5+vXcpP^C;lxMq39SmKC|G{5G4PCgPD3vmL%*RJv?ng3#>|5={d1qFg)}x3LLu zGel$#h#;%smXX*bcUdTo~n6}NBGAr%st#l|V3b9S|1|Oj< zTN)v!1*9w#sI?`#ZW17gs;plp(J49pL+y)Us;YLdW<43LvHXtre&BKe|$zU7wC_yq z{%=TO!hJjsMuIDz2 zM^gQ3=B66vt2)u|4I`_qvS9yZZnhgnw4!2qsclv@=J?9cTmC~xsjVo8s1JXQNST)L zWpnD3>E>|+M?U!GjW5nH>}$Dv;rSu2wkFr;M%o=7S0_K? zIBI6E0YoY-s*U6txd3jXcLR4z7mb^}+X3mtZ{s$5-ys0tUL!rp-0fz`3$O10Vj;|P~x0Cg39h1OW%7`48^yZ~}bf zmMY4YsD`@33IGvsxZi{|>GV;;>D~?AdtTHw>~n6-!D#K}*PG{l5?_cDbb2?=GWect zuvaT%=Hw>{~7)#tW85I1QK)fQG}UyRkncH^r_Zj`{O>4-h_U-wDB*orHYT z1>u>&{$euzq6q(CXLXGPcGt?zT(S^O3O@2xbVq9?_xs&LAeOrUv>Zixv(ND}X9IVy zxTv?51b=^A?Hbb#8UIU{16EtjP=)bUTIH;Duyi|u@vksl9Io?;7!RkyooIwk$Y3a1 z2Oyh-Z^yoaU~41yzuZXqU5ZHcu_c0m#0gIwz?z`?0*f_b%!bMOZ(H|5>QQ%`m!5Lp zfr0$We5!Ym4_foIKfT^eC!#2&%FE@Oo(UwLxFkxN(1~-j%+-=TfX#YtLatp^0tq8~ zFC4El8*ZkV-vb$sK8CtOn8P_L_I+d6dThD{n@-r$={n^b8&C?@^-F^}L-e-UnWCF| zD`{YSppb1ex6lXG%2;=Y!JYi4Wr#HRfC~#uy0X4F=3Su`=gv3c0`FW-Ngg4gZ8Te8 z0OY|;ki^}a$R5~eT5=rL85cTv%7R|3_!As|2z2N^=OIIIgU z(sL(Q#0Go14iDtf!2T5H)(#;JUIQwJs{L%qQjhptkvD?}aO2t|7*W*8l>-tOF^Vpb za%J;f`lOv6hHwMC35_#q*8}Phl`QfX$Y}LoN7#Lx5rI9(XPhk(1OUPik;-+9#AYs& zPJ)c@q7hBo>T?kDSEA$S%D`!o8L(<*hLR?WfUw=L3$nmEgaY+cDA;$=Af*G5=fee# zfO1+Y99YK`!$$`9;TVyBlRtB1NB;H>`7brNYB^WF8B8R2;Ra(SMfgq(`_AyV;OcE_l-jlp z*O+6dvDIkFHmnMEqME;ZW)KO2_=Qa;zyJ}mi$d4T6%0a0ud1ud#?EYi|7AKuR1!+z z;UW4icj_WAg7w}8-FQ5cWExiuDc!$$?AJ@k#%QaMo|@J0Byc^{_aQ5@LT+YZH@YE$6L^qpG3N*oSkKf)PDN!ux& z(A16NQw9=PEtGVY9N3gx0xAiQI{hGEeNrogKTi9`b^$pF!%TRQ6>8!w4< zlHv{apb9t!-zr{j^Q#{bs#3us$v!cw11@?4Sdz-k;xelc9Uzm{FP_6GA3I zXcasof$(PzNNsO`{2cUgJIK%s&Ve)-z%+%yJYL0U{@YXl42aEdDK7W8uTzo9)pTF? z!D4S5j}-<|=0ipTeeiRDL3)W&bACd zdO0GfMXWxg`s&2+iH!nBLGzx%uhUJP5DF*jf8A~kG3m8zIXV8#HAAz~)Rxy*Q^_xz z$Zz)rey^!t2I0|aY@m$Dm9?s)*yEHeoVBFmgfxV+eV%-_?Ud`*7mzh^-HpN_vKiLE zHE!2CSFTsvJ2&oM@T^<_UJ9M zfD8q`rW}>2zky?X9A?-5VAqeZ>%oFk6Z=zFpAs|i6#m!&ggZ+;c^E=6d>y}Rv|K`& z{JhEeXJ99ZMS?B;n1dt|3#PR)m;Rty8NN0o3)2S~l5!QFf5JEp2AkGCVgktU3?z+T zn~6NIn0D^Lcn#km8(sxV1apH~2ZUu@2okUl!A?(pCXJ;GF3|;-)Z`*(4yqFmPNk|7 z^Ko#Z8#qu9Fy`Myox6$C{`7o4>YP$%1Jb#}z@iJA++Ue|{{(41pvlp|?w_^@vR4x8 z`rT9p>GeG9@XdLN{hR%{%Zc*_XVa@lp4{w2vB~Vsp2m>Gfr| zXJpU1{gh`{f*@w-1n^nA#=ZB}%VkzpPBy)Wy^ zdeN{3{n`7YHVIevx@GMO(N9up(MA5=``&(Kq+s;b!TS8VXB$WKE{4ND4(up3TN7NA zo&HmPHswg#p9?hi<#5Ie1~+_J(a3atu+{gOg`h}FB6Ftzb0P2tk6-)u-Mz0Xf<+CO z*QVy=f(>(lC>sx(dn~A*W>jQ76ojK{zuW)9S``Z2+eIa6QqPRl;zQ%O{WtCS4j;J= zAEoRBS+**o#7|MSO}|lFNrKaYQ7!^5AkSG?HJd!^HhK0cE#32|l~LL~LHJj$-w>~D zyp$2O2wc3DuIrO0xWi3;HTm+Yirw6a{=J%M>_Ns#x=GB@pXUzrgq9p$@Y>r*|7fNx zD_q1qok^vZ=@QajO`4VbNGZuni;AA0n`#yJQ1M4Yj�n{}*hyFdK~MXEx_ExjI9# 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

    9Ei@w6BK0FPYz8AcBj^Y4w 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�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
    *RfuO|As2E{suzcB(=fS8oYWd)oI?wOVmR@ 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

    x9+ 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�c-qGXLDW&71!Q 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%0A9e$`G`!R5V9?Epd94f*XmkC-0cZogiPf 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%0Au4Fv`;H>OvFIuqJYes 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ⅆUQ~cw+bD8i??Lv__LrNpH}oGh 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

    2F*SZSekHI<@+9hsZG-n#6`fKlt@R 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%0DxX(NY_{Q=;_PXb%Xc@S^aK? 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�P-DDGp-Vi6G4D_h%rTzLw}Y2rPnwJK==)usQLm0}+;|;bs<)0iu%8tu9e6O} zie&@q#o@YpQAbD_8}5p1$Le2UYeR*1mK^UZi@eflMcxV9g}dX%YJZ=ey%Y6f-fw4j z-MDuzhPYlrtlRW%9;0+24c6}hw+H4bi-C=Z*V}HiE>9AVP=foH%zjX}h6lqu*c!&% zJ;jz8N!>1z3{qe>#i$84mGQue%Ne-_?TL;bCWxx-86_EsWl6R@TUbQU*IwHfYr9c1Xm?2{@5Y&M6pc<&wbE6P7DexIJ%X5rq!8 zyAaBr=2^b1`gJX$TLeAY7;0sJV5h7$DH*vbxJz2)l)bx3YY$INHUn$F))ziwfZR@CG zYsJdNj&PpkfpTz!>K^R095QG@4#X$->D~fY*X;o(mf5&UslcDh!UgtPc*@G@dwqF; zBUvnk??%nfIUIY!m#VUrSXySjmnCL*40~B-Lf^WQvuL}$fxoQ{-aepx-;1Z+|Msdg zei6Cv?n$%CP9^g#l39hzLQ?;fGrQ5N!UZ6WDd}vV-Wwuikvylkea{%>j?u-M!7fmW z;Z7h$&ndOT9aeopTL0d8!-X8|KG(9i__Z4q@s ze$p6HyYHK)93J4Iz@nUUHa`eWdXp&Aw6as7*GvXlhQa?>p8m_rbGsh;@}=)xIrlsF zzZ5j}1`XSK8yZ@-)1zxIzz#ebxA!(SbaXH_*No@o*IM>=Zys;x37YqIe}-NNKBV4z z)cdf!FMnO$1C9H8f_4i3X#)a1K~F>L-tLnO5cxRBl-nta-9}|l#6MFR;N8v{>V(MV z%~0sGCPaD6sf3&K-rgH@U;Z9Kf5D-Kh65c4y{Y1SmfrhR2GvF?Wfvjj)qvPkDSCEa zeh!g;OhKx2l?&=nZF%7b;ouKV@Y{`?)f<%64hp^xLO{^wb`#|8ZX-J435Is@eAxU0gBFM~{R~nd^S4wX&r&mFPIAPTxXX!f z^(zwLs_Kuc-=VjOfw))S)p0kkst!HuwED_`bP(Q+>fNN?+thozdN-?gi+Z=J_YU=L zQ}3PXy-U5@)f*EO@7?O%sg@P0dF4BL>Cli#;|b{A5JdOo7lHU|G_E&LP&1SEw{j*2 zWG%haC=0hI*r_JJUdB`o&$h4dJKNR}D3>+un5qTM7Pno>@HfQqc4?;D5^@ri$ zkEDoaPKFa0O7kOZuN-F7v&1OC&@%)Azf$ zEDpBDvZe^%cOtY2vPU8aGoa1^Pw7y@rLfT`KaJyF3p}`O9$c#j$6Ppq>oi=Ewv>h_ zbq`bR++lY90yCyO}0eRc4LMA@^%8_PEW=4Yu+dm=^Xdb?Dti_GM zJP1*m_e&HCzB14nj=~HIky=s`i6-wWBRiszn13N!Yp+D3j(FvGTRa*wI7HlWmqcu% zh!5@bMPwd`sBMQNDoyZLCU*IwGNVM~o%cv&V$QFeY)^{J{1nl59hT^{K3+N1ksO^F zFA}u>k|dxx@ygupS_zm(BT2^*NwS-gWIAgnVTO)GyN^mDnk=t8(N!-I^M54kbmrxY9WKM7-6x5L~ha+DOM@F#QR^yafZI~_3+70H}Krc&$CE%(?sYEWy#(F6pOHfW% zydhovEO?iLe$#M8B_)KI$6GEt0^;pRwy$9Xo#2^pa4B3EcEp`Z2K+;>#-iYi3ue}*X$l%z!&!b(+mi(Qc1L-Q)6dY)B3-zkX|&mt$ktrlL9G&h`DFzP#S+uHoy4DCA`6ZVyiX zL#%az;qiYhJpQj?{LOY2nC(mzN}c)IHyu{dX3^hrcW6NvQw)= zqWnMYklG>w#r4b41q+p-T`hQ#ogE^y94Gj$!yGPuEfV>R!l zp!c1w!IF1^Vfp+u$mdQlESJBgB~capsa0Yf^bIg-%Xx2zAn4FBS8Zc%bVliWLiE># z?jZI=dg%3ARS!8REf+ed-Z<(|9CbL3IuaXz*Uf%>V?;v==R`838xNUCBhg4gau5?y zgxF{t#3{|1g;l){dyA}8tK+?%3606?PlSWv&F}T_=J$Gd^Lrh_jS~!SRIi5xm)FCB z%Z=zNzVU20x{^0^@L6X?-ngz;-grB-B5!;yvLbJ| z3z+h87cgb^Wv8}b{(d9O-(QFD=LEq{oFJ4}C-_EO&3YX&OceK4xC7sfc3@<&y&o>+ z3*q3G!jXR%&ihBvynk%#BQ_$!g|tt>It7HcxYxfCD&XceJ@0v#UVq0x@0(Jvk5SCd za4Ep<<|qf443^NQ$b>PX!>W=8Zr&Of9fTI?-kaF;b#fR2C3$ZwxuV&&-GoHo1P_Os zdL+`9uZJ1y>tRlMbHoVNvYAngpP2m(!Oz4a{4|F8ZRq$B6u9r6FiJRZ1i8zo4-kAT zySw>Bj0665oWcIKX0XxzT~d}s+SUbU74VzOuF&@U;gHaFb0sXaf$S*YH`k&HI3hR- z_|0lu0Y?-^0l#_4r+_1pqk!N1v|j;7G)Doyc{xb|M?^;fzxiyk0*X6OSKhnM0XVMo7d|p;7H&o;5T2buYenQ==-}a-{`vhM?~0-wh@*dU!&5HG55Yh0M_Jw(~mG`R!}=mjij`+pw0<`_E}* zbv8#3JGmla!@M&el1h0=3W zpS|5sP0(eR|EfW`$RIG708zkyX)?Xg$|HeE*P-V>0y0uiWcSG23ln)YgW3hhWr)<{ ziQd^3LF{&eU?1^9z@8(S6KanyURPTb!)>Q{f>7S}&#G=P_#JH;qUg}qwl#M>|5KWZ zXJopoo@qe$HgpN&Kx~DUY}qcPv*m!rH@JAH(^3Ds%GB&hG%MMu$+goE?{J7s^;weT z-r5p0@e*(6NZL-i!}#iV7&kq;_{pW#&_o*;m@91_l;rPdN3S+_HUtM!K~o#;QpC8Q zuY&Sd092R#mF>O1ClJiDRl(a^^qGNov6BT2R3FUvj_oat2O3*#pYwWvYPPNU04Jko zThP?d{mhf}zZDCdFfA=jt*!Ll(b>@0N_A5EH`472wj**Y{#u<=2kpudBeqUnH!cNB zogs7|-fh%c?kv5N(B4V?VrsLkMRnxogo$2;7TVZMBCZ^W z*wK7ILDccB8f#$baLP~t9Tz_VaprqK+PO(#X|Ryw6rEWJP#}5J2hW`#prR^k0$T+ChBgBp;`kRb?JJhu!F=m;>w#{`+HipcW;h%Zw}J` z1Kpb+!yl-dqa9t(tnQ%wl*yxzdN%(h?Xev@f^8k$&#ZUsCn1t>gAxbnn|lK!XLJ`W zAwqS~i>O_#L6ans*j+$jEwCWL(^s7gx(YoOi(^b}$P8dpIF83d^w^w4Jh-pr?9OCU zGwo|FjkM_?{QP@L6nXwVu+ATgfPuJ;q^Ceud5$838PE>NG5M?wZS)erDhNoTXvfy| z!f`cdnBI^zTa;da{k5~Pv5lCEu49X0K+pfA8}*)UlGKRZy&-HJFma{E&PIyey`h*g zH?^gSswvFt>MqrG21vRk5!__e70bFs=_Z|KlSYV|FJ-Hgw z8zK2$?bJmAK+|nDyCd1|Y`$Z2O7CLCq7)0qEZ*ZB98zafkom1Ta{!_W@qj3Q2rVu^ z%+UnofxPlx5EXhAB>F!WIYIUmRt7?t_7*qv5#lV)7S!pGez~R13AsuyR}!v!-!m>Nk=ajby}Qo zyIuhR@O}$=8<6yD6)BZo&`W5KYQ-|@x`NG-_%FX{dg-mbiCGa<~b z5Sho3LA|jOXMAR(>zUud#QKW{u&M6NO;`8Bipw{%mOI?r_# zDlMPSqjXQTo7$<_7>Pgi)MI;4RmLKG|?uaM{ zDb%9G(y*ka<&W6nVB|?y3Z6j07Da-&ut6#KA$ikzJ$c{2_<}9cc8>1+JoO&-f@i*n zDcT|Ljt<&JT9iSV`19uHTfm>`O;Pb|X%LGIStdTu6Ih~BEJEZ3nvBgt2Wvymn|b|pE4{haAiNLrksnzd&5(L;Qsw`=p;oY}XD3qSWAU^oTsi!U4( zo5vr5GQtOjc@+_XSJAgw@cAb12w=;EY2iG0+$n{O|8>hyzGhRC35sg`{5M0EFGPP+ zPZtP>9P`F4C}H!v!ns4S8HrSH=~Qs3iBd0{+IJI8W`86yD4!UBNktWK6kcwAk&H>=D+?Q}H_Pq_|D>ug3R4NN6vT1N>*FPD-$M>0 zEMrK&Y*v&&F#VcTEDCR`Qyy2psvGsfab8iF4WfUmQ|njN6^W}#uD{AAY6w+oy3>Y( z`A;v%NFeZ@M9Q;5QC{%&;thF=iviHt(oEWj3Q!j`%2d%u^4~C11{gI{-mwz^pnhY= z6$Fodh@=5K`ftQWpCg)>a^M~e3hYe9G{?fOzK6LRA+U5phQiGs(0@qTU7LTaLOa61N zRK^W%PF&e9DMuzYzs0i93dKIQ^WKJvo8%yc(9M&iBG$qA?Zzij-TF#T`-7ZcRQ zG^Joi^%Ns7xJx;jTN)$rZVzR-vzO0!GfWEG=2slIDip)bzjqM2{B3t*QYDu!FSunn zwp$HG;=MbPcYE)4Q<0u+5X8S4a^XTZzS0mv>FR7h!s<`G>c|VeU{2)LijjDC#R}O? z@>s~@NHM=2@f|~Oy0Sfj)U|8whue6owUZaT(VW(;BqQj$o^yttLf!mYDzddpsKu|2(fn;?YSM=8GPajM^nnzwrhy6&xG zEjvDJ-Q@+Q$vL@AU?krA63XA(yCc?!o>n?EviU8q)BhuANSBwSo3i61tPTI5rpOB? z3^+r#MU2Gzw#16;>xCC4j;E8go8L(|p#aVA%H9N`Zdu!G%g&!q%jAV~5uC5vKt|$y zdyN|1*1OZ&#GW?V^)}y0JX-<7@Ri#V$-1FCALE7a^J}QQaI}N7ciYQIybsi@+U>o3 z?%hkfgK~Jc#u1TTwE94e2)f<7KH1X#i)gpJa8!j$ahuObyzi(}#{<1Ei6v3*q+H&s zdF1ZeKAH@4L5D{e!)50o0BIh0qG-sAfAUk8k5hh=STQk(5AE2?@pf zFOEavIxWsar-B~QT7cB1f3}DGMC>7Q_@F`C%2{mxDa+UT;FPhq3k(VT%5fEApJXn1 z5io5pF{xZga+f0Ln1o~lvHeP*gz8jqI|s`^rO3OfF34OSA`!Xzu1o;=2^t zq>F^Ker1~xpi{w}BtRz>%1?;gS0?WXjl2`Dnll}vL`0`rh-uteLrxe@nm5-we^%HbN4Ybto0B-fvBC-9SH=H;3tk4tCNY7dc5*Oa^KwU1)vb!qBg`5-$ zgNQ1zK5|a_1^Wq*&z*FLRF!Kgg2Fjy?g_BpVGrvJ>}POJK(OEIZL2x-G_vE#+U4OIygi(+32IX>V5=i9$ab3n9C49#sStcRJGVyVf-3YKUdEnPe8My zWx%W8=o$OCdOvWq0CnOcgylpwLtRO}Pmebr-Ze$wl(D!-w7=vYR!_pUWtWKK{Ge)w zb(EfMT&&elI-4Up%57ZvABMCBss8Q=o|C#+>n8ABf4q022~J^Xgt%a=N9Lof;P{&X zmrKaGLhXqvIz8LD9H+SL`Ka0cN*blc$A;CC0d%`FzK6Bm!` z^BG}Xsb>4&(up{4sG)JSsi&DM7FL?rRT5R34sdgS98*}N!95-tXA><>HyVx-e)n*r z!xccYxyK^@r7_mOw$gAok78~j>H(iN*3-f@jp|~z__eV+xF3Gv(S4*R_IjzDS-fD~ z8*st!doTA!v?}Ni?#`H3>sML1+j@_%!^-2DqOS34dp)gO^|-Fbt{$JZcPDqyPrdq- zbkV*9I%nytg6<|hqK5ZA?xuL9&{5pi9-FJERu#xG)^*mqpVOH3nH-`3I7 z!97&l(!svbdbW-Sc-;2XwF1b<9o#}(F1B9v_2}{EmGM5vqgT5@7(bpGbsXiFUt}xG zFK`6e?OoTwO+&dATTIVx?y`E88201Vx5a#v2lUo07)@kI@7_{uF1&t2^svHt%kR5+ zSnD+n1IzQKuD}2C&EBqml%Zwc{T96RG{#%AXZ3V)AJ(^K9d6#DJuA&4y?+Za^;qA# z#rRx>tu#rGH@o-!HO?PAHd3J5#B*W$3?d|@@9DKZXZ|U>_%>q7`J_rHz z)B0%fmCMSh4=w8}xTs`s;Ge$}QN*qIR)W(nnI^uvw-Y^RwW#9s`dkecRBgI=jJ{CQ zZ&NRZxLCea$H7rQj`$(IT-W-)m00pgd3;n3*O&PcxV3Gk z51nfJNZT$yA+>XVTYC~IwJX)uQG?jt+qSzFIn{AjTW9SEsojU#y6Qzqb>hZ(*XHNx ze^X0C8~6SD{QSP$S%sg1udEmN%RU7P9PgHNd zPD<|=aoyE?PzQzJ@@O*?`1UOY1+Q`C0GqK;gpmT^`MG>XW-sWAnc zc4}K=3P#@4_Qn*9o2ll;6l`~?mc|q;P^s3&6wD>59gQid@Ts=O6tu_G&c+nQL3Xcg*`I0yD`;?H}AB6Pqm;rwJNv)&Dfl4K@E>J?B`Yt@Fuo%99CbtM;$Lt=H=$axKPB+`^`hNM(AqLpm7^ZB!-}7x#%+abe6}j&&xo)zQGlaJQL?Mg11H_O|${*3%3j z=wp#hQ^%BomplbWar-#ta%}UZso=rhZmJn~7JQ_))nCz`7D!!VvCUk^mMW}xs}RTD z#72@J)II4xK_OQ%$Ih4}UwSxa1XL;Q8=V?l4X8 zTfI}gZOM)3*#W6@$}1r0R8p-^CsxZ(Il!qdCx~9~IV92UG!06!B=`32tktBRHVDDf z3BsLDDHVLSMg@~-cW}z9iNYgH{K?dVrg_OG*}Hmo)ox(VPDtk;PZUyhYN_f=HLIFT zy^~X4uOSM%KpV|sQ!z?Q*! zh3nj;NnhAflj_G35&BC?gvQ$n;rL(xpKasc@6#VGvfAd0UslQR7LoZYMr8ghLh2>czNoE540 z`%fs{uG9fyxN&oJEo~sRLn`#s#0vQ-ETUcul10=+nw6oG&ITP&Y60yX9(r$WtsvDV zRohmhYDqK}Nw2lm5=m=Nt@NCH6z2}59?+)fjd52!?I5*ND!Hp>C6lQvf?n&aErQmh zTe-Q`ahE%lnm~JhLYzbOwS?3zsqUUS)vZNmk@MQE^+e7(F|5Q~`y9zZr7n=blNjrs zt!N9WcB%OOx)rY-gGJ11z4b-Rx^b+mT<=iE-AZjBnXg8?!&}oDQXSHSLtAJpsry*cMznr0i}f-UFt4 zwsIQaKBY$V)a}Y6Th}5|ozkp!J zYY%CmUqQD-L|>Jb1^8=@x!l0F#>7;WgoW^HAv?Mg`iMuAR0&ytzIG}sK!?Kny<(n9 z&O-0Cxv0<^!K4yIFO>-ksMj)a0X2r}O%#JvRxCtbd%`C~dH`TRpTDqo)euEghAiM+ z`-ES>^WqQH6a!SYEOcEvlO%K{Q0}R-^{UK809vXc04325*WKn+5h8>v*AzmMslT*^ ztwa?h0>DZg0iYKB$d=f&Do!@twYr;b?HEV5$of>F!cwY=rQqG|==>^Dr(qal12NgWL#iai>_1bsAwPul6DAtu15L{u0V|Nrd03yht|l_qxY?Z>@+`}KD> z-@M&yN==EfDd|!sWy(X%P&Pe7&(JfpP22RCo{=m{EAPl-+M;&EjhO8hn{0MB`$@75 zXctVD6G(uFNPvWq5ebn2IgkSykP#V?0S-cMWP}D3K$Fk`C!sSr-#Mr1ulis2Hrd=+ zU?Vl}U;n97r%u&h&vQp*x_;@IuLz3q7r9^@&s>}YAXfVoEeMcH`;$6SRKpF}a$9}H6 z(vYUSZ@M`RjSB63`uo!m3FL2HxE?yT){l>>fuwq6_sC{h9$I%x#+MQYX$&9PqTh3a zb(Z9zh#Z>c9cmgQuuodyoDLT`GX38K58v(l+g8LcSr74BiGRyw{E9767;I~^K|&AV zr7#E+n~`etOgaSP;OF$BwBgfmG!4uz>XVPQhegimT{#pr4F~IZJ}uAD3VYl)#9>G@ z+OH_MZ4OWMf<3LaW7D{s2zbxSb4D*$m{H@L8MUsNQLouE>S%vP?*kb53A6!xIoeNz zsnJF2xK~O@)}AU# z`71yEQQ>!1Zy1=>s+-lSJC0hW7Ige$Z9#W9?zSv@5-12+y&Fz77h)9$o==HWV;rid zAQHCNXeS3oy&R&-O>1D~nzC|TSpnje5K%l4I0#JX!w}&^L+R92qtCI+CFAFwS4yhU zIi@5&wkjKU$L6HKg&`suo(nDIAm4v9h=lr->;f%r~GM{`W9#3pi{ z;w8GFb4WFGKnVjE8-mg0>0pQ)46Y|i5tT}OtLKnx44__tzYe=Rjc8YhEbO!=f|!~l zX&dN}Zt8~01WrIgtd%j136Y11_r#h6rAP86(aEBD1@?jPFyi8^PSAf)Hn0$%=ucE$ zq-`Rdtct6k$bcIYA9HP@9)q%jk@>{t6!k;;Hq*(nv<9jO_)Ll7u20cKP`0pDpQxs) z4zjkQPS!2!phkeBmN<5AsuqE=huQnYjtqf+_J-AApSwpH$Y{A}t zVqZ;hcRkx>hqd-QAo_+gpY&9lYD&I|Jsc&NI8cW$y1vb|!(zt(1k>;|l$Gx8I^@#C zW(Q8pOgySL(U2fb&2%Sp;^n9DoiqHb-taQ~tSq$D^malnE}_j9e!UyIXemEj-F#tWhV9`1^JL-97DK%ta@ji*DDW5dTnwvE!V0KE7X%!=mRW zjA7-(VA7U72^v3cVJsXcMw9pL$?&8T8pgzM;$+(PJuN2rV282oo0v@B$EU}ooe43< zbQ3dKTl%cn^dlw4YHgy1)mnCZ)~OU@7B*4Ss;w4A_Td(EKfbvach~Tpb65}B+i(G0 zUu=>aaqyytJ`AGl&$|X^H5$v#H$ecG^&k6v>!IKBIm-+V< z{(X&q-#|P{%O@t;UWx#+zroOSNrxs3KkwV&2gA!{XL!NT@u4?#U`Y5VG9;jzUyF5f zblV#V-IluGWMg6%q^>mCmeQ4|J4~)f?GDtOCo37vnVRC{KxR{TMXafp+q*=n(S>e3rhJBItZ$(?oRxi&)~cdQP5+$ZbQ#~qW?Ka+d0>y!Nz+YE;0 zaSWh_HMw6TSF(dr!$Q~0&GePYgGQ_+J0xp^=$ol=1U1dcL!sPD_CJo%V${4$x-cbr z+7*t;-o~?ajGKeWwO*9;h%ZHxT}#AJGRbU9kcdEZx@5De7>P8qDn_L4G&veKpOQUB zg3)H0xf3H(FPxlAGHQ~2L!u36y7>_&KnGq(HZhW&K#E~$mKhKyLjO+_iL)6_D(PBg zIGhke$c1z>8(F7k7{%5yf8oR!iC)e!Zjm*2rtNKQa}y?jLG86{QxaJ{*D&<0$E<^i zV2pgTmcfRMel=~2>oc2RLKt@6scjA+qhB3H&GniiFtMf_?y%zv`-Yz5J0*)6YUjJJ z1lE1Dv7a7%8`|J3FwUFFdQ!!k{A_HdXx>=-qI+;0mvjC?ZgT@S-LAxU(u&e@I$~~i zMTmTxCK~*=I$|k}8ZE!tIF2 zEtF7FkPE?#i98Yr5)$Z#7W$zBy=tLX9q30E`jG?u*g`*cpw}$)nghLVp%QwKm$AP# z2YPv8)G)sZkiVlr_=Yx{8!9L@spVcc0;>f)gY31vNX0fPN?)Y%9H8c2@$`KEHKW1E8hlgf|`Vs&ULa@^_U zs3t|Dllr`2Te_%2ATckQkz#b0lM-Pp(@*T8x3L^>y0pr{704W^&h78=s_DHO>c8a!_G`n#tlE@K0 zn!+7g5=BiSjSb=3JQ8v3=#{v7SNy4Wcm#^X42~lTS39qiOX<;lI7+sFJmgOW`Z)s6 z&wvnky|cd{SF4&-A(cL*f;=!?tc~ZvJHzgylFtgwXNB8q^-fAg>p`FAP)K1_BtJz! zp3uOpOUrX`TrypwnXWOPERyNqIH@j8FeI`%F2dTb%v!km+uY}ijyr>) z15fbZLX#D>R*kvlLYRmS7RULF5_NjvK>C}Gay+yN&oX)r*wIr$I(@b`QNIpC zsH5z?f@icC=5eP;Z>Gcqm8tF$x9i15_B=v=T@X0Wn6+Z1zet~Ys7qpxA#$CQN zDfpimnv%}HSDD#sME5*}OWZz-Vny8o+?J%VRQ}6Ph_O;hYJR_U_uw6 zab@IXD~oY05Zp^8++&E8;1x#>^NGysy8MHLl=L-E4)Z`A*K9?P0TPinBC?pz)O|5l z`~V-3dow1J`Ro!eu}V62M}*%_kk5!W@}=I}k$g~&vUn#^Ui0N!xC$!mSQ};bZi)=& z&u{sXrt|}7lEfiUV`9X>dl_<{f4QvJ7-b*iB39ndlnedfHe4rE>zEZW z^+65U(Z9ZJ7y8sb07dLwt|?<09KOxB>C|&Bi8#Gdhc;mF6gw`xeZ10dy%*tNjn6AE zeFPb_@Acj&C^pstlsjID*r6P?2>vX6+d@ z+4LL}^bKqO?0g6of$*=73D$ zDXE8%7n$#hSuHrs8>(#o2U$nASxtrNQLYo`9jI)Kr(XVS@nBR&{KLuT>q}8P%$e?TTwv$95-aRmb)uYgNbgrfF5j_N8l8$M$Dw zRmTowYgNY%*3znuJz867Ai{HqsTC;E3)s%=5Gg6i-7W&}zw)&;w3GD!{2m7gXwCo+YnG@x8z3;fGBR zKdgWw25>~W{AiGFmu&2Pr(cX1H_Kj(o*%*!GcaC`Vn8&52poEFFYyicY?M-DG^4P- z78xIKj5KHz`VU0wbBZ-1LEbpYq;jC^Z&Ciep%%f4jHJM+GS2!qjv8AC)*d^E=%<)P zjp!6U*dWF5^by# zLDZm$8g!%bC8`#-uE&mjG~BU|%DrytzLxj%C&Sp2#u|HSG6YUq;7kadF^Zwlr>tVA zDcv5NSW&yC$Z)3vcM2t#D+I6UjtMs;ip1V1-B$66lK-Dj{c5#4IerBo47;)d-WUr4wf@ zbL+Zj*4DU4^Lp9lB_Td0#XKq+8)|4~B@tJ%p+?EiZhx%zvM|76>9NMCSHhXr4bN6J zyvZ5kA`H9pE7N+-q2+{Uw`urphgOsu0|7Pgzaw!msI3ABB7Af8Bc_^wfo%IV+l|p- zI<{H__JCp!L<_7GRVYFXmV`s`^m>2v@Q2fG?Lg_QjFECTr>r_D{fsh_x{@g`Q(o}^ zV=rT@NvIb_K~Xo`gDbI$i7uRgz9p?G7@B_7pef8^3dN|7XNwVsV>X`E7qsduyhrI#uAB*E7`oR2wtS2{06!v5qU&@d(yMp#e=D@Xhm5w5ln8o%OAUxZ`gs zN%MSHnY&~c7$5j69wC5lwbG^S#?Iv;u@`MDNQ*r}TzKmBW8Hln*A?a*99!e5r`qPQ z>{;PzBFwQ-jNxL6(c`Eh5NmZ2@5|99nm!DewOnyp-FDY&L2Hm_XrdP$P{ru`frk0C zkr4tjjs$sK@PWSc(2NpB$?vLU+N&I~vjeU$FOKb>dq9?!9aER>8=o2qrOS+IUf}VA zP|fRVvM_X`&2wFPUh6z5w-?2-X5Y-vKekItk*O=rJD>V-h1iTAzG7yk1R-EOnKt?; zVW=-V@4kqLJrX^@yhm&tqeqNs*)iqY2J>khUvkc=yt82_#fKhf16f%{(cJJIwRyQC zChd=*Z00h>OfKVxq-ifcbu|LJJ4txYX?+kR6qMKp-bp5)aa8~9uKIYpD?tsBfVP#( znqU)}dia}!4O4NKebxBcJ_z`jOsp<`sP}~uooIqBWV@Q0CW?Ij5?Q}LQG=3>k8x5g zxOhzbSTy}s@M8x&jBD52ea$r;5mq_E9cNI&xO3fhe;!+|+a9^j69IVx1;&9J5f>Z; z@cObRE{b$k>W8OuUQdPJsf0#IP3m+h)}+uv z2%PZI6U18S9}yeyH>`z>XM!RU(F!dVr`~2AvSa(CaY&8DLQJ4yr)%C|oNf!JI2)$* zI_I^r`$$1$IP%Er_2sYz#fh|g8^zd#0e%ve@6v&|HzU_huuyIH}Yl(YGg>}KsNMO6Z}NcxdfTNnrR{p%=_m`rrL^(4HC zsg=PuD;=9YuUtUiz_)p@jGLm@N{&A^nsM(8(P=j1Gh6VS%F(>g0kjmIvR1yu#)#Zah#JAk@}|Cav1(}7U< zFa*}+h7#&d#;(g)w5$w!ps`;O!;RBMR?fCtte+qvyy%OP!Fn-52BjJt=XIyC-HVvs zoPH{7%ug{Zq8-x9R1ANsQV9&H3V?h2)0XVhQLzg(1r=bNKJ1JMhyCI)=1;gRf_ucl zHDNygdHOkbx$3+b`CtR2*2Ay1;HcX0t6jsd!?c`2Xn)U#)|S>{oaziq? zQcSN6SQClM61E{SN)?q^ofbhQ99BdvZz-X=GEuRi7F+i1r%x(aa6Zqq>ICYU<2hyg$A%s$xrRmP~xUgC^Z)w@CJkngn%QPFNnUC zcg>z=S2&Z2R%Bmpoc0wlnleirdYc|_Hk(M~7)(hTwVMi;NAy0u*?AWoif1n+Db;Ms zU04xhdW#1U`E0~gO46&vRAgaB6si$euh58DNHG;Pl#1;bh|abcbc0Ze8$}5%wT+6K z7Z7}UM*@7K&`Yv`5{haH6_4)0!SLywi7|Hy)ns!gp{rI;NeDeSAU?e-C2o_@PP1wf z>T2ASjM9UH;?uj+Z<3cB(hZj+54B%PL+ZhS@##HTm!(TSS$0X1lbR=`qxIn6`1IcF z%fBVJY?C9&Pc4tK5PRT2ZhBv>i>oEiT9!nTs~Qw#qxQhl@AUrKH!MrewQYkWZ#5CB zh1>%Ny3+^hx%XG{ugB6yIADXH4|Q5Ns59VIOr30JWG7sTeblUAI0U?p%mis%iHYS5 z&%|;OuUR5oQ-s61AaZruBiGFuz?>)mCiLktEm&}vgw*qr#8u8uzhJeyD7|5fhyU{; zykvSBAI@c@vp3Vk1s6}iPOfY46h=|1Y4r~{4Yz>EP7v6Innb**YY-jOIIdsg-q!a4 zeSb&aH|ukY!r#TDkHw`uqJdZ}bi^LnmK92LGnG5b137Tljss|BS;dQqYZ`yWPUK2V zjLyA@R87u{8tU-DG#hsxt?(LiT4Xe!`?0eu8Qm`n4c@j&I$GcY>zeEZbm!tlGd+pt zV?SPGPeOvA908!B&?H3#@2`YOmrb9NHPVeAwJf%7aa7$cYI3^_Xiidw6VA*E zi_<6MoJ1Z$QI>~&)&G12e_{% zuSEKWl;kLH0W~s+CL{RqZTU)z#TOrsDrdBFM+Ke#Y|a#f?3lQ?As1G+-miQ(%J$iu z%Sp*ZcgGXM=wusSTWqQ|iTn@>bJS=n6kF+1v4Lc1$3?e@y)=}W`ZbR00V7h(Y9VIb z?Vo~0gDVNqE965nNDQ+~+Q6Ca6s#K}G20RnD>U61dcc zB7uYr8=~IO_ZRiu%$1dJVkSFOlj8?&jsg~yuq3`5=A$68T$QLRShj?607s-jiey3g z$PN$;au~Q|8Ti<(DglQB$?^A;(lt9-A9rGL^O>lr1?##ua^Y@d%RTobRzPdUbB%7s z0#?#m8v+wWG}E68w8%IVrdeRH1jf^Vuvsi*S2GK_p2?#$=bc=Mr+GSe4HAat0} zmEBw=G8$v768EAZ(SDz(i84u=EKwcc=5%c|meY5vjpRh8sT~0SimdPn>qz`06ls4FHu!VTB^_=e ztxn)5EyE!J~3g^aZ8+IY^rPzPQ|v8j8gtD}4P z7xd`MHRN)Ird*+;qoYW2Uy3L+=lGawiF8XNzo9;a1EO>1u`&87Ny~rPn&Y8^!yI*? zSx!N>n25?c_RK*TW0TQmD`hhHbNS<2>;)XAn2A0^tQllCb`qTY7J;U+dHuBuXI2ro z&<_dq@Q*PJ{)&d!eY7$h{wj=N9n#L^Ya2?D8G zk1|k>=2H+ZPawIMMT4q%hW`P_(A8uP%NQIZ>OQf{Sw+o#V8Oc$7`1a^1$F&G_ej1% ztpg2M^kTo$esrS3nw}Gf5yi%NCl1oW@g=ZPB5A$st_%Woa6zNLa)`Q$4D`4ZZXwND z>cjy|`qHXTR7|%0Y*Tnb&w20@?h=qzbk-c=b}>tG#vEftVMX(0#!8Br5L%=_(nmCjb5!(P}lP~vbBN>z1h#@ zfnrOqNs2}$AxmuNB^!%6m zDXB#m{zcFF{kn{oKsw)zcC`*;zBx?cHOSv2J}wP}E$SpQc*&7mfI&A38VoT1B5*zkLf= zw=T8$#)dYxwlSa1KU!8}^>GC}#lMH)0rB2O9%CehSeVE!1b7~JAOTyQ;Dn(SUMdBy zRtp(J!132J4`XG%oh}B3MF6WX zE59p~RYg{IVMcIA2D^&ADT`%Gu{W7*hdmrD<$P5$K7Y~xPAXv1095rnKVtxDEiez0 zp5A_vAnOnu=T^RDwCbeQVlc*yXWC3$MDu-IQk*knZ+GcgnXsl3liia@Ib@-Q7g?GL+}1xE#4uRO4Nt}W@rJ?uTNg1}T4+To(I(;I zZHP4nH#4e!rx`@qfXO=yd1TSx5WPDrAOFZ)6@kzn?o4t)Yhqd9A*T%HaXk6X^g`o- zBLq@z$eA{zm0MBoNG-bN+I@6gLg^irVB^0!S^-KuUI#Q`L?QGSse_AYb-+{5%k|X3 zMXiIEYuCZWT6J(Ss}7i@ed%>@kz4yN{@u&JyGfGLJ^WjE6S5>tYkEZoW(ZU*w|v0W zd*h#O{gR6aa(pKD1g_7~b+r;}6*7 zStP#QR5DM9jvfq4L8Qc;V|*!n_$jm$wj;kL8c}z|QiL_}bfDXP)YFIo6qr{yg;p1b z^RUk4`{q3wU>r*)%^l*})sfr{%DQ-3p-$K#2X2;c#)}&rx895v*CP1Ebw(;FomzsL zHRap!(pf36oj2c(md-)(OXpAzOBcx!2FpxVb-MHK8o;~0M@L$T(Vrdg$1bhJst<~Si&3~ZF>?5$p`kh9Q1um4i3}I~z z_fr^P&tKO5dBs0wH8cg_)yUZ^IMtiiQ+f01cJIWXcc)lIKvFj!Tj4u{jPRY;rh2xU zpI~^DR_FAJgL^vuBFGc$4N^QnFaa09+KFGMztz=z=tM)Hn3;dXqKensS(qU+_~7d- zMS30c(%>wNI!Bw#q&-PlE#&N0aWb}5TxhgAgGufAetb!t3A0B9wT*~a5F=K9PigR5op{J zGK_7%7sT-aUq2m==14~|AXwIP;%tseqh`trV#dsvV(1Ldcq41MZWeTt#!vc&)UD9x zhyK2ThP|*8sH5#{@IBg2e{663x7-sJ*uZ@VyBZFnkGw)kGy-)Eztlb2MHIS5HgejL zUi#x~dr1gOP(qUY_1q#qu`#@Y97Z;wk!@mDMm9l;MF!yriLOOogn+v5=&3h=+@T*+3cF329 zU!{QLq`ofriJabSr=7;=TFQwGwR@F)y|s{^Fyp2uqJiRXMe!@$!+$Tbt7C#cs`&am zp_;}M(Cv4i04$ZG4FvUQGx=FaIebAA5ue`Onu8AzDzfGw2#x%X1`LB*Cu7eHEc> zPkw!|k>@KhzVdNk7tl4-8MTsPlu?$1%euC82T_t3NS-hnre>f+NiEV0x_8$s*~r+!$LFEo1$ zU&b=`n0?bpW%x2J;|v$<<5c(ypc#5roSt$VMgd?v8<0E`F#?S_h570;Vu2dsCr9T&uE$4@aPzNRBW-S%49|MWn@<51* z6*_Wxhin)0!$Vyy7Q|=X+4li`9_l^>lKw=2!U_@rTTXSU$HH=A&(;D?U*X&I^#?PKl6aj~HBt-h*Qi+|> ze!nEz7-~1{x?T!r?;DU;H6TJ?N4J1YBA#k`auPNNn8Hr(c$iR<7 z2DXR95VX~Xf%xPRS)-TD$b9lSS%5U#Ab`)?kXY{fFX~#`22Br_YspX}p#ly~K>|I);uQ5}lips^9g&KkE^BjQL zhdChBIYf+X8mkWR7I2z`dkF&V?p%s3i3FsI^v$D61H0G}CB&@HNYxp6@4;7#z`!ma zXu{a^b7l8}VOMRYI0A!;Xi!f=w1+23L+e42lmFb$k>AZ^CEN+jpQPLvXKr%A-rVFy zgmaS%m8N@ASzmye7Z$gF&jm7XzvS|=$1XlRh^pWjT`kNAvCcE*54R9y+E=im^gAW|A-SVVD=#${Y|cy2_&Y)?(vnJIC{1TS1m_jL4ULF!~rCV zL}E3QNI2A#2<`4KMqMC)5NtKqGNGi?Ot?5X3BIDg6u*NQ0?h(+@7;dgJuib^Wbrw*Vu9Hp*Zl zXOMMb36~dV#aH^<((m;}Htm$not#bfQ6*eVoQ=`f-=1|(FEZ<(%rz&kJ&}g^ zaXqmx&Zn+v$1(bdZj%61tIctkUDJp;E;m3RB->~j9LIN=`xtnv9N!(fOdQ{1M>H8E z$M?E+p5yzRQH#b&fcE>Qp5q6+afwDn01rm3J;xu7j5{;}0(>ZL@HzfeY*eAK4iQf$ z*?f*4P8cz0OheR>WV6rl=Mu*P8o3bpe46Fw_+UyOr_l+~8OERE>E@j@{s3Vz%l>nG zCZjjf_yUxLY!lG&#mxRiqX&>)sAUB@e!fP3p^*V-7it@Vj=xy5^;4e*;>&e)6R6Yh zgpvvE-&)>}ziE5I+u@R7{2iwoyz4F$#xHq&;5~m$F#dj|1AGvj{KqfHTK|>!96$bH zLesyRG?9zSxdZK=oB`Bb%zIi<0j=LzW4w)!09 zpVGrPr{vTPb&FHZ>~Jca9jM`-+Uqy`Q~RRL{M7zAB-mdW7l}ROL|Iyo(prMx27~IeMcV+cXT0cSfK< zhh|#6QEG%Wm|H-;a%LwQ8}6k~Vdo5|l1X>qfe4uHj}uW0hY*aX*CZ2SRu@ogaUhY1 z;*fgZhz;!RNS`T^U~mC-M9`lVNTPeS(mi&GUVdXx^ufpcX#f2Wj6{FPS}S(}HQwVL zDic~P+(2ZTn`xU%9;TIe!sc!0f=wAx;>|kbaQ{0;v{)X{iDbu*keusA$etBD^`S`X zpiMd@2k`YcJ->muQ+h^>pQ6=zR&~9@-zQDivskj{Leh{RWUTBZ{A4SOO?&#GDoWU2rE3fM~s6;<)CpbbFd=fRfc%L+A9Lb@!^TUmz+rUO@zS8I%sUNngEd|(23`Ut)h*L(9*2JVRF|L}GtL9$j zY9PVW4e^B)WkMWWB~J9mz{*?E@W!d*XzLP0Ix+r=%3pB<^S33@a}IHcRcvA`hSZ78 zNdh8au4K4m3Q35SL>W>@I7`cQ&h>9R6mz15U~simXeks&UNm7`V5(Rw$RV{fL1A}R@XG?`eikeoJZ zYuB>1f0D~~u%@>qDjoKIH8BTJz5}(_!zdUly*Y4a9f>yAlrF|f*`cNEP(2E*kSHV8 z1JhGnSyI26FgIUeS#a3h(@Y%k_cRmFMfWrl&&T&P6N5>6nu*cmJr~}A--5vo5PmovILHo2JkL}dJTJtcvvGVB462^j8(}Z!KX`- znJ^4v5jFfn8~9l&6jiyWIyCw#gPND-Eyk!$fyT;j&T;)I)Y-xfTW$w9yunm-3gLG2%}4 z_pOl;HL5$VxEBoEV+&j>C2uXc!n_tD>ItyvOkgd_pRup43~GlGQ!sdNHYTnr-FqhUTN#u7^GHH&xm1x*{g2 z!|j_U0I`oFNDtZ?TM{YWjzwvGN-A$jgtp&Q_79YooP_GNXzP_XW7lG{Y>OQKpzt<_ zd@<1?z|BAtf#~%Z;%8ztTsJ}9TE;1U+OOxj$vt$_j67Jrsbsdkd0TlSVg1r7SIqF+ z4kwFJis^)#iA_kvCvyqNzaOjlC6UFZIg#$~`Srgfq7UB^OP?vu6zOWKv2@@Y&c`Su$}52vVs3f&XomO!|>qX72aPx0Kv|CkO~8 z+fr8WopPm+h3s;&EN7VWc$vBckXewD=nrFG?547ScqBEC&-vf&rZV{avatEt@-36F z-w*Sb;y;aj>08PU0=3Ni{>1;@ zx0KlzmzDKDE-xD?`|TlCn;fVi2jR76+d8>c%NNH=)R!E-+H0B@dYq+D1Y4UkseC=w zE|w=}$R=xKz29#l%aiZdZclN(QeJ+Vw)H?{Ik}~V$Wr$s6s{za)X1+oYE){>Sle@KFBGH}3ePs^A4pWnWMeZ72p=-RdgqdtC;iPYq_nkG`Z2jjQC z#0+foHyp-0>oOFs!MddkR(I5-_Ls5tw!B=x-BKNF9Q0e=^78N(x3`GjEZ;ubsxIlY zEfJP-{3Oe|$(?mr*69vZ-}{pX(h%WWPEmq7t;cH((;;;*y{it2kH=c&^7FE}xlU#t z_1ot1bMo!mU)aAa-(LFKP6KvONLk1sQwbO^Ir7GSxZGpe1{(Udu^^B*k1&aMt9*Oq zB)q7vQss@{F)`v4+O5fb=FFkh{X~$U;9@MkKr<0#eMa&%<&+4LN=(YN9P2`zj39{9 z0Q>{e0nzP5HAPWWXt@-(*HaTk5jWHzR4Hdf(td67pwUM0mODfn`mJ|SHBcWlikqlH zC@BF{T{gu=PaBkkerFvd`^z;DXh}JFC{#i5Hq$}=$JiCuND#Uc$B^KuWzv#C*X5+! zy)LlfD7L_UO!07ai!mB7`3BW{tY2Y`dAP zx0aWhf|OR1Q5%U*MQJo;Xn#}}0Xl;bw1<+buMTR^f5pf>m{5sz(AsgcOl&XTOe&hs zCP(8sr6{GAOa+fsD}dU`80y2x6!i5zR@ix{e6uN`n3_ydAVul5 z*U;iP`T@|KNkD%jxyqM7ne|;sq<=r5;+H^o*R3-4aQRkJLld=-tSgFA?W(P)amD($3y|E=qf4J(?I_RuB5;Q<8ll z`7_-_F09*1%jORgKGsd-v1hrM{d{>js6fkfAzk+q&0%eQik7Ij9l5-in)HjwAMhsg zVs%z}W`CUU8E-PDz01k=7s|^;2@0i`GZZ8HqWSdJt3^o>hant=l=DC zHnDLTvi`5pxmaMuR4pF9nb2C6 zi-B+5*5dtn`L>aUlINY;+LdVb_uQ(2!V&#~g?DSx`*v~*T24k-)l{34zf5RH%gM%L zx4oc$QNFF@AxFpYb4aVjp)Nw=7#AUXXnN8fnx3?WrYGglG(y(>?WFa1J83Vpo|FU6 z2+6Iy$Q2h=5@af8AX9o#>y%y!HKjLEPT@|@$hmu*t)Ie0oINf)JTgCp>%>>Y|(FZ?2V78+jiJ zPSl&y6i&BOwpFDqPL&X${xYWQEwxkXDs&1;l9CGgaej0P3J*MSLo>U&o`N^f?!n^# zs?SgcK|R6%RyaLoiV(#`#56*lP#Y6^o@GtlzW^@t-|d)DU7E4qg85g?9RS~ zb2a8eP}q-c5wAJLy6zR^hR^uvT$Ihzjd7Mvmtrin zV-!Cfgae}uqxGF`v#qaSZeB88)lE2GhPT!dJ4|hLlCX>8({i6Zl}bZApy>+a^a{NS zLVKn-8V<+CGJF3uGw7>G~9&%M4Psm#)xwcHi3ie2f-{4j+3-T1Sx3OJIM?ps&`pks`U$6pFL7n&NZ3J7KW96r^%PA1YnU4&YVk4{ zC<1^EV=j=O&!)K)P~yvZ)c6A7@>Mvtb)ANvZvMg?hrkFLOJjeY*9@oO`4}m$XiL&_ zhVO#49>4M_BWZ;Zw!ZTPr{`~ zr{PVyufH)16KF3g_gAg+X$EO^aI3SqFMJdty&NJTCcHO^S=1O?OliIn>?}6)qJ!uw zufwi|$=`4;l;F?AF0(G@+i?Bq@DuWfFL^mn0bE8p`~*?&8oDRnjsfa&Uc#lK1|+V{ ziEA@)ZE$XV4=A*Uv7o2%$bbXzX>wYfRV`e{TGY7PqNeu^G!r0vqzKrD;p$xvfiX}` z^gNT(wsTG2u}@niGMx*@cwOM4kDdt_ zyoS>$PBdks>Ck6ZI1cj_+=_h>h-sIjEiEWx3>v{5BkkyrdMy_%igA-KJxhFx?BMZ& z?WOrOAarJpb-s0`5{_UN+#y-JQ57#L`f3t3Hsfw@cGu49c3h%;#?Dz9lIstq<)u`{ zecj^JoT_(3J-3^RF;f7)5H@}HO83YM?7(P5eN5oV(=rDXz+(&tXi-m0>Bt55T!1#1 z=mw2|*DSoV+bs?tf;L8tiU3zufU`d=4k$vCBEYK@;Ow4?1B%eB2yp8JIQxj=fFcwX z0gV`NTe^}WloSE3ivVYTNE}dv7DYf$0-W6raX=BuiU7AefU{2@4k$vaBEX9c;Or)c z1B%e52=Mj+IQyI7fFiUj0?dK|XLl_eP=pRefD8xlPJ_^?2%U-$V9I&K-7A_Gbie`I zLZ-3v2N8x*v(wF|?FY2o;d@!eu7mRLguwJuN{H7@a;?b}50uk-UB{U%cEB{3qXWbA zK^09*tHj{UPK(W;aNIt#OIq+5+!z)nnAYp?&g>2oI@jSLW{;mxWfId?5^-jqcq<8c zl+i&+G*PK|l`w537H7o%6WQx+ywjL!J9!|L+x&LQ-Eq?karnhRk)EUjA>QhaHdsMYFiqvu@D!L2$V?zaTGTwbRS)-LXK(KDB3i< z1pQ)R_-)mJPq4zA8pR^&A4k$?(2B9K!Ktr@9=41;vIE25<~7501{N0oo8}( z{_P&>;?Jda)Sxiw?5lVW1XgSkT){*3?ZZF8m0Y+C_vc7+(rgPr>&%R^5HMjXLZ#AM z5d=pFYQx0gOt_|z+aAS_s)BVh2fUInYb1+uDdd?K+%zRO4X$P33oDVhEt>cxBtGvZ zZi{3%NZ*85f63e$SxONrCPKAIM!v7E^>R?Z>&TBMw@PfP&sRA#Ov3xG++{P`@L6BoP zNJ$Yi3Kt$Jc1WQR%cbDeq2<&Gz(*=o;)T%ZDc1m(nrZXJG6=Pqd%{jiScim+a)|oRZ1v+ynX&F^+)1Jm+xMrF-iDF|eUuefq8}2Wa zU8rnKdC|)#rLNYsjfYqy^ft zWTX7;4SWJ|WLq-(@*F_3GW|~*J^D^WkJ&p81!Q;)`OM|+qqul*=5iBi8v--jwKj95 zd+aj9uYlDLmAen4OCS?7qZ9oZp6I0oDriRc=4W&VK4W&`*No?BmYU3%4LSDI?K~`M zFXTjK^UXVL5u4#I+OxW)mKlBi6?a_{mXp~W8Y7se-x4t{V*p8UJ={Yk{D-$OxTA3vp|K=a1S(d=`{z>DVa4&i zS!N!AhV4D5&}*v4ePv*$f>V(<7Fd=K*fMv(uM?ca@=@yVc+swqjLPkUKbt3il9+hA z$loN6CrN6Eb47p5J8Kk=X4;iyDH?SZHoI+V08S&@_#)fJ4z8T;p2Y8}vp+BGu#DYA-M4ZDYgT*3%kA2R^ZlWC)bEE5F(#2b%xL@>|KT z)cCHBSlxct9?4p+nFr=S6u$o}`^>GE4OL^XS51)!*LzUP~n?BWoNDWGp3D+GOd_Nht`2_v?2hn{t5=CjGo)Jx;J$O2m| zT23%@Hrm2qUV{|enY&{4T>bY`x1EtfNm$}S6ZY2miWds(N1^7nWKO>!!?;;nC)4J6 zZ?*Qtu$zYacN1?`&d6x4hF}e*4o@VCF%~+3CQWT?|2SGMYAW!W>jYD+!!eh!1iq=S zcWZg~?mv`dPK4-8O*)rV<0j^2QI*x*XDP(abZmF#T3hnHNSGQR@B3xtB72cnhe4JEJDY&>J)NPpf!vVZX10A7G%8Y5hExez$9m?vA5}@ZM z=^TlMca8X?weogmAtpmg@UFgDLHun1&+c{lr-YF57q zt)YQ4$W&VGQ4GTY%#Pf+}Z2sHxi;sGMb9~Ncv_~ zdJL(Re>TLD$I0cTN9|F#4kp1s3)>NodqKIOMte3JCoF~@D&r-+7I!Y+o;Z)CGc@4~ z9<&|%M7PW$#R^YTZxWBzQWC-X;?|V8rYWt4Ehk>)PHhAJ{9<-cbyWp!-OMpRkp$!< z1Z&u9%aQ_Yf`8qTt$OnkWGQ;T#~rWsUE&R z9hx%w$~KN))lhi&h7uF$cFuQ4S7gA&)Ndz$re5N&4j4vZ#6bL>Spp>lP+`*<6liuZ zrS1o;TyVSqsvT|eVbGX<^qXqf1AocA2=^5bM`7~Y;VuSc8Q=$>jW>5bs>eYNhXBDm z4FBCM8`}SAH<^e1PrGR7f7%oK|I^-c5GLo9>j?FJ9_NxKmh-g4<6GdDKEcdKSKjnT zGkjUa`Ft$`1AzrGYMoD;gZAm@B`E3VD}#ppr(I3v(JlzBwkr6K7x9eaZ+!LLIQMgJ zM++`W2W~I&A(5TuPK-;v-_=x&(eWq2(}6(e2?`|5T@lz0PXmb^^~rDkFJ^-PpS}6C zTR!&?izamFfBF{873hCEa<03lmF-^mh6+wY*_a-prU^p(8LdCtLvy?skJ^U?2mUVa zc<5in{B4+#0?rM8^GmVfEy9dJ9EnoqSokvL*t19@R&s(?iajo)?4VFb-~E|S7`#LN zWMZ3j{Ti>{!O&3AEbDJe;xrrNl&Q!^6A%7l=^sYrSOvatsi@~=rlX>t$=u_>&4i@P zThmG$@Nkk@C=mz8Nx7SH1Yt-gh@5il3|xUT-X=sUtM}UN;3|PK>rpnZ^avetA7tl5 zY&^OAaYqJ*VclQ|LF zvsF*<(?kzZA6`Tlq0B+e7wNS21h0h=-KP>xJtBqmItmdzJ9N+rC!|7Jc^EhU6jFGm ztEP?gk3k=-37Pv0AHq+By|$>OQ|zhl7RcC(F=)f`F@NaC_nB$9LR?Pqj3k;cKE$I| zvj@p&5pJw70Y>$gXcq)N_@Ax`TTff_E;uqDP=avM4CptOI`oHxRj$Un;bc#K;IY;% z#{d42KUamZPk=QlP}?Eiu9mAwH|nhP$}Ogb6e~-5QfJLZuHAuNT~1Gn_| zhfA;jHuBpdAW^t_gb)%GjbxlKSL{_bL=dmuRlxB&Ttqy-LTFXs{tS|>XBfC( z&O#kngF@Gxtf7#7eO}uXcxmX6QaCaDo$XQ}M^1!}RuQ$N6EG5I@_gk~trU*J3OND$ z1*-3U?k^aI(~b&ATN4s!Zc-h~jVx81mcXA&fvBJt+v!V{Rte(2j0>!vT;a)y@o9%5|=@keNIg^*ugs)Q0PI$l6pIv74x8-?lQqHf+RzJoG%ZNxq-Cww>{LufQ{zC zYBHviVCJXsVrjo{4=)R3Tq(hvj8-F^Dw`fdluvSpd1`ft*-cHVbDlqmlSptk84t{% z3;Qx?*5+r|iJVEaUX`ePqEM6Ma4EejW>&YJYzi5IniqUYE5Sf)x$+;M{TP1ys3F$w z`OHJFp!L{|wej01VDL=6*<*$ISXkOcfi{$NoQ8%LyJ)QLn1pnrF=mRaI8%QByba1v z_OTOYiiU(%J5e4<;O(`xSa>HtPxmDh0pYmZzXTlvW4a>oIJxjeJQgK1V23YqX6Z#?-vR4ycJ5;{1&RV|XO(0G zv&#MnLS%1i>JW2YEb6AeGgBySu*NRR&mt7h5sEs>zcaDRT>8~H?(n?ySqLm^Fr))z zEJuRm zjrr~dQ|~Mt2Qh+$3z5zuDI_z*VYk3AF=KX3(ng|12T=l%W)nk-XpDr8_u?(;3k3hE zKF>3$K-velBDBMNr0HpZrXnCbT+K5rkO{aV;}bgTA}k9aG%@5LTcjvhs-bqFx8{fv zV=I1yMe^@FHLjaA{^pxDPs^HN%t92sAc0aG2YXba_NuueiKd3P$)}$wzACc*v*uJsEuN!e#&?4xTQic)Cvn%T+hAjesbhfI zZTHaLI}JkaGp@H#!oY(SLavhWZTHlkoFkM$VDU7IUa|J{2Ay%t9xk+R>zYw@Q30Un zDw18hJWSA`XJXN#aMTh2|AA|ZULjU9(o}xNFLxzs5!}zaLqc=OSXy80TV#-@DenM*V(ZOjgHfN{?c7+h!egL^4?= zkA^LcSId|+E*e{liD!vb8MPC~`Qu&?jLrHvJX*M(sZ3Trnn-}b!If7clEn}v88OS= zqZKLt2aDuSbBp>g@C7($c(7UQQjk-~%oZX3hz7I>lA8{`#9#-ysg@r@DO`HDhu;KK zBc-c%ImlhDu?-*wSNu^ywF61RfAcy+)-6A#X@TTn3$sa*z4dC8-Eo2XL3^YGE`jKe zL(P664utMeq)IWs=*bM7HLQ_fo;LeZaU5-QQ|QkeB_3YpL)6S@TeNrDHAIk%O^J=H z)g{{HjZD%69!%tbC-Fap zExXI{mm#x}Yjs0ySC`B=!j-Zx>huATa>8zKEqIJO(0h#JJq2*8+)mCKjoVI`&h1hK z>!VuB1ObH01U;^e;32nOL7D9ddq*op!(>YliFCToV8xPHQ9tPR1J{-1W^qswdIkA^ zx3$k~i`Sn~AZu-kb}I2@!T1^#f|=W}Z}Z%)6;q}rL*m#sw8oK4rpAmrhozMz__Am{ zWIH}&H~elK1=rdC$=^VK?EB|nzX!B&2uX_uv_rQozv`7g`fC%l&QV~sBPo9`Y zPu|5ZiA5;s77|S_iKFd;s~yeSh+`Jaz-0nc!yL$L0CGSHYaBpYKy;!GiF;j!_8^b8 zk>CJ!L%jLi2%|k|trHH$N@3w+c+ei*^^-Iz!ZDa0$~2gsabG}Rml>J?xBAzBfaL^} zs*&yDnr#iL45AkG;Z~9@!d!1$%>MfGP!py_-S~QBlP1C>COgFjQ9M)te$49%Jf}PV_v5w9xF#OMK7yg?v_tGK zCj!+mQ0k@yxbTd;ny`@|mMj0Lf!~DxmLcrA%P1YlML7cCQxr%{t(-M>mE7Eu5dY?Jd$iWZk0k(Mhw)8pm+i{??BtT%pDA;4D+P zb6}O?=rWB2ZMgaOhWS!N48#h;u_QvllWc}*(WZV^ZP+hROY@L~Do&It7usPB73OY* z;+cz9H@!9-_JNbWhQE>h1rY#;a&FFCUR?Q5dmM?H-y6uQLG>ukKR1V5`_!;b4D_-f zTpAQxnXpCl%-OMI#I4TxqG|inB$?zTR=#-@;4kKF86`%4`4^@5rU0yiL7k+nW0H(h z0~kYJQF!rm_Y(H_hw|(RvkEDT+-OX8VuHlt_)rnkFPm5xv-)XHRpgCpPN^e2Zbp68 zcDfKle<~JB4Hb|Y07*E9v2rTN?R^~AJc?ZO&zs~3sF|b!x*Q{xU?=ZOp<^m#Y~OZHcB9KCFUsDkxfatn(0)GPc5ym4*J5m`aXU zOallQX&1#pZR^3nYt64crf-E+rpY{-U!OPb-d6`few{u4+`r%UR#)u0SOq-wcfx zeto|p?|ORw<@^5okoPen z^f6cE_Y_e;wd$w-_M&(5t<2x^R`dM`Z9mQaX+M{J?qRe0c31ZOxm;r)_@NZ`mG)QX z%hzqH?B=sigZO)Mk*m$`_(pN-dA_Pn|NP_1@4z}@{)2j%*T}>w`=eeU;<=d{{Co|yX_0&>MyAz*uaPAlu^<^!G0^EVphAd-Cx=Fppha10wVKDYMoSP&yJp(1KfMZB7?#+ zc2uWg7+Ct1nSaoOziDLQGvnB}kXih8Pt=v1W_&XZVTwXkpu^e$`LEoLptA{o!L!Zz zdhAR7mYreGi+ymoGZQ1d`4YMHJ?`uSiz0DNhUde2 zp&9HLel&epa;>+;p3GG!L;sT4)8w@v(bSgb8=Ts^<}`(@zqc|{@i*swp&6W=P)Oex z19XRgq*C)7Ijk#jEA<~_M0YC#(u&=e-8PMmVpoCLkBkk_8_S8^<3z%hCtm}*TR((% zqi&^LojGy7*UHp4XCy8u>sbtge03G>$yXmZzc4i-rx#4#=i^X0BkkLsUMY;P$+K@& zq&6<57IuSMr>(@7A9)3yqMwfst1qC>Hc9xt#ARH~WvAo!To_=OOUpTmU9Wh~uk<}a z3if%&1jWQ5zqgh4`}Q68q@$nf+l*&uwq!3PCi3Pxy{l(=ou@urvx@$~CSTUIEJ??g4M!=}h`(@B*xy3vqRIKqg$7#iRM%!GhST^9 zi&l}*M%#)LR;KAf6Zt%|?9CkBI+G(6X5#uY0>=YssRL?}DY8(K*7_Q8m4 zgm9{DDkx5y*o118fO?{6i}t#IxX2C1&IWlXc{GBCXP@=qQLT~pgTib4&8pX!N5JY} zl=7D))N>`hR`LUo>JONLO39T2 zzApyR9`)J%v|CS9p}K=dSGXK;RHdgw3uxb`KXW8f^npwBEChXqg?**-7dl!zcOqIz zUJjeCeRK!raaH49O4Ym!&vNw*OR=gP@NCVqeeea>7VT`_Hh~G1N20%@ zYy=kalqN%%OHd!Q?*HXkYn~hs`A#qXu#=563kta|GP3MZQ&G3Zte%3m8;Zy!iWWO% z0=+XP5cMl<7-Xq@j*%V^_gkTGNxX}Wehx|MyaRMvpyt?C;40XGQh9GxVLl?>tq@L}gkoPWVHp^9xl_7AGWRz!_W0dt8?*w4W7_uVcm?t`6h^x5-(AWb z_1jmENG}To=tylodv%t@DTYA#kG7$k5RkJODO@zekn$7s2-Tx=Edbv6-eo8W)3X-9 zG4SgI8+&UWqN6b?PF|w|DyUblL&q?WK*YdTAYn*F-%evIeXla;)CKXYT!@-o7Pz$7{l?(DO z`zen3=~aQHkhEnHP(jg7T0+pCv%Xr8ubY38HL}plj1RDU)4f}v*1e>YLS~}{2I$84 zEh>z(FTaotl-o&|T7*%(2R&bW#1VXmB?vcSle&k}G#$~t`gwaDz#uo>|B#Wd`E<0X zD-#>zEkqs8mV?J5-we&~;dzHIKKrvf)kKmRTei&HGQ>UOs6=1k z^qB}(D|eI(v~%0{Ip89BCezGSUq;LYoktbJ%5s;&5&?MhIP=sDBVv6);b&rKwCDw8^Th)4$yRI`eadTPcI&Egj|kRIrftAES6IN8Sc23|5HU~C{i zvP16yUh%wvANcG6(U%3`X&>1s>!Bii@L>-@oa`a`0N?nr$RpC6Zo^n z(Y2A(w@>OrmqYE><1O*Ue8{n zSOI|*+o(hnBeirQ8>Ah|u~yU3$tOw%jo5_Jkw{b>ooWI;g(yt1g=Q_S(6TWoN{!LS zeGz-T)w@ST+|~UNLEiQ_NvLO8dI|4fAzb|Z_k#+w(ASAzqh6t0R>$f*8G?(O@G?c* zTWnRRj{xqFB^5sw*QGu>MGBKsKT?y^U4pV?p0B()f^Q+zG7S^7c4ZT^HMBAW@(97J%ohQMX=b7k4;c9ix#vV1Z5k|WFVH-_DL3iSh@~9FzMvc%) z8=Q!J;51-6v_G~PPtSAHG7W4`5BEx~!Sm+N=>X#Q`ssm?=ihEr`R_=Bq#OJQj_U1d zhGh+FrhJBtndS@p->2{~?f=ln;Te$0HqjDb;16 z(iC7fd(c|(9kQV9*nX5~Z@`#lNtY)hFh0|9n~sgbj*H!Ppv?P6p&XBa*qEtRhA1O_ zVD-O8K_LsD_7(YCp?hDl+wxHK9YZ9vYMd{b&OT8r;(StSK24Y5P_WXExq{EwY}RjF_kfdS+%1z& z0&$;Jg^1|7ziSpnAATpw)`Qr(lel1ti(SzXe^yZHnU3@u^#enHuyL6LpEXBbNfPc+ zt$4`m`Sw}n;*tJv9z6=w4RKaM8lRPcL53YwWZJ%>QH?E^G}t&`HHm&JoCLdac{C8M zk-~CMq8OwQ7O(Y3mZ*~tB#Bz0q&^RxGP}xQthMt1>Bg!*L~?aRS`;aBX1$dKrbRKq zqEC#pxJ&`PSMdm>6gt;U<$)&(Q&2A@p!i5aALk8K1#Dz{IaQQCtJfSriPk=G3172N zPMxrrOUu|4XSSjV0ZR5~P_Ey@G+B9S$J&OJWvUk~9HoM_?me-vXn69y@>fW5^t+C5 z_;|~`F%vGSY`v>rOHX{Jj{)v*I6$$?uZRtiLbmxzxTPq5K-_>122H!2@kJv(7K38T zw|+x=+_a<)Q9Qy0n(3=?zHpfD`V`r#X}oOvTE1&$-$DlK$jy8-@}K$WJHXwuj0xVn znT?Gx#%ZCJe(kPz`Xw*1_U74CCSfUsXQr&=S&FZ*SoV4%`})}wB>dS#CSxUm=Zbh7 zCw?i0!qrpgKr5lII&d`Pw3H2asdWMH!*y?Ub;%b!VrI36J>Y zkPw|K!Rdd!WMZOj$XJn&E=HxVuDF=iu7(9V2FT`}yU76sZr_-bk8XygzgGA)AlDD8 zwQ)i4!H8vk;E?S#ICnK{?7^f3i$);TtinamP%Ewu81F1bh>Ua#TLE|2lhGt~hY@jnb1bZgPfV7YCLbeKLRZ;Fwvz6Cdw*{! z1Fj7zanksX?#S76^J5(HwN0&gZEE3~xUWr1@|+H-1o>O!rge420S$H5)pDx$6E7{% zvgU@0^J7YKWTRJkq}cR2U2XArZ)%Qf^>U(`YAdp)?nBF}#l(Wo@lV&9>qS+yr#SV^ z`^W0jMU*!k_tg$c`7&W!@7|5vI(x$O*u~Y>vg>72EKK9S@XN8@J#^#r#l25Ga#~U5 zYGkdwT36GneP7d(7Z+=7#mlw~*26n#l>ySSO)MFv7KGtGIqy{>M!#v$vJ7h6B5Yf+ z7?TjsMX%tI)VtuOl$Pb!_j^Go9lsPs%-yubU%bFu0f{Z5q7W2?xT|^U6j*6OxCJt@ z0E$u`F5Z&K-s3jjtDTI-mUx#6ruuUs~GDalu`YPUDbP1>@u(iw{g*#Z%==e5H!FUaScKPjk6r>&4`IYQt< zQfU6%{ypDLEI}oqw8W|v2!KmzsX)IYUhYeiqY|B-=hvJ2N0aQyR(c?$Jt@f?g~B4i z=IE1Dro5TXgZsU{=$5!X9L|#&b&+0Q>#PnN-HA|fyRj5xIH8@$De!_XCj;6Cr<+;rBIXaeer{-TN^NOLTiH|VFT)x6 z^}~`PIut9!D0|@EJ1<(EUpV5#D^J(ZbGPb-JM`pPsq`-_Jg9&73^sfweO#?fC~|Dn zU9GQa&z`hx6|{kp+`qTbW^sCzOF)f4+gpFmI7 z@vAb<{h{cmotP&*g}r-a>mn+5iuOR^g!d1lAYmfi=tVOdkF4|VHWXzi)^nos z^HaCRgJ*|ptOJnD4!+=9y$cJN+e+!w$j*t3rRjOLN4o^te8C0 zB0lzW86_e9J$btc9A&=tji_4`dL#oG0m|Xi#^AV3?j-a%2-I{&!k^4@I?Pp(ppKn$ z49x80#+k;L#4lHK!;VtnreuyuRR(|I_3{3WdIaE#kpx|pJh!OexoKjNCZ`c}TlUt{ z?K{YjRat2*bQST`n?@ih*O8o};_@+t&Pz`WKKhrAnnh3(QTn=`=O2q{ z`?X1byh`y0H21WjI}&;9itpp?nNq4W7%ozaJjBCSzOHMK`E|XKk6*g{$VWu137Emh z(Bt(`sJH8gkVoUcXwy~`Mr%MRHMKsGU8xn`G!pM?t#HMsCI_z&Z>Gr@SD|g;?6!YS zjydQeHyVCccJU-yZEX{*%j~K*uW}n=;n?exsIrsuSmE7t*H<^CMs~2vjaUW)no}bc z`Sa9be2kp|ElfO;VWWrmIadav?6Hqy&PNm$F0X`);8z7YZF!!MqV;6EP9{3t`hrHS zv!qbfsN^A{4+_;61{6y%FTl-Oo!CLM#?oF6-kVzR47gdEpy~uBW6$RtZl=Q%K?uMscuFm=UhMsG)21O`kgdX^at4yr!xf5uJYQnF z;=Xeb5*&4rh{ZwXA|F*KlnBpJD$WBxXK4#OQpzgdzi>vRA58`fvlB8``fH@y@iv`qO!~VV4OL@OqD-}$w)3>F zp}c)y;2((alZ~B{>P(2RDCg9QG)0D)&BveO;k{C`&ALJsvM@zi4V|=X7$3(b#*(G` zg__Pl3sr4}jO4futn}K2qu5Fh2zB_8VF*!1W2}yKT1Sj$lo#l( z-Xf=QLmWEWN&gXxEN*NZ6~ac9oS#nbgfeAvsYob{HKGNWoIgUg_vEItJN8izB(sfE zva-8OXft~L*}%Dpp&doe2o#91CjRseb2KLud4ORB5GKnJfU;Fh9PVBg0ONKP#G2|px{M=u^UVfc1Qv~=sEzA3V}7aK%}W7Ad(~yi4{oM zE(nOv352vO0y+TLhqMD=k36Dxw6pE0AU>_@w6+gKr>=w#&0$M5uFI}sJ;6WbsCtjB z-xvo5VuLaB4!52+?Et9e0zfI|K{E`SQTa(}-HB#UWr=_w82F!$7=TIPf4&Or1or<3 zWOnWbK%pN28UXSso@3^n*bV7^`8;{>4X7|(EiVe zW1tb7|G5K*mb&~ucUU4-i}m+m0Hs&|8I1K`!3hu_#e+6Z0W@(DsD}##q6d;e{QtxV zfzO^mx$A$VT!9@70HOXv_-`!bfP$@HASv_zNC7?Et_`eV_>UBjyF=7}r2f+Z`p}T) zKT`jBmJ!&5^*>VojnOo)$?<=tLH)<&KT?!ZU{2uihZOyg<7aOqz~174O49$K%p?e- z0B2wEZ&nfi<3Q%!1mQ&0Nd@!{C_4H|@P1V9AN%dh)m(+;?cP9=AiKvHpp(3S*YVDk z)*GXI4HXA#8tGeRWx5;&{jDKk<-D)}k_q5vTvz~gU&(*VKD<~@obrsUPXt&ZsK7UV zgz{TT;CPo`0XYYfgZ9#i%-`}9$r`F_ONXqMifsKK8$+!&MA~pZv~cQJqcgl=LRfKO zOs}p?;P^J&;*XqxUDB0- zksLePnDT`z+!C)3!clcxK=z>t$+UWL)2vNIX5@_~$&uS_`w)ZO_@#@1S-O?O?u0+} zxC=iD{luLx;}9@y-T`TNkc_+Wqbyx{04+TPMI*HM4F_ZG0k?*+blgT#{>NU#Yu1^6 zPrbAq{?>_H8O5C+WtadNLM9eEJ9>>lnDN?!B%Fr`CJ`uujfD<09Rr`$OWXJ8&)8UO z@Ia7vwDMo}1kCcT^u%uGd}~Qxlum%9ytR(dmw3PF%^aLK`UMpZW1@`91d8%M zI45`#{4&v_$Krvzmd&`G`f-A} ziZeZo4}Dp6s8FRI=?i-|jt1~Dm9f<+e3a!SFrN91e%c_FO0rBY=M-Iw8~4YlB~>cb zBevT;Zjxp2v-u{0qN2D~DmA}UDpgwXwg>HR#A>KWVo|E)HaC$r8H?pp>4k@b*cy21 z^gd{SIsx6ov$a-6pJraltJkAW#_DlGNuT5w1=_~)arkkrCmZ9Bpb}40*wg{?D8@GX z$WaS2Gu=q3)bX$?s~#Z*J#xnxyX*KbRvq&; z8W9pzJTe>;wZUH&6*HvkkUGIvN=*d?5*3mzQ>&qCi<_-n=CrTS5t{-;pT0E z{4LMnKK!dJoBx2?{+;3C$XGC_zMD}=L z-HSMu&j?lHsk;YR6quwdN}Gx|S(N%LBI}b}+yw|AtzJ46C1;$>uQ8-5SZ6kwZ2>?O z>OuphwB_H8xcvPOU0aYLqEJa5EN5J_J0AuOVBCKcL9ePNEZSvB3-}8Jhoov8UqS69 zz0iRoO{_pJN z!6}+1upL4ek6TsQE>rjWe-EJjfCl1Os6lV*E=16q&L#NW`ul1k5zT)m2SNW6`nw1E z>F0dw|CPq=A^a^z%rD$yN%w5_q5qacAlL6bB^n44O_<9Mk{Kr|CSz-8L?9>ZHYtXzZ%%2_2NCU(){%(-wj=U(HlJi1>1Rfpi$nqAl8Ex>8J# z#3J53qB-k&QpL0!idF9^R}B-ap$o^Ldnt;`mT` z%)BCyP(68BI>HEZ)FD1LO)L3dAU?R;quF_{&;`o!{BNwuZ%-tZR^4PN1g991C zx{jR#Pp~la0T3^mX&?jPwC$|K%NcQ*C&NWY>fjsT)*nY~=KXDvDCdzVnFtWk97%1a zzRdDj*084f>8@b;>N#iQ0~g9#zj(B+kbW=o4O{CZX@yp%iv!^Lwt*Ka6UY)$=5*7W zh+`iIl#8XEvR9-kDBz)zqV^|;RJo_kfrN7M7o>y*ys2yW4??MenuJN;`Z0w#$(T1! zQpb#iHujMLtYVmPcM!{kp|->KNXz?%`S)XGGdM>(>31&XX>fayF7a4eL{yChrUP1% z?Uk%V+zp)!MG8w~xxq@{e)0c8AW^$s%WfPP#ZX-RU2!dG>TktaqMJRus3Uil*-9d8 z9;$=cU(4qsZMZ~ojD#ejMkh_eGV~7?s<5<%k*{bS69Bks>V}0qDP&@elSHQ<7p`|_ zP8islZZTJ49}A2QPFJK7)r$O=*o2&EE&>|d&Zt;k&%U1WH^cH67mjS$cMu{bnbsbZ z7l%PuEC4T$6kBg%Ky`rEg}6`*B5V+Kv81B$%S4gHWb$KbIN5=S;NsfQnMs! zp^{x*`aP;REtEA@?aI>8GeS@=I~4ZZd%)$7GK<4`PPK|f5r=hp<2Cl2Fdi-DtYn$o z@~dS9-ih!{UvdJwx@2|^W3`sODBTJ()!X+nLP-JIp{=XqekO~@f)o`mMjr-~fDu(% zF%AiVO4@X{OqO^I_xXM4`^z}xhG`a_eE4=}4-vgGHf&2*V`MoM18myoS1dU)k?^sd#TsZ!&QCJkn)iDt9m35O3w`eFlL$pv?4wu1RKZ+(gKMBm^ zx%IWgKVB$;k?!FF5hj0@Ko$}LL{Ry7WC;qbMiZcBORXYW{Vq))DR<`;rZS-C0;PQ!hr1fHb`n!XwXl zqPnm0l1=+igG7PMxMgA!4bPAb1r<_ATNH)0-@w13cvoFq`ds*GWulCwZrsJ50gx_9 z8F{E%r^>ex+p0pGd8@~iOh`+EppFS3(59~lFtF_!mLQjIW zp5hfd9lk~iqB$o#`I*$ASh6$nNdLQ#S@b}tiSI7&_|P$7uVRz12GK~z`n7!i(RM zHcsLWQv}ImsBWiObtN&iE?*;I|<1J@o4Ag}+rf54f3@8HSQLmp6sw5r`*lf`chRYGw6*HAD3g#L53bq`n zNdz5i8zM$G#+Ov3apW7c|EtDjTkIM7Oc@lBz4lb3&gr%%#0AwlfT*}WE@@Nfh-Q=_zWwe+JGB=yo z?Doi=$z0OQR`|S+JXa~R6zj%2j(AqzHSv56#*K9Fbshe^f-_n48>^~ z(%^w$FG~;2RRQv^bC8$#TsbQPl~cOG0W(+(MP#%}tr7X~ImIq41Hs zCWFu+;|cpggSK3ujBWBT2D3TM(S#hR3lJNJkz3SsXjAigvm+%EK={%ANXp%>VN{e0 z0S^PS%27URkvE&V!-C8InzuNKUSm?YvPhJmG2E(4S7~&_ztq&c-e^QKPiRA+$V)t% z$6z7EYwyWK*pnq`=4Jv-4!BG+0zCa(a1~JLt+g`b?;AkC!bm0}CF>(5SCcfSrg}>f zH(|?DZLbAZ$1>Hdj7KY3I;sgq@-Bwe ztILCpCI}L$?4=051&p$qzL=U^Lb^(ZU=18WrRP@XH&7JXjHs;7Ywhlgc&8;Fvf2=NQ{w9)yw9^ zU6$63zVa)^UrLXJ0jBDwa#Q&w4RRh{w@6+a2njRj$whb8Ck`JuxW5&_#zUpXpsA+Cs_+Ia;o?x45A*)00FiNS04^$xQ>xZ+PS55Gp|mI!cV2{ z$K__Y34}Qvmt}QBuZ?IToS$88w~f(ju}X$WORLA;zbi<(nmRoZnxao3_DfDC^5SZX7b#{tuFoad%q+I6Z6OE z4!guH6UFh_Co)jeWgR+&L%}js4QK+J2{Ho#b@=`f5M@!t!u2(mTu~%FtTDM?ieTxI z4uSy$0A}?a>}ZlWxR|il1F&>)2f+kLz!BivOEO+5Wt8gE4Ln`cK`;mra9VkKAsMe3 zGfMXk2azu9Aee*+;FrB?izVsfjWO8qLNk2pf5pBe0YBt@yGKnf5J@8aHiKjSz4sx9 zNL97vn+{=iK5y#w5eS{m?$BE=9lzjT>mvj^xm+@FbxDE3Y_|7- zJsgNIcYVH^oNp_Tc{yu<0g4Va>nFoL{?c9Rrwco|S~hVrIR)VN0iX3#;ivY`3A}~E z+pIvANgRN?-CI-P4|<)@#9O_M6~kU6_Ahaay`&c10cqZ;Jr&0|6rgI9@r$N8$R z>O~>VpxwE8-qi9UP#)kve<?V^+Eg;6&- z29{l1POb=!?FLo(Rq_6I-+6xfP-(u zvHGWKNS(sUdtRP&l|X23Nnxe@FIta0nZTE#%I~*j^LZF@oTSG_gK0FTc)PWw+*PIp zkvyeXxVtD{LRYz2Eak;*%|Df+1zaa2s*8BkpFb$$fgu6~a;xFN=6@`w@pBgyflqeQ zBmP`Ii4U_FPl2@wWo^$R!Th-ldG!APdq9N00UB~;!&;?T-A|T|t{U^nLp0>;1T+bT z`TfjP&{b1J9;6{ZEzq8%Z1KNJ4PCVsl80%?Pjj^#E@b6w^t0X(#i{G1rtRAb3fy7sl@CWuXeukpqGd_zMJd<03 zXagEfg*epkob}5Fw4UP5T_7O&tTLplsP1SX`#W= z{W6E?F5M5dK_L+NwkmSoKo0N@6z0=l*{_(P6RiLiHgXp8Gg)T%yWfF?AW0Gm&rycT z14BPY0TwGo;X%rXo7P0ZDi$W>$QL9b<;W_qNETEqtJ7kGrN?By{&-TB_h(t&pXKlZ zkUkfbA#V}e5axF^_|fFDNeITJ%itiS8^SG9GGrODF_x{3u^48A@GCg*-Vo0!4V82; z1qszdG^=9xv30b#>~48y5rK{>0D=b+r;TtG2&av4 z6<9Euv!xLC(A7UB&hQ0Wj57 z29-9Vs*_L=d92f;Q-Q33D(IGXM?y#C_6|dyI+9l}lWIMKN)u82Aw%^Cs_1-m*@`A$ z7_Th{k71~`^7W-_3qdfi5sjBc@ES=PQNB5|5n(2-oCGn<1mXKCV1CZB!)?LlsP|0`e$}Ge`7xYIK;PD&|lH8I*^$L_EXPnNUMD z%%ujhD<98Ad@dT&a6@&>sSYx)h~g{6>!vA-G1S1^8lWhOY5F4mF)zVLv1Wc8x*=T%0Woh6kWv>hB{c94p2eov^GfI zG`)^!40W+YU7(PzP}?Gze)=6#8R}uFdO$s0qqjqH0}VQ(Gt|eD^?|aw%7KkRkc=^a z5HuR(hf0kG2!Pq*WZ2>;oLB}Yrf^$ja1esc$WA%72g5Laj~qOPVc8`zvLOWHWJV|i z!ML+BxU&?lLW0A9|Hu$S2+rUgId%}kdP4jfeY){Pb6G=bAf}KOh}4K_GAUwgIcaEQ zIoFuUT27SRHRjUUMG%bR%HX(U)vxI*RrLsf(~@JQwYY$Ixfv`f%NP+&B>B+nO2`r(?Zvi*>NVg1(0=odoNxg0in zF&n7{&*g}W-yv~h5U!q%t4A`|DobRdOsu8P(r}w!t1X=_f?#re**p_4%xfgWYeey; z%Oo+MJ;eGtpyS(m*BFN%BTiHFiytqBM4So zovhmKNSXV!^)meR6z+)(?g=HkMRu$rV3@Z}!ix;%+Sio9gzx@Q5?_-N*D1?NBw+|o z&Faw$ZKMDMHb4Ya3$mb)5QK)Nb!JjSQ#5U8k{}T&HKY)ol#pdk$>K6)WvI|)kw~P5 zb<{9JiGdJ|vy#DCQOdB9qYMngye=}l5P~eoxs>*5sqFj6?=!>ki`lSt9!^ovTKFqrG&V3jK zG{}cpx2!8Zj6y2p!>n7;H6Nw}I^@HwTh&z`rb9~P!>n7=bswe^TI9p5+wdtqOsCYy zhgrAz(|njN&?6sa-PTX_VY$ zyQS*GQ;afnz#Rcl;j%$6S`BalLUj!|c}{NzaCHFbma!TVz+-BZL7J&*EciW@^c-Cf zF6@>{1y~VSA0)$4GRUd}H-MX^q=ar@F2Ri|l$NT5gl4;SOVwa0b<4VgDM8NffV8#I z4UsDyJGPP}f~yZ^Jm%ffYrtc%68JUm2~>@D@1U33L0KgChFq{HAV%-!FKvbE185e- z0W0nQfW-rSbF^Gwq|4lO(G}GFcsFKxGxZ4hkv> zwXXGjHIUL^b)vSozAtP=WHZh71Fa5N>Fhu_odtE99RVu>)H}KXD?F0>jQzSS4t38& z712;d00j>bK&hfF1%u(s7UZ$vmI_eBA>YP8D8!N_#7x~~p#(iVlYkJ1YJ{0sZ^c-G z-wb3N642@&vzp6A$V;`T!&HkpPPIr;s&oXw1=}^C%60=a2^*Cjr4@X%uo+#os2LDl z6P{v*De(pgCf1Z*Qt|{|;-zl7@<<-|0{~owLJ0y>dRZiLix_f?q}hr(lUsz^=@>wO zZl;hoszF!(FlS}QO0U$ zdBBen%pLrW_%Q^}G)9(a6}ql51UrJDWzXJ>R{y~EpY$AQ82m&5T8ak32sK!;z+i=j z!t@+GtQNv?7B6HX$wxp5;5{furUf1&GY8_|j8mAU2qM81lAlE6$MC>C3^@uYW|g6V z?qRVr;=5&JfH4q%Fb-^60+~Q1JZ6yb3%WxGnFD8oSVac=xsW->Tf5LGjy}m}2or%d zh?dsjt}ifplfxN!1ph-P8Xjd0rV!>pG&+FV+#I^#@OW`dCP@hRYg*I;u~N68UMfI` z02uX$GztPxg>Gn)u22NQI2m^qK`>6HAs`6GwaMThL<5hJAm*S9?sTX}ZTJXR{qQ5< z`@;{!ksusHKn&=PiO{AHaBYr;03wi7;+`S{^DE*`6S;aDUdwg$Fc=ZMlTYxDB-qH3 zOMtUh%3_$=!*+`>os65$$Jc0N(Z8aN&A*2ut z%5+7P>11SK;}qn&1JDY({|}TW2Pws|sv{1J!~y=z(#;t`5N@N)VhMs^T!;)Vgu;c& z;HZ_9jZreVC<-UD%7P#mC$q|eAQ+b-gG<3xhQM&_wgXW{1KKmNiNLf#n}eqO8Q?(; z+8pqRA}$*@%f=@O7{+gvgWpQS@05ebFq~zXARdBXoJ5c@diOKu0jS^LA6|J z9Y>Qu{f9zbkVZiO(+a6GAK`*Mpt~$d4+E}B17sr42%?3e%eWt5x<6#-C>y>}#!e#$ z#>v=e1i?5NJB=V1_gV(`n!>%4!9fVB)dD$DYXXMxMso19?F0pkup=2Gq@b9_TrQ0{ zgN7@YhRdMoE0?A(gT_iOjTM8&MlKBr#pSl6mm7mzWI2}9 z{+(R>I}*Q%#l&NvvOFdPMM3;cv^6!k#t8%ES|bXIqcKZws=!}!C(EgkHg5#ccGV!&t^a?WrZj0-)JOdSwsLXX1`QT8+(ZBz&0pKe4v z2ss=8(=F>YqV&U*Fx)_l<2l_y_zk%*%oqi@_U3Ykn1tM*47f8R{TI?fAs_mY2*Pc_ zfdvKx{4Y&~!vqWnj07P6hwd%GcxBcd)R@v~gDVkRg%FIpDucU9;x@_5uMh;KbqxHE zw6zLd*I);BAog!hnP8uf(5xHj^HJ^{#8G}Ankd34EpZDCi4Jz!i1{e_gy)(d1Ps=Y za0nDQ+-vTj`dU*DiVJsKfaXcRiiE9^;8~ zG_{ea{g?pD(59q;yZxX=!87e))u2)q)N4}NEU51RtA>O#sWhyhL+u6%u51PNfxrtJ z!I18$JGP2C@c5UjSh0X#%dujqYgxexdjK%tS)HYhDdDpUbTrffjS`^7JO&x+kUzr_ zK+PdEBOYB1;C1O8g!=|vw*gtYh+{vx76B-zDqWOIbZ$KKtJL8m?DFIdo4ipXZ#d+Q zGI^sy-l&o{YUGVNd80wzXp%QtD@*{?+GnXq7Y`FB2B!X&7K}`{K zq|8zyhU?3~yCe8mISY&!VGd%>I34*gWAPZ0gtwH))WHnYR19&R1RAAi&T(aFDUA7Ur znj`A{z=|lLXD+%9Lsvg^#nh|Nbqz`jto-1#KztI~qe7S#h*H9PXn$ZJ65bah_%YnA zi4Y{}?qDuJWty$d28%fG&yvkzv;34yW+w3ByklcLQUt;{ab#?aUqnJ|vIx>CAv$d~ zOU=>N4*X{i7RlHwee_^$Z|5Kw>Nu2VCuFfQ!r810o}W-87TNlyip0Wb+ZjThKpdGQ zwBb%meA-&n3)J z5Ef?V=;8!$F3xri_F*m#j&@-Vc032CFrJ;Wi``IXp<`&+PzQS_zN6DH2gjkIg5g5G zGcU|pAarqbva@#zbr3iThlc_wc7RFf?7-(c3S1n9yEyYh9l`{5&chwT_`;!%p-v7C z0>Q8_2WP=heyC%ZeW>eZXJiuS9-v?88cj&x zMGKQ-6XuVP6vajHQoX?=%Z1I-bdQaWjucPii6X2dok%cz7^p~RM~5&6M+eaMd7;A{ zLHc~5J>Oxt9gEeE&Emr3xD#R%V?uebqjGsMpLV6MTYTEz&(pzwo}BV$5=1+hmaW4PTg`++Q$5u2qaMUPadGeZ~`D~be(r}`&EeH9@V z$BA5r3<-}EM{F-i;)ii`>8`o;S2MZ$z6 z9zRNG%k>I_nNuJMW}TPBi;RM_HYlTz(slyS2GFzZgoN1Wv4~zA%Z=rWd6A$cAQJHO zwNM}i%^(A`^bBRB6Mj^zU_Q)3Y#dZuN4oKf0ea_!;xu6qaJDFw#(?rg^CM%h6r>aP zKB(LQk)lLi6n7j?6e+-5LwL!&NHHlL%H|3{QMswHi9n68$Z~RqQ=SPKK~t4gCL*Tv z$Q23W6NNFLGJzr(8bEnM;(;#4uvsHyT2y3AyzTTvVM6K@UQBo*FI;Ht23m%YC-#a7 zi;RgB3t{7O9Oe`P22FQ1Ym{68k}CCzj*GG#A3HN5GD;X?kJ_nkY+`~yC_-{rtkGExAV%AJ7Bf zuM&+MJ_8f0jKGkApn(WWOrr|39UG$_3aoHAPb^dsiNTf1ffCAt62%EGghZSjA}J)2 zL?BWs4{T%tA+ts>Zp*?1l_XwNB1pwt8lfR1r*$k=Uo1gc40^RrLSoEVkti}e2I^0p zBxkYo$>|}Pqi$Fv;!*~tXg-Uj14coFr0Wvpp1@!POPA1&m?IX57)Umy5cC9}$%NS? zz<>?b>m>l36-_z>fDG9zEe42<#u{xVjEyF)I#NIYHDR-KrJ(?93Pvj#FxI=iEF2)Z zvsngm5NukZkv@S&R3%Rm9T4iKbU^B#(g9T?lnx}7MCm{RlIVa2ljwjBl<0r~mFR#8 zmgqnVF42KBg4Kh~>Lwq<>InvO1t^-bm<@(#UUX$K8w|QI8Vr)hY%n+tW`iLTW;Pfy zJIn?{<&xQ8B)Mlc7+SHI4TdF+k*_R-QlKn^qih94QV&YB7Koonr4o;%Qpsm}_eTIy zsS*gOR2qm>Djh~Dl>sD`%7l_il>(DWm4=f_l|hh7mBo-smCpo?lzLcV46@v6qC_+W zV6l2(!zP1K35!e+iP2OUYMBI6bQrHH5`y_hD2ru-_1`g>3NWt;fYyU1{ELfM2lEj^**KwiHp}?Gnvj|} zSr`>YCJ0ho3_RxlkrXwd46#sBT9kZxE}PZ!e>#0lB#4<6l$lLzupjY%FEbiYm~^&K z#&&}M!2c5&(|`hHvj{V3ifuNTM`F&+Vp(8|Ed?j-bzi2vW?(66J&0+ovoJLMql^eCpC?jj#$r9GKe`jgn{Hrj`2qd!ZIDry+8N?EJ`riuPH^5_a=Mv94rJ+O3O z3s(q4+77nhKWAI8^6UbF`(T~?;}TdI8lYTWAasq~Y6mKejdLrq^^1*-0*kg{us9SR zmFkxoCk!Q#;}RpILP5(JhF00ZO4c|wYa}Tk5j5Fop)FW6j02JR1Yc0*NF)#BMG_XD zidKFIK_NI>xVadU{Y_dIy*r7td!*2UQL=$eDi|dP2ilO4d>qYCDoL4nHeRs|TF7;W z3oqP}+=b{Sjq4qo44=Rc&?3+vs0ypEe7+i(#tlltON%}+-og~I)xrSS{L%)ZMrq^| z@0t#6WdM34tc82GUGB8f$2AYN$d967@Gp?wOPl<3l`A;|{Hu z#OecS0_ov7fS`rvARR3{hcrhE&tX;4!gGXjY2i6i-?Z=?RR^^2oTOrC;W=7$(ZX}| zTBL>N7`00a&oQf=7M_!85VY_dTMmjEE}-Hl^N#gMY6mk)v_q{aklK+fDv+w6Ahf}H z0-8qo5{_U`!g|x8Dt_4WBZppDoazL^)w9CYs+a^|kZ)&;%hVa6iZ7hRu~<&H%v~c_ z^TqQz%7gqgHdPPotFc%fSZ$xhuHubdGfA71C?9Bl3T|`%LbQq>F%y+EU|I@n%Fq1Q zNvM0!d^AbFpeF`W3&zd-%cZ8~NAuJq{f?0=NOwLq$X`BPO(=vu-Iw%nW*$H$lCjtN zU(JLjl0MsGQp zrQ2NMkFvSsA7yi?KXOEpKqO|E_D5L<`XAMy8GlsIWByS+L+X!etAY9oOXeH=$Js1Y9ukPK-Ij|Jfv6KrBe{56{;L_2ZFIW#ve z0q%Garz+ft;}3ShxMP0@Z07`9a(qdD&DKjq-p>FVH6jzhP8ui|(7`MQCRY-VQZ(nirr;0B|ANMqh|Q(qOw3m&%Mh9vhGf+*8Npg~EMDpv=Mqa^Dcl zgY-;#8j&Y*vJQ4MiGlANKw?TDOwSzJiy&k^3nq8!k(=l zl^X-L7>eS6-a%ES-(a)SYyNkuavIheESI-1S-K_4)+aAU(#BB^K!zm>5CfkH7VJ7G z*yaCc3I_eKX`s#g>vAQrS@E#n!t4=!S5iP!3gGzw1CI#cPA8rih)AH)l_UWh86+Yi z9^f7-9&`{1mt?13CYYvP{Pp>1Xnxj$e^D}?D|rW+9OyMR+-Q*?HX$mKZ^I?`yb_M9 z4aj$t7{n4r#t0L|3A`xU7G%HJ`NEiyd}n8#qrlP0ez?Ohp`FX{KC+2nf0qRK3dJbi zMA+VGW5>h)MZZ?9a2R%I=eRWA1F;1?jy0H`_|5U^2aR$4EKL5{JH+hmwQH7OHz-`5 zX4SG#$bmJ45D^IeiNW(G@OuKt9^}p%%kpOVv4UAXta0FXEXxZ#2eW)x?yQL{57u~= zKWhs3oq^cj z!TnT}q8CWh2Z({Gda?|F5{zI$$AZ*?!7nVGACT@25dEP}d{OBG&@~tpdIlhZ++zt9 z_(D>cFAr3p8K{WvD2L+-J-HL4iGXy1tZt$9r=dG2(+lNOUU6rlvSCphfGGA-jz1bF zkZq*;;6l5!|8?sS86${F4DG_`(4|2El*pH1GN@r2?gj?z0}_N>J`4cCg7CP+7HO_8 zC>k14Y=9EPAU&=qHkvlBfWZmi<<25H9f`>tux)7(6_gB63RYKWtWXp)K+KKc0n5eX zqN$QC+X3&?gkdJQ={hP3hjYOW-x$aackUv?8Iu?lg?U7_?0ym^AP(d^3YxW4E+0%` z;Rp*hGlE>R?IwV&&mbG1YJoij+kc}$@Q$co5vmHV00o!?AnYFw1?x@}^5S4C5k|*} zQ*GH?90UUerzay8CZI+D)3BHUr_Bk#+NL5Jl!Z`GdI3TY^t+PC4}I@}_gIqk{Lm z>)l&v*mGqsSJT|SQTax@<8lY?5QWSy5&MGq@;V^*F!=o){2m3O{{RZu0G|7Te_-+p zH&3&M<5@H7DEQ|9=u(Jzxjq=XhDq!xv=RY?>4C;_Ca^Ks4h91&;t$~7gw2D0uF(8K z^Fvy2C}IL4fDriWi;OcV&I6f1m{b5@cj}lOvqDSe&S1?2tbUS5oN34~71_y&KoDl1 zND~i5O-6ZuW)c2Q0}yB`F&8wO$ARFXOu;iiNquR#qYoD3ka8Qa+0ogcVaH@pQS$Q# zc2cmMI%0x08;&)Qg2_4ou-Y(L{gJXTlOK4RflPk@Aol_cAgsZfL}!3S_ah4JO|VS| zY+mRNme&u|ypLQZ`LebFakJ^-6le8wYT=5sX5iQfTLd2CI;x4cfOQ6)btY2hjL*&` zOwtdH;)5V76amo_QInPw!ULr~l}L6aAb0DCd@52u9KOlQW(p_)0!;9Ph>7rJJpw2z zjOt8^FG~&df3_bS$HAZg#{@o@(DJ}Y5z0-D0EQEei8SX(VphS|tZ!3yj-1mOU^I*t&ZmGXbqR{A2TAOTkr& zJzW&Tp=O@MgqAA+DD(mtn2bfnhJsl;TCW$8@8)4JXh&dW7&OJ`$f&4D+&__G+y5`< zmBZBQActrBAFSS_Jo3U@Gj{;~nn1%bb(9Big{RRRGpJb~G?GHy&Z0S;^x+21wxEv+ z|Gt71g}q)cLICyw;oU4G{3|%UP-OC%!`K8gh{3UPEUZZe{QGQcO&}O`HUpMU{R9gf@^~eFOYSD=O^xH`Za@^g237# z{clv`m>GA`@!)=@43jIYJQqKi@Dp-gg(b&h zun`RmmGoCu;j7m)abXFu(YCDV-E!ZXn(RnDyv+OZpJiJo)aEUXx$rUIk7<$fe%fla z@`Klc{^d(XbyFXCCS=%f?)aI>PUfxZJ)+))i|4<%Ycpl|#qz&LkA8Pwvu}9G&&qDy z6P3)*{_xdbvk#nWp5rz)WWc&5KaEIen{`n8ZRQc5;9hqzEa%Xi|~p^i>0X>yod z+g&~LYI5hSIy`Ld?5WenkMpZkVLiDk4D^3|tL6QCKJO>~PyA%(rFZ9A@twbNO5$-= zE?eC+OnUUI{aBaY13@%Y_gPjkChr=K^bjy}2Lx|{Bj$7e3hw|itJ(A{f) zXa3E^h?wvh{rlyM+dbzjJh4<@U2x#+m_om2v-RHZo_Krl#i3q@oQsZLnq>UVF2785 zYe(y2^B&j#>6%h;w&q96#0!)9ZF)K)ahiSE+&x>wUxyw3IIGXElO8(u^YwU=wR*#V zIal`l$Mf;J$ZyTR{kyj8w{Lp1j&OT>f8C>|AN#vS|E09@)USsIZk{pl(v(SQSC8Iy z+*mu};FFcs{{Dw=-*_KB;^@X1k^hW#XzG>GUadOv^1+w^v~Q$<;A89m&>r*1#GS8V=% z>8OCo?c)YFZ#q`E|YjV%#?6&Z-=sC@&qle#1 zs;#``HA1}R*`2WqW_mV%pI7TX!s|rxI?K9Q3l@bppS7($Q8v-%uc{B?^)dIiJ$i1t zZMWLnEAH*K?+c#Qte?MgUz@PqVC3293%2fV8*r;^Q(N1-+Qs7bd$pAdCojBmyLpSZ z`R?^%_weRt7i;a`?`drJI^4tRlxU}TTkqPZSrhN?9$iyYUKpzzK5E^YiOuhAYaa#e z@i{U1zG%~8`&qY!d6d-{H6LmlqjzyjwpbL~eD7YZXOnf?rH8e%(hA?U|9#3mc-M~F z?Tc%BzI$!^&!&sdhTL7y=TT~(w?{MI-|T%ic3<1FZM6muYQxJ5Up!xb=%kOUV41i^ zeZlBcJLV5vCo=oxpSTU86u(od_-N1ixewnq47&fD zbK&888$K)!c74HV-ae$z^VA%LUk4X%Ilke;bq`nHna$7U7JAkWSTO1SUjs+pp5=OWR+%8U`CM9| z-aqS4U-fCf$ZFQ(?6FXrbV7H7t;58!2i)fMnT5}_3-ZhdrSZOR`<++YTE1t5&L+#D zL1llaH!tY3XY$VzZzQi>Jb7P_e%oS8#Dz7rHG(~{dAuzeQ4Z7F+r~GCx9#()y?Lk5 z*So-W=q!*$!OD_re$7h0h3?H)+BP)Tp1xAJqc*@{kMpH9qbBY9cHrE&y={KC@;|su zc6|{Qx$kDJVbh2<)3V1w&C^ANL#`Zdnr&HY;kHN6bVB?wwbu7fuZ4rx-1~7%S?<1) z+nG^tb6vL->K|To{!oJ4%H7nwdUTKGkbh(Hy#fj^mO9$!b?}2e%oVhyFO`O zTGPIgjrn4SUXkJLM(@`gIulg(IHCElI3T!r)ahEoNYByD#f!H(FS)qoOj~rj;a%%7 z3xd+yRN9B%4P9PxMYGvo?DBs7#h=%`is<*;AZ`6(pBwY~-HqSa_V`-u_4#{lA6{!Y z>Fwp-pyRDQbTpvs%Irfr?N;03x0O6~J$<98My#B+*0#GE7q2C1r{;SJ&QkO0aBtB#u4WmU6Uhq3iqpqYRxU52>>`wd3^onfJfCo0QvT z-)=HD>43PgD2UURS~lfKiM!pSWxC%vM6I_io_cHfcF*9QJFe*Vu01tw&y6c;O-i>5 z=SOY2H^KADK=(KIv^QFMU;1u$^O?vK7D10j>{<9^UDEA-b0dcAFkbj(@pqX`zr5Wu z@|D+)eZ4N1_t~@0qve|;!LDx?!~S1(fjw%I?!?h~8$R?H`2Icj{`2fT@Acxno0eu5 z9$CtnyV&VTDkG%KGF6KwxV_KhgW{s+R*Oyd-&gx&Bxke%38Z$eAB(z zKD_YJj*XV7-V3e|kGzsPN^t3@p6Si(+^ruc*WTN-$04}DcJZusoA>G7$y3WNJ6_a? zF0t$v4UdpUTbqPVk{1@9maL-=7G|PA(i>)BLP; zWP;BE+mTO4J$iRq{7kL(VXu~NK2CFe?jHHrv-XXpm)@=cSNts}J1?|3wJmSgBe%8l zT9@5e@az1M4@u&@tY^}Z9@aEl~ z+o#rAwoWKpR`l-lfsBBUWx1!vp0OPeJ$Ig~fD?IJwf25fluqGq&g)`sO>ECSB{orO z9nZRgn9!%cpfg`0E>boYvMHy*O{Yrmr2Jf%X6+uWE`*u6Z^e>{a-**}HAZg5egEt81KgxD@!* z=9Oq!jDP-J@a54>gLV{dNh{bsX2{;%&0EA-Lux%vPkgm=Zj+8!`Te@%?Z1i^Z%o>m z))ca!+PQgiZ0++U6T{yPy!*$18DAoh%$_;#*S*|1v!=N1zSv~rlu-+h zwa+fhu9@F74U8%qKg8;-Z=W~)!yi0hzxbY2^^-5mm{n4K+QndI$gtDr8vHAqZiW6Z z)4zDM_qZW-jAbZ*CtlNCFz{o#}G?M&0RjaFM%y|`?c7N3~- z#$nx0n@?v2s#(nc&yFn>4}9M(A2@$yvwhEivwzhY-Hz}*u(4F*Rm7F=+m2PNtLt(1 z>tA*#ohsKpR(ZV6F#PI=!?Bf1Qug?&{I$aPNSV{AZ?oseSwGv~XUU-r#}92bjV>Ok z>!}w#AyIF%;O_Fn?LS&=JuD;ylS7ob7K!4`u)J(-Di5mZ z7gjruI~teAojJZ!Gy3I@<2K*t4Kws<{AXFT=Kj6Edn6ANw43mg4(9A`9k4fg;Gg9) z>h$Lb^vv^oYYqq-Mh@KLWIuXUa;xzV0eo+poai_!%W~h>MrU{h*ZI?}S z)I4x2x}u;XG;sWs$uG)j2-rgp7zcK z=f15|IrmVcjNP!Hs4t$z4KYfU$kLbtn13=5ji(Uy!V;&r(g>oXkIX)sA%@` z9&zbe#7U}sUyZo}w-FOq* z3SnutOgppkl81iRxAWN>ZVaw|T;O}HZO_Ts%RX2gcsOhD;c?$QIhQ%|k@mA~pa3#^`<%S zJ^L1Tc;3kwuA0lS>-Mp##C^jLg+cKK&wBj5@X~ziE#L8{A6z*%-p;#1rL>#7ow*)= z7*OWBWoPUz+0~dF;2(I^z6vUz!44M7K=ZhzhM*MZRWm0tyF z9^e^1Nk3qx{!@cNG{-+>xk_O6VybGQ}ab#QfFU9ap$ zv#qNp$5~X>4?mfe+@evn``R%3o=#`?)|tRIJkE4$&M33h;Vqi?syu;W8+-+vd&^#yn0!~ z_^lZ);*GN!hD>psb795sVphS~zhRFtjLMvQ#96l@r&RrUgYTlu;LF3ZlXV;fwl>T9 z6@PWTBCAgOHgB|f_M?^__s$J4%il5mcjF>^!&@O^ODZ)3IXy#spJeoDF`9RN&TCe1 z{la&7zl^L9Z`OIipKg=se?<3|U~W6oWJLy z@7ZAPwxT9QwHH6<4L|i@UXeYE6R%}?ZmU*>QlQe~#va2OliV_lO;=imC|I<5f5D2eW~+E9nw|^)e&=F1Gi36R;yy3OI}dr2 znHPC)*QTG|J>BKAIcoprUh{WxTp#ppJIi%jwXb#H-oXB0=Mw77Pt->QEwzpxGVlC} z*BsHC6_v#Xt`Fk2=7(vQzj&>A=DXh$iU-}|#fqy_OAYcL3@^(3p~2eq^@q~|J*|U- z;~it{E@T>(T+r(8QjB67XI?OAD`t&L^*q8pUTxr_ zGn21g)iC(os>meJEL4*!*e;w+k#oKe9Z?w-sC^)E&JV0RtDReh@4W+Tk8#whi%nVE z&GJlJ9ByUh96Qoa_x!9VK)cgdcXzhJee^l=wQ0{gTGC0H`J7P+T?AEV_iH8 zO8%&IaR2+(j2g5$xit1zk$-hs!^ExmJzMPNT|Pct*I<|7#j1x9Rj15ye=3RISiZQ} zLARpSMUP`=rq?k1WcG9WhirS!pJV16T<+bJv$)jcRlVcM%vk%>J%Res#U@BWn;N~N zM{In&Gf?Hk1GAtE&la7%qx%L_Ik~8wiqo4{F=X@mBY{0n)Q7fJyQdgV^{nVtr{cML z^s}lhuf1;1o9a5qw%Q^^vzMS<03z?1?(w!Uc0(}kmKoz7~c zu&#{Hy=b=F*n35oP4_;}s!W#TT&fumu;2Ty%U-RjqpF{8ez74??ZmF03;5iu2RiRo zT;ErDCs1b#KiNFX_p%|Um3wbY;)DyiNp%Ku<5Uk-!6w~my?2E5pVhPLy3eiAD{oQ# zL3Hw~f^yYc7r)jUbzbR_N4U1fW32}LlS>B=Ss8xhZ9jX=RlIpYo!K$i- z5ox}lm6puC7Ct3y@`crf#kxu7YMSy-wD$kDp<-p7%A*F$MVW=Mxg+D)&(7)veu#~? zYj5$1~kIj>qx|NMDK zK(($5J1tIa`}HK>jg~8lE*qz{Dxa=cq*wWET~E&kU)@<1-a0&NabJ^j?JnJ%8xt?I z2ij!m)EI;}^th9s+^S}h`c*(>l8gDKhNP3L25w)u{D?+UxqZ{}g)Lu=8h^zh&$Q=* zkhbcg6s6~azaE*Z96vj~RM)vt*DY&PtNr40PlkYUs4r~n8+SPL+HjX>Etf)p~ zZoJ8%N=}OEjt9vlUIPoxSGj19v{M$?TV5&b7G3OE#$#3S-AqbMZZ|B_t{ky>=&?YZ zg$?8GrJ2LQPd2v(5 zShGC)6i#rx&xH;CHmm%P*e6x?ZpvG1mi4GbWp=n>E}!!xr!l^JR>QzWx!r$!v9ivj zx?z&`x$+dP(SmQy`SDRXhg`HaH3Hk}o6@tfX3)OPI=KR!Co61A^__V}_s%_!5R`8h z%rVchG+SD1mLKqQ>B=Ldz3C4J4hx4rOeTZacGbY9oO5QGdUjJSiez&z_-sVN+brmxsNCS2_9qg|1iq6r1+V{=w#v z@_`Vat;-*zXq*w$Bm_CQD37!=+TGIQ^cer`)`pKm=9p(_#cRzwdpN>(?7^&4ak^Rc z78mBMov)Y7FPpSW>t5Bxjg^mGcCLKQnK{#Vi@)I#e$8J&lU)pcsvkb=TK%`@Vq7ee zA55JR?0aw}CtkzyT=?e01z@5d!kt&OBe3{*orNjSWmKh2;&?UljK_8+OG0YO_yfe% z(J30fR}Fsy#w+)2i)~oZkn2?sO3go>|0(bwd#0&(^UZun+kSQuKjD{-|9rmcMh;D&kwB4c-(zc{q%R~l|6IkUgq>^QTa3W{IQh| z_U1eI_xAF8Zp}Dx?3DkDF#ZzIEK0lw`HG751I~Y2H|Dly^m#!_&odzzCj96pOV`)* zN^YF`Zck!B<{U75I?OA#DXO?=w(NfK%=z{vJxdJq1i8l>EVkbAE{Ps;t5IM3?Bs|m zW6jgmibFi(d(Ten79P@mk}mUwP=`t6+~G+FPINH0^WyXU~qmE3cKZGviGs z)ElfihdfL6sOq0yt2_)&yya7PUVF2}3!c4Au79zuYl!ueWu!N7G~S@Se$but+i}hl z8sgnnZ?f0z)iC*8`e-|kWc!g})r$hPf8+Zf%+;;a9PwSBm%u`*4rq)DS~jXw)4ARN zMnJj0>CWo4R>>pVreEIIIu!ewEoyt4&P@+Vx{zIY#3rD!tSP&8}-FNEe7r__NS|SUTgXOV`43cj#~DtDdV@e!K#h(R-G56X!WX} z|87};x48i*ZA7l|5hthf*Xz2!tq&2qCvVN2YzLX)sRC7U@f1YQSMBwn_> z9b)>Fb*xu@L-6Y!qF2Vb^VNQM)3khXsj72>)1BOGyBS@8EumT?KsBq4HBHMjy|=NU?ZcFL*lbq1!|l=g|#s zP-?4mEHzGk(AzBs6!u>Aqu07;ct4)wTiPrwEH*fPR@cSI6W0Fx%Lgs?PH`VUANXo^ zy-X@=fjh_NL@g~UHhfue+C}^BWsC5}uiDNzMpQj5)yuCBPGQH^k6e`TymiE0^Ix|M z7Te@KJksNOc~xDH5rSCr6@B8jCY3J84z3wC<-)4vmsP48hqaCIX)8Zgs^NaDkKdmU zcIlX$ZMe1eYxaWOqYst;Udnm(z~G(MrN+dQxjwC{uY3Gs*<1JQgQl$YajF;HecELE z!s)ZGUR$isH@d=ex{&KptQ~O9H6nj7@WCn;Zq z-?#rc*K73*Z{Q2o2X0*|inF(^hAj$41WK;^-^}awn*h!HtuBro9hBKKzGv2h#cnH$ zae=d9?Ux_eYfponx32~s`Zdo>6qSFsrhE2IYwwEgF1=3Kvw%-*Ss8dT-MPhb z)RnvdiwU^^uLeSi=~v=xZ9&*7Gfey3-4s?n&t~4)o+)}e8b`d#`sGeV3G`z@m%ety z(y8h?a-{Pru}F@+@~cLBMkU%m85~yW7N|T~FfwWtngux7j_Y-2PonRA`oTKXcJCeeieAnO84& zR0nQMTIV%~Wi1%-B;T+mc!alqB5-x4!5ImdSbdvx^2Z%Eu8oVHD*LCctm|G~|Mk=H z*Ft`%1B;ZW&R@M!u`96G31B&MKftMJ{K?$Wb~nVugPhLA)OkKW^b%O2gWC?Syr7Tz z!$lXfxtDu#N_?-Ty<7UXzpsD!H+<74h1>SNrRFoCkDU!&Pte3b6$IH^ z{8`-)s0(!Z)aK#p+b#MN=7%3xWyv4ALGaD)J8l&>OZ7K3glS*9=pXQ+V$p29W2${x z{&TWo=G)PFddB5{WiIpAdpIh%{|h^lUJtAb~n}S(=K__a;I~vz}d-dZK)5$}iaRq^%QYB!9{3ch#)Tw2MXm2ln z99ZpJa^vF6c~&$3Tx2{k_PXt~Urtp#xwZUPi?sM-NoyBm?my}A^LEn%N%wX+=uR+w z+ReD=AHRMDD---v!2kOPPWD)`;Za*a?533;tkxI)@P6p@Lt6{KzWn3;=l={fKD6)~ z*X4izHR^{I`GJPQAA^2xGuZS%Q@cWc)#dgdHvCq3GI0Fkef{gB+Gc-vYy5u0&C8xT zY4+c}_csn+AMo<}{UbkpbW^&jd8)@wC!X@Wms87r*ZTA3yNcSyXJ*c{3chQ7)#*-l zaf;e#{@5kO$_4HVpH4DP&u(3owDCs`{hmD0)2|<9tF@LUt)BGLIGc>W^A1jbC_e0e zW%|A9V<+<;U%h7BV7S3+=MTj*o-BWV?D4fxZijSc+?<(HS#0y`+hb!_&+2D8=1t%G zJ5M%qwX5t_RXL=n>mu@9oRbGW6o0(N0U=E z!6*FhR^Ryk`Zs=dH^v0EVFlSNy>K3x^Zm8wN>02y&b!+soM86 zsqWE~KK9n!L6*KTMppz*HhXn^4Qs$^isOX(=}%)eUbHC~^Yh}Q0|_M~k6+HR28}}F zQR?|?N&N?aNz2!-zE9XP{>{cJ%Zu+U{daiHd9w6WT;IIPUrNo=;`(KUxL8(*Qgoiz z&v~~pU`u7xX4720F z!PiDFmV?<&#H$1UAFJ*i)YKZi3m=c?$gv;m=DUC18Rnf0JA2q!@4MD| z*7H2FSs^7^ZV?xS$>7s{k1qD)kN)c-^?vG2Nag7jzk*J4i6NPrdx2tkN927CXCLXd zNJ-&1+4Ju54Rykdyv!c^xt)x2jj$UdG&^5fbw6tZ#+j_qq6#8xnz!WsT zf+gxmS08Ct0;9ee=Bw8F;hdHcBmA!r06 z7-PEhl^qc@(my}+@t@Rl0Qwq^5iIGf6N^943znWTk>cTRR``M?Fh23%Lh}^=>2{Q( z5P4`Uu5-T-1C<*c&H5|vGd!8m&>`6PC^3w7jMVx7u$6=1?hqG(rD-9k|z4TopuD+t=aQ>uEYc4qqb1Q+S%)F9Y-dxD1ie&A^I3J8) zicdVz?4Nxn8E=q?i+^Brp8}*5;%-Gr>Ov@Lvx&IvF}$H!C7cJBtH9U>a;*-vo8wzk$99S@mjW!dm)X)@u_u|V zqb>N|l~IAo@IrybxP!6-9f>(JeE}J z4vKi4^`zKl@?pKCS!Ugxpl=0%k>Ap^e)f?6Zl69DNVG&=Rf{=+)G%d=s)ad7Clu8p z(k6AQbRV_u`H^s!rQkW#;_#v(PPdZ3Nsrictn>XMBs6U<9hdrlNKC8J)ByT>S3UB% zuM+Ld%kI(Bs68;RmpR_Z+P44U{S2S=Y0atw1mP#1vvijikfhgYSB5R!6WtyNEmKS+ zeh^cC`;BGCg>&ci)9ih`&N=eY_2QUz9bCsDeDA>>uk}P@elJ@A&zg z{$Kvg^LX+iXO9kDY~3edNkUi52)XFdxbICJ%;8&vw^(WXqp#LG*8*Ds%GHT=PKl&h zNKyN0zvJ~`j#F3^mB$h;mx1Q+#F^N>tXak}gEz4`Uk9{W^)l#ujRJ?QjS8P5~ zc)5LW491h0mLQpNC>0CX_u+{f>sgLIl2pcpGTPahDt+6#zTq*1RS7?goMWr&?dTrl z<8#?R|Bz{`;YbG?ido$<_;p%v)of4+puJWLd3rL}>SjpGx9{+NK_fNZYHh;nG!I*R zReBL{EVc2!;U9CcWd4nO__PiFQ+}Vo&`mA%Am3Y!K;Vh~e8-oM-B8C(8GiUh^qFrrAl)G{3tRFQGU6 zh!_<>&$@Yj5agcl8Fj3Jc>;|;Lyx6YEsc}s>6Sf%sqoH&qs;q;PuMI~akTQ7_uu!{ zG*~r?_K_*pDJ7r9Q!T_(ukKGBx)Z;A_Kv(M^KW8e#lYO|%F4P%{$-!1>Sv$FW4+F#-v2V`%d@sw^g8#p*crkARQ@FvY-`*`?}xTu!3&} z1lL@+E@|wR_WqI7r*|Ywr&XNS{5f7QnnVK>Lxuhrt?XV2Xm9P`dGjvD?P^{DP^5U6kN zN#6dF;USgD;b9FPz=uW2dVBnOp`kA!k5$0%7Zyq>GsTn{M9Ws$hp5g?`_jj{l~NzS zqjCW*EM^=jBGW25_HseZ_{)gh2#L%a8!HAMzT}jf2phPD?HnB;?Hs+3T{2to4!8aU`#xWSUc3fuBmY{@ZPx{oX-ev}k_nsbeEp zrS+^|TGlB=85Y??Sf!e*zlv7>wzaPJ4(gY5VeQk7TDey;n)YR=C*Giz zeh5Wje1G&seXtZ14T8@{zdm^UW7_Ky$&Y!jbB=#(etkmNsH49;>XF`tv`NJA^Pl=J zMIF}O@HCOt-8f?c)805?0@c}we$JmCaC?6Ur);B=PEmN4x8d}y3jgR`F|McT#CfK9 zZdCAq?C7+{(m!>wwu)itn9fr^Uo2GPER^GLKCK0$1;mfAsKYuNx+cn98%0)BlIRc%e_NN|d z9swe{OYP@YgYyRahlK+XKORLb`~G+xC4>0!Eo$rB#&HuNsc^#UeBsD}-*G4Rv!eL- zZl?nl3aRs{uLBQxXuZbTsz^CTxRri9?&#!Jx~x@7bt$DvIj+x{e{?l&Ck)Gom&hL~ z*&|*ueyC(r-4Q0~7#O7Fq5f*U?~YU4@arfCXxwmF)bL&Ll0M;*bLYe>?)soS{=0#V z8@|=HARITG88vL!m{Ok6wdr41L|HI50>AmQwr%MA#PbUe2-A1-)mpZSy@pjnzYPCs z6qKH;bY8mU{K~s(!PnX7R#o^&<@T_*Ze$*`M0ZWWBhbtF#NDd%eU-=ks=`|<0Rm6g zcM4jPzNX|6qE(tu?flBuS-8&G$j>>x-uYU_O5dFqXbUGPu%m~XqrZ~%zIWFr_YNg1 zj32tGy+8E{ki`pPaTd8=JJC^?fFB}Je6JtJxPph_CjNZ{j>Eq9=x~U+80EnJl4m#L zpUb>iQ05k&Dz2gwIJCmwE!_T*7q#sF!z=2MPHhB+oBk}?t9qzkHHEmWRX62bP4TYo z@(%js4f54Cc%=m{)KK1dAm;!31eQlMY$s3-^0G74Po^IJI;s__z0vR|4mNr9T2)r} zhb*-rQHeS=+Jr+{ZB}W0);$Xdmmr((08d#mD>)rUvxuYp9Y+g^qn(JO`NYvw<7j4a zw7%!G+v(Nc3B9*|NJsS|elR|^zYB7fmGY7J^&1NJ0x}1f?!9)Iadv~E-XN5}dZ0x$ z4J9xuCca3uiFLNNbhB1*v%ceIecZ*`RUsR1cS22RQeCN6JoS{gs8by6N*oRUoF=JD z@ArB!+nuJq=3hO~9}(NJ;6ijzUl~?% zuU@|rHX;Kj)@ZOlPBff&Kz9Q<$s7)AQ|RqSxa_)|WevnT1;p;=Szpf<4)po)XOu?y zxJNoAe2i8MaHP7Du_CLg;-@tn$&UJxncvSZ9Sad7-0B56-YKr8gn!-ls&?>qE!5_C z=1dK>J3gfB*B8!Ys*DTx-_k#CT&wWYnmv7Hr2Ufq(V~34-zKW(*y%80LMZD@%cUGU z?^9|o(ksQ!eYODn6pT}buV0n--tjNa;p_`e6PNO_%}uzVwGZa?1mdmx3m2#Lj}J@A z?~LlmRkMd}x~P9D{(Yb8{LkH6uw2|8lzYy=&1&NBsH;jp2cjPC^T$5Mf4mXk-+(z+ zKK;#y?*H&v1L&N0{NJC^hh1=c!Pv7T9U=mIU3}V)Y6obcw}hliUzLnZA4SKxsNx)I zWmF^+8KTyXE^5&=EF}!UA}AKeTzepG^LbM;T14C4p-S{TLyq`DL_1U$dG@1^{#>z! zIMo=nufjX;_#3_QPeS_t7V3lKt6bEpjP8FLtGgQEjtg0cIV>5YzF0lqAQU}PW4CS~ zIGE;Ugxp{L=@!6+tV$cV+GdruIRAC`jzsZwJXK`Oy3kMf3b%=o%|Um-7l3}<9w71l zOv53)+Y%+aD9fC0H|t)1{qsZ>^l z$|obKizD`RLrZU|-~TMDA4{CCbFqFVg|kN<)@a=XHsSl<#Md6h%et04gT|Z9cQ)uy z13{RYefCmW?Tf1Nk!YNVsO;=Jk8;!RSIR10K5Ic;%o)D7MSNk96Qh`;fSLSb*wHp9>k;FUVH|>`>~~vbk_a;k@dlq~Rg+v^i6?tNJ8DNM`Psw(~Zrjf7wunGr_30dPRZH-#Yy7Gtu@a*3f#&;?V)(~sz-Y-e z)DhCHo^x+<&gs!t8o8Sn@8_NReRb{IcY3F*$@?so z)%42w&%53}(oc;g0lc*j>pi{Yt@iK>cXsRkbm!E_)R3XuPOkdL|OK_-yAX90O7Zp!j(|_;-Z!q zG}WD}r!(Kv9i|if|LQVO^uM3fy?T!zu{ag&SX)Qwu z>4enTjdKo<6-tLhKS+;ycXZ>ddkkjmy4drhDA0;G;P2Beeb;k$EJ_g zR;P}#M_+pKfpPe2*=4{s^AyRs-el5D9x?*hNHHlOL{Yl{lY*XzF4{qMKjALrCIIjBv2J_hI|V>~6zv-!Nzm-J(o z&895^_t-B_0o+L3)>k2bg?7hxA$6DAeNdqPn5kbj-o|QCfRy3p4U>-50bYseH}OOp zb+}?0P*F%)X0qB)@%E2D{#C!d*5)Dk#7qmIW)8B#JY)KJm(j;1AP&LeZr(zHULVeM z`(uFh-T^<%F~JvcZQq}&V}QphDg>|(wb*e|Ywrr5y)2>woKJ4Fazf{WRYO?H-5Tk>?b|Ux)I4 zp7ORRjTNpEd(`fwFKUDoyFak(6rr^bn6LsZrWR9(ql#e_Rxihd#e^9DEbY*ckx#E@7|_uU{)Ls*Ap<)j8jN%0a?bJM6c<<|lPZ-0T7% z={}HOZd)I-D~y%DdSS_HSWM_{;yZ19p=P9!%oiC4W!BNc5P-oEUea#al7vNAf7AK- ze68-rowT@yBZG{?hGj;*p+ArzulTrcrnn~!Co1mbr@t!sdfce?ZCH_I&hi({)e{(s zbv`9`OjMi{s{eW|kx$309Lc}45a@l=?AMcC{k`+ACH~|1>j7?~_1Jx&!X)@s#%^gk z2myw*z|xn|mjE>hpv0d7rkF?4ZRc(qIjR*Jy$@&JG>mCyfkz~j&yl?(<0Q1dp$7g| zzV%PW%ae}OY0lqeN^AE3g~6LRS>b=YeMB^Qlf%7|itV+r;OJ(GWrnKI*+$bc< z>my2ZvGLhOISA>vR@HfOA%JmCjTSnL@vN^gDm7`>8uPf!o( zskReI)17Pgb`~D@(#w5zLHkcxro`DE8(z1FgF&2ygHc$)!mWshSL&au%bp3Hv`vHF zZ-0O%OWl4c4+t2g37b_S3GG*dK`U*dvuzWlk;PkzE|JBa3pAZgnVKH4gI@8CqSTuk(2o&Xo9L>OfQtI{z|L=F#j|05=w0Z0b9D4K@fZqHZ6D*Rb<6ecXX%xD699Kv z<0?D3#a==V!n*-p3>~h`uIuUfQ^RuF@^gUG(K}iCMp)^K!*OuzSO8QN zFbt1!%b64vvSL?&U$F%pai!7j10*&9@jT$DY zJIaC`VXmbZa|pKpqmYeud@rH=3SOTzQm~pi3m1OS^oCD+@vrIXJtREm zzm8huzn=hV%(PM<*uGlPTSF~Iu~K8q=iskrYfVJhoqiDV&+YFCiu)sOpAY;ozCRFR zG!*C?{=~qL()#s4(`zXkzz`{78?I!$*Rk+!cuMy}A(D@VX4TmbeY3u(8r=hKY)l0y<@L!5~{axee(UamMI)T zr|t}%yQeMVhIOyoJ+2B(A^vB6UV-+mc~+6GB5b>;M(ShUa&6&JD^aM4>mYj0GfI8; zP;=(6b6iDuu9k&=c;M~2Zc8^m7sk?H_DgL<{ja`^$*e<_UxWNoEcVx3w6!b_M4k4k zD+tepccm=oj-xFh73FD(>F31!RxLihd==)Y=3V8gLMw-E~<&51{?bq%5w4F7JD zYiaB?q;g9u@ovL<96(R(Y9G`5ez%+GSc(q>MAT1z5OEHp$Y_8b{bL_f+gj$dW7}c< zeE>x)0{EE|4Mw_*z8(L1yvaxQKfr23bwT}2_x^mc>OA1({S{+WC41OJ&+v(e*5baZ zV~%D!!aV4p{zI{|)cf7$=F zUgs?0c1!5t0UO?A^Og9+89T+I&t_$QJlvofNj}rm?mAa>{#;w~j~aDWu!hr4JlCN~P5I56#WLM8rg2o|$6gJP$iOn0cfT`tE}u zyI`#M)fKf{S>xc3*{{a~Gb3J1J~&X`iukI1GdE^R@_A$EgZZOPjHDAmnX88}?L!wR zh8JcNyh5d8J)OfOL;=x$^`DW0qU}+%$hPc;L-LhN_mTSLM z)^?vx7*TJiIyj)$`(rqe1lf_Y_0p%gdYS%Zt0-CA*}0 z+Fe(&!Y$H7yFns*^+ciZN%2ny0H-A&djoUHK3T^2-k^%2>jlo>yFU5mjYWfho&e+fr@tTgDEbJTB=;daYMmMEvu(Oetc?1SwyjV21?$NX|y3vVeUqxKzq zmC&x)|{C=T&#vbD1g*OvMv?q#{kP%WAC-=%bafw+^3n6Lz zU2Q{JhR{$+T#)U|UcVNF5z2BV2myXS=bq9e8TUYRxoweie9#@R%5WLBV)mwN%pI3qlm2y93pb3mqF`zJ<7-M)bhe}H>2wJ4jA&&=2s=|>4x#Z zz0-{*kqG^-QoZX@CB$hXgyfFIp}~kYm8k~>dhXwaVW_stB=4_NQW_gk?akBI5Lq*N zD?g+3N@s+}!`fI=59;&`=Y$2TQMg{8tWK#98&Oit(?=1UPg16ypDJthO6P^=!`l$V z=`aN6ik_nqp>%?gYqG27BSLD7G zwO`XGYeecCQF^i!$~hl~b(s;ak7%PhY2BL@77A~xntCvj{=Lr6=Wl+{VEx*G<*AkR zC<)^92}IUx@l;6P<{0ci^H!$aT4qy=r4w?cxlr#HLs-bNH-L z*wlkpdb}a2<*lgb=IHT02Em*9IHi5R}5d8T|37Ua?1+|;?oK7w6ZY^WdM)RF4f z_)|YWvRwiY`cqQ9TTyYu=>rJPd%X#!Fljxih&b(w;56x>XN8%QpR~Tke-C@HT|@u0 z`-C@D*`TK;aJ30pS=pRjvDoeL+_7pJ<$u|YV#^>9`oQBH(e{FrUv(rnW=XU0KI3?0l3wXg;hl)KZ&MF)^mw18@;0MJo2Nw)9J|7d zFN7cB<>7Mof70zEuzkESdT=8r(iegMHyz zO@0o!gy2Sm3&ukq+$RB%sX#Aj%7$kXh+AyUmG8V&DFkXvs<0`}>kQ)SXQ_m(C?VqX zY}04^%9@FY?aTspQuY_AxwWX_W-ot){-Bh`denvH>Fm+MRr*~lE?9Q{jRnzbA40!J zs+<+2N1P5ud}Zy4@{#?^_EajCz?F>PQdKG4l6p5&E4{ zHteXC=8VR%ogK5ORUHJXUutSS3Ts5Jg7nHC(g|xLPF2R}sVxbshP7RtS`9{^CZ&v7 zQ5G^jSyU-MR#aoNm)Gy_g83obXE-9iR@W||pKo4_IBlRA$yeUaRM^VYZ*evzX)Z)m zrnuo2<4!!#P-S&oEhQ^wu1~uOp1w+QZ;M87pQ8KRyGnxb1Ewyt z*N#(1{N<$kra2~v^WzK;6zlNcf+Gn6-wu)+xIX1x>4D$duY^o?Av6?LZB znhMmvum3IGS0?)CRHs>lm{Pt`Tv8SKD(zZxNK*HllnPcK%n3{fIM%Pj0 zW!pRB^bTFxzIFaPu zVJV+;u&+WJyjZc{pt=6ANf}jpygdirP0A+cjE{Xs9fV|n#~;)VkX&(Y_83#uzz)d| zV)gR*{3XhX(#_O?wMPp6bzdwdvhlkP5<$kYEl1^CJ~;~}JHA36D*J?mJF8Yl#75wD z>>|jU)8IRWkE{4QscmRZ`Qy?(`F+9)KG^dyxnJfZ<&59)O*+2vqsBZH#_Bq<9F+*{ zumHD;8_0V)ZL}Yn@};|}gFLg8!Puj+zBZRO!Rj(rraKApK9LE^`MXL_KEC1>BIGZIe25&Klujz8+<4(|CZY{TcI0+mN)(*V3{j%HmfGO7b3YFyx1PQypF(+6_XWJDl zi`h}jp1n#@P8ks2Tc)PtpTEU;t^KL0+L1-ITr-^iHK$e2cgzmHj=jZ1RZ+KE z4FYzYt(NC<$8%fb1+NW6W)UaZHEUI6b?9SsYtxAPrz%*?(2C1}2X0VV*qp|HHtUz* z8;N~1XF6=m?n+aB`iYrk$44m=NvYoiC7cJ?`hpWRK7|5ZgJ_Y^5T6NZV-|Rxs!y5> z)L3TJ=UQbkIsNsKEk>Mk&aQcgj&}l2$Q&sVe~xZzx^v>BPlS=VDVF2Nd(|z7$mWa8 zoOMh{sv&}2COQo84>=3llgIIPmL-)g#d)|5wi-KJU^b3x@tJ6*) zmSYCi-D^B+>Q?Ye{C4gspKX6dOoHL3Xtq_m6r4QBKB9Bue)53eeri?1 zvL#Oj+=YhmK5Z2ZQ2Fz(IY+_mZSC+O_I~huA}NlLQU&F=xso7dB!74YIgjj;U>3tN8JfyY$#+)NRt-uO6s~G-1oluI3k8*_ep;=_8OIYRT|PuV5Zy< zpx_(z9FXlvo6}sJLZ0&+;R@q51Y<`Nk@q1;YcS1#6B?_KZ7LF@z;9XG znnw7Y^x5gOq@G8cQ2Uey`)o|H9hazFgbnuP;~WD$h!gv2Afd54-otRO!TY%R&C$xc zFW>2xJFO>+IMWcA)UCe1JF>8skf)GGAzMXPX<1lpNJf1_!(ZT?%oK(lyf!o-8w(B! zflw)%_gsQ?B-%HF46uPsrg1@myq<}tTee~y&az@Og!6laa%(F0q8OxCP~5puoIKz; zO#4b0PWm}|Y!oz_!CFkxaeHq?<-f}#FYdJMrEcH3Xc{S%tW8n^VeP31Q!1;}0NlPI z&Og7$XSZH~Ic22^8A05oAxx;e@z`?nk;ue($*ek&i*{bHS!H_ zCO1%n6qzVUBA)pT4Jl8Q0QMll zZGoLIH1ENRup_bGVh+B=#1&xT-eRl@Fjj9dT^(QjvEOYawG!sLXbtq1%M4YTGoeJG z#g%AUSU&=T-VPf{zCqfY%eYC3|G;;%i-^2pDj2(B8fl!t>w#|&)ETzCYkyK%7*+7R z$bUx?kLM!f*_G9=CR#h^;iUx4jt0+dyTW>twNOhwfSMg!w(9?BAfV6f#8{{YK zVWPQ*!0q!j@RjXMq9bvlF|P5Y<^or0Vi+ItWIY?!J?YLr2I&=!a^?D@-T zq378fS0_oX%!zi1ke0alzvp`*Junf-3#t;`dtVL6NYEq&An?w!F1ULI>{Px{dCG;< zfsC(EcO8*8o1v3*-CG+KQt%B@4jhk-!|&{^r^S~}oMKl6jT(Lhvqe|3qxD0pgXo57 z43X}(T%;}I6nKYe26u-UZLtqYj$u$qrRl>k zHdLM*X)iJbC@q$)8{N6n-&C;DV( zkNVx~`n#Leo$oHqrZeJ1lLiQ)DM+mRjZ(~>{6r-spB&4}TjdqBubwF>z#+bMd~Tq( zjrO$#N!+iOh(zA2IXYL>yK*5hc$|%z#~G7C5#Z5^p>Q<)Q z$iI)PcHbT=lJkiy6fZi(#MrnZKR7>oHb;1c-!(f7S@xe(V4_td8jpe({~X8OUw!H0UoUi^=7a zOr_X-w(FUD7&;}w?abxn=|t^}*_Y{W=6p4bJ1w=>RIvC=&I8TPdDZ)#Oh!#<+DXAe zBFnM1tg#?0HBOUq{uDF%;+y!Lu#ly`w>{$?Xwk7WcRfdZ-_C=;+4XeY6(n*(pl(LZ zbiA??D%(q0$_h08#V{+qd2$6O#^hjfOSovUo+1yPo@#nWpASX^U2mYkMe-DUN%gb zi{2Hu*%5BQClXJnGZT*{iY1CBO4uH;J!boc%goYpSAiLqB2k) zPzflFVWH83>jf?Aw2(5jBo&AyjP40GAu3>7aGToAst;2TM=E6kUb(>F#DN1Q(sM_CnI;c&3LRi z+L`x^6T^AO$>Nx?kStqf(%=ghmpYvR1;h_G~6 z1jc+VuYttPtnH)2-I+XjCh3Skm2bu8+Dck3K|Mh}K{Y`+LDS}>jU;Ho z7EHF(+_eY(<@ zNV7d-a=`&S^i0iG z3Vlt-9JT&7-8hKu0Av7sGNWG#Mr3@&10!BGxyQ8gZ-S%4q>%=Ovh>1srl>d z`paiAZAr*IOw1j5NUxq$&cO>zUKy_OpIJRcdBL^d8=VM04O4CptpnkuVZ&ALQ9Ml& z19QuI6wi?28;{M_E6S5zHJ+WV*UNm(I}D!*J)8NKXEPU+M$g9cH0IXQ=)>+$)|!%& z>67lsYY|zhH!!x4wTNt0dki92taHW06ax!(=v?tHH|6fqI%IE^+i>^x=$^(N0dt@A z=$^sGG>XrPD9U5A8qdv&=#9SS9fi*%o*jM5tMA@CjXeft4UCW$?FBN=jBR%#+&c;$ zv(R3KV0Mmj5|V@geLDxErzHjKVe$uVLO#?7KuAB2X=&+*hq^{xCQ(3&q$K->S#H5DGhM0zT4OtBh4bK}28qykShwAYSr46|a z#D=F0ZyHh>svBY(RKR_D#kB2WjV^l=YQ-6D9l6ezcOHWAz>TJ&B5`_0^wM~yAcPuA z34~B#=_yWGGkO%KE>GA^SWdW3m`*rO*i3j%T$;GCFpk5|H@#Avx;pVcWyoa0e!^

    Nfn(qcVe{lhY6xiN0o(Fdy00FCcxXk+MUc**dF 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%0AvHjY9G=3vahn1e9~Ys10DkO$8Ei}@Gx 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%0ArD_O-Dqm3t}0N&CFZVJU(eE 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 jo+{Y0F^CMJ1u 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�G60l*8Mp($_e9xF!UGgKfHwk}cXqDe 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 z zfiWcY;tO05484Gl9+MUVl>zd!hTq5EXe9hMB(Eq3CYb5gGA@P!qUdkmSbk zyX?XL9eSWA{*sF5ft~|$l1lmS|7)uo=nb#|cY-z~=lIxJK&X*=(MB!+A87>Q)-v5% z-oo3&^-$huKE$MJG4mE4e3Z?~QsmZ(kdLm3W{&>1lPZU726{J%QZjP_XeLCJ$qtXV zl_rD&@aXyttT*yNdVnbO5snJTi67Ag@3*c!)WdWgd;vj4}bFlEzm!Pp)cIPR?6VVpd^DpW8BCEt%<-X zchW#LiaLS@*afu z8`x#N2qQ=A-G=w=w*mes9~05#-#wU$CO{p%HWw+5E#o}$41|VCP@7z1oDoR|)PT7SwK|O+RAyw=wjUtM7(2!d8 zWJH&C6zv<@u*%khsS68FBQK~|fLn|&UWJC3=ci?u`T+0YYd7%LsZVHsv-Ciem!Ut` z2B+YHv?U9smCywH;q1$p+jIH%1X5rkd3)G4<&*}h2-q?ej-Q8{KjgTA-Gs*X~Xg_-22d*XTO0hxyXix?Lpz5dvX3r`N!qGbUP#e=XT_$4;m8w z&oFt43VOlZ1DKZrq%6>%q~hNT5k;8e3L_ga;vnhQw=}RdM9iJucV8{3rMzP_e6b*ijJ)E_oE3zbLf|R1E1Sq8If6OM*az~D zDUARbIo}UAq!J_WCqP#s`(cdKkt&7W@!){7ahC$O_h?&-#JH5{vEIt>nuQjMIlfYz z-T%OUZ2g^2T0at#Qxen^H>$?KK`baF^$Tq;hVrsURr){%hh68dftM&Os1f{jn|g{& zQvx;-Yt7tpjFw*3gj2Bm^WY~|E(Z4LR3cDDkxs$8sMtdjU zfnViY7w0>a?F#KxcX0+2>GH5bg?i2ak-<#d+e8PO7PD#(t&|@;em$TqVqFdrBwg`W zOr|X?V~aZ=HL3mWp^jE3w9b<#ojPw^hG3<6GL3Cc&y=(^>^+7nwDyp@q&ICC)l?#o zOm>22VC16HR#Bi=fHF2Js&(msv83o}1KlF$NPdNB>v6{gIO8$Q+AowC=*;ZURRwuD zn0mfAJ3(tfDWo68wTydkm4KYRA$8}0S@ys&)5~aCBB1Am@**n)awDJV8a2j6K@9-W z+(2gYi`5I@{lX7RE3eic6zS;R0o7XS3Jh|?ugS}X5lUN{&0HC%Y)rXx6to{mA*hXX z_S7Amfuh(dV}QVfjK0ktE^j_Ttr2)B#ZSX)N5 z+BDmVfz;{yF#3WO8Eu@ys)DpH-ujq=Gle!U*IULiT#y4K5V(&%p_!TVB*_u;A_$v7 zZZs3olkucl;yvqPG6nf+3pf>(W&XZMVpLv-6l`IcZWOtgAC?gTr8UZfz-l!d@`81m zm(<0>BA)mdWUxhSrBSt3CaHDuNsO6|m$?(!#@C22OE63DDN6A3!_GGy(CDC{OedSr z*5wdj7!;(K|-J# zLj-C07P&_43O%}31xfJ^-zY!kRRsieQtMC;qEa-D?=8lEw`aCzJ|m$Mxy7~N7}~p< zZ!3E;kaql8B)y#}tHC#Q`n7?QR4JdD;0(p;RgG)TPUd4}DqmbtEEmLHA#%{tjVQ2F zIJH|TP?ZSUyt)rOlVI`eO zYIsJjMvD?fROq^Nu2On#`Gds}HZj@^v}h(AhO7Way^K^n!!Y+Ru+5S~23MVpj_AG( zS7G2n;g|y;ah@N79H@|KY%+D65g3`8e*+=>8T%$A*sX1_W(~gxD23bUk$?gV19RyG zCh^HbLCr#ebzNYX9lI>~5Cu$!3*COY5gD1*RY3sc?HenH))IV=g(N;j}!544F%E1$YLby8G3}SMe!YpUMa4Gm6Jg^88nw9 z+9-GsiUAlUOadhs>kZ^ije;RwA18(|fBqd~3&s|V zElvVkYz_7fFUznPOVD!+W6mAM6yG9w;?cF_A%;Rn0EG(ER!L zj1L(fGCpK{I8l7KeO}HkJehFfv;CP5ju>_eL`x@m6#sGp_tc@RX&vKbg|Dv88|K!m z>nY=3#=nez8ULO;{@qT_`?jS3@Ncd&WVn4oaJ#gQOb)a}a0L2XVY}(2nmxur^#}Hi zJ6Tj;^96UxW4O<7pW!~k{bAw$wi~k%zSU9aL_WwhB^=6U-=fyb$)rh13%6Hf55?r6 zn4BBMJLC8-J$1)DUH_%#3vLL^jtx6D?AWklbHa{|v3YnREHgscv+PT;FU7u8_r6rM zVRJ5-ndGrw#(r6IzpN&;rub_d$8F%-0Z!O)tNDU&L|~7OJv#R2*rQ{Qu1k;3-2T|o ziKMC>b|SghkBj||z=r<*<-Ewg71l9SC(B_ zc4gU>WmopdU0LIeKDHz3M>zq@30O|Ro{#Umu5@75ugdfRr-eB!JcbuubM$gdFMZ;d zOP;isUh@TCsmbm;yYKA2v-{5OJG<{4T+C}3FThS0953KpJLlTZEZ5#$yrB4|Or6Nv zn>g}N@qD?J(S#xoHI1K!j7K-i-_(-EUo@p%)Ess z<|QdtPy?|+5;|cZOy3faNZ0Vmz3Zp&@Mb9j*we^yeP5#t<6D>Ry>Ql1I8SFVup4MB z;<)f%XBI}0h}U5-_kuf^!CZX3tSswW^SVs=k|<7WawYKCfj1daXEKY64Dq?+OUXnc zNuwaXeiIm30bZ84UVs~htAzbaeVE|_zQBMRex6Z6QAUmzJ84Y6DlihvK@V4%MJ9dD z3?voEt_AB&beH1We+4OhryqKBy)E=ezkR*shLZN4x)HDzI6*C7JdA5G5;a9UK6O*Y z%Cu5k2`j9I2y!T8Ht-2OR&uQ5+ABG8DUWR#4_DN*tf)CB5ZSsx@lXnTA_eNK$XSse zg(5fBVp`T=vc(v!29s^hflcv;vPTmy#bP_fc8cxPDAzijN=WKdF3V(-+T%SlLz&y} zjQgg7=V$(5tMZeg)3g4)`=>{8;my? zZ=62f*gkBdE|lHd#$R4I%i)YOhc;bYM$CbgX20fY9*j>3Mf5V$8^xkuf7<#$&{c+h_MI z@6hC=>2ViIof0@LmA@(e<>c=<_w*PH`d*zk^sQ~u$(WciF=JxJ#Egj>CH8gSsr{*a z^(4oK8G@e%1TVP~nH*?|;7IkkLis)I`36J!2ll@^zjplW0;g>31=tSv zXDy@m1^iV@X)Y$_kU#qyoi||T`kJ%yT6Q-TAIzuesmt#fUNOeb4m&&S?69-L&d!-S zJH{sH{a*Uby{GDE!6j9vlh5hKzv}XWEB4jcSF^tWYA|PR;9CyP@xEyG@*ep58g2-_ z3-)rym2*Go!Cv06-wn-jj8U5)m!nqu6mF$vpGjIEKF`OBa&c z>3SVTi6g$QBN4}5a7SeD;QR0%re9QD3O~gcPD&5{>;`wKdncS57~n2)6ESyaOPt3) z-~9TQZz_b7UxjM{Plgf9B@)icoeRgkcRinmaATMVn5r1~!&!-B8O~$K1_5)$0u}_! zRUl;{DDwLiG8rz;^k8k^O8#sv7G3~T4<(Gt-%2mcpVoxCaDY;4L9g^5`r!^a3GpFN ze~Eq-8h(eH67Zgnp(mPPwDL%;Y08?MDYO)H|!!r6orxfDhk@KA)%y=Mk47)fi`QW+=8gH@b<|I3yKe!ofJmd#>u9Tgv0cJjU$~J@ zwY&{|9}P?x#PIh(2~**(U`ta-1=u%a|0q^q&tYvVP)sP0S@dENg)7=!ST*c^x(!;AL`?_h@gxiY6m0u<-EqpN*;33?-&VPON^e&l(Nb9@ zvRn6_OCPyw(Dv)dLq#8}7XwyURItEO09Ye}tC!^ZU7NheV0N5q=jk_tO8!qcn@>xC zupi|--lstmD2*o0n>jcLf}#*qKt>0Ggf2iIRQ)-1D(ic5A9{dNLF-CR0gVE(b%z8c zCZ4%#bTne;hgmom*Qi;4_?G@!e$Qqp0)SVMiX|f4ia{xX(8^g6-3L}mTh!gk1!pR0 z_HcQlIWw}=O7DO(K?f(!DuhB?utOSW0@OgpQX7!*B@uKUia7W~;`rW|ihA%vpugrv zWOEzeZA(c-0#+2m;0Ad6 zbn_FLB=R{F7|!Md0++KVNis|VtgcwC6YyQLAHq2LmHjbBBG&y`tao2w&B{cR%7Jm# z&h3K(%b$JG1lNXNV$}*X&7Q=al7}9nl^2ksDzPnM9sJU**gQ#2G6EL_0`+($eW`?0 znv?Pi?tpkf3kPWoYgum+%kSH5ANQHWDgtxd`P@T>k=QchDEyTd+=pLalQL{V-~J5Z zt@O|z&}|LZ<#)y*4TsZFOII@{G%Ldi;Gm>1vpDg5AHD|Wl=>D3u2)@tDMmq-NU;!& z;KqYJXkpwfJp97ytUditiUXBfPTDfp!i6`Y+}xt0ulYDrPRWw^VY37f?`&Myk>IX^ z@1^jp^4-vWKx?o66Gg#C_5DlazWjTp+^w+#u+#>b2+b7Os1!m%;8kS4KkDWSXBpnz zX_DW%n*2!d^6OFvAo!)F=ei2^HFE9*?5|dK10k#miAbaxKr5wvVDih*C(2NGE%+5} zBq)j%MAFnE{R-e&3J*e$n?UN3P9m@^SVC^;pHdgk)mSb2wbVb0t*8+#wY~Xf`7nLm23GFZOhd~)d3;f00W45 z#b|r<0uT|9$QXX@-obB7KUe!RmN+zsFMSdT8CZ<2!178_rW}%tvy3JYCbbSX3kv~A zQ`wvy>ynY7VZ%bzy=ogCDrw{_LX?3{87eC=X1pYT@z2yt##t*U6hccMV9J*3{l)zP zYegt&60?Fg4BiI-dVs{}tQL<*lJ>5^1{D5`9S~aGcauwNvHiH9&&{Izxhn;7n_2E6 zaYk876$sl(t_*WPWEcWDgf1lBr`IWHd;usJw#adP0E(TZEw)|CPhRi^S0aT-JCHwy zAw)m}Tkr4#P$sHkdsvi?=4$5xpaqy2f}2(5!(CQCgjYZ&GjhR%p<7MymKo3iMLY{m z032=M#K{TKPL z?}Y;x;oc+s=R(W|il8=B5(P>l_@YB(0Y$j9T7?Z*f$L9n3e)5+#2?E{^j7%I-s$)Z zZnMBs-vvhlA&5^7tk&}2S?bVuvqC}T((L#R2H&GE@%2rKW&rOOL<^Y_$J{b}=#kV<95al$$0w(Iyn3;G=Awm#XGVPzi0YUee zzzYf^r1D@D#Xy@UZN5t5;s7#4)Q^_WS0Mk|#Ow4*=p@TA=kNqF(!hTTp2(#D6KzHG zRj?95F8$OnsQL^MS?iYHNK;VAZw1u{Zs5f$(lQYK6y81V%{q;jPi{d6%`u$iEojeB zh~!!^;;FZgT5GT&irf*Top2COK&EB5QzL1ak=N#I{?}^)?XEC%FwRz*|A6FJ&m_@$XMIF z&Kf6Y9`|8HC+5VwQRcv-`3Pr}t(mtWdG;n1*3Di_LuGI7g5)r5iY4?y?X1%0P^KpP z076=gX-rR!c55I@7cgbP+2fPb3 zF1@O!(%RB=t#c_KbtNCdkK!y(8`76Y_gy{so|9+*_4VF_t z*7gFAcw4v0b`y%-QjiFp3R4lWjP!#j=heSjOQU52r|}R?O^-^{SM zbpg|~j9Bc(9{YAfp%1-`i(D=h@Y|k}Wk**1!$;Sj^eaenQj!V$u`DMFUu+#cD|1J@ zPs{%11L5iIK<9ai+kvl9M3+t-EE5wn6bo6vM^N8`2T%z8tl{_ZH#&&)H{56K@Edgw z4W3(sN`3YlmCpVZBFdS015bMEZZ}1sKF$-A#o$>tIwRSHM&6&6(%3cBvyNNW9ju_9 zUA_tC1^ra+j9{;$-eS2Hd7661NE}vG)rHAg(NKXMxV_J9oA{Z`k)^UBF@AJiIO~w- zokK|lnYNMFCWRPNxc9;|ZlGhdB;2A-sUdGe!uF#$Jem0gp}0ig=&0fs6aaqnKJ@`BL{qm?s4E3dji zD|LFB!3u*F(d{*N&CK*bxaif;xCq-N42z7uvq|x7H&yNv8==-=Xw(q{+d!k2jE)!` zoe?_vt|N3*tF0LyF+Ms1eAE#x7zm7gH!v8JXTb*rW3R2RPZ|u1k&a_D))5C=qOn&D z$QY2F5g>cr4Ir!6*bK-RkTD>$M}PJ}WFYYOdSLJuc;-{J{b9fF_miA1TN@1eNo~r| zuOt4ohkoBN`eXEWM(FSRZqQ$?%4YD#;E%!Ic;K%S)H4vy{C?S;JWGLSiFSms9SA4?*!}+s<^POGs zutS?Opl3kOfSv(81Nv@ipc;bMp*)B&u8A4JgRm{E8`y);2AF+_uDJOCAL5EHm0>^P zto(=$ZFhqMdaceG5cXU+1Hu^)_FUL==>x70Hi zi1vzaL1a{W7N{21^?RE}L4hN_idjmlL*hUlGb*9n_7VS&B2N8eTfao~c?|x4I8SF{ z?%Y1m=Qw;@l~PBSzoa61z<`9(EtV8|a~mfSyvVtAW8utvH;%Un0}D}flxrYb;wLc@ zGl_(-AYE%^SzX!Xzafihh554={PXf%Hk-Kc_vVqUKx`_G&+R{ep`A4Lf;(v<)?(%@ zJfK5`0y&LbWHDP_D)LeO#z)uh>fWv=Qk*96Qe!^)&6e8vOf1RyCjl%^=C#opI^ZB% z+4#M)h6o|24!c1_+gmjF*=A(XL4(%TRiMKiX%0D7-8mmu5dIE>_5Tb`0I<3>um4hI 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�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⩽K070Qd^4T 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%0Dv6!-2Pb4IiT=#Gbc+TV-Bs^Pm_~^cXaK% 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 +EDw&82YJ~@`%T-<5~Wp%;%uO?JeRcj{#??= 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 literal 0 HcmV?d00001 diff --git a/Game/Assets/Supabase/System.Reactive.5.0.0/System.Reactive.5.0.0.nupkg.meta b/Game/Assets/Supabase/System.Reactive.5.0.0/System.Reactive.5.0.0.nupkg.meta new file mode 100644 index 0000000..7e40b44 --- /dev/null +++ b/Game/Assets/Supabase/System.Reactive.5.0.0/System.Reactive.5.0.0.nupkg.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 3a6a42ee92e8ddb45b0e9b1c1dc3341c +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Reactive.5.0.0/build.meta b/Game/Assets/Supabase/System.Reactive.5.0.0/build.meta new file mode 100644 index 0000000..1cea9c9 --- /dev/null +++ b/Game/Assets/Supabase/System.Reactive.5.0.0/build.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1b5267c277cf3d643917efea3446eec4 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Reactive.5.0.0/build/net5.0.meta b/Game/Assets/Supabase/System.Reactive.5.0.0/build/net5.0.meta new file mode 100644 index 0000000..2e00ff3 --- /dev/null +++ b/Game/Assets/Supabase/System.Reactive.5.0.0/build/net5.0.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7e78165ff768ec74a90e11f712821e93 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Reactive.5.0.0/build/net5.0/_._ b/Game/Assets/Supabase/System.Reactive.5.0.0/build/net5.0/_._ new file mode 100644 index 0000000..e69de29 diff --git a/Game/Assets/Supabase/System.Reactive.5.0.0/build/net5.0/_._.meta b/Game/Assets/Supabase/System.Reactive.5.0.0/build/net5.0/_._.meta new file mode 100644 index 0000000..beeb2d3 --- /dev/null +++ b/Game/Assets/Supabase/System.Reactive.5.0.0/build/net5.0/_._.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 9d5a0c68299bf1346b907ad191a16b16 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Reactive.5.0.0/build/netcoreapp3.1.meta b/Game/Assets/Supabase/System.Reactive.5.0.0/build/netcoreapp3.1.meta new file mode 100644 index 0000000..a125616 --- /dev/null +++ b/Game/Assets/Supabase/System.Reactive.5.0.0/build/netcoreapp3.1.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d9949a6ad5d8ff64d993c12d70afdbef +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Reactive.5.0.0/build/netcoreapp3.1/System.Reactive.dll b/Game/Assets/Supabase/System.Reactive.5.0.0/build/netcoreapp3.1/System.Reactive.dll new file mode 100644 index 0000000..050238c --- /dev/null +++ b/Game/Assets/Supabase/System.Reactive.5.0.0/build/netcoreapp3.1/System.Reactive.dll @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:62df82e4475246cb23e4f46b14decf79f045e7bf582282eec55484179b079faa +size 1470928 diff --git a/Game/Assets/Supabase/System.Reactive.5.0.0/build/netcoreapp3.1/System.Reactive.dll.meta b/Game/Assets/Supabase/System.Reactive.5.0.0/build/netcoreapp3.1/System.Reactive.dll.meta new file mode 100644 index 0000000..43bcd66 --- /dev/null +++ b/Game/Assets/Supabase/System.Reactive.5.0.0/build/netcoreapp3.1/System.Reactive.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: cf106e4fd971241488b22151de793d47 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Reactive.5.0.0/build/netcoreapp3.1/System.Reactive.targets b/Game/Assets/Supabase/System.Reactive.5.0.0/build/netcoreapp3.1/System.Reactive.targets new file mode 100644 index 0000000..2452a8e --- /dev/null +++ b/Game/Assets/Supabase/System.Reactive.5.0.0/build/netcoreapp3.1/System.Reactive.targets @@ -0,0 +1,12 @@ + + + true + false + + + + + + + + diff --git a/Game/Assets/Supabase/System.Reactive.5.0.0/build/netcoreapp3.1/System.Reactive.targets.meta b/Game/Assets/Supabase/System.Reactive.5.0.0/build/netcoreapp3.1/System.Reactive.targets.meta new file mode 100644 index 0000000..2e4a678 --- /dev/null +++ b/Game/Assets/Supabase/System.Reactive.5.0.0/build/netcoreapp3.1/System.Reactive.targets.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: efd42515770643749bff90c9ff00088c +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Reactive.5.0.0/build/netcoreapp3.1/System.Reactive.xml b/Game/Assets/Supabase/System.Reactive.5.0.0/build/netcoreapp3.1/System.Reactive.xml new file mode 100644 index 0000000..0d26393 --- /dev/null +++ b/Game/Assets/Supabase/System.Reactive.5.0.0/build/netcoreapp3.1/System.Reactive.xml @@ -0,0 +1,28078 @@ + + + + System.Reactive + + + +

    + Class to create an instance from a delegate-based implementation of the method. + + The type of the elements in the sequence. + + + + Creates an observable sequence object from the specified subscription function. + + method implementation. + is null. + + + + Calls the subscription function that was supplied to the constructor. + + Observer to send notifications to. + Disposable object representing an observer's subscription to the observable sequence. + + + + Class to create an instance from delegate-based implementations of the On* methods. + + The type of the elements in the sequence. + + + + Creates an observer from the specified , , and actions. + + Observer's action implementation. + Observer's action implementation. + Observer's action implementation. + or or is null. + + + + Creates an observer from the specified action. + + Observer's action implementation. + is null. + + + + Creates an observer from the specified and actions. + + Observer's action implementation. + Observer's action implementation. + or is null. + + + + Creates an observer from the specified and actions. + + Observer's action implementation. + Observer's action implementation. + or is null. + + + + Calls the action implementing . + + Next element in the sequence. + + + + Calls the action implementing . + + The error that has occurred. + + + + Calls the action implementing . + + + + + This class fuses logic from ObserverBase, AnonymousObserver, and SafeObserver into one class. When an observer + needs to be safeguarded, an instance of this type can be created by SafeObserver.Create when it detects its + input is an AnonymousObserver, which is commonly used by end users when using the Subscribe extension methods + that accept delegates for the On* handlers. By doing the fusion, we make the call stack depth shorter which + helps debugging and some performance. + + + + + Asynchronous lock. + + + + + Queues the action for execution. If the caller acquires the lock and becomes the owner, + the queue is processed. If the lock is already owned, the action is queued and will get + processed by the owner. + + Action to queue for execution. + is null. + + + + Queues the action for execution. If the caller acquires the lock and becomes the owner, + the queue is processed. If the lock is already owned, the action is queued and will get + processed by the owner. + + Action to queue for execution. + The state to pass to the action when it gets invoked under the lock. + is null. + In case TState is a value type, this operation will involve boxing of . + However, this is often an improvement over the allocation of a closure object and a delegate. + + + + Clears the work items in the queue and drops further work being queued. + + + + + (Infrastructure) Concurrency abstraction layer. + + + + + Gets the current CAL. If no CAL has been set yet, it will be initialized to the default. + + + + + (Infrastructure) Concurrency abstraction layer interface. + + + This type is used by the Rx infrastructure and not meant for public consumption or implementation. + No guarantees are made about forward compatibility of the type's functionality and its usage. + + + + + Queues a method for execution at the specified relative time. + + Method to execute. + State to pass to the method. + Time to execute the method on. + Disposable object that can be used to stop the timer. + + + + Queues a method for periodic execution based on the specified period. + + Method to execute; should be safe for reentrancy. + Period for running the method periodically. + Disposable object that can be used to stop the timer. + + + + Queues a method for execution. + + Method to execute. + State to pass to the method. + Disposable object that can be used to cancel the queued method. + + + + Blocking sleep operation. + + Time to sleep. + + + + Starts a new stopwatch object. + + New stopwatch object; started at the time of the request. + + + + Gets whether long-running scheduling is supported. + + + + + Starts a new long-running thread. + + Method to execute. + State to pass to the method. + + + + Represents an object that schedules units of work on the current thread. + + Singleton instance of this type exposed through this static property. + + + + Gets the singleton instance of the current thread scheduler. + + + + + Gets a value that indicates whether the caller must call a Schedule method. + + + + + Gets a value that indicates whether the caller must call a Schedule method. + + + + + Schedules an action to be executed after dueTime. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + Relative time after which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Represents an object that schedules units of work on the platform's default scheduler. + + Singleton instance of this type exposed through this static property. + + + + Gets the singleton instance of the default scheduler. + + + + + Schedules an action to be executed. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Schedules an action to be executed after dueTime, using a System.Threading.Timer object. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + Relative time after which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Schedules a periodic piece of work, using a System.Threading.Timer object. + + The type of the state passed to the scheduled action. + Initial state passed to the action upon the first iteration. + Period for running the work periodically. + Action to be executed, potentially updating the state. + The disposable object used to cancel the scheduled recurring action (best effort). + is less than . + is null. + + + + Discovers scheduler services by interface type. + + Scheduler service interface type to discover. + Object implementing the requested service, if available; null otherwise. + + + + Represents an object that schedules units of work on a designated thread. + + + + + Counter for diagnostic purposes, to name the threads. + + + + + Thread factory function. + + + + + Stopwatch for timing free of absolute time dependencies. + + + + + Thread used by the event loop to run work items on. No work should be run on any other thread. + If ExitIfEmpty is set, the thread can quit and a new thread will be created when new work is scheduled. + + + + + Gate to protect data structures, including the work queue and the ready list. + + + + + Semaphore to count requests to re-evaluate the queue, from either Schedule requests or when a timer + expires and moves on to the next item in the queue. + + + + + Queue holding work items. Protected by the gate. + + + + + Queue holding items that are ready to be run as soon as possible. Protected by the gate. + + + + + Work item that will be scheduled next. Used upon reevaluation of the queue to check whether the next + item is still the same. If not, a new timer needs to be started (see below). + + + + + Disposable that always holds the timer to dispatch the first element in the queue. + + + + + Flag indicating whether the event loop should quit. When set, the event should be signaled as well to + wake up the event loop thread, which will subsequently abandon all work. + + + + + Creates an object that schedules units of work on a designated thread. + + + + + Creates an object that schedules units of work on a designated thread, using the specified factory to control thread creation options. + + Factory function for thread creation. + is null. + + + + Indicates whether the event loop thread is allowed to quit when no work is left. If new work + is scheduled afterwards, a new event loop thread is created. This property is used by the + NewThreadScheduler which uses an event loop for its recursive invocations. + + + + + Schedules an action to be executed after dueTime. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + Relative time after which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + is null. + The scheduler has been disposed and doesn't accept new work. + + + + Schedules a periodic piece of work on the designated thread. + + The type of the state passed to the scheduled action. + Initial state passed to the action upon the first iteration. + Period for running the work periodically. + Action to be executed, potentially updating the state. + The disposable object used to cancel the scheduled recurring action (best effort). + is null. + is less than . + The scheduler has been disposed and doesn't accept new work. + + + + Starts a new stopwatch object. + + New stopwatch object; started at the time of the request. + + + + Ends the thread associated with this scheduler. All remaining work in the scheduler queue is abandoned. + + + + + Ensures there is an event loop thread running. Should be called under the gate. + + + + + Event loop scheduled on the designated event loop thread. The loop is suspended/resumed using the event + which gets set by calls to Schedule, the next item timer, or calls to Dispose. + + + + + Base class for historical schedulers, which are virtual time schedulers that use for absolute time and for relative time. + + + + + Creates a new historical scheduler with the minimum value of as the initial clock value. + + + + + Creates a new historical scheduler with the specified initial clock value. + + Initial clock value. + + + + Creates a new historical scheduler with the specified initial clock value and absolute time comparer. + + Initial value for the clock. + Comparer to determine causality of events based on absolute time. + + + + Adds a relative time value to an absolute time value. + + Absolute time value. + Relative time value to add. + The resulting absolute time sum value. + + + + Converts the absolute time value to a value. + + Absolute time value to convert. + The corresponding value. + + + + Converts the value to a relative time value. + + value to convert. + The corresponding relative time value. + + + + Provides a virtual time scheduler that uses for absolute time and for relative time. + + + + + Creates a new historical scheduler with the minimum value of as the initial clock value. + + + + + Creates a new historical scheduler with the specified initial clock value. + + Initial value for the clock. + + + + Creates a new historical scheduler with the specified initial clock value. + + Initial value for the clock. + Comparer to determine causality of events based on absolute time. + is null. + + + + Gets the next scheduled item to be executed. + + The next scheduled item. + + + + Schedules an action to be executed at . + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + Absolute time at which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Represents an object that schedules units of work to run immediately on the current thread. + + Singleton instance of this type exposed through this static property. + + + + Gets the singleton instance of the immediate scheduler. + + + + + Schedules an action to be executed. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Schedules an action to be executed after dueTime. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + Relative time after which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Represents a work item that has been scheduled. + + Absolute time representation type. + + + + Gets the absolute time at which the item is due for invocation. + + + + + Invokes the work item. + + + + + Represents an object that schedules units of work. + + + + + Gets the scheduler's notion of current time. + + + + + Schedules an action to be executed. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + + + + Schedules an action to be executed after dueTime. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + Relative time after which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + + + + Schedules an action to be executed at dueTime. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + Absolute time at which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + + + + Scheduler with support for starting long-running tasks. + This type of scheduler can be used to run loops more efficiently instead of using recursive scheduling. + + + + + Schedules a long-running piece of work. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + + Notes to implementers + The returned disposable object should not prevent the work from starting, but only set the cancellation flag passed to the specified action. + + + + + Scheduler with support for running periodic tasks. + This type of scheduler can be used to run timers more efficiently instead of using recursive scheduling. + + + + + Schedules a periodic piece of work. + + The type of the state passed to the scheduled action. + Initial state passed to the action upon the first iteration. + Period for running the work periodically. + Action to be executed, potentially updating the state. + The disposable object used to cancel the scheduled recurring action (best effort). + + + + Abstraction for a stopwatch to compute time relative to a starting point. + + + + + Gets the time elapsed since the stopwatch object was obtained. + + + + + Provider for objects. + + + + + Starts a new stopwatch object. + + New stopwatch object; started at the time of the request. + + + + Abstract base class for machine-local schedulers, using the local system clock for time-based operations. + + + + + Gets the scheduler's notion of current time. + + + + + Schedules an action to be executed. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Schedules an action to be executed after dueTime. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + Relative time after which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + + + + Schedules an action to be executed at dueTime. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + Absolute time at which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Starts a new stopwatch object. + + New stopwatch object; started at the time of the request. + + Platform-specific scheduler implementations should reimplement + to provide a more efficient implementation (if available). + + + + + Discovers scheduler services by interface type. The base class implementation returns + requested services for each scheduler interface implemented by the derived class. For + more control over service discovery, derived types can override this method. + + Scheduler service interface type to discover. + Object implementing the requested service, if available; null otherwise. + + + + Gate to protect local scheduler queues. + + + + + Gate to protect queues and to synchronize scheduling decisions and system clock + change management. + + + + + Long term work queue. Contains work that's due beyond SHORTTERM, computed at the + time of enqueueing. + + + + + Disposable resource for the long term timer that will reevaluate and dispatch the + first item in the long term queue. A serial disposable is used to make "dispose + current and assign new" logic easier. The disposable itself is never disposed. + + + + + Item at the head of the long term queue for which the current long term timer is + running. Used to detect changes in the queue and decide whether we should replace + or can continue using the current timer (because no earlier long term work was + added to the queue). + + + + + Short term work queue. Contains work that's due soon, computed at the time of + enqueueing or upon reevaluation of the long term queue causing migration of work + items. This queue is kept in order to be able to relocate short term items back + to the long term queue in case a system clock change occurs. + + + + + Set of disposable handles to all of the current short term work Schedule calls, + allowing those to be cancelled upon a system clock change. + + + + + Threshold where an item is considered to be short term work or gets moved from + long term to short term. + + + + + Maximum error ratio for timer drift. We've seen machines with 10s drift on a + daily basis, which is in the order 10E-4, so we allow for extra margin here. + This value is used to calculate early arrival for the long term queue timer + that will reevaluate work for the short term queue. + + Example: -------------------------------...---------------------*-----$ + ^ ^ + | | + early due + 0.999 1.0 + + We also make the gap between early and due at least LONGTOSHORT so we have + enough time to transition work to short term and as a courtesy to the + destination scheduler to manage its queues etc. + + + + + Minimum threshold for the long term timer to fire before the queue is reevaluated + for short term work. This value is chosen to be less than SHORTTERM in order to + ensure the timer fires and has work to transition to the short term queue. + + + + + Threshold used to determine when a short term timer has fired too early compared + to the absolute due time. This provides a last chance protection against early + completion of scheduled work, which can happen in case of time adjustment in the + operating system (cf. GetSystemTimeAdjustment). + + + + + Longest interval supported by timers in the BCL. + + + + + Creates a new local scheduler. + + + + + Enqueues absolute time scheduled work in the timer queue or the short term work list. + + State to pass to the action. + Absolute time to run the work on. The timer queue is responsible to execute the work close to the specified time, also accounting for system clock changes. + Action to run, potentially recursing into the scheduler. + Disposable object to prevent the work from running. + + + + Schedule work that's due in the short term. This leads to relative scheduling calls to the + underlying scheduler for short TimeSpan values. If the system clock changes in the meantime, + the short term work is attempted to be cancelled and reevaluated. + + Work item to schedule in the short term. The caller is responsible to determine the work is indeed short term. + + + + Callback to process the next short term work item. + + Recursive scheduler supplied by the underlying scheduler. + Disposable used to identify the work the timer was triggered for (see code for usage). + Empty disposable. Recursive work cancellation is wired through the original WorkItem. + + + + Schedule work that's due on the long term. This leads to the work being queued up for + eventual transitioning to the short term work list. + + Work item to schedule on the long term. The caller is responsible to determine the work is indeed long term. + + + + Updates the long term timer which is responsible to transition work from the head of the + long term queue to the short term work list. + + Should be called under the scheduler lock. + + + + Evaluates the long term queue, transitioning short term work to the short term list, + and adjusting the new long term processing timer accordingly. + + + + + Callback invoked when a system clock change is observed in order to adjust and reevaluate + the internal scheduling queues. + + Currently not used. + Currently not used. + + + + Represents a work item in the absolute time scheduler. + + + This type is very similar to ScheduledItem, but we need a different Invoke signature to allow customization + of the target scheduler (e.g. when called in a recursive scheduling context, see ExecuteNextShortTermWorkItem). + + + + + Represents a work item that closes over scheduler invocation state. Subtyping is + used to have a common type for the scheduler queues. + + + + + Represents an object that schedules each unit of work on a separate thread. + + + + + Creates an object that schedules each unit of work on a separate thread. + + + + + Gets an instance of this scheduler that uses the default Thread constructor. + + + + + Creates an object that schedules each unit of work on a separate thread. + + Factory function for thread creation. + is null. + + + + Schedules an action to be executed after dueTime. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + Relative time after which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Schedules a long-running task by creating a new thread. Cancellation happens through polling. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Schedules a periodic piece of work by creating a new thread that goes to sleep when work has been dispatched and wakes up again at the next periodic due time. + + The type of the state passed to the scheduled action. + Initial state passed to the action upon the first iteration. + Period for running the work periodically. + Action to be executed, potentially updating the state. + The disposable object used to cancel the scheduled recurring action (best effort). + is null. + is less than . + + + + Starts a new stopwatch object. + + New stopwatch object; started at the time of the request. + + + + Abstract base class for scheduled work items. + + Absolute time representation type. + + + + Creates a new scheduled work item to run at the specified time. + + Absolute time at which the work item has to be executed. + Comparer used to compare work items based on their scheduled time. + is null. + + + + Gets the absolute time at which the item is due for invocation. + + + + + Invokes the work item. + + + + + Implement this method to perform the work item invocation, returning a disposable object for deep cancellation. + + Disposable object used to cancel the work item and/or derived work items. + + + + Compares the work item with another work item based on absolute time values. + + Work item to compare the current work item to. + Relative ordering between this and the specified work item. + The inequality operators are overloaded to provide results consistent with the implementation. Equality operators implement traditional reference equality semantics. + + + + Determines whether one specified object is due before a second specified object. + + The first object to compare. + The second object to compare. + true if the value of left is earlier than the value of right; otherwise, false. + This operator provides results consistent with the implementation. + + + + Determines whether one specified object is due before or at the same of a second specified object. + + The first object to compare. + The second object to compare. + true if the value of left is earlier than or simultaneous with the value of right; otherwise, false. + This operator provides results consistent with the implementation. + + + + Determines whether one specified object is due after a second specified object. + + The first object to compare. + The second object to compare. + true if the value of left is later than the value of right; otherwise, false. + This operator provides results consistent with the implementation. + + + + Determines whether one specified object is due after or at the same time of a second specified object. + + The first object to compare. + The second object to compare. + true if the value of left is later than or simultaneous with the value of right; otherwise, false. + This operator provides results consistent with the implementation. + + + + Determines whether two specified objects are equal. + + The first object to compare. + The second object to compare. + true if both are equal; otherwise, false. + This operator does not provide results consistent with the IComparable implementation. Instead, it implements reference equality. + + + + Determines whether two specified objects are inequal. + + The first object to compare. + The second object to compare. + true if both are inequal; otherwise, false. + This operator does not provide results consistent with the IComparable implementation. Instead, it implements reference equality. + + + + Determines whether a object is equal to the specified object. + + The object to compare to the current object. + true if the obj parameter is a object and is equal to the current object; otherwise, false. + + + + Returns the hash code for the current object. + + A 32-bit signed integer hash code. + + + + Cancels the work item by disposing the resource returned by as soon as possible. + + + + + Gets whether the work item has received a cancellation request. + + + + + Represents a scheduled work item based on the materialization of an IScheduler.Schedule method call. + + Absolute time representation type. + Type of the state passed to the scheduled action. + + + + Creates a materialized work item. + + Recursive scheduler to invoke the scheduled action with. + State to pass to the scheduled action. + Scheduled action. + Time at which to run the scheduled action. + Comparer used to compare work items based on their scheduled time. + or or is null. + + + + Creates a materialized work item. + + Recursive scheduler to invoke the scheduled action with. + State to pass to the scheduled action. + Scheduled action. + Time at which to run the scheduled action. + or is null. + + + + Invokes the scheduled action with the supplied recursive scheduler and state. + + Cancellation resource returned by the scheduled action. + + + + Provides a set of static properties to access commonly used schedulers. + + + + + Yields execution of the current work item on the scheduler to another work item on the scheduler. + The caller should await the result of calling Yield to schedule the remainder of the current work item (known as the continuation). + + Scheduler to yield work on. + Scheduler operation object to await in order to schedule the continuation. + is null. + + + + Yields execution of the current work item on the scheduler to another work item on the scheduler. + The caller should await the result of calling Yield to schedule the remainder of the current work item (known as the continuation). + + Scheduler to yield work on. + Cancellation token to cancel the continuation to run. + Scheduler operation object to await in order to schedule the continuation. + is null. + + + + Suspends execution of the current work item on the scheduler for the specified duration. + The caller should await the result of calling Sleep to schedule the remainder of the current work item (known as the continuation) after the specified duration. + + Scheduler to yield work on. + Time when the continuation should run. + Scheduler operation object to await in order to schedule the continuation. + is null. + + + + Suspends execution of the current work item on the scheduler for the specified duration. + The caller should await the result of calling Sleep to schedule the remainder of the current work item (known as the continuation) after the specified duration. + + Scheduler to yield work on. + Time when the continuation should run. + Cancellation token to cancel the continuation to run. + Scheduler operation object to await in order to schedule the continuation. + is null. + + + + Suspends execution of the current work item on the scheduler until the specified due time. + The caller should await the result of calling Sleep to schedule the remainder of the current work item (known as the continuation) at the specified due time. + + Scheduler to yield work on. + Time when the continuation should run. + Scheduler operation object to await in order to schedule the continuation. + is null. + + + + Suspends execution of the current work item on the scheduler until the specified due time. + The caller should await the result of calling Sleep to schedule the remainder of the current work item (known as the continuation) at the specified due time. + + Scheduler to yield work on. + Time when the continuation should run. + Cancellation token to cancel the continuation to run. + Scheduler operation object to await in order to schedule the continuation. + is null. + + + + Schedules work using an asynchronous method, allowing for cooperative scheduling in an imperative coding style. + + The type of the state passed to the scheduled action. + Scheduler to schedule work on. + State to pass to the asynchronous method. + Asynchronous method to run the work, using Yield and Sleep operations for cooperative scheduling and injection of cancellation points. + Disposable object that allows to cancel outstanding work on cooperative cancellation points or through the cancellation token passed to the asynchronous method. + or is null. + + + + Schedules work using an asynchronous method, allowing for cooperative scheduling in an imperative coding style. + + The type of the state passed to the scheduled action. + Scheduler to schedule work on. + State to pass to the asynchronous method. + Asynchronous method to run the work, using Yield and Sleep operations for cooperative scheduling and injection of cancellation points. + Disposable object that allows to cancel outstanding work on cooperative cancellation points or through the cancellation token passed to the asynchronous method. + or is null. + + + + Schedules work using an asynchronous method, allowing for cooperative scheduling in an imperative coding style. + + Scheduler to schedule work on. + Asynchronous method to run the work, using Yield and Sleep operations for cooperative scheduling and injection of cancellation points. + Disposable object that allows to cancel outstanding work on cooperative cancellation points or through the cancellation token passed to the asynchronous method. + or is null. + + + + Schedules work using an asynchronous method, allowing for cooperative scheduling in an imperative coding style. + + Scheduler to schedule work on. + Asynchronous method to run the work, using Yield and Sleep operations for cooperative scheduling and injection of cancellation points. + Disposable object that allows to cancel outstanding work on cooperative cancellation points or through the cancellation token passed to the asynchronous method. + or is null. + + + + Schedules work using an asynchronous method, allowing for cooperative scheduling in an imperative coding style. + + The type of the state passed to the scheduled action. + Scheduler to schedule work on. + State to pass to the asynchronous method. + Relative time after which to execute the action. + Asynchronous method to run the work, using Yield and Sleep operations for cooperative scheduling and injection of cancellation points. + Disposable object that allows to cancel outstanding work on cooperative cancellation points or through the cancellation token passed to the asynchronous method. + or is null. + + + + Schedules work using an asynchronous method, allowing for cooperative scheduling in an imperative coding style. + + The type of the state passed to the scheduled action. + Scheduler to schedule work on. + State to pass to the asynchronous method. + Relative time after which to execute the action. + Asynchronous method to run the work, using Yield and Sleep operations for cooperative scheduling and injection of cancellation points. + Disposable object that allows to cancel outstanding work on cooperative cancellation points or through the cancellation token passed to the asynchronous method. + or is null. + + + + Schedules work using an asynchronous method, allowing for cooperative scheduling in an imperative coding style. + + Scheduler to schedule work on. + Relative time after which to execute the action. + Asynchronous method to run the work, using Yield and Sleep operations for cooperative scheduling and injection of cancellation points. + Disposable object that allows to cancel outstanding work on cooperative cancellation points or through the cancellation token passed to the asynchronous method. + or is null. + + + + Schedules work using an asynchronous method, allowing for cooperative scheduling in an imperative coding style. + + Scheduler to schedule work on. + Relative time after which to execute the action. + Asynchronous method to run the work, using Yield and Sleep operations for cooperative scheduling and injection of cancellation points. + Disposable object that allows to cancel outstanding work on cooperative cancellation points or through the cancellation token passed to the asynchronous method. + or is null. + + + + Schedules work using an asynchronous method, allowing for cooperative scheduling in an imperative coding style. + + The type of the state passed to the scheduled action. + Scheduler to schedule work on. + State to pass to the asynchronous method. + Absolute time at which to execute the action. + Asynchronous method to run the work, using Yield and Sleep operations for cooperative scheduling and injection of cancellation points. + Disposable object that allows to cancel outstanding work on cooperative cancellation points or through the cancellation token passed to the asynchronous method. + or is null. + + + + Schedules work using an asynchronous method, allowing for cooperative scheduling in an imperative coding style. + + The type of the state passed to the scheduled action. + Scheduler to schedule work on. + State to pass to the asynchronous method. + Absolute time at which to execute the action. + Asynchronous method to run the work, using Yield and Sleep operations for cooperative scheduling and injection of cancellation points. + Disposable object that allows to cancel outstanding work on cooperative cancellation points or through the cancellation token passed to the asynchronous method. + or is null. + + + + Schedules work using an asynchronous method, allowing for cooperative scheduling in an imperative coding style. + + Scheduler to schedule work on. + Absolute time at which to execute the action. + Asynchronous method to run the work, using Yield and Sleep operations for cooperative scheduling and injection of cancellation points. + Disposable object that allows to cancel outstanding work on cooperative cancellation points or through the cancellation token passed to the asynchronous method. + or is null. + + + + Schedules work using an asynchronous method, allowing for cooperative scheduling in an imperative coding style. + + Scheduler to schedule work on. + Absolute time at which to execute the action. + Asynchronous method to run the work, using Yield and Sleep operations for cooperative scheduling and injection of cancellation points. + Disposable object that allows to cancel outstanding work on cooperative cancellation points or through the cancellation token passed to the asynchronous method. + or is null. + + + + Gets the current time according to the local machine's system clock. + + + + + Normalizes the specified value to a positive value. + + The value to normalize. + The specified TimeSpan value if it is zero or positive; otherwise, . + + + + Gets a scheduler that schedules work immediately on the current thread. + + + + + Gets a scheduler that schedules work as soon as possible on the current thread. + + + + + Gets a scheduler that schedules work on the platform's default scheduler. + + + + + Gets a scheduler that schedules work on the thread pool. + + + + + Gets a scheduler that schedules work on a new thread using default thread creation options. + + + + + Gets a scheduler that schedules work on Task Parallel Library (TPL) task pool using the default TaskScheduler. + + + + + Schedules an action to be executed recursively. + + Scheduler to execute the recursive action on. + Action to execute recursively. The parameter passed to the action is used to trigger recursive scheduling of the action. + The disposable object used to cancel the scheduled action (best effort). + or is null. + + + + Schedules an action to be executed recursively. + + The type of the state passed to the scheduled action. + Scheduler to execute the recursive action on. + State passed to the action to be executed. + Action to execute recursively. The last parameter passed to the action is used to trigger recursive scheduling of the action, passing in recursive invocation state. + The disposable object used to cancel the scheduled action (best effort). + or is null. + + + + Schedules an action to be executed recursively after a specified relative due time. + + Scheduler to execute the recursive action on. + Action to execute recursively. The parameter passed to the action is used to trigger recursive scheduling of the action at the specified relative time. + Relative time after which to execute the action for the first time. + The disposable object used to cancel the scheduled action (best effort). + or is null. + + + + Schedules an action to be executed recursively after a specified relative due time. + + The type of the state passed to the scheduled action. + Scheduler to execute the recursive action on. + State passed to the action to be executed. + Action to execute recursively. The last parameter passed to the action is used to trigger recursive scheduling of the action, passing in the recursive due time and invocation state. + Relative time after which to execute the action for the first time. + The disposable object used to cancel the scheduled action (best effort). + or is null. + + + + Schedules an action to be executed recursively at a specified absolute due time. + + Scheduler to execute the recursive action on. + Action to execute recursively. The parameter passed to the action is used to trigger recursive scheduling of the action at the specified absolute time. + Absolute time at which to execute the action for the first time. + The disposable object used to cancel the scheduled action (best effort). + or is null. + + + + Schedules an action to be executed recursively at a specified absolute due time. + + The type of the state passed to the scheduled action. + Scheduler to execute the recursive action on. + State passed to the action to be executed. + Action to execute recursively. The last parameter passed to the action is used to trigger recursive scheduling of the action, passing in the recursive due time and invocation state. + Absolute time at which to execute the action for the first time. + The disposable object used to cancel the scheduled action (best effort). + or is null. + + + + Returns the implementation of the specified scheduler, or null if no such implementation is available. + + Scheduler to get the implementation for. + The scheduler's implementation if available; null otherwise. + + This helper method is made available for query operator authors in order to discover scheduler services by using the required + IServiceProvider pattern, which allows for interception or redefinition of scheduler services. + + + + + Returns the implementation of the specified scheduler, or null if no such implementation is available. + + Scheduler to get the implementation for. + The scheduler's implementation if available; null otherwise. + + + This helper method is made available for query operator authors in order to discover scheduler services by using the required + IServiceProvider pattern, which allows for interception or redefinition of scheduler services. + + + Consider using in case a stopwatch is required, but use of emulation stopwatch based + on the scheduler's clock is acceptable. Use of this method is recommended for best-effort use of the stopwatch provider + scheduler service, where the caller falls back to not using stopwatches if this facility wasn't found. + + + + + + Returns the implementation of the specified scheduler, or null if no such implementation is available. + + Scheduler to get the implementation for. + The scheduler's implementation if available; null otherwise. + + + This helper method is made available for query operator authors in order to discover scheduler services by using the required + IServiceProvider pattern, which allows for interception or redefinition of scheduler services. + + + Consider using the extension methods for in case periodic scheduling + is required and emulation of periodic behavior using other scheduler services is desirable. Use of this method is recommended + for best-effort use of the periodic scheduling service, where the caller falls back to not using periodic scheduling if this + facility wasn't found. + + + + + + Schedules a periodic piece of work by dynamically discovering the scheduler's capabilities. + If the scheduler supports periodic scheduling, the request will be forwarded to the periodic scheduling implementation. + If the scheduler provides stopwatch functionality, the periodic task will be emulated using recursive scheduling with a stopwatch to correct for time slippage. + Otherwise, the periodic task will be emulated using recursive scheduling. + + The type of the state passed to the scheduled action. + The scheduler to run periodic work on. + Initial state passed to the action upon the first iteration. + Period for running the work periodically. + Action to be executed, potentially updating the state. + The disposable object used to cancel the scheduled recurring action (best effort). + or is null. + is less than . + + + + Schedules a periodic piece of work by dynamically discovering the scheduler's capabilities. + If the scheduler supports periodic scheduling, the request will be forwarded to the periodic scheduling implementation. + If the scheduler provides stopwatch functionality, the periodic task will be emulated using recursive scheduling with a stopwatch to correct for time slippage. + Otherwise, the periodic task will be emulated using recursive scheduling. + + The type of the state passed to the scheduled action. + Scheduler to execute the action on. + State passed to the action to be executed. + Period for running the work periodically. + Action to be executed. + The disposable object used to cancel the scheduled recurring action (best effort). + or is null. + is less than . + + + + Schedules a periodic piece of work by dynamically discovering the scheduler's capabilities. + If the scheduler supports periodic scheduling, the request will be forwarded to the periodic scheduling implementation. + If the scheduler provides stopwatch functionality, the periodic task will be emulated using recursive scheduling with a stopwatch to correct for time slippage. + Otherwise, the periodic task will be emulated using recursive scheduling. + + Scheduler to execute the action on. + Period for running the work periodically. + Action to be executed. + The disposable object used to cancel the scheduled recurring action (best effort). + or is null. + is less than . + + + + Starts a new stopwatch object by dynamically discovering the scheduler's capabilities. + If the scheduler provides stopwatch functionality, the request will be forwarded to the stopwatch provider implementation. + Otherwise, the stopwatch will be emulated using the scheduler's notion of absolute time. + + Scheduler to obtain a stopwatch for. + New stopwatch object; started at the time of the request. + is null. + The resulting stopwatch object can have non-monotonic behavior. + + + + Schedules an action to be executed. + + Scheduler to execute the action on. + Action to execute. + The disposable object used to cancel the scheduled action (best effort). + or is null. + + + + Schedules an action to be executed. + + Scheduler to execute the action on. + A state object to be passed to . + Action to execute. + The disposable object used to cancel the scheduled action (best effort). + or is null. + + + + Schedules an action to be executed. + + Scheduler to execute the action on. + A state object to be passed to . + Action to execute. + The disposable object used to cancel the scheduled action (best effort). + or is null. + + + + Schedules an action to be executed after the specified relative due time. + + Scheduler to execute the action on. + Action to execute. + Relative time after which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + or is null. + + + + Schedules an action to be executed after the specified relative due time. + + Scheduler to execute the action on. + Action to execute. + A state object to be passed to . + Relative time after which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + or is null. + + + + Schedules an action to be executed after the specified relative due time. + + Scheduler to execute the action on. + Action to execute. + A state object to be passed to . + Relative time after which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + or is null. + + + + Schedules an action to be executed at the specified absolute due time. + + Scheduler to execute the action on. + Action to execute. + Absolute time at which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + or is null. + + + + Schedules an action to be executed after the specified relative due time. + + Scheduler to execute the action on. + Action to execute. + A state object to be passed to . + Relative time after which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + or is null. + + + + Schedules an action to be executed after the specified relative due time. + + Scheduler to execute the action on. + Action to execute. + A state object to be passed to . + Relative time after which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + or is null. + + + + Schedules an action to be executed. + + Scheduler to execute the action on. + Action to execute. + The disposable object used to cancel the scheduled action (best effort). + or is null. + + + + Returns a scheduler that represents the original scheduler, without any of its interface-based optimizations (e.g. long running scheduling). + + Scheduler to disable all optimizations for. + Proxy to the original scheduler but without any optimizations enabled. + is null. + + + + Returns a scheduler that represents the original scheduler, without the specified set of interface-based optimizations (e.g. long running scheduling). + + Scheduler to disable the specified optimizations for. + Types of the optimization interfaces that have to be disabled. + Proxy to the original scheduler but without the specified optimizations enabled. + or is null. + + + + Returns a scheduler that wraps the original scheduler, adding exception handling for scheduled actions. + + Type of the exception to check for. + Scheduler to apply an exception filter for. + Handler that's run if an exception is caught. The exception will be rethrown if the handler returns false. + Wrapper around the original scheduler, enforcing exception handling. + or is null. + + + + Represents an awaitable scheduler operation. Awaiting the object causes the continuation to be posted back to the originating scheduler's work queue. + + + + + Controls whether the continuation is run on the originating synchronization context (false by default). + + true to run the continuation on the captured synchronization context; false otherwise (default). + Scheduler operation object with configured await behavior. + + + + Gets an awaiter for the scheduler operation, used to post back the continuation. + + Awaiter for the scheduler operation. + + + + (Infrastructure) Scheduler operation awaiter type used by the code generated for C# await and Visual Basic Await expressions. + + + + + Indicates whether the scheduler operation has completed. Returns false unless cancellation was already requested. + + + + + Completes the scheduler operation, throwing an OperationCanceledException in case cancellation was requested. + + + + + Registers the continuation with the scheduler operation. + + Continuation to be run on the originating scheduler. + + + + Efficient scheduler queue that maintains scheduled items sorted by absolute time. + + Absolute time representation type. + This type is not thread safe; users should ensure proper synchronization. + + + + Creates a new scheduler queue with a default initial capacity. + + + + + Creates a new scheduler queue with the specified initial capacity. + + Initial capacity of the scheduler queue. + is less than zero. + + + + Gets the number of scheduled items in the scheduler queue. + + + + + Enqueues the specified work item to be scheduled. + + Work item to be scheduled. + + + + Removes the specified work item from the scheduler queue. + + Work item to be removed from the scheduler queue. + true if the item was found; false otherwise. + + + + Dequeues the next work item from the scheduler queue. + + Next work item in the scheduler queue (removed). + + + + Peeks the next work item in the scheduler queue. + + Next work item in the scheduler queue (not removed). + + + + Provides basic synchronization and scheduling services for observable sequences. + + + + + Wraps the source sequence in order to run its subscription and unsubscription logic on the specified scheduler. + + The type of the elements in the source sequence. + Source sequence. + Scheduler to perform subscription and unsubscription actions on. + The source sequence whose subscriptions and unsubscriptions happen on the specified scheduler. + or is null. + + Only the side-effects of subscribing to the source sequence and disposing subscriptions to the source sequence are run on the specified scheduler. + In order to invoke observer callbacks on the specified scheduler, e.g. to offload callback processing to a dedicated thread, use . + + + + + Wraps the source sequence in order to run its subscription and unsubscription logic on the specified synchronization context. + + The type of the elements in the source sequence. + Source sequence. + Synchronization context to perform subscription and unsubscription actions on. + The source sequence whose subscriptions and unsubscriptions happen on the specified synchronization context. + or is null. + + Only the side-effects of subscribing to the source sequence and disposing subscriptions to the source sequence are run on the specified synchronization context. + In order to invoke observer callbacks on the specified synchronization context, e.g. to post callbacks to a UI thread represented by the synchronization context, use . + + + + + Wraps the source sequence in order to run its observer callbacks on the specified scheduler. + + The type of the elements in the source sequence. + Source sequence. + Scheduler to notify observers on. + The source sequence whose observations happen on the specified scheduler. + or is null. + + + + Wraps the source sequence in order to run its observer callbacks on the specified synchronization context. + + The type of the elements in the source sequence. + Source sequence. + Synchronization context to notify observers on. + The source sequence whose observations happen on the specified synchronization context. + or is null. + + + + Wraps the source sequence in order to ensure observer callbacks are properly serialized. + + The type of the elements in the source sequence. + Source sequence. + The source sequence whose outgoing calls to observers are synchronized. + is null. + + + + Wraps the source sequence in order to ensure observer callbacks are synchronized using the specified gate object. + + The type of the elements in the source sequence. + Source sequence. + Gate object to synchronize each observer call on. + The source sequence whose outgoing calls to observers are synchronized on the given gate object. + or is null. + + + + The new ObserveOn operator run with an IScheduler in a lock-free manner. + + + + + The new ObserveOn operator run with an ISchedulerLongRunning in a mostly lock-free manner. + + + + + Represents an object that schedules units of work on a provided . + + + + + Creates an object that schedules units of work on the provided . + + Synchronization context to schedule units of work on. + is null. + + + + Creates an object that schedules units of work on the provided . + + Synchronization context to schedule units of work on. + Configures whether scheduling always posts to the synchronization context, regardless whether the caller is on the same synchronization context. + is null. + + + + Schedules an action to be executed. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Schedules an action to be executed after dueTime. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + Relative time after which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Represents an object that schedules units of work on the Task Parallel Library (TPL) task pool. + + Instance of this type using the default TaskScheduler to schedule work on the TPL task pool. + + + + Creates an object that schedules units of work using the provided . + + Task factory used to create tasks to run units of work. + is null. + + + + Gets an instance of this scheduler that uses the default . + + + + + Schedules an action to be executed. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Schedules an action to be executed after dueTime. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + Relative time after which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Schedules a long-running task by creating a new task using TaskCreationOptions.LongRunning. Cancellation happens through polling. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Gets a new stopwatch object. + + New stopwatch object; started at the time of the request. + + + + Schedules a periodic piece of work by running a platform-specific timer to create tasks periodically. + + The type of the state passed to the scheduled action. + Initial state passed to the action upon the first iteration. + Period for running the work periodically. + Action to be executed, potentially updating the state. + The disposable object used to cancel the scheduled recurring action (best effort). + is null. + is less than . + + + + Represents an object that schedules units of work on the CLR thread pool. + + Singleton instance of this type exposed through this static property. + + + + Gets the singleton instance of the CLR thread pool scheduler. + + + + + Schedules an action to be executed. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Schedules an action to be executed after dueTime, using a System.Threading.Timer object. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + Relative time after which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Schedules a long-running task by creating a new thread. Cancellation happens through polling. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Starts a new stopwatch object. + + New stopwatch object; started at the time of the request. + + + + Schedules a periodic piece of work, using a System.Threading.Timer object. + + The type of the state passed to the scheduled action. + Initial state passed to the action upon the first iteration. + Period for running the work periodically. + Action to be executed, potentially updating the state. + The disposable object used to cancel the scheduled recurring action (best effort). + is null. + is less than zero. + + + + Base class for virtual time schedulers. + + Absolute time representation type. + Relative time representation type. + + + + Creates a new virtual time scheduler with the default value of TAbsolute as the initial clock value. + + + + + Creates a new virtual time scheduler with the specified initial clock value and absolute time comparer. + + Initial value for the clock. + Comparer to determine causality of events based on absolute time. + is null. + + + + Adds a relative time value to an absolute time value. + + Absolute time value. + Relative time value to add. + The resulting absolute time sum value. + + + + Converts the absolute time value to a DateTimeOffset value. + + Absolute time value to convert. + The corresponding DateTimeOffset value. + + + + Converts the TimeSpan value to a relative time value. + + TimeSpan value to convert. + The corresponding relative time value. + + + + Gets whether the scheduler is enabled to run work. + + + + + Gets the comparer used to compare absolute time values. + + + + + Schedules an action to be executed at dueTime. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Absolute time at which to execute the action. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + + + + Schedules an action to be executed at dueTime. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Relative time after which to execute the action. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + + + + Schedules an action to be executed. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Schedules an action to be executed after dueTime. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Relative time after which to execute the action. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Schedules an action to be executed at dueTime. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Absolute time at which to execute the action. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Starts the virtual time scheduler. + + + + + Stops the virtual time scheduler. + + + + + Advances the scheduler's clock to the specified time, running all work till that point. + + Absolute time to advance the scheduler's clock to. + is in the past. + The scheduler is already running. VirtualTimeScheduler doesn't support running nested work dispatch loops. To simulate time slippage while running work on the scheduler, use . + + + + Advances the scheduler's clock by the specified relative time, running all work scheduled for that timespan. + + Relative time to advance the scheduler's clock by. + is negative. + The scheduler is already running. VirtualTimeScheduler doesn't support running nested work dispatch loops. To simulate time slippage while running work on the scheduler, use . + + + + Advances the scheduler's clock by the specified relative time. + + Relative time to advance the scheduler's clock by. + is negative. + + + + Gets the scheduler's absolute time clock value. + + + + + Gets the scheduler's notion of current time. + + + + + Gets the next scheduled item to be executed. + + The next scheduled item. + + + + Discovers scheduler services by interface type. The base class implementation supports + only the IStopwatchProvider service. To influence service discovery - such as adding + support for other scheduler services - derived types can override this method. + + Scheduler service interface type to discover. + Object implementing the requested service, if available; null otherwise. + + + + Starts a new stopwatch object. + + New stopwatch object; started at the time of the request. + + + + Base class for virtual time schedulers using a priority queue for scheduled items. + + Absolute time representation type. + Relative time representation type. + + + + Creates a new virtual time scheduler with the default value of TAbsolute as the initial clock value. + + + + + Creates a new virtual time scheduler. + + Initial value for the clock. + Comparer to determine causality of events based on absolute time. + is null. + + + + Gets the next scheduled item to be executed. + + The next scheduled item. + + + + Schedules an action to be executed at dueTime. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + Absolute time at which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Provides a set of extension methods for virtual time scheduling. + + + + + Schedules an action to be executed at . + + Absolute time representation type. + Relative time representation type. + Scheduler to execute the action on. + Relative time after which to execute the action. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + or is null. + + + + Schedules an action to be executed at . + + Absolute time representation type. + Relative time representation type. + Scheduler to execute the action on. + Absolute time at which to execute the action. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + or is null. + + + + The System.Reactive.Concurrency namespace contains interfaces and classes that provide the scheduler infrastructure used by Reactive Extensions to construct and + process event streams. Schedulers are used to parameterize the concurrency introduced by query operators, provide means to virtualize time, to process historical data, + and to write unit tests for functionality built using Reactive Extensions constructs. + + + + + Represents an object that schedules units of work on the message loop associated with a Windows Forms control. + + + + + Constructs a ControlScheduler that schedules units of work on the message loop associated with the specified Windows Forms control. + + Windows Forms control to get the message loop from. + is null. + + This scheduler type is typically used indirectly through the and method overloads that take a Windows Forms control. + + + + + Gets the control associated with the ControlScheduler. + + + + + Schedules an action to be executed on the message loop associated with the control. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Schedules an action to be executed after dueTime on the message loop associated with the control, using a Windows Forms Timer object. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + Relative time after which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Schedules a periodic piece of work on the message loop associated with the control, using a Windows Forms Timer object. + + The type of the state passed to the scheduled action. + Initial state passed to the action upon the first iteration. + Period for running the work periodically. + Action to be executed, potentially updating the state. + The disposable object used to cancel the scheduled recurring action (best effort). + is null. + is less than one millisecond. + + + + Represents an object that schedules units of work on a . + + + This scheduler type is typically used indirectly through the and methods that use the Dispatcher on the calling thread. + + + + + Gets the scheduler that schedules work on the current . + + + + + Gets the scheduler that schedules work on the for the current thread. + + + + + Constructs a that schedules units of work on the given . + + to schedule work on. + is null. + + + + Constructs a that schedules units of work on the given at the given priority. + + to schedule work on. + Priority at which units of work are scheduled. + is null. + + + + Gets the associated with the . + + + + + Gets the priority at which work items will be dispatched. + + + + + Schedules an action to be executed on the dispatcher. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Schedules an action to be executed after on the dispatcher, using a object. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + Relative time after which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Schedules a periodic piece of work on the dispatcher, using a object. + + The type of the state passed to the scheduled action. + Initial state passed to the action upon the first iteration. + Period for running the work periodically. + Action to be executed, potentially updating the state. + The disposable object used to cancel the scheduled recurring action (best effort). + is null. + is less than . + + + + Represents an Action-based disposable. + + + + + Constructs a new disposable with the given action used for disposal. + + Disposal action which will be run upon calling Dispose. + + + + Gets a value that indicates whether the object is disposed. + + + + + Calls the disposal action if and only if the current instance hasn't been disposed yet. + + + + + Represents a Action-based disposable that can hold onto some state. + + + + + Constructs a new disposable with the given action used for disposal. + + The state to be passed to the disposal action. + Disposal action which will be run upon calling Dispose. + + + + Gets a value that indicates whether the object is disposed. + + + + + Calls the disposal action if and only if the current instance hasn't been disposed yet. + + + + + Represents a disposable resource that can be checked for disposal status. + + + + + Initializes a new instance of the class. + + + + + Gets a value that indicates whether the object is disposed. + + + + + Sets the status to disposed, which can be observer through the property. + + + + + Represents a disposable resource that has an associated that will be set to the cancellation requested state upon disposal. + + + + + Initializes a new instance of the class that uses an existing . + + used for cancellation. + is null. + + + + Initializes a new instance of the class that uses a new . + + + + + Gets the used by this . + + + + + Cancels the underlying . + + + + + Gets a value that indicates whether the object is disposed. + + + + + Represents a group of disposable resources that are disposed together. + + + + + Initializes a new instance of the class with no disposables contained by it initially. + + + + + Initializes a new instance of the class with the specified number of disposables. + + The number of disposables that the new CompositeDisposable can initially store. + is less than zero. + + + + Initializes a new instance of the class from a group of disposables. + + Disposables that will be disposed together. + is null. + Any of the disposables in the collection is null. + + + + Initializes a new instance of the class from a group of disposables. + + Disposables that will be disposed together. + is null. + Any of the disposables in the collection is null. + + + + Gets the number of disposables contained in the . + + + + + Adds a disposable to the or disposes the disposable if the is disposed. + + Disposable to add. + is null. + + + + Removes and disposes the first occurrence of a disposable from the . + + Disposable to remove. + true if found; false otherwise. + is null. + + + + Disposes all disposables in the group and removes them from the group. + + + + + Removes and disposes all disposables from the , but does not dispose the . + + + + + Determines whether the contains a specific disposable. + + Disposable to search for. + true if the disposable was found; otherwise, false. + is null. + + + + Copies the disposables contained in the to an array, starting at a particular array index. + + Array to copy the contained disposables to. + Target index at which to copy the first disposable of the group. + is null. + is less than zero. -or - is larger than or equal to the array length. + + + + Always returns false. + + + + + Returns an enumerator that iterates through the . + + An enumerator to iterate over the disposables. + + + + Returns an enumerator that iterates through the . + + An enumerator to iterate over the disposables. + + + + Gets a value that indicates whether the object is disposed. + + + + + An empty enumerator for the + method to avoid allocation on disposed or empty composites. + + + + + An enumerator for an array of disposables. + + + + + Represents a disposable resource whose disposal invocation will be posted to the specified . + + + + + Initializes a new instance of the class that uses the specified on which to dispose the specified disposable resource. + + Context to perform disposal on. + Disposable whose Dispose operation to run on the given synchronization context. + or is null. + + + + Gets the provided . + + + + + Gets a value that indicates whether the object is disposed. + + + + + Disposes the underlying disposable on the provided . + + + + + Provides a set of static methods for creating objects. + + + + + Represents a disposable that does nothing on disposal. + + + + + Singleton default disposable. + + + + + Does nothing. + + + + + Gets the disposable that does nothing when disposed. + + + + + Creates a disposable object that invokes the specified action when disposed. + + Action to run during the first call to . The action is guaranteed to be run at most once. + The disposable object that runs the given action upon disposal. + is null. + + + + Creates a disposable object that invokes the specified action when disposed. + + The state to be passed to the action. + Action to run during the first call to . The action is guaranteed to be run at most once. + The disposable object that runs the given action upon disposal. + is null. + + + + Gets the value stored in or a null if + was already disposed. + + + + + Gets the value stored in or a no-op-Disposable if + was already disposed. + + + + + Tries to assign to . + + A value indicating the outcome of the operation. + + + + Tries to assign to . If + is not disposed and is assigned a different value, it will not be disposed. + + true if was successfully assigned to . + false has been disposed. + + + + Tries to assign to . If + is not disposed and is assigned a different value, it will be disposed. + + true if was successfully assigned to . + false has been disposed. + + + + Disposes . + + + + + Disposable resource with disposal state tracking. + + + + + Gets a value that indicates whether the object is disposed. + + + + + Represents a disposable resource whose underlying disposable resource can be swapped for another disposable resource. + + + + + Initializes a new instance of the class with no current underlying disposable. + + + + + Gets a value that indicates whether the object is disposed. + + + + + Gets or sets the underlying disposable. After disposal, the result of getting this property is undefined. + + If the has already been disposed, assignment to this property causes immediate disposal of the given disposable object. + + + + Disposes the underlying disposable as well as all future replacements. + + + + + Represents a disposable resource whose underlying disposable resource can be swapped for another disposable resource. + + + + + Gets a value that indicates whether the object is disposed. + + + + + Gets or sets the underlying disposable. After disposal, the result of getting this property is undefined. + + If the has already been disposed, assignment to this property causes immediate disposal of the given disposable object. + + + + Disposes the underlying disposable as well as all future replacements. + + + + + Represents a disposable resource that only disposes its underlying disposable resource when all dependent disposable objects have been disposed. + + + + + Holds the number of active child disposables and the + indicator bit (31) if the main _disposable has been marked + for disposition. + + + + + Initializes a new instance of the class with the specified disposable. + + Underlying disposable. + is null. + + + + Initializes a new instance of the class with the specified disposable. + + Underlying disposable. + Indicates whether subsequent calls to should throw when this instance is disposed. + is null. + + + + Gets a value that indicates whether the object is disposed. + + + + + Returns a dependent disposable that when disposed decreases the refcount on the underlying disposable. + + A dependent disposable contributing to the reference count that manages the underlying disposable's lifetime. + This instance has been disposed and is configured to throw in this case by . + + + + Disposes the underlying disposable only when all dependent disposables have been disposed. + + + + + Represents a disposable resource whose disposal invocation will be scheduled on the specified . + + + + + Initializes a new instance of the class that uses an on which to dispose the disposable. + + Scheduler where the disposable resource will be disposed on. + Disposable resource to dispose on the given scheduler. + or is null. + + + + Gets the scheduler where the disposable resource will be disposed on. + + + + + Gets the underlying disposable. After disposal, the result is undefined. + + + + + Gets a value that indicates whether the object is disposed. + + + + + Disposes the wrapped disposable on the provided scheduler. + + + + + Represents a disposable resource whose underlying disposable resource can be replaced by another disposable resource, causing automatic disposal of the previous underlying disposable resource. + + + + + Initializes a new instance of the class. + + + + + Gets a value that indicates whether the object is disposed. + + + + + Gets or sets the underlying disposable. + + If the SerialDisposable has already been disposed, assignment to this property causes immediate disposal of the given disposable object. Assigning this property disposes the previous disposable object. + + + + Disposes the underlying disposable as well as all future replacements. + + + + + Represents a disposable resource whose underlying disposable resource can be replaced by another disposable resource, causing automatic disposal of the previous underlying disposable resource. + + + + + Gets a value that indicates whether the object is disposed. + + + + + Gets or sets the underlying disposable. + + If the SerialDisposable has already been disposed, assignment to this property causes immediate disposal of the given disposable object. Assigning this property disposes the previous disposable object. + + + + Disposes the underlying disposable as well as all future replacements. + + + + + Represents a disposable resource which only allows a single assignment of its underlying disposable resource. + If an underlying disposable resource has already been set, future attempts to set the underlying disposable resource will throw an . + + + + + Initializes a new instance of the class. + + + + + Gets a value that indicates whether the object is disposed. + + + + + Gets or sets the underlying disposable. After disposal, the result of getting this property is undefined. + + Thrown if the has already been assigned to. + + + + Disposes the underlying disposable. + + + + + Represents a disposable resource which only allows a single assignment of its underlying disposable resource. + If an underlying disposable resource has already been set, future attempts to set the underlying disposable resource will throw an . + + + + + Gets a value that indicates whether the object is disposed. + + + + + Gets or sets the underlying disposable. After disposal, the result of getting this property is undefined. + + Thrown if the has already been assigned to. + + + + Disposes the underlying disposable. + + + + + Represents a group of disposable resources that are disposed together. + + + + + Creates a new group containing two disposable resources that are disposed together. + + The first disposable resource to add to the group. + The second disposable resource to add to the group. + Group of disposable resources that are disposed together. + + + + Creates a new group of disposable resources that are disposed together. + + Disposable resources to add to the group. + Group of disposable resources that are disposed together. + + + + Creates a group of disposable resources that are disposed together + and without copying or checking for nulls inside the group. + + The array of disposables that is trusted + to not contain nulls and gives no need to defensively copy it. + Group of disposable resources that are disposed together. + + + + Creates a new group of disposable resources that are disposed together. + + Disposable resources to add to the group. + Group of disposable resources that are disposed together. + + + + Disposes all disposables in the group. + + + + + Gets a value that indicates whether the object is disposed. + + + + + A stable composite that doesn't do defensive copy of + the input disposable array nor checks it for null. + + + + + The System.Reactive.Disposables namespace contains interfaces and classes that provide a compositional set of constructs used to deal with resource and subscription + management in Reactive Extensions. Those types are used extensively within the implementation of Reactive Extensions and are useful when writing custom query operators or + schedulers. + + + + + Provides access to the platform enlightenments used by other Rx libraries to improve system performance and + runtime efficiency. While Rx can run without platform enlightenments loaded, it's recommended to deploy the + System.Reactive.PlatformServices assembly with your application and call during + application startup to ensure enlightenments are properly loaded. + + + + + Ensures that the calling assembly has a reference to the System.Reactive.PlatformServices assembly with + platform enlightenments. If no reference is made from the user code, it's possible for the build process + to drop the deployment of System.Reactive.PlatformServices, preventing its runtime discovery. + + + true if the loaded enlightenment provider matches the provided defined in the current assembly; false + otherwise. When a custom enlightenment provider is installed by the host, false will be returned. + + + + + (Infrastructure) Provider for platform-specific framework enlightenments. + + + + + (Infrastructure) Tries to gets the specified service. + + Service type. + Optional set of arguments. + Service instance or null if not found. + + + + (Infrastructure) Services to rethrow exceptions. + + + This type is used by the Rx infrastructure and not meant for public consumption or implementation. + No guarantees are made about forward compatibility of the type's functionality and its usage. + + + + + Rethrows the specified exception. + + Exception to rethrow. + + + + (Infrastructure) Provides access to the host's lifecycle management services. + + + + + Event that gets raised when the host suspends the application. + + + + + Event that gets raised when the host resumes the application. + + + + + Adds a reference to the host lifecycle manager, causing it to be sending notifications. + + + + + Removes a reference to the host lifecycle manager, causing it to stop sending notifications + if the removed reference was the last one. + + + + + (Infrastructure) Provides notifications about the host's lifecycle events. + + + + + Event that gets raised when the host suspends. + + + + + Event that gets raised when the host resumes. + + + + + (Infrastructure) Event arguments for host suspension events. + + + + + (Infrastructure) Event arguments for host resumption events. + + + + + (Infrastructure) Interface for enlightenment providers. + + + This type is used by the Rx infrastructure and not meant for public consumption or implementation. + No guarantees are made about forward compatibility of the type's functionality and its usage. + + + + + (Infrastructure) Tries to gets the specified service. + + Service type. + Optional set of arguments. + Service instance or null if not found. + + + + (Infrastructure) Provider for platform-specific framework enlightenments. + + + This type is used by the Rx infrastructure and not meant for public consumption or implementation. + + + + + (Infrastructure) Gets the current enlightenment provider. If none is loaded yet, accessing this property triggers provider resolution. + + + This member is used by the Rx infrastructure and not meant for public consumption or implementation. + + + + + (Infrastructure) Provides access to local system clock services. + + + This type is used by the Rx infrastructure and not meant for public consumption or implementation. + No guarantees are made about forward compatibility of the type's functionality and its usage. + + + + + Gets the local system clock time. + + + + + Adds a reference to the system clock monitor, causing it to be sending notifications. + + Thrown when the system doesn't support sending clock change notifications. + + + + Removes a reference to the system clock monitor, causing it to stop sending notifications + if the removed reference was the last one. + + + + + (Infrastructure) Provides access to the local system clock. + + + This type is used by the Rx infrastructure and not meant for public consumption or implementation. + No guarantees are made about forward compatibility of the type's functionality and its usage. + + + + + Gets the current time. + + + + + (Infrastructure) Provides a mechanism to notify local schedulers about system clock changes. + + + This type is used by the Rx infrastructure and not meant for public consumption or implementation. + No guarantees are made about forward compatibility of the type's functionality and its usage. + + + + + Event that gets raised when a system clock change is detected. + + + + + (Infrastructure) Event arguments for system clock change notifications. + + + This type is used by the Rx infrastructure and not meant for public consumption or implementation. + No guarantees are made about forward compatibility of the type's functionality and its usage. + + + + + Creates a new system clock notification object with unknown old and new times. + + + + + Creates a new system clock notification object with the specified old and new times. + + Time before the system clock changed, or DateTimeOffset.MinValue if not known. + Time after the system clock changed, or DateTimeOffset.MaxValue if not known. + + + + Gets the time before the system clock changed, or DateTimeOffset.MinValue if not known. + + + + + Gets the time after the system clock changed, or DateTimeOffset.MaxValue if not known. + + + + + (Infrastructure) Provides access to the local system clock. + + + + + Gets the current time. + + + + + (Infrastructure) Monitors for system clock changes based on a periodic timer. + + + + + Use the Unix milliseconds for the current time + so it can be atomically read/written without locking. + + + + + Creates a new monitor for system clock changes with the specified polling frequency. + + Polling frequency for system clock changes. + + + + Event that gets raised when a system clock change is detected. + + + + + The System.Reactive.PlatformServices namespace contains interfaces and classes used by the runtime infrastructure of Reactive Extensions. + Those are not intended to be used directly from user code and are subject to change in future releases of the product. + + + + + Represents a .NET event invocation consisting of the weakly typed object that raised the event and the data that was generated by the event. + + The type of the event data generated by the event. + + + + Creates a new data representation instance of a .NET event invocation with the given sender and event data. + + The sender object that raised the event. + The event data that was generated by the event. + + + + Represents a .NET event invocation consisting of the strongly typed object that raised the event and the data that was generated by the event. + + The type of the sender that raised the event. + The type of the event data generated by the event. + + + + Creates a new data representation instance of a .NET event invocation with the given sender and event data. + + The sender object that raised the event. + The event data that was generated by the event. + + + + Gets the sender object that raised the event. + + + + + Gets the event data that was generated by the event. + + + + + Deconstructs the event pattern value into a sender and event data. + + The sender object that raised the event. + The event data that was generated by the event. + + + + Determines whether the current object represents the same event as a specified object. + + An object to compare to the current object. + true if both objects represent the same event; otherwise, false. + + + + Determines whether the specified System.Object is equal to the current . + + The System.Object to compare with the current . + true if the specified System.Object is equal to the current ; otherwise, false. + + + + Returns the hash code for the current instance. + + A hash code for the current instance. + + + + Determines whether two specified objects represent the same event. + + The first to compare, or null. + The second to compare, or null. + true if both objects represent the same event; otherwise, false. + + + + Determines whether two specified objects represent a different event. + + The first to compare, or null. + The second to compare, or null. + true if both objects don't represent the same event; otherwise, false. + + + + Base class for classes that expose an observable sequence as a well-known event pattern (sender, event arguments). + Contains functionality to maintain a map of event handler delegates to observable sequence subscriptions. Subclasses + should only add an event with custom add and remove methods calling into the base class's operations. + + The type of the sender that raises the event. + The type of the event data generated by the event. + + + + Creates a new event pattern source. + + Source sequence to expose as an event. + Delegate used to invoke the event for each element of the sequence. + or is null. + + + + Adds the specified event handler, causing a subscription to the underlying source. + + Event handler to add. The same delegate should be passed to the operation in order to remove the event handler. + Invocation delegate to raise the event in the derived class. + or is null. + + + + Removes the specified event handler, causing a disposal of the corresponding subscription to the underlying source that was created during the operation. + + Event handler to remove. This should be the same delegate as one that was passed to the operation. + is null. + + + + Marks the program elements that are experimental. This class cannot be inherited. + + + + + Represents a .NET event invocation consisting of the strongly typed object that raised the event and the data that was generated by the event. + + + The type of the sender that raised the event. + This type parameter is covariant. That is, you can use either the type you specified or any type that is more derived. For more information about covariance and contravariance, see Covariance and Contravariance in Generics. + + + The type of the event data generated by the event. + This type parameter is covariant. That is, you can use either the type you specified or any type that is more derived. For more information about covariance and contravariance, see Covariance and Contravariance in Generics. + + + + + Gets the sender object that raised the event. + + + + + Gets the event data that was generated by the event. + + + + + Represents a data stream signaling its elements by means of an event. + + The type of the event data generated by the event. + + + + Event signaling the next element in the data stream. + + + + + Represents a data stream signaling its elements by means of an event. + + + The type of the event data generated by the event. + This type parameter is covariant. That is, you can use either the type you specified or any type that is more derived. For more information about covariance and contravariance, see Covariance and Contravariance in Generics. + + + + + Event signaling the next element in the data stream. + + + + + Utility methods to handle lock-free combining of Exceptions + as well as hosting a terminal-exception indicator for + lock-free termination support. + + + + + The singleton instance of the exception indicating a terminal state, + DO NOT LEAK or signal this via OnError! + + + + + Tries to atomically set the Exception on the given field if it is + still null. + + The target field to try to set atomically. + The exception to set, not null (not verified). + True if the operation succeeded, false if the target was not null. + + + + Utility methods for dealing with serializing OnXXX signals + for an IObserver where concurrent OnNext is still not allowed + but concurrent OnError/OnCompleted may happen. + This serialization case is generally lower overhead than + a full SerializedObserver wrapper and doesn't need + allocation. + + + + + Signals the given item to the observer in a serialized fashion + allowing a concurrent OnError or OnCompleted emission to be delayed until + the observer.OnNext returns. + Do not call OnNext from multiple threads as it may lead to ignored items. + Use a full SerializedObserver wrapper for merging multiple sequences. + + The element type of the observer. + The observer to signal events in a serialized fashion. + The item to signal. + Indicates there is an emission going on currently. + The field containing an error or terminal indicator. + + + + Signals the given exception to the observer. If there is a concurrent + OnNext emission is happening, saves the exception into the given field + otherwise to be picked up by . + This method can be called concurrently with itself and the other methods of this + helper class but only one terminal signal may actually win. + + The element type of the observer. + The observer to signal events in a serialized fashion. + The exception to signal sooner or later. + Indicates there is an emission going on currently. + The field containing an error or terminal indicator. + + + + Signals OnCompleted on the observer. If there is a concurrent + OnNext emission happening, the error field will host a special + terminal exception signal to be picked up by once it finishes with OnNext and signal the + OnCompleted as well. + This method can be called concurrently with itself and the other methods of this + helper class but only one terminal signal may actually win. + + The element type of the observer. + The observer to signal events in a serialized fashion. + Indicates there is an emission going on currently. + The field containing an error or terminal indicator. + + + + Base interface for observers that can dispose of a resource on a terminal notification + or when disposed itself. + + + + + + Interface with variance annotation; allows for better type checking when detecting capabilities in SubscribeSafe. + + Type of the resulting sequence's elements. + + + + Base class for implementation of query operators, providing performance benefits over the use of Observable.Create. + + Type of the resulting sequence's elements. + + + + Publicly visible Subscribe method. + + Observer to send notifications on. The implementation of a producer must ensure the correct message grammar on the observer. + IDisposable to cancel the subscription. This causes the underlying sink to be notified of unsubscription, causing it to prevent further messages from being sent to the observer. + + + + Core implementation of the query operator, called upon a new subscription to the producer object. + + Observer to send notifications on. The implementation of a producer must ensure the correct message grammar on the observer. + Disposable representing all the resources and/or subscriptions the operator uses to process events. + The observer passed in to this method is not protected using auto-detach behavior upon an OnError or OnCompleted call. The implementation must ensure proper resource disposal and enforce the message grammar. + + + + Publicly visible Subscribe method. + + Observer to send notifications on. The implementation of a producer must ensure the correct message grammar on the observer. + IDisposable to cancel the subscription. This causes the underlying sink to be notified of unsubscription, causing it to prevent further messages from being sent to the observer. + + + + Core implementation of the query operator, called upon a new subscription to the producer object. + + The sink object. + + + + Represents an observable sequence of elements that have a common key. + + + The type of the key shared by all elements in the group. + This type parameter is covariant. That is, you can use either the type you specified or any type that is more derived. For more information about covariance and contravariance, see Covariance and Contravariance in Generics. + + + The type of the elements in the group. + This type parameter is covariant. That is, you can use either the type you specified or any type that is more derived. For more information about covariance and contravariance, see Covariance and Contravariance in Generics. + + + + + Gets the common key. + + + + + Provides functionality to evaluate queries against a specific data source wherein the type of the data is known. + + + The type of the data in the data source. + This type parameter is covariant. That is, you can use either the type you specified or any type that is more derived. For more information about covariance and contravariance, see Covariance and Contravariance in Generics. + + + + + Provides functionality to evaluate queries against a specific data source wherein the type of the data is not specified. + + + + + Gets the type of the element(s) that are returned when the expression tree associated with this instance of IQbservable is executed. + + + + + Gets the expression tree that is associated with the instance of IQbservable. + + + + + Gets the query provider that is associated with this data source. + + + + + Defines methods to create and execute queries that are described by an IQbservable object. + + + + + Constructs an object that can evaluate the query represented by a specified expression tree. + + The type of the elements of the that is returned. + Expression tree representing the query. + IQbservable object that can evaluate the given query expression. + + + + Internal interface describing the LINQ to Events query language. + + + + + Internal interface describing the LINQ to Events query language. + + + + + Attribute applied to static classes providing expression tree forms of query methods, + mapping those to the corresponding methods for local query execution on the specified + target class type. + + + + + Creates a new mapping to the specified local execution query method implementation type. + + Type with query methods for local execution. + + + + Gets the type with the implementation of local query methods. + + + + + Provides a set of static methods for writing in-memory queries over observable sequences. + + + + + Applies an accumulator function over an observable sequence, returning the result of the aggregation as a single element in the result sequence. The specified seed value is used as the initial accumulator value. + For aggregation behavior with incremental intermediate results, see . + + The type of the elements in the source sequence. + The type of the result of the aggregation. + An observable sequence to aggregate over. + The initial accumulator value. + An accumulator function to be invoked on each element. + An observable sequence containing a single element with the final accumulator value. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Applies an accumulator function over an observable sequence, returning the result of the aggregation as a single element in the result sequence. The specified seed value is used as the initial accumulator value, + and the specified result selector function is used to select the result value. + + The type of the elements in the source sequence. + The type of the accumulator value. + The type of the resulting value. + An observable sequence to aggregate over. + The initial accumulator value. + An accumulator function to be invoked on each element. + A function to transform the final accumulator value into the result value. + An observable sequence containing a single element with the final accumulator value. + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Applies an accumulator function over an observable sequence, returning the result of the aggregation as a single element in the result sequence. + For aggregation behavior with incremental intermediate results, see . + + The type of the elements in the source sequence and the result of the aggregation. + An observable sequence to aggregate over. + An accumulator function to be invoked on each element. + An observable sequence containing a single element with the final accumulator value. + or is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Determines whether all elements of an observable sequence satisfy a condition. + + The type of the elements in the source sequence. + An observable sequence whose elements to apply the predicate to. + A function to test each element for a condition. + An observable sequence containing a single element determining whether all elements in the source sequence pass the test in the specified predicate. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Determines whether an observable sequence contains any elements. + + The type of the elements in the source sequence. + An observable sequence to check for non-emptiness. + An observable sequence containing a single element determining whether the source sequence contains any elements. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Determines whether any element of an observable sequence satisfies a condition. + + The type of the elements in the source sequence. + An observable sequence whose elements to apply the predicate to. + A function to test each element for a condition. + An observable sequence containing a single element determining whether any elements in the source sequence pass the test in the specified predicate. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values. + + A sequence of values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values. + is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values. + + A sequence of values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values. + is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values. + + A sequence of values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values. + is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values. + + A sequence of values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values. + is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values. + + A sequence of values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values. + is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of nullable values. + + A sequence of nullable values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of nullable values. + + A sequence of nullable values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of nullable values. + + A sequence of nullable values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of nullable values. + + A sequence of nullable values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + (Asynchronous) The sum of the elements in the source sequence is larger than . + + + + Computes the average of an observable sequence of nullable values. + + A sequence of nullable values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values. + or is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values. + or is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values. + or is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values. + or is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values. + or is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + or is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + or is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + or is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + or is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + or is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Determines whether an observable sequence contains a specified element by using the default equality comparer. + + The type of the elements in the source sequence. + An observable sequence in which to locate a value. + The value to locate in the source sequence. + An observable sequence containing a single element determining whether the source sequence contains an element that has the specified value. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Determines whether an observable sequence contains a specified element by using a specified System.Collections.Generic.IEqualityComparer{T}. + + The type of the elements in the source sequence. + An observable sequence in which to locate a value. + The value to locate in the source sequence. + An equality comparer to compare elements. + An observable sequence containing a single element determining whether the source sequence contains an element that has the specified value. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns an observable sequence containing an that represents the total number of elements in an observable sequence. + + The type of the elements in the source sequence. + An observable sequence that contains elements to be counted. + An observable sequence containing a single element with the number of elements in the input sequence. + is null. + (Asynchronous) The number of elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns an observable sequence containing an that represents how many elements in the specified observable sequence satisfy a condition. + + The type of the elements in the source sequence. + An observable sequence that contains elements to be counted. + A function to test each element for a condition. + An observable sequence containing a single element with a number that represents how many elements in the input sequence satisfy the condition in the predicate function. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the element at a specified index in a sequence. + + The type of the elements in the source sequence. + Observable sequence to return the element from. + The zero-based index of the element to retrieve. + An observable sequence that produces the element at the specified position in the source sequence. + is null. + is less than zero. + (Asynchronous) is greater than or equal to the number of elements in the source sequence. + + + + Returns the element at a specified index in a sequence or a default value if the index is out of range. + + The type of the elements in the source sequence. + Observable sequence to return the element from. + The zero-based index of the element to retrieve. + An observable sequence that produces the element at the specified position in the source sequence, or a default value if the index is outside the bounds of the source sequence. + is null. + is less than zero. + + + + Returns the first element of an observable sequence. + + The type of the elements in the source sequence. + Source observable sequence. + Sequence containing the first element in the observable sequence. + is null. + (Asynchronous) The source sequence is empty. + + + + Returns the first element of an observable sequence that satisfies the condition in the predicate. + + The type of the elements in the source sequence. + Source observable sequence. + A predicate function to evaluate for elements in the source sequence. + Sequence containing the first element in the observable sequence that satisfies the condition in the predicate. + or is null. + (Asynchronous) No element satisfies the condition in the predicate. -or- The source sequence is empty. + + + + Returns the first element of an observable sequence, or a default value if no such element exists. + + The type of the elements in the source sequence. + Source observable sequence. + Sequence containing the first element in the observable sequence, or a default value if no such element exists. + is null. + + + + Returns the first element of an observable sequence that satisfies the condition in the predicate, or a default value if no such element exists. + + The type of the elements in the source sequence. + Source observable sequence. + A predicate function to evaluate for elements in the source sequence. + Sequence containing the first element in the observable sequence that satisfies the condition in the predicate, or a default value if no such element exists. + or is null. + + + + Determines whether an observable sequence is empty. + + The type of the elements in the source sequence. + An observable sequence to check for emptiness. + An observable sequence containing a single element determining whether the source sequence is empty. + is null. + + + + Returns the last element of an observable sequence. + + The type of the elements in the source sequence. + Source observable sequence. + Sequence containing the last element in the observable sequence. + is null. + (Asynchronous) The source sequence is empty. + + + + Returns the last element of an observable sequence that satisfies the condition in the predicate. + + The type of the elements in the source sequence. + Source observable sequence. + A predicate function to evaluate for elements in the source sequence. + Sequence containing the last element in the observable sequence that satisfies the condition in the predicate. + or is null. + (Asynchronous) No element satisfies the condition in the predicate. -or- The source sequence is empty. + + + + Returns the last element of an observable sequence, or a default value if no such element exists. + + The type of the elements in the source sequence. + Source observable sequence. + Sequence containing the last element in the observable sequence, or a default value if no such element exists. + is null. + + + + Returns the last element of an observable sequence that satisfies the condition in the predicate, or a default value if no such element exists. + + The type of the elements in the source sequence. + Source observable sequence. + A predicate function to evaluate for elements in the source sequence. + Sequence containing the last element in the observable sequence that satisfies the condition in the predicate, or a default value if no such element exists. + or is null. + + + + Returns an observable sequence containing an that represents the total number of elements in an observable sequence. + + The type of the elements in the source sequence. + An observable sequence that contains elements to be counted. + An observable sequence containing a single element with the number of elements in the input sequence. + is null. + (Asynchronous) The number of elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns an observable sequence containing an that represents how many elements in the specified observable sequence satisfy a condition. + + The type of the elements in the source sequence. + An observable sequence that contains elements to be counted. + A function to test each element for a condition. + An observable sequence containing a single element with a number that represents how many elements in the input sequence satisfy the condition in the predicate function. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum element in an observable sequence. + + The type of the elements in the source sequence. + An observable sequence to determine the maximum element of. + An observable sequence containing a single element with the maximum element in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence according to the specified comparer. + + The type of the elements in the source sequence. + An observable sequence to determine the maximum element of. + Comparer used to compare elements. + An observable sequence containing a single element with the maximum element in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of values. + + A sequence of values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of values. + + A sequence of values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of values. + + A sequence of values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of values. + + A sequence of values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of values. + + A sequence of values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum value. + + The type of the elements in the source sequence. + The type of the objects derived from the elements in the source sequence to determine the maximum of. + An observable sequence to determine the minimum element of. + A transform function to apply to each element. + An observable sequence containing a single element with the value that corresponds to the maximum element in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum value according to the specified comparer. + + The type of the elements in the source sequence. + The type of the objects derived from the elements in the source sequence to determine the maximum of. + An observable sequence to determine the minimum element of. + A transform function to apply to each element. + Comparer used to compare elements. + An observable sequence containing a single element with the value that corresponds to the maximum element in the source sequence. + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the elements in an observable sequence with the maximum key value. + + The type of the elements in the source sequence. + The type of the key computed for each element in the source sequence. + An observable sequence to get the maximum elements for. + Key selector function. + An observable sequence containing a list of zero or more elements that have a maximum key value. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the elements in an observable sequence with the maximum key value according to the specified comparer. + + The type of the elements in the source sequence. + The type of the key computed for each element in the source sequence. + An observable sequence to get the maximum elements for. + Key selector function. + Comparer used to compare key values. + An observable sequence containing a list of zero or more elements that have a maximum key value. + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum element in an observable sequence. + + The type of the elements in the source sequence. + An observable sequence to determine the minimum element of. + An observable sequence containing a single element with the minimum element in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum element in an observable sequence according to the specified comparer. + + The type of the elements in the source sequence. + An observable sequence to determine the minimum element of. + Comparer used to compare elements. + An observable sequence containing a single element with the minimum element in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of values. + + A sequence of values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of values. + + A sequence of values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of values. + + A sequence of values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of values. + + A sequence of values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of values. + + A sequence of values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum value. + + The type of the elements in the source sequence. + The type of the objects derived from the elements in the source sequence to determine the minimum of. + An observable sequence to determine the minimum element of. + A transform function to apply to each element. + An observable sequence containing a single element with the value that corresponds to the minimum element in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum value according to the specified comparer. + + The type of the elements in the source sequence. + The type of the objects derived from the elements in the source sequence to determine the minimum of. + An observable sequence to determine the minimum element of. + A transform function to apply to each element. + Comparer used to compare elements. + An observable sequence containing a single element with the value that corresponds to the minimum element in the source sequence. + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the elements in an observable sequence with the minimum key value. + + The type of the elements in the source sequence. + The type of the key computed for each element in the source sequence. + An observable sequence to get the minimum elements for. + Key selector function. + An observable sequence containing a list of zero or more elements that have a minimum key value. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the elements in an observable sequence with the minimum key value according to the specified comparer. + + The type of the elements in the source sequence. + The type of the key computed for each element in the source sequence. + An observable sequence to get the minimum elements for. + Key selector function. + Comparer used to compare key values. + An observable sequence containing a list of zero or more elements that have a minimum key value. + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Determines whether two sequences are equal by comparing the elements pairwise. + + The type of the elements in the source sequence. + First observable sequence to compare. + Second observable sequence to compare. + An observable sequence that contains a single element which indicates whether both sequences are of equal length and their corresponding elements are equal according to the default equality comparer for their type. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Determines whether two sequences are equal by comparing the elements pairwise using a specified equality comparer. + + The type of the elements in the source sequence. + First observable sequence to compare. + Second observable sequence to compare. + Comparer used to compare elements of both sequences. + An observable sequence that contains a single element which indicates whether both sequences are of equal length and their corresponding elements are equal according to the specified equality comparer. + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Determines whether an observable and enumerable sequence are equal by comparing the elements pairwise. + + The type of the elements in the source sequence. + First observable sequence to compare. + Second observable sequence to compare. + An observable sequence that contains a single element which indicates whether both sequences are of equal length and their corresponding elements are equal according to the default equality comparer for their type. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Determines whether an observable and enumerable sequence are equal by comparing the elements pairwise using a specified equality comparer. + + The type of the elements in the source sequence. + First observable sequence to compare. + Second observable sequence to compare. + Comparer used to compare elements of both sequences. + An observable sequence that contains a single element which indicates whether both sequences are of equal length and their corresponding elements are equal according to the specified equality comparer. + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the only element of an observable sequence, and reports an exception if there is not exactly one element in the observable sequence. + + The type of the elements in the source sequence. + Source observable sequence. + Sequence containing the single element in the observable sequence. + is null. + (Asynchronous) The source sequence contains more than one element. -or- The source sequence is empty. + + + + Returns the only element of an observable sequence that satisfies the condition in the predicate, and reports an exception if there is not exactly one element in the observable sequence. + + The type of the elements in the source sequence. + Source observable sequence. + A predicate function to evaluate for elements in the source sequence. + Sequence containing the single element in the observable sequence that satisfies the condition in the predicate. + or is null. + (Asynchronous) No element satisfies the condition in the predicate. -or- More than one element satisfies the condition in the predicate. -or- The source sequence is empty. + + + + Returns the only element of an observable sequence, or a default value if the observable sequence is empty; this method reports an exception if there is more than one element in the observable sequence. + + The type of the elements in the source sequence. + Source observable sequence. + Sequence containing the single element in the observable sequence, or a default value if no such element exists. + is null. + (Asynchronous) The source sequence contains more than one element. + + + + Returns the only element of an observable sequence that matches the predicate, or a default value if no such element exists; this method reports an exception if there is more than one element in the observable sequence. + + The type of the elements in the source sequence. + Source observable sequence. + A predicate function to evaluate for elements in the source sequence. + Sequence containing the single element in the observable sequence that satisfies the condition in the predicate, or a default value if no such element exists. + or is null. + (Asynchronous) The sequence contains more than one element that satisfies the condition in the predicate. + + + + Computes the sum of a sequence of values. + + A sequence of values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of values. + + A sequence of values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of values. + + A sequence of values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + is null. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of values. + + A sequence of values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + is null. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of values. + + A sequence of values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + is null. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values. + + A sequence of nullable values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values. + + A sequence of nullable values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values. + + A sequence of nullable values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + is null. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values. + + A sequence of nullable values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + is null. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values. + + A sequence of nullable values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + is null. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + or is null. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + or is null. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + or is null. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + or is null. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + or is null. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + or is null. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates an array from an observable sequence. + + The type of the elements in the source sequence. + The source observable sequence to get an array of elements for. + An observable sequence containing a single element with an array containing all the elements of the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates a dictionary from an observable sequence according to a specified key selector function. + + The type of the elements in the source sequence. + The type of the dictionary key computed for each element in the source sequence. + An observable sequence to create a dictionary for. + A function to extract a key from each element. + An observable sequence containing a single element with a dictionary mapping unique key values onto the corresponding source sequence's element. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates a dictionary from an observable sequence according to a specified key selector function, and a comparer. + + The type of the elements in the source sequence. + The type of the dictionary key computed for each element in the source sequence. + An observable sequence to create a dictionary for. + A function to extract a key from each element. + An equality comparer to compare keys. + An observable sequence containing a single element with a dictionary mapping unique key values onto the corresponding source sequence's element. + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates a dictionary from an observable sequence according to a specified key selector function, and an element selector function. + + The type of the elements in the source sequence. + The type of the dictionary key computed for each element in the source sequence. + The type of the dictionary value computed for each element in the source sequence. + An observable sequence to create a dictionary for. + A function to extract a key from each element. + A transform function to produce a result element value from each element. + An observable sequence containing a single element with a dictionary mapping unique key values onto the corresponding source sequence's element. + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates a dictionary from an observable sequence according to a specified key selector function, a comparer, and an element selector function. + + The type of the elements in the source sequence. + The type of the dictionary key computed for each element in the source sequence. + The type of the dictionary value computed for each element in the source sequence. + An observable sequence to create a dictionary for. + A function to extract a key from each element. + A transform function to produce a result element value from each element. + An equality comparer to compare keys. + An observable sequence containing a single element with a dictionary mapping unique key values onto the corresponding source sequence's element. + or or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates a list from an observable sequence. + + The type of the elements in the source sequence. + The source observable sequence to get a list of elements for. + An observable sequence containing a single element with a list containing all the elements of the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates a lookup from an observable sequence according to a specified key selector function. + + The type of the elements in the source sequence. + The type of the lookup key computed for each element in the source sequence. + An observable sequence to create a lookup for. + A function to extract a key from each element. + An observable sequence containing a single element with a lookup mapping unique key values onto the corresponding source sequence's elements. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates a lookup from an observable sequence according to a specified key selector function, and a comparer. + + The type of the elements in the source sequence. + The type of the lookup key computed for each element in the source sequence. + An observable sequence to create a lookup for. + A function to extract a key from each element. + An equality comparer to compare keys. + An observable sequence containing a single element with a lookup mapping unique key values onto the corresponding source sequence's elements. + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates a lookup from an observable sequence according to a specified key selector function, and an element selector function. + + The type of the elements in the source sequence. + The type of the lookup key computed for each element in the source sequence. + The type of the lookup value computed for each element in the source sequence. + An observable sequence to create a lookup for. + A function to extract a key from each element. + A transform function to produce a result element value from each element. + An observable sequence containing a single element with a lookup mapping unique key values onto the corresponding source sequence's elements. + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates a lookup from an observable sequence according to a specified key selector function, a comparer, and an element selector function. + + The type of the elements in the source sequence. + The type of the lookup key computed for each element in the source sequence. + The type of the lookup value computed for each element in the source sequence. + An observable sequence to create a lookup for. + A function to extract a key from each element. + A transform function to produce a result element value from each element. + An equality comparer to compare keys. + An observable sequence containing a single element with a lookup mapping unique key values onto the corresponding source sequence's elements. + or or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The type of the eleventh argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The type of the eleventh argument passed to the begin delegate. + The type of the twelfth argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The type of the eleventh argument passed to the begin delegate. + The type of the twelfth argument passed to the begin delegate. + The type of the thirteenth argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The type of the eleventh argument passed to the begin delegate. + The type of the twelfth argument passed to the begin delegate. + The type of the thirteenth argument passed to the begin delegate. + The type of the fourteenth argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The type of the eleventh argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The type of the eleventh argument passed to the begin delegate. + The type of the twelfth argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The type of the eleventh argument passed to the begin delegate. + The type of the twelfth argument passed to the begin delegate. + The type of the thirteenth argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The type of the eleventh argument passed to the begin delegate. + The type of the twelfth argument passed to the begin delegate. + The type of the thirteenth argument passed to the begin delegate. + The type of the fourteenth argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Invokes the specified function asynchronously, surfacing the result through an observable sequence. + + The type of the result returned by the function. + Function to run asynchronously. + An observable sequence exposing the function's result value, or an exception. + is null. + + + The function is called immediately, not during the subscription of the resulting sequence. + Multiple subscriptions to the resulting sequence can observe the function's result. + + + + + + Invokes the specified function asynchronously on the specified scheduler, surfacing the result through an observable sequence + + The type of the result returned by the function. + Function to run asynchronously. + Scheduler to run the function on. + An observable sequence exposing the function's result value, or an exception. + or is null. + + + The function is called immediately, not during the subscription of the resulting sequence. + Multiple subscriptions to the resulting sequence can observe the function's result. + + + + + + Invokes the asynchronous function, surfacing the result through an observable sequence. + + The type of the result returned by the asynchronous function. + Asynchronous function to run. + An observable sequence exposing the function's result value, or an exception. + is null. + + + The function is started immediately, not during the subscription of the resulting sequence. + Multiple subscriptions to the resulting sequence can observe the function's result. + + + + + + Invokes the asynchronous function, surfacing the result through an observable sequence. + + The type of the result returned by the asynchronous function. + Asynchronous function to run. + Scheduler on which to notify observers. + An observable sequence exposing the function's result value, or an exception. + is null or is null. + + + The function is started immediately, not during the subscription of the resulting sequence. + Multiple subscriptions to the resulting sequence can observe the function's result. + + + + + + Invokes the asynchronous function, surfacing the result through an observable sequence. + The CancellationToken is shared by all subscriptions on the resulting observable sequence. See the remarks section for more information. + + The type of the result returned by the asynchronous function. + Asynchronous function to run. + An observable sequence exposing the function's result value, or an exception. + is null. + + + The function is started immediately, not during the subscription of the resulting sequence. + Multiple subscriptions to the resulting sequence can observe the function's result. + + If any subscription to the resulting sequence is disposed, the CancellationToken is set. The observer associated to the disposed + subscription won't see the TaskCanceledException, but other observers will. You can protect against this using the Catch operator. + Be careful when handing out the resulting sequence because of this behavior. The most common use is to have a single subscription + to the resulting sequence, which controls the CancellationToken state. Alternatively, you can control subscription behavior using + multicast operators. + + + + + + + Invokes the asynchronous function, surfacing the result through an observable sequence. + The CancellationToken is shared by all subscriptions on the resulting observable sequence. See the remarks section for more information. + + The type of the result returned by the asynchronous function. + Asynchronous function to run. + Scheduler on which to notify observers. + An observable sequence exposing the function's result value, or an exception. + is null or is null. + + + The function is started immediately, not during the subscription of the resulting sequence. + Multiple subscriptions to the resulting sequence can observe the function's result. + + If any subscription to the resulting sequence is disposed, the CancellationToken is set. The observer associated to the disposed + subscription won't see the TaskCanceledException, but other observers will. You can protect against this using the Catch operator. + Be careful when handing out the resulting sequence because of this behavior. The most common use is to have a single subscription + to the resulting sequence, which controls the CancellationToken state. Alternatively, you can control subscription behavior using + multicast operators. + + + + + + + Invokes the action asynchronously, surfacing the result through an observable sequence. + + Action to run asynchronously. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + is null. + + + The action is called immediately, not during the subscription of the resulting sequence. + Multiple subscriptions to the resulting sequence can observe the action's outcome. + + + + + + Invokes the action asynchronously on the specified scheduler, surfacing the result through an observable sequence. + + Action to run asynchronously. + Scheduler to run the action on. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + or is null. + + + The action is called immediately, not during the subscription of the resulting sequence. + Multiple subscriptions to the resulting sequence can observe the action's outcome. + + + + + + Invokes the asynchronous action, surfacing the result through an observable sequence. + + Asynchronous action to run. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + is null. + + + The action is started immediately, not during the subscription of the resulting sequence. + Multiple subscriptions to the resulting sequence can observe the action's outcome. + + + + + + Invokes the asynchronous action, surfacing the result through an observable sequence. + + Asynchronous action to run. + Scheduler on which to notify observers. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + is null or is null. + + + The action is started immediately, not during the subscription of the resulting sequence. + Multiple subscriptions to the resulting sequence can observe the action's outcome. + + + + + + Invokes the asynchronous action, surfacing the result through an observable sequence. + The CancellationToken is shared by all subscriptions on the resulting observable sequence. See the remarks section for more information. + + Asynchronous action to run. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + is null. + + + The action is started immediately, not during the subscription of the resulting sequence. + Multiple subscriptions to the resulting sequence can observe the action's outcome. + + If any subscription to the resulting sequence is disposed, the CancellationToken is set. The observer associated to the disposed + subscription won't see the TaskCanceledException, but other observers will. You can protect against this using the Catch operator. + Be careful when handing out the resulting sequence because of this behavior. The most common use is to have a single subscription + to the resulting sequence, which controls the CancellationToken state. Alternatively, you can control subscription behavior using + multicast operators. + + + + + + + Invokes the asynchronous action, surfacing the result through an observable sequence. + The CancellationToken is shared by all subscriptions on the resulting observable sequence. See the remarks section for more information. + + Asynchronous action to run. + Scheduler on which to notify observers. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + is null or is null. + + + The action is started immediately, not during the subscription of the resulting sequence. + Multiple subscriptions to the resulting sequence can observe the action's outcome. + + If any subscription to the resulting sequence is disposed, the CancellationToken is set. The observer associated to the disposed + subscription won't see the TaskCanceledException, but other observers will. You can protect against this using the Catch operator. + Be careful when handing out the resulting sequence because of this behavior. The most common use is to have a single subscription + to the resulting sequence, which controls the CancellationToken state. Alternatively, you can control subscription behavior using + multicast operators. + + + + + + + Converts an asynchronous function into an observable sequence. Each subscription to the resulting sequence causes the function to be started. + + The type of the result returned by the asynchronous function. + Asynchronous function to convert. + An observable sequence exposing the result of invoking the function, or an exception. + is null. + + + + Converts an asynchronous function into an observable sequence. Each subscription to the resulting sequence causes the function to be started. + + The type of the result returned by the asynchronous function. + Asynchronous function to convert. + Scheduler on which to notify observers. + An observable sequence exposing the result of invoking the function, or an exception. + is null or is null. + + + + Converts an asynchronous function into an observable sequence. Each subscription to the resulting sequence causes the function to be started. + The CancellationToken passed to the asynchronous function is tied to the observable sequence's subscription that triggered the function's invocation and can be used for best-effort cancellation. + + The type of the result returned by the asynchronous function. + Asynchronous function to convert. + An observable sequence exposing the result of invoking the function, or an exception. + is null. + When a subscription to the resulting sequence is disposed, the CancellationToken that was fed to the asynchronous function will be signaled. + + + + Converts an asynchronous function into an observable sequence. Each subscription to the resulting sequence causes the function to be started. + The CancellationToken passed to the asynchronous function is tied to the observable sequence's subscription that triggered the function's invocation and can be used for best-effort cancellation. + + The type of the result returned by the asynchronous function. + Asynchronous function to convert. + Scheduler on which to notify observers. + An observable sequence exposing the result of invoking the function, or an exception. + is null or is null. + When a subscription to the resulting sequence is disposed, the CancellationToken that was fed to the asynchronous function will be signaled. + + + + Converts an asynchronous action into an observable sequence. Each subscription to the resulting sequence causes the action to be started. + + Asynchronous action to convert. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + is null. + + + + Converts an asynchronous action into an observable sequence. Each subscription to the resulting sequence causes the action to be started. + + Asynchronous action to convert. + Scheduler on which to notify observers. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + is null or is null. + + + + Converts an asynchronous action into an observable sequence. Each subscription to the resulting sequence causes the action to be started. + The CancellationToken passed to the asynchronous action is tied to the observable sequence's subscription that triggered the action's invocation and can be used for best-effort cancellation. + + Asynchronous action to convert. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + When a subscription to the resulting sequence is disposed, the CancellationToken that was fed to the asynchronous function will be signaled. + is null. + + + + Converts an asynchronous action into an observable sequence. Each subscription to the resulting sequence causes the action to be started. + The CancellationToken passed to the asynchronous action is tied to the observable sequence's subscription that triggered the action's invocation and can be used for best-effort cancellation. + + Asynchronous action to convert. + Scheduler on which to notify observers. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + When a subscription to the resulting sequence is disposed, the CancellationToken that was fed to the asynchronous function will be signaled. + is null or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + The type of the first argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + The type of the first argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the thirteenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the thirteenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the thirteenth argument passed to the function. + The type of the fourteenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the thirteenth argument passed to the function. + The type of the fourteenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the thirteenth argument passed to the function. + The type of the fourteenth argument passed to the function. + The type of the fifteenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the thirteenth argument passed to the function. + The type of the fourteenth argument passed to the function. + The type of the fifteenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the thirteenth argument passed to the function. + The type of the fourteenth argument passed to the function. + The type of the fifteenth argument passed to the function. + The type of the sixteenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the thirteenth argument passed to the function. + The type of the fourteenth argument passed to the function. + The type of the fifteenth argument passed to the function. + The type of the sixteenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Action to convert to an asynchronous action. + Asynchronous action. + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + The type of the first argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + The type of the first argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + The type of the thirteenth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + The type of the thirteenth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + The type of the thirteenth argument passed to the action. + The type of the fourteenth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + The type of the thirteenth argument passed to the action. + The type of the fourteenth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + The type of the thirteenth argument passed to the action. + The type of the fourteenth argument passed to the action. + The type of the fifteenth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + The type of the thirteenth argument passed to the action. + The type of the fourteenth argument passed to the action. + The type of the fifteenth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + The type of the thirteenth argument passed to the action. + The type of the fourteenth argument passed to the action. + The type of the fifteenth argument passed to the action. + The type of the sixteenth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + The type of the thirteenth argument passed to the action. + The type of the fourteenth argument passed to the action. + The type of the fifteenth argument passed to the action. + The type of the sixteenth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + or is null. + + + + Gets an awaiter that returns the last value of the observable sequence or throws an exception if the sequence is empty. + This operation subscribes to the observable sequence, making it hot. + + The type of the elements in the source sequence. + Source sequence to await. + Object that can be awaited. + is null. + + + + Gets an awaiter that returns the last value of the observable sequence or throws an exception if the sequence is empty. + This operation subscribes and connects to the observable sequence, making it hot. + + The type of the elements in the source sequence. + Source sequence to await. + Object that can be awaited. + is null. + + + + Gets an awaiter that returns the last value of the observable sequence or throws an exception if the sequence is empty. + This operation subscribes to the observable sequence, making it hot. The supplied CancellationToken can be used to cancel the subscription. + + The type of the elements in the source sequence. + Source sequence to await. + Cancellation token. + Object that can be awaited. + is null. + + + + Gets an awaiter that returns the last value of the observable sequence or throws an exception if the sequence is empty. + This operation subscribes and connects to the observable sequence, making it hot. The supplied CancellationToken can be used to cancel the subscription and connection. + + The type of the elements in the source sequence. + Source sequence to await. + Cancellation token. + Object that can be awaited. + is null. + + + + Multicasts the source sequence notifications through the specified subject to the resulting connectable observable. Upon connection of the + connectable observable, the subject is subscribed to the source exactly one, and messages are forwarded to the observers registered with + the connectable observable. For specializations with fixed subject types, see Publish, PublishLast, and Replay. + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be pushed into the specified subject. + Subject to push source elements into. + A connectable observable sequence that upon connection causes the source sequence to push results into the specified subject. + or is null. + + + + Multicasts the source sequence notifications through an instantiated subject into all uses of the sequence within a selector function. Each + subscription to the resulting sequence causes a separate multicast invocation, exposing the sequence resulting from the selector function's + invocation. For specializations with fixed subject types, see Publish, PublishLast, and Replay. + + The type of the elements in the source sequence. + The type of the elements produced by the intermediate subject. + The type of the elements in the result sequence. + Source sequence which will be multicasted in the specified selector function. + Factory function to create an intermediate subject through which the source sequence's elements will be multicast to the selector function. + Selector function which can use the multicasted source sequence subject to the policies enforced by the created subject. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + or or is null. + + + + Returns a connectable observable sequence that shares a single subscription to the underlying sequence. + This operator is a specialization of Multicast using a regular . + + The type of the elements in the source sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + A connectable observable sequence that shares a single subscription to the underlying sequence. + is null. + Subscribers will receive all notifications of the source from the time of the subscription on. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence. + This operator is a specialization of Multicast using a regular . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all notifications of the source from the time of the subscription on. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + or is null. + + + + + Returns a connectable observable sequence that shares a single subscription to the underlying sequence and starts with initialValue. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Initial value received by observers upon subscription. + A connectable observable sequence that shares a single subscription to the underlying sequence. + is null. + Subscribers will receive immediately receive the initial value, followed by all notifications of the source from the time of the subscription on. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence and starts with initialValue. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive immediately receive the initial value, followed by all notifications of the source from the time of the subscription on. + Initial value received by observers upon subscription. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + or is null. + + + + + Returns a connectable observable sequence that shares a single subscription to the underlying sequence containing only the last notification. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + A connectable observable sequence that shares a single subscription to the underlying sequence. + is null. + Subscribers will only receive the last notification of the source. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence containing only the last notification. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will only receive the last notification of the source. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + or is null. + + + + + Returns an observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + + The type of the elements in the source sequence. + Connectable observable sequence. + An observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + is null. + + + + Returns an observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + + The type of the elements in the source sequence. + Connectable observable sequence. + The time span that should be waited before possibly unsubscribing from the connectable observable. + An observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + is null. + + + + Returns an observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + + The type of the elements in the source sequence. + Connectable observable sequence. + The time span that should be waited before possibly unsubscribing from the connectable observable. + The scheduler to use for delayed unsubscription. + An observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + is null. + + + + Returns an observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + + The type of the elements in the source sequence. + Connectable observable sequence. + The minimum number of observers required to subscribe before establishing the connection to the source. + An observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + is null. + is non-positive. + + + + Returns an observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + + The type of the elements in the source sequence. + Connectable observable sequence. + The minimum number of observers required to subscribe before establishing the connection to the source. + The time span that should be waited before possibly unsubscribing from the connectable observable. + An observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + is null. + is non-positive. + + + + Returns an observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + + The type of the elements in the source sequence. + Connectable observable sequence. + The minimum number of observers required to subscribe before establishing the connection to the source. + The time span that should be waited before possibly unsubscribing from the connectable observable. + The scheduler to use for delayed unsubscription. + An observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + is null. + is non-positive. + + + + Automatically connect the upstream IConnectableObservable at most once when the + specified number of IObservers have subscribed to this IObservable. + + The type of the elements in the source sequence. + Connectable observable sequence. + The number of observers required to subscribe before the connection to source happens, non-positive value will trigger an immediate subscription. + If not null, the connection's IDisposable is provided to it. + An observable sequence that connects to the source at most once when the given number of observers have subscribed to it. + is null. + + + + Returns a connectable observable sequence that shares a single subscription to the underlying sequence replaying all notifications. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + A connectable observable sequence that shares a single subscription to the underlying sequence. + is null. + Subscribers will receive all the notifications of the source. + + + + + Returns a connectable observable sequence that shares a single subscription to the underlying sequence replaying all notifications. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Scheduler where connected observers will be invoked on. + A connectable observable sequence that shares a single subscription to the underlying sequence. + or is null. + Subscribers will receive all the notifications of the source. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying all notifications. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all the notifications of the source. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + or is null. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying all notifications. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all the notifications of the source. + Scheduler where connected observers within the selector function will be invoked on. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + or or is null. + + + + + Returns a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum time length for the replay buffer. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Maximum time length of the replay buffer. + A connectable observable sequence that shares a single subscription to the underlying sequence. + is null. + is less than TimeSpan.Zero. + Subscribers will receive all the notifications of the source subject to the specified replay buffer trimming policy. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum time length for the replay buffer. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all the notifications of the source subject to the specified replay buffer trimming policy. + Maximum time length of the replay buffer. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + or is null. + is less than TimeSpan.Zero. + + + + + Returns a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum time length for the replay buffer. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Maximum time length of the replay buffer. + Scheduler where connected observers will be invoked on. + A connectable observable sequence that shares a single subscription to the underlying sequence. + or is null. + is less than TimeSpan.Zero. + Subscribers will receive all the notifications of the source subject to the specified replay buffer trimming policy. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum time length for the replay buffer. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all the notifications of the source subject to the specified replay buffer trimming policy. + Maximum time length of the replay buffer. + Scheduler where connected observers within the selector function will be invoked on. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + or or is null. + is less than TimeSpan.Zero. + + + + + Returns a connectable observable sequence that shares a single subscription to the underlying sequence replaying bufferSize notifications. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Maximum element count of the replay buffer. + Scheduler where connected observers will be invoked on. + A connectable observable sequence that shares a single subscription to the underlying sequence. + or is null. + is less than zero. + Subscribers will receive all the notifications of the source subject to the specified replay buffer trimming policy. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum element count for the replay buffer. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all the notifications of the source subject to the specified replay buffer trimming policy. + Maximum element count of the replay buffer. + Scheduler where connected observers within the selector function will be invoked on. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + or or is null. + is less than zero. + + + + + Returns a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum element count for the replay buffer. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Maximum element count of the replay buffer. + A connectable observable sequence that shares a single subscription to the underlying sequence. + is null. + is less than zero. + Subscribers will receive all the notifications of the source subject to the specified replay buffer trimming policy. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum element count for the replay buffer. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all the notifications of the source subject to the specified replay buffer trimming policy. + Maximum element count of the replay buffer. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + or is null. + is less than zero. + + + + + Returns a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum time length and element count for the replay buffer. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Maximum element count of the replay buffer. + Maximum time length of the replay buffer. + A connectable observable sequence that shares a single subscription to the underlying sequence. + is null. + is less than zero. + is less than TimeSpan.Zero. + Subscribers will receive all the notifications of the source subject to the specified replay buffer trimming policy. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum time length and element count for the replay buffer. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all the notifications of the source subject to the specified replay buffer trimming policy. + Maximum element count of the replay buffer. + Maximum time length of the replay buffer. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + or is null. + is less than zero. + is less than TimeSpan.Zero. + + + + + Returns a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum time length and element count for the replay buffer. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Maximum element count of the replay buffer. + Maximum time length of the replay buffer. + Scheduler where connected observers will be invoked on. + A connectable observable sequence that shares a single subscription to the underlying sequence. + or is null. + is less than zero. + is less than TimeSpan.Zero. + Subscribers will receive all the notifications of the source subject to the specified replay buffer trimming policy. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum time length and element count for the replay buffer. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all the notifications of the source subject to the specified replay buffer trimming policy. + Maximum element count of the replay buffer. + Maximum time length of the replay buffer. + Scheduler where connected observers within the selector function will be invoked on. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + or or is null. + is less than zero. + is less than TimeSpan.Zero. + + + + + Produces an enumerable sequence of consecutive (possibly empty) chunks of the source sequence. + + The type of the elements in the source sequence. + Source observable sequence. + The enumerable sequence that returns consecutive (possibly empty) chunks upon each iteration. + is null. + + + + Produces an enumerable sequence that returns elements collected/aggregated from the source sequence between consecutive iterations. + + The type of the elements in the source sequence. + The type of the elements produced by the merge operation during collection. + Source observable sequence. + Factory to create a new collector object. + Merges a sequence element with the current collector. + The enumerable sequence that returns collected/aggregated elements from the source sequence upon each iteration. + or or is null. + + + + Produces an enumerable sequence that returns elements collected/aggregated from the source sequence between consecutive iterations. + + The type of the elements in the source sequence. + The type of the elements produced by the merge operation during collection. + Source observable sequence. + Factory to create the initial collector object. + Merges a sequence element with the current collector. + Factory to replace the current collector by a new collector. + The enumerable sequence that returns collected/aggregated elements from the source sequence upon each iteration. + or or or is null. + + + + Returns the first element of an observable sequence. + + The type of the elements in the source sequence. + Source observable sequence. + The first element in the observable sequence. + is null. + The source sequence is empty. + + + + + Returns the first element of an observable sequence that satisfies the condition in the predicate. + + The type of the elements in the source sequence. + Source observable sequence. + A predicate function to evaluate for elements in the source sequence. + The first element in the observable sequence that satisfies the condition in the predicate. + or is null. + No element satisfies the condition in the predicate. -or- The source sequence is empty. + + + + + Returns the first element of an observable sequence, or a default value if no such element exists. + + The type of the elements in the source sequence. + Source observable sequence. + The first element in the observable sequence, or a default value if no such element exists. + is null. + + + + + Returns the first element of an observable sequence that satisfies the condition in the predicate, or a default value if no such element exists. + + The type of the elements in the source sequence. + Source observable sequence. + A predicate function to evaluate for elements in the source sequence. + The first element in the observable sequence that satisfies the condition in the predicate, or a default value if no such element exists. + or is null. + + + + + Invokes an action for each element in the observable sequence, and blocks until the sequence is terminated. + + The type of the elements in the source sequence. + Source sequence. + Action to invoke for each element in the observable sequence. + or is null. + Because of its blocking nature, this operator is mainly used for testing. + + + + Invokes an action for each element in the observable sequence, incorporating the element's index, and blocks until the sequence is terminated. + + The type of the elements in the source sequence. + Source sequence. + Action to invoke for each element in the observable sequence. + or is null. + Because of its blocking nature, this operator is mainly used for testing. + + + + Returns an enumerator that enumerates all values of the observable sequence. + + The type of the elements in the source sequence. + An observable sequence to get an enumerator for. + The enumerator that can be used to enumerate over the elements in the observable sequence. + is null. + + + + Returns the last element of an observable sequence. + + The type of the elements in the source sequence. + Source observable sequence. + The last element in the observable sequence. + is null. + The source sequence is empty. + + + + + Returns the last element of an observable sequence that satisfies the condition in the predicate. + + The type of the elements in the source sequence. + Source observable sequence. + A predicate function to evaluate for elements in the source sequence. + The last element in the observable sequence that satisfies the condition in the predicate. + or is null. + No element satisfies the condition in the predicate. -or- The source sequence is empty. + + + + + Returns the last element of an observable sequence, or a default value if no such element exists. + + The type of the elements in the source sequence. + Source observable sequence. + The last element in the observable sequence, or a default value if no such element exists. + is null. + + + + + Returns the last element of an observable sequence that satisfies the condition in the predicate, or a default value if no such element exists. + + The type of the elements in the source sequence. + Source observable sequence. + A predicate function to evaluate for elements in the source sequence. + The last element in the observable sequence that satisfies the condition in the predicate, or a default value if no such element exists. + or is null. + + + + + Returns an enumerable sequence whose enumeration returns the latest observed element in the source observable sequence. + Enumerators on the resulting sequence will never produce the same element repeatedly, and will block until the next element becomes available. + + The type of the elements in the source sequence. + Source observable sequence. + The enumerable sequence that returns the last sampled element upon each iteration and subsequently blocks until the next element in the observable source sequence becomes available. + + + + Returns an enumerable sequence whose enumeration returns the most recently observed element in the source observable sequence, using the specified initial value in case no element has been sampled yet. + Enumerators on the resulting sequence never block and can produce the same element repeatedly. + + The type of the elements in the source sequence. + Source observable sequence. + Initial value that will be yielded by the enumerable sequence if no element has been sampled yet. + The enumerable sequence that returns the last sampled element upon each iteration. + is null. + + + + Returns an enumerable sequence whose enumeration blocks until the next element in the source observable sequence becomes available. + Enumerators on the resulting sequence will block until the next element becomes available. + + The type of the elements in the source sequence. + Source observable sequence. + The enumerable sequence that blocks upon each iteration until the next element in the observable source sequence becomes available. + is null. + + + + Returns the only element of an observable sequence, and throws an exception if there is not exactly one element in the observable sequence. + + The type of the elements in the source sequence. + Source observable sequence. + The single element in the observable sequence. + is null. + The source sequence contains more than one element. -or- The source sequence is empty. + + + + + Returns the only element of an observable sequence that satisfies the condition in the predicate, and throws an exception if there is not exactly one element matching the predicate in the observable sequence. + + The type of the elements in the source sequence. + Source observable sequence. + A predicate function to evaluate for elements in the source sequence. + The single element in the observable sequence that satisfies the condition in the predicate. + or is null. + No element satisfies the condition in the predicate. -or- More than one element satisfies the condition in the predicate. -or- The source sequence is empty. + + + + + Returns the only element of an observable sequence, or a default value if the observable sequence is empty; this method throws an exception if there is more than one element in the observable sequence. + + The type of the elements in the source sequence. + Source observable sequence. + The single element in the observable sequence, or a default value if no such element exists. + is null. + The source sequence contains more than one element. + + + + + Returns the only element of an observable sequence that satisfies the condition in the predicate, or a default value if no such element exists; this method throws an exception if there is more than one element matching the predicate in the observable sequence. + + The type of the elements in the source sequence. + Source observable sequence. + A predicate function to evaluate for elements in the source sequence. + The single element in the observable sequence that satisfies the condition in the predicate, or a default value if no such element exists. + or is null. + The sequence contains more than one element that satisfies the condition in the predicate. + + + + + Waits for the observable sequence to complete and returns the last element of the sequence. + If the sequence terminates with an OnError notification, the exception is thrown. + + The type of the elements in the source sequence. + Source observable sequence. + The last element in the observable sequence. + is null. + The source sequence is empty. + + + + Wraps the source sequence in order to run its observer callbacks on the specified scheduler. + + The type of the elements in the source sequence. + Source sequence. + Scheduler to notify observers on. + The source sequence whose observations happen on the specified scheduler. + or is null. + + This only invokes observer callbacks on a scheduler. In case the subscription and/or unsubscription actions have side-effects + that require to be run on a scheduler, use . + + + + + Wraps the source sequence in order to run its observer callbacks on the specified synchronization context. + + The type of the elements in the source sequence. + Source sequence. + Synchronization context to notify observers on. + The source sequence whose observations happen on the specified synchronization context. + or is null. + + This only invokes observer callbacks on a synchronization context. In case the subscription and/or unsubscription actions have side-effects + that require to be run on a synchronization context, use . + + + + + Wraps the source sequence in order to run its subscription and unsubscription logic on the specified scheduler. This operation is not commonly used; + see the remarks section for more information on the distinction between SubscribeOn and ObserveOn. + + The type of the elements in the source sequence. + Source sequence. + Scheduler to perform subscription and unsubscription actions on. + The source sequence whose subscriptions and unsubscriptions happen on the specified scheduler. + or is null. + + This only performs the side-effects of subscription and unsubscription on the specified scheduler. In order to invoke observer + callbacks on a scheduler, use . + + + + + Wraps the source sequence in order to run its subscription and unsubscription logic on the specified synchronization context. This operation is not commonly used; + see the remarks section for more information on the distinction between SubscribeOn and ObserveOn. + + The type of the elements in the source sequence. + Source sequence. + Synchronization context to perform subscription and unsubscription actions on. + The source sequence whose subscriptions and unsubscriptions happen on the specified synchronization context. + or is null. + + This only performs the side-effects of subscription and unsubscription on the specified synchronization context. In order to invoke observer + callbacks on a synchronization context, use . + + + + + Synchronizes the observable sequence such that observer notifications cannot be delivered concurrently. + This overload is useful to "fix" an observable sequence that exhibits concurrent callbacks on individual observers, which is invalid behavior for the query processor. + + The type of the elements in the source sequence. + Source sequence. + The source sequence whose outgoing calls to observers are synchronized. + is null. + + It's invalid behavior - according to the observer grammar - for a sequence to exhibit concurrent callbacks on a given observer. + This operator can be used to "fix" a source that doesn't conform to this rule. + + + + + Synchronizes the observable sequence such that observer notifications cannot be delivered concurrently, using the specified gate object. + This overload is useful when writing n-ary query operators, in order to prevent concurrent callbacks from different sources by synchronizing on a common gate object. + + The type of the elements in the source sequence. + Source sequence. + Gate object to synchronize each observer call on. + The source sequence whose outgoing calls to observers are synchronized on the given gate object. + or is null. + + + + Subscribes an observer to an enumerable sequence. + + The type of the elements in the source sequence. + Enumerable sequence to subscribe to. + Observer that will receive notifications from the enumerable sequence. + Disposable object that can be used to unsubscribe the observer from the enumerable + or is null. + + + + Subscribes an observer to an enumerable sequence, using the specified scheduler to run the enumeration loop. + + The type of the elements in the source sequence. + Enumerable sequence to subscribe to. + Observer that will receive notifications from the enumerable sequence. + Scheduler to perform the enumeration on. + Disposable object that can be used to unsubscribe the observer from the enumerable + or or is null. + + + + Converts an observable sequence to an enumerable sequence. + + The type of the elements in the source sequence. + An observable sequence to convert to an enumerable sequence. + The enumerable sequence containing the elements in the observable sequence. + is null. + + + + Exposes an observable sequence as an object with an -based .NET event. + + Observable source sequence. + The event source object. + is null. + + + + Exposes an observable sequence as an object with an -based .NET event. + + The type of the elements in the source sequence. + Observable source sequence. + The event source object. + is null. + + + + Exposes an observable sequence as an object with a .NET event, conforming to the standard .NET event pattern. + + The type of the event data generated by the event. + Observable source sequence. + The event source object. + is null. + + + + Converts an enumerable sequence to an observable sequence. + + The type of the elements in the source sequence. + Enumerable sequence to convert to an observable sequence. + The observable sequence whose elements are pulled from the given enumerable sequence. + is null. + + + + Converts an enumerable sequence to an observable sequence, using the specified scheduler to run the enumeration loop. + + The type of the elements in the source sequence. + Enumerable sequence to convert to an observable sequence. + Scheduler to run the enumeration of the input sequence on. + The observable sequence whose elements are pulled from the given enumerable sequence. + or is null. + + + + Creates an observable sequence from a specified Subscribe method implementation. + + The type of the elements in the produced sequence. + Implementation of the resulting observable sequence's Subscribe method. + The observable sequence with the specified implementation for the Subscribe method. + is null. + + Use of this operator is preferred over manual implementation of the interface. In case + you need a type implementing rather than an anonymous implementation, consider using + the abstract base class. + + + + + Creates an observable sequence from a specified Subscribe method implementation. + + The type of the elements in the produced sequence. + Implementation of the resulting observable sequence's Subscribe method, returning an Action delegate that will be wrapped in an IDisposable. + The observable sequence with the specified implementation for the Subscribe method. + is null. + + Use of this operator is preferred over manual implementation of the interface. In case + you need a type implementing rather than an anonymous implementation, consider using + the abstract base class. + + + + + Creates an observable sequence from a specified cancellable asynchronous Subscribe method. + The CancellationToken passed to the asynchronous Subscribe method is tied to the returned disposable subscription, allowing best-effort cancellation. + + The type of the elements in the produced sequence. + Asynchronous method used to produce elements. + The observable sequence surfacing the elements produced by the asynchronous method. + is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + When a subscription to the resulting sequence is disposed, the CancellationToken that was fed to the asynchronous subscribe function will be signaled. + + + + Creates an observable sequence from a specified asynchronous Subscribe method. + + The type of the elements in the produced sequence. + Asynchronous method used to produce elements. + The observable sequence surfacing the elements produced by the asynchronous method. + is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + + + + Creates an observable sequence from a specified cancellable asynchronous Subscribe method. + The CancellationToken passed to the asynchronous Subscribe method is tied to the returned disposable subscription, allowing best-effort cancellation. + + The type of the elements in the produced sequence. + Asynchronous method used to implement the resulting sequence's Subscribe method. + The observable sequence with the specified implementation for the Subscribe method. + is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + When a subscription to the resulting sequence is disposed, the CancellationToken that was fed to the asynchronous subscribe function will be signaled. + + + + Creates an observable sequence from a specified asynchronous Subscribe method. + + The type of the elements in the produced sequence. + Asynchronous method used to implement the resulting sequence's Subscribe method. + The observable sequence with the specified implementation for the Subscribe method. + is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + + + + Creates an observable sequence from a specified cancellable asynchronous Subscribe method. + The CancellationToken passed to the asynchronous Subscribe method is tied to the returned disposable subscription, allowing best-effort cancellation. + + The type of the elements in the produced sequence. + Asynchronous method used to implement the resulting sequence's Subscribe method, returning an Action delegate that will be wrapped in an IDisposable. + The observable sequence with the specified implementation for the Subscribe method. + is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + When a subscription to the resulting sequence is disposed, the CancellationToken that was fed to the asynchronous subscribe function will be signaled. + + + + Creates an observable sequence from a specified asynchronous Subscribe method. + + The type of the elements in the produced sequence. + Asynchronous method used to implement the resulting sequence's Subscribe method, returning an Action delegate that will be wrapped in an IDisposable. + The observable sequence with the specified implementation for the Subscribe method. + is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + + + + Returns an observable sequence that invokes the specified factory function whenever a new observer subscribes. + + The type of the elements in the sequence returned by the factory function, and in the resulting sequence. + Observable factory function to invoke for each observer that subscribes to the resulting sequence. + An observable sequence whose observers trigger an invocation of the given observable factory function. + is null. + + + + Returns an observable sequence that starts the specified asynchronous factory function whenever a new observer subscribes. + + The type of the elements in the sequence returned by the factory function, and in the resulting sequence. + Asynchronous factory function to start for each observer that subscribes to the resulting sequence. + An observable sequence whose observers trigger the given asynchronous observable factory function to be started. + is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + + + + Returns an observable sequence that starts the specified cancellable asynchronous factory function whenever a new observer subscribes. + The CancellationToken passed to the asynchronous factory function is tied to the returned disposable subscription, allowing best-effort cancellation. + + The type of the elements in the sequence returned by the factory function, and in the resulting sequence. + Asynchronous factory function to start for each observer that subscribes to the resulting sequence. + An observable sequence whose observers trigger the given asynchronous observable factory function to be started. + is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + When a subscription to the resulting sequence is disposed, the CancellationToken that was fed to the asynchronous observable factory function will be signaled. + + + + Returns an empty observable sequence. + + The type used for the type parameter of the resulting sequence. + An observable sequence with no elements. + + + + Returns an empty observable sequence. + + The type used for the type parameter of the resulting sequence. + Object solely used to infer the type of the type parameter. This parameter is typically used when creating a sequence of anonymously typed elements. + An observable sequence with no elements. + + + + Returns an empty observable sequence, using the specified scheduler to send out the single OnCompleted message. + + The type used for the type parameter of the resulting sequence. + Scheduler to send the termination call on. + An observable sequence with no elements. + is null. + + + + Returns an empty observable sequence, using the specified scheduler to send out the single OnCompleted message. + + The type used for the type parameter of the resulting sequence. + Scheduler to send the termination call on. + Object solely used to infer the type of the type parameter. This parameter is typically used when creating a sequence of anonymously typed elements. + An observable sequence with no elements. + is null. + + + + Generates an observable sequence by running a state-driven loop producing the sequence's elements. + + The type of the state used in the generator loop. + The type of the elements in the produced sequence. + Initial state. + Condition to terminate generation (upon returning false). + Iteration step function. + Selector function for results produced in the sequence. + The generated sequence. + or or is null. + + + + Generates an observable sequence by running a state-driven loop producing the sequence's elements, using the specified scheduler to send out observer messages. + + The type of the state used in the generator loop. + The type of the elements in the produced sequence. + Initial state. + Condition to terminate generation (upon returning false). + Iteration step function. + Selector function for results produced in the sequence. + Scheduler on which to run the generator loop. + The generated sequence. + or or or is null. + + + + Returns a non-terminating observable sequence, which can be used to denote an infinite duration (e.g. when using reactive joins). + + The type used for the type parameter of the resulting sequence. + An observable sequence whose observers will never get called. + + + + Returns a non-terminating observable sequence, which can be used to denote an infinite duration (e.g. when using reactive joins). + + The type used for the type parameter of the resulting sequence. + Object solely used to infer the type of the type parameter. This parameter is typically used when creating a sequence of anonymously typed elements. + An observable sequence whose observers will never get called. + + + + Generates an observable sequence of integral numbers within a specified range. + + The value of the first integer in the sequence. + The number of sequential integers to generate. + An observable sequence that contains a range of sequential integral numbers. + is less than zero. -or- + - 1 is larger than . + + + + Generates an observable sequence of integral numbers within a specified range, using the specified scheduler to send out observer messages. + + The value of the first integer in the sequence. + The number of sequential integers to generate. + Scheduler to run the generator loop on. + An observable sequence that contains a range of sequential integral numbers. + is less than zero. -or- + - 1 is larger than . + is null. + + + + Generates an observable sequence that repeats the given element infinitely. + + The type of the element that will be repeated in the produced sequence. + Element to repeat. + An observable sequence that repeats the given element infinitely. + + + + Generates an observable sequence that repeats the given element infinitely, using the specified scheduler to send out observer messages. + + The type of the element that will be repeated in the produced sequence. + Element to repeat. + Scheduler to run the producer loop on. + An observable sequence that repeats the given element infinitely. + is null. + + + + Generates an observable sequence that repeats the given element the specified number of times. + + The type of the element that will be repeated in the produced sequence. + Element to repeat. + Number of times to repeat the element. + An observable sequence that repeats the given element the specified number of times. + is less than zero. + + + + Generates an observable sequence that repeats the given element the specified number of times, using the specified scheduler to send out observer messages. + + The type of the element that will be repeated in the produced sequence. + Element to repeat. + Number of times to repeat the element. + Scheduler to run the producer loop on. + An observable sequence that repeats the given element the specified number of times. + is less than zero. + is null. + + + + Returns an observable sequence that contains a single element. + + The type of the element that will be returned in the produced sequence. + Single element in the resulting observable sequence. + An observable sequence containing the single specified element. + + + + Returns an observable sequence that contains a single element, using the specified scheduler to send out observer messages. + + The type of the element that will be returned in the produced sequence. + Single element in the resulting observable sequence. + Scheduler to send the single element on. + An observable sequence containing the single specified element. + is null. + + + + Returns an observable sequence that terminates with an exception. + + The type used for the type parameter of the resulting sequence. + Exception object used for the sequence's termination. + The observable sequence that terminates exceptionally with the specified exception object. + is null. + + + + Returns an observable sequence that terminates with an exception. + + The type used for the type parameter of the resulting sequence. + Exception object used for the sequence's termination. + Object solely used to infer the type of the type parameter. This parameter is typically used when creating a sequence of anonymously typed elements. + The observable sequence that terminates exceptionally with the specified exception object. + is null. + + + + Returns an observable sequence that terminates with an exception, using the specified scheduler to send out the single OnError message. + + The type used for the type parameter of the resulting sequence. + Exception object used for the sequence's termination. + Scheduler to send the exceptional termination call on. + The observable sequence that terminates exceptionally with the specified exception object. + or is null. + + + + Returns an observable sequence that terminates with an exception, using the specified scheduler to send out the single OnError message. + + The type used for the type parameter of the resulting sequence. + Exception object used for the sequence's termination. + Scheduler to send the exceptional termination call on. + Object solely used to infer the type of the type parameter. This parameter is typically used when creating a sequence of anonymously typed elements. + The observable sequence that terminates exceptionally with the specified exception object. + or is null. + + + + Constructs an observable sequence that depends on a resource object, whose lifetime is tied to the resulting observable sequence's lifetime. + + The type of the elements in the produced sequence. + The type of the resource used during the generation of the resulting sequence. Needs to implement . + Factory function to obtain a resource object. + Factory function to obtain an observable sequence that depends on the obtained resource. + An observable sequence whose lifetime controls the lifetime of the dependent resource object. + or is null. + + + + Constructs an observable sequence that depends on a resource object, whose lifetime is tied to the resulting observable sequence's lifetime. The resource is obtained and used through asynchronous methods. + The CancellationToken passed to the asynchronous methods is tied to the returned disposable subscription, allowing best-effort cancellation at any stage of the resource acquisition or usage. + + The type of the elements in the produced sequence. + The type of the resource used during the generation of the resulting sequence. Needs to implement . + Asynchronous factory function to obtain a resource object. + Asynchronous factory function to obtain an observable sequence that depends on the obtained resource. + An observable sequence whose lifetime controls the lifetime of the dependent resource object. + or is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + When a subscription to the resulting sequence is disposed, the CancellationToken that was fed to the asynchronous resource factory and observable factory functions will be signaled. + + + + Converts a .NET event, conforming to the standard .NET event pattern based on , to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on , to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on a supplied event delegate type, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + The delegate type of the event to be converted. + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on a supplied event delegate type, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + The delegate type of the event to be converted. + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on , to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + The delegate type of the event to be converted. + The type of the event data generated by the event. + A function used to convert the given event handler to a delegate compatible with the underlying .NET event. The resulting delegate is used in calls to the addHandler and removeHandler action parameters. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on , to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + The delegate type of the event to be converted. + The type of the event data generated by the event. + A function used to convert the given event handler to a delegate compatible with the underlying .NET event. The resulting delegate is used in calls to the addHandler and removeHandler action parameters. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on a supplied event delegate type with a strongly typed sender parameter, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + The delegate type of the event to be converted. + The type of the sender that raises the event. + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on a supplied event delegate type with a strongly typed sender parameter, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + The delegate type of the event to be converted. + The type of the sender that raises the event. + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on , to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on , to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts an instance .NET event, conforming to the standard .NET event pattern with an parameter, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the target object type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Object instance that exposes the event to convert. + Name of the event to convert. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts an instance .NET event, conforming to the standard .NET event pattern with an parameter, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the target object type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Object instance that exposes the event to convert. + Name of the event to convert. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts an instance .NET event, conforming to the standard .NET event pattern with strongly typed event arguments, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the target object type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + The type of the event data generated by the event. + Object instance that exposes the event to convert. + Name of the event to convert. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. -or- The event's second argument type is not assignable to TEventArgs. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts an instance .NET event, conforming to the standard .NET event pattern with strongly typed event arguments, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the target object type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + The type of the event data generated by the event. + Object instance that exposes the event to convert. + Name of the event to convert. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. -or- The event's second argument type is not assignable to TEventArgs. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts an instance .NET event, conforming to the standard .NET event pattern with a strongly typed sender and strongly typed event arguments, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the target object type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + The type of the sender that raises the event. + The type of the event data generated by the event. + Object instance that exposes the event to convert. + Name of the event to convert. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. -or- The event's first argument type is not assignable to TSender. -or- The event's second argument type is not assignable to TEventArgs. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts an instance .NET event, conforming to the standard .NET event pattern with a strongly typed sender and strongly typed event arguments, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the target object type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + The type of the sender that raises the event. + The type of the event data generated by the event. + Object instance that exposes the event to convert. + Name of the event to convert. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. -or- The event's first argument type is not assignable to TSender. -or- The event's second argument type is not assignable to TEventArgs. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a static .NET event, conforming to the standard .NET event pattern with an parameter, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the specified type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Type that exposes the static event to convert. + Name of the event to convert. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a static .NET event, conforming to the standard .NET event pattern with an parameter, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the specified type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Type that exposes the static event to convert. + Name of the event to convert. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a static .NET event, conforming to the standard .NET event pattern with strongly typed event arguments, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the specified type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + The type of the event data generated by the event. + Type that exposes the static event to convert. + Name of the event to convert. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. -or- The event's second argument type is not assignable to TEventArgs. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a static .NET event, conforming to the standard .NET event pattern with strongly typed event arguments, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the specified type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + The type of the event data generated by the event. + Type that exposes the static event to convert. + Name of the event to convert. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. -or- The event's second argument type is not assignable to TEventArgs. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a static .NET event, conforming to the standard .NET event pattern with a strongly typed sender and strongly typed event arguments, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the specified type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + The type of the sender that raises the event. + The type of the event data generated by the event. + Type that exposes the static event to convert. + Name of the event to convert. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. -or- The event's first argument type is not assignable to TSender. -or- The event's second argument type is not assignable to TEventArgs. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a static .NET event, conforming to the standard .NET event pattern with a strongly typed sender and strongly typed event arguments, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the specified type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + The type of the sender that raises the event. + The type of the event data generated by the event. + Type that exposes the static event to convert. + Name of the event to convert. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. -or- The event's first argument type is not assignable to TSender. -or- The event's second argument type is not assignable to TEventArgs. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a .NET event to an observable sequence, using a conversion function to obtain the event delegate. Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events conforming to the standard .NET event pattern, use any of the FromEventPattern overloads instead. + + The delegate type of the event to be converted. + The type of the event data generated by the event. + A function used to convert the given event handler to a delegate compatible with the underlying .NET event. The resulting delegate is used in calls to the addHandler and removeHandler action parameters. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains the event argument objects passed to the invocations of the underlying .NET event. + or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEvent, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEvent, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEvent calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a .NET event to an observable sequence, using a conversion function to obtain the event delegate. Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events conforming to the standard .NET event pattern, use any of the FromEventPattern overloads instead. + + The delegate type of the event to be converted. + The type of the event data generated by the event. + A function used to convert the given event handler to a delegate compatible with the underlying .NET event. The resulting delegate is used in calls to the addHandler and removeHandler action parameters. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains the event argument objects passed to the invocations of the underlying .NET event. + or or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEvent calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEvent that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a .NET event to an observable sequence, using a supplied event delegate type. Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events conforming to the standard .NET event pattern, use any of the FromEventPattern overloads instead. + + The delegate type of the event to be converted. + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains the event argument objects passed to the invocations of the underlying .NET event. + or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEvent, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEvent, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEvent calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a .NET event to an observable sequence, using a supplied event delegate type. Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events conforming to the standard .NET event pattern, use any of the FromEventPattern overloads instead. + + The delegate type of the event to be converted. + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains the event argument objects passed to the invocations of the underlying .NET event. + or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEvent calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEvent that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a generic Action-based .NET event to an observable sequence. Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events conforming to the standard .NET event pattern, use any of the FromEventPattern overloads instead. + + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains the event argument objects passed to the invocations of the underlying .NET event. + or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEvent, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEvent, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEvent calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a generic Action-based .NET event to an observable sequence. Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events conforming to the standard .NET event pattern, use any of the FromEventPattern overloads instead. + + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains the event argument objects passed to the invocations of the underlying .NET event. + or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEvent calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEvent that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts an Action-based .NET event to an observable sequence. Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events conforming to the standard .NET event pattern, use any of the FromEventPattern overloads instead. + + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains the event argument objects passed to the invocations of the underlying .NET event. + or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEvent, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEvent, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEvent calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts an Action-based .NET event to an observable sequence. Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events conforming to the standard .NET event pattern, use any of the FromEventPattern overloads instead. + + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains the event argument objects passed to the invocations of the underlying .NET event. + or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEvent calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEvent that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Invokes an action for each element in the observable sequence, and returns a Task object that will get signaled when the sequence terminates. + + The type of the elements in the source sequence. + Source sequence. + Action to invoke for each element in the observable sequence. + Task that signals the termination of the sequence. + or is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + + + + Invokes an action for each element in the observable sequence, and returns a Task object that will get signaled when the sequence terminates. + The loop can be quit prematurely by setting the specified cancellation token. + + The type of the elements in the source sequence. + Source sequence. + Action to invoke for each element in the observable sequence. + Cancellation token used to stop the loop. + Task that signals the termination of the sequence. + or is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + + + + Invokes an action for each element in the observable sequence, incorporating the element's index, and returns a Task object that will get signaled when the sequence terminates. + + The type of the elements in the source sequence. + Source sequence. + Action to invoke for each element in the observable sequence. + Task that signals the termination of the sequence. + or is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + + + + Invokes an action for each element in the observable sequence, incorporating the element's index, and returns a Task object that will get signaled when the sequence terminates. + The loop can be quit prematurely by setting the specified cancellation token. + + The type of the elements in the source sequence. + Source sequence. + Action to invoke for each element in the observable sequence. + Cancellation token used to stop the loop. + Task that signals the termination of the sequence. + or is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + + + + Uses to determine which source in to return, choosing if no match is found. + + The type of the value returned by the selector function, used to look up the resulting source. + The type of the elements in the result sequence. + Selector function invoked to determine the source to lookup in the dictionary. + Dictionary of sources to select from based on the invocation result. + Default source to select in case no matching source in is found. + The observable sequence retrieved from the dictionary based on the invocation result, or if no match is found. + or or is null. + + + + Uses to determine which source in to return, choosing an empty sequence on the specified scheduler if no match is found. + + The type of the value returned by the selector function, used to look up the resulting source. + The type of the elements in the result sequence. + Selector function invoked to determine the source to lookup in the dictionary. + Dictionary of sources to select from based on the invocation result. + Scheduler to generate an empty sequence on in case no matching source in is found. + The observable sequence retrieved from the dictionary based on the invocation result, or an empty sequence if no match is found. + or or is null. + + + + Uses to determine which source in to return, choosing an empty sequence if no match is found. + + The type of the value returned by the selector function, used to look up the resulting source. + The type of the elements in the result sequence. + Selector function invoked to determine the source to lookup in the dictionary. + Dictionary of sources to select from based on the invocation result. + The observable sequence retrieved from the dictionary based on the invocation result, or an empty sequence if no match is found. + or is null. + + + + Repeats the given as long as the specified holds, where the is evaluated after each repeated completed. + + The type of the elements in the source sequence. + Source to repeat as long as the function evaluates to true. + Condition that will be evaluated upon the completion of an iteration through the , to determine whether repetition of the source is required. + The observable sequence obtained by concatenating the sequence as long as the holds. + or is null. + + + + Concatenates the observable sequences obtained by running the for each element in the given enumerable . + + The type of the elements in the enumerable source sequence. + The type of the elements in the observable result sequence. + Enumerable source for which each element will be mapped onto an observable source that will be concatenated in the result sequence. + Function to select an observable source for each element in the . + The observable sequence obtained by concatenating the sources returned by for each element in the . + or is null. + + + + If the specified evaluates true, select the sequence. Otherwise, select the sequence. + + The type of the elements in the result sequence. + Condition evaluated to decide which sequence to return. + Sequence returned in case evaluates true. + Sequence returned in case evaluates false. + if evaluates true; otherwise. + or or is null. + + + + If the specified evaluates true, select the sequence. Otherwise, return an empty sequence. + + The type of the elements in the result sequence. + Condition evaluated to decide which sequence to return. + Sequence returned in case evaluates true. + if evaluates true; an empty sequence otherwise. + or is null. + + + + If the specified evaluates true, select the sequence. Otherwise, return an empty sequence generated on the specified scheduler. + + The type of the elements in the result sequence. + Condition evaluated to decide which sequence to return. + Sequence returned in case evaluates true. + Scheduler to generate an empty sequence on in case evaluates false. + if evaluates true; an empty sequence otherwise. + or or is null. + + + + Repeats the given as long as the specified holds, where the is evaluated before each repeated is subscribed to. + + The type of the elements in the source sequence. + Source to repeat as long as the function evaluates to true. + Condition that will be evaluated before subscription to the , to determine whether repetition of the source is required. + The observable sequence obtained by concatenating the sequence as long as the holds. + or is null. + + + + Creates a pattern that matches when both observable sequences have an available element. + + The type of the elements in the left sequence. + The type of the elements in the right sequence. + Observable sequence to match with the right sequence. + Observable sequence to match with the left sequence. + Pattern object that matches when both observable sequences have an available element. + or is null. + + + + Matches when the observable sequence has an available element and projects the element by invoking the selector function. + + The type of the elements in the source sequence. + The type of the elements in the result sequence, returned by the selector function. + Observable sequence to apply the selector on. + Selector that will be invoked for elements in the source sequence. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + or is null. + + + + Joins together the results from several patterns. + + The type of the elements in the result sequence, obtained from the specified patterns. + A series of plans created by use of the Then operator on patterns. + An observable sequence with the results from matching several patterns. + is null. + + + + Joins together the results from several patterns. + + The type of the elements in the result sequence, obtained from the specified patterns. + A series of plans created by use of the Then operator on patterns. + An observable sequence with the results form matching several patterns. + is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Fourteenth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the fifteenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Fourteenth observable source. + Fifteenth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or or or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the fifteenth source sequence. + The type of the elements in the sixteenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Fourteenth observable source. + Fifteenth observable source. + Sixteenth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or or or or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Propagates the observable sequence that reacts first. + + The type of the elements in the source sequences. + First observable sequence. + Second observable sequence. + An observable sequence that surfaces either of the given sequences, whichever reacted first. + or is null. + + + + Propagates the observable sequence that reacts first. + + The type of the elements in the source sequences. + Observable sources competing to react first. + An observable sequence that surfaces any of the given sequences, whichever reacted first. + is null. + + + + Propagates the observable sequence that reacts first. + + The type of the elements in the source sequences. + Observable sources competing to react first. + An observable sequence that surfaces any of the given sequences, whichever reacted first. + is null. + + + + Projects each element of an observable sequence into consecutive non-overlapping buffers. + + The type of the elements in the source sequence, and in the lists in the result sequence. + The type of the elements in the sequences indicating buffer closing events. + Source sequence to produce buffers over. + A function invoked to define the boundaries of the produced buffers. A new buffer is started when the previous one is closed. + An observable sequence of buffers. + or is null. + + + + Projects each element of an observable sequence into zero or more buffers. + + The type of the elements in the source sequence, and in the lists in the result sequence. + The type of the elements in the sequence indicating buffer opening events, also passed to the closing selector to obtain a sequence of buffer closing events. + The type of the elements in the sequences indicating buffer closing events. + Source sequence to produce buffers over. + Observable sequence whose elements denote the creation of new buffers. + A function invoked to define the closing of each produced buffer. + An observable sequence of buffers. + or or is null. + + + + Projects each element of an observable sequence into consecutive non-overlapping buffers. + + The type of the elements in the source sequence, and in the lists in the result sequence. + The type of the elements in the sequences indicating buffer boundary events. + Source sequence to produce buffers over. + Sequence of buffer boundary markers. The current buffer is closed and a new buffer is opened upon receiving a boundary marker. + An observable sequence of buffers. + or is null. + + + + Continues an observable sequence that is terminated by an exception of the specified type with the observable sequence produced by the handler. + + The type of the elements in the source sequence and sequences returned by the exception handler function. + The type of the exception to catch and handle. Needs to derive from . + Source sequence. + Exception handler function, producing another observable sequence. + An observable sequence containing the source sequence's elements, followed by the elements produced by the handler's resulting observable sequence in case an exception occurred. + or is null. + + + + Continues an observable sequence that is terminated by an exception with the next observable sequence. + + The type of the elements in the source sequence and handler sequence. + First observable sequence whose exception (if any) is caught. + Second observable sequence used to produce results when an error occurred in the first sequence. + An observable sequence containing the first sequence's elements, followed by the elements of the second sequence in case an exception occurred. + or is null. + + + + Continues an observable sequence that is terminated by an exception with the next observable sequence. + + The type of the elements in the source and handler sequences. + Observable sequences to catch exceptions for. + An observable sequence containing elements from consecutive source sequences until a source sequence terminates successfully. + is null. + + + + Continues an observable sequence that is terminated by an exception with the next observable sequence. + + The type of the elements in the source and handler sequences. + Observable sequences to catch exceptions for. + An observable sequence containing elements from consecutive source sequences until a source sequence terminates successfully. + is null. + + + + Merges two observable sequences into one observable sequence by using the selector function whenever one of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Function to invoke whenever either of the sources produces an element. + An observable sequence containing the result of combining elements of both sources using the specified result selector function. + or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the source sequences. + The type of the elements in the result sequence, returned by the selector function. + Observable sources. + Function to invoke whenever any of the sources produces an element. For efficiency, the input list is reused after the selector returns. Either aggregate or copy the values during the function call. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by emitting a list with the latest source elements whenever any of the observable sequences produces an element. + + The type of the elements in the source sequences, and in the lists in the result sequence. + Observable sources. + An observable sequence containing lists of the latest elements of the sources. + is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by emitting a list with the latest source elements whenever any of the observable sequences produces an element. + + The type of the elements in the source sequences, and in the lists in the result sequence. + Observable sources. + An observable sequence containing lists of the latest elements of the sources. + is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Concatenates the second observable sequence to the first observable sequence upon successful termination of the first. + + The type of the elements in the source sequences. + First observable sequence. + Second observable sequence. + An observable sequence that contains the elements of the first sequence, followed by those of the second the sequence. + or is null. + + + + Concatenates all of the specified observable sequences, as long as the previous observable sequence terminated successfully. + + The type of the elements in the source sequences. + Observable sequences to concatenate. + An observable sequence that contains the elements of each given sequence, in sequential order. + is null. + + + + Concatenates all observable sequences in the given enumerable sequence, as long as the previous observable sequence terminated successfully. + + The type of the elements in the source sequences. + Observable sequences to concatenate. + An observable sequence that contains the elements of each given sequence, in sequential order. + is null. + + + + Concatenates all inner observable sequences, as long as the previous observable sequence terminated successfully. + + The type of the elements in the source sequences. + Observable sequence of inner observable sequences. + An observable sequence that contains the elements of each observed inner sequence, in sequential order. + is null. + + + + Concatenates all task results, as long as the previous task terminated successfully. + + The type of the results produced by the tasks. + Observable sequence of tasks. + An observable sequence that contains the results of each task, in sequential order. + is null. + If the tasks support cancellation, consider manual conversion of the tasks using , followed by a concatenation operation using . + + + + Merges elements from all inner observable sequences into a single observable sequence. + + The type of the elements in the source sequences. + Observable sequence of inner observable sequences. + The observable sequence that merges the elements of the inner sequences. + is null. + + + + Merges results from all source tasks into a single observable sequence. + + The type of the results produced by the source tasks. + Observable sequence of tasks. + The observable sequence that merges the results of the source tasks. + is null. + If the tasks support cancellation, consider manual conversion of the tasks using , followed by a merge operation using . + + + + Merges elements from all inner observable sequences into a single observable sequence, limiting the number of concurrent subscriptions to inner sequences. + + The type of the elements in the source sequences. + Observable sequence of inner observable sequences. + Maximum number of inner observable sequences being subscribed to concurrently. + The observable sequence that merges the elements of the inner sequences. + is null. + is less than or equal to zero. + + + + Merges elements from all observable sequences in the given enumerable sequence into a single observable sequence, limiting the number of concurrent subscriptions to inner sequences. + + The type of the elements in the source sequences. + Enumerable sequence of observable sequences. + Maximum number of observable sequences being subscribed to concurrently. + The observable sequence that merges the elements of the observable sequences. + is null. + is less than or equal to zero. + + + + Merges elements from all observable sequences in the given enumerable sequence into a single observable sequence, limiting the number of concurrent subscriptions to inner sequences, and using the specified scheduler for enumeration of and subscription to the sources. + + The type of the elements in the source sequences. + Enumerable sequence of observable sequences. + Maximum number of observable sequences being subscribed to concurrently. + Scheduler to run the enumeration of the sequence of sources on. + The observable sequence that merges the elements of the observable sequences. + or is null. + is less than or equal to zero. + + + + Merges elements from two observable sequences into a single observable sequence. + + The type of the elements in the source sequences. + First observable sequence. + Second observable sequence. + The observable sequence that merges the elements of the given sequences. + or is null. + + + + Merges elements from two observable sequences into a single observable sequence, using the specified scheduler for enumeration of and subscription to the sources. + + The type of the elements in the source sequences. + First observable sequence. + Second observable sequence. + Scheduler used to introduce concurrency for making subscriptions to the given sequences. + The observable sequence that merges the elements of the given sequences. + or or is null. + + + + Merges elements from all of the specified observable sequences into a single observable sequence. + + The type of the elements in the source sequences. + Observable sequences. + The observable sequence that merges the elements of the observable sequences. + is null. + + + + Merges elements from all of the specified observable sequences into a single observable sequence, using the specified scheduler for enumeration of and subscription to the sources. + + The type of the elements in the source sequences. + Observable sequences. + Scheduler to run the enumeration of the sequence of sources on. + The observable sequence that merges the elements of the observable sequences. + or is null. + + + + Merges elements from all observable sequences in the given enumerable sequence into a single observable sequence. + + The type of the elements in the source sequences. + Enumerable sequence of observable sequences. + The observable sequence that merges the elements of the observable sequences. + is null. + + + + Merges elements from all observable sequences in the given enumerable sequence into a single observable sequence, using the specified scheduler for enumeration of and subscription to the sources. + + The type of the elements in the source sequences. + Enumerable sequence of observable sequences. + Scheduler to run the enumeration of the sequence of sources on. + The observable sequence that merges the elements of the observable sequences. + or is null. + + + + Concatenates the second observable sequence to the first observable sequence upon successful or exceptional termination of the first. + + The type of the elements in the source sequences. + First observable sequence whose exception (if any) is caught. + Second observable sequence used to produce results after the first sequence terminates. + An observable sequence that concatenates the first and second sequence, even if the first sequence terminates exceptionally. + or is null. + + + + Concatenates all of the specified observable sequences, even if the previous observable sequence terminated exceptionally. + + The type of the elements in the source sequences. + Observable sequences to concatenate. + An observable sequence that concatenates the source sequences, even if a sequence terminates exceptionally. + is null. + + + + Concatenates all observable sequences in the given enumerable sequence, even if the previous observable sequence terminated exceptionally. + + The type of the elements in the source sequences. + Observable sequences to concatenate. + An observable sequence that concatenates the source sequences, even if a sequence terminates exceptionally. + is null. + + + + Returns the elements from the source observable sequence only after the other observable sequence produces an element. + Starting from Rx.NET 4.0, this will subscribe to before subscribing to + so in case emits an element right away, elements from are not missed. + + The type of the elements in the source sequence. + The type of the elements in the other sequence that indicates the end of skip behavior. + Source sequence to propagate elements for. + Observable sequence that triggers propagation of elements of the source sequence. + An observable sequence containing the elements of the source sequence starting from the point the other sequence triggered propagation. + or is null. + + + + Transforms an observable sequence of observable sequences into an observable sequence + producing values only from the most recent observable sequence. + Each time a new inner observable sequence is received, unsubscribe from the + previous inner observable sequence. + + The type of the elements in the source sequences. + Observable sequence of inner observable sequences. + The observable sequence that at any point in time produces the elements of the most recent inner observable sequence that has been received. + is null. + + + + Transforms an observable sequence of tasks into an observable sequence + producing values only from the most recent observable sequence. + Each time a new task is received, the previous task's result is ignored. + + The type of the results produced by the source tasks. + Observable sequence of tasks. + The observable sequence that at any point in time produces the result of the most recent task that has been received. + is null. + If the tasks support cancellation, consider manual conversion of the tasks using , followed by a switch operation using . + + + + Returns the elements from the source observable sequence until the other observable sequence produces an element. + + The type of the elements in the source sequence. + The type of the elements in the other sequence that indicates the end of take behavior. + Source sequence to propagate elements for. + Observable sequence that terminates propagation of elements of the source sequence. + An observable sequence containing the elements of the source sequence up to the point the other sequence interrupted further propagation. + or is null. + + + + Relays elements from the source observable sequence and calls the predicate after an + emission to check if the sequence should stop after that specific item. + + The type of the elements in the source and result sequences. + The source sequence to relay elements of. + Called after each upstream item has been emitted with + that upstream item and should return true to indicate the sequence should + complete. + The observable sequence with the source elements until the stop predicate returns true. + + The following sequence will stop after the value 5 has been encountered: + + Observable.Range(1, 10) + .TakeUntil(item => item == 5) + .Subscribe(Console.WriteLine); + + + If or is null. + + + + Projects each element of an observable sequence into consecutive non-overlapping windows. + + The type of the elements in the source sequence, and in the windows in the result sequence. + The type of the elements in the sequences indicating window closing events. + Source sequence to produce windows over. + A function invoked to define the boundaries of the produced windows. A new window is started when the previous one is closed. + An observable sequence of windows. + or is null. + + + + Projects each element of an observable sequence into zero or more windows. + + The type of the elements in the source sequence, and in the windows in the result sequence. + The type of the elements in the sequence indicating window opening events, also passed to the closing selector to obtain a sequence of window closing events. + The type of the elements in the sequences indicating window closing events. + Source sequence to produce windows over. + Observable sequence whose elements denote the creation of new windows. + A function invoked to define the closing of each produced window. + An observable sequence of windows. + or or is null. + + + + Projects each element of an observable sequence into consecutive non-overlapping windows. + + The type of the elements in the source sequence, and in the windows in the result sequence. + The type of the elements in the sequences indicating window boundary events. + Source sequence to produce windows over. + Sequence of window boundary markers. The current window is closed and a new window is opened upon receiving a boundary marker. + An observable sequence of windows. + or is null. + + + + Merges two observable sequences into one observable sequence by combining each element from the first source with the latest element from the second source, if any. + Starting from Rx.NET 4.0, this will subscribe to before subscribing to to have a latest element readily available + in case emits an element right away. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Function to invoke for each element from the first source combined with the latest element from the second source, if any. + An observable sequence containing the result of combining each element of the first source with the latest element from the second source, if any, using the specified result selector function. + or or is null. + + + + Merges two observable sequences into one observable sequence by combining their elements in a pairwise fashion. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Function to invoke for each consecutive pair of elements from the first and second source. + An observable sequence containing the result of pairwise combining the elements of the first and second source using the specified result selector function. + or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the source sequences. + The type of the elements in the result sequence, returned by the selector function. + Observable sources. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or is null. + + + + Merges the specified observable sequences into one observable sequence by emitting a list with the elements of the observable sequences at corresponding indexes. + + The type of the elements in the source sequences, and in the lists in the result sequence. + Observable sources. + An observable sequence containing lists of elements at corresponding indexes. + is null. + + + + Merges the specified observable sequences into one observable sequence by emitting a list with the elements of the observable sequences at corresponding indexes. + + The type of the elements in the source sequences, and in the lists in the result sequence. + Observable sources. + An observable sequence containing lists of elements at corresponding indexes. + is null. + + + + Merges an observable sequence and an enumerable sequence into one observable sequence by using the selector function. + + The type of the elements in the first observable source sequence. + The type of the elements in the second enumerable source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second enumerable source. + Function to invoke for each consecutive pair of elements from the first and second source. + An observable sequence containing the result of pairwise combining the elements of the first and second source using the specified result selector function. + or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Fourteenth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the fifteenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Fourteenth observable source. + Fifteenth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the fifteenth source sequence. + The type of the elements in the sixteenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Fourteenth observable source. + Fifteenth observable source. + Sixteenth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or or or or or or or or or or is null. + + + + Append a value to an observable sequence. + + The type of the elements in the source sequence. + Source sequence to append the value to. + Value to append to the specified sequence. + The source sequence appended with the specified value. + is null. + + + + Append a value to an observable sequence. + + The type of the elements in the source sequence. + Source sequence to append the value to. + Value to append to the specified sequence. + Scheduler to emit the append values on. + The source sequence appended with the specified value. + is null. + + + + Hides the identity of an observable sequence. + + The type of the elements in the source sequence. + An observable sequence whose identity to hide. + An observable sequence that hides the identity of the source sequence. + is null. + + + + Projects each element of an observable sequence into consecutive non-overlapping buffers which are produced based on element count information. + + The type of the elements in the source sequence, and in the lists in the result sequence. + Source sequence to produce buffers over. + Length of each buffer. + An observable sequence of buffers. + is null. + is less than or equal to zero. + + + + Projects each element of an observable sequence into zero or more buffers which are produced based on element count information. + + The type of the elements in the source sequence, and in the lists in the result sequence. + Source sequence to produce buffers over. + Length of each buffer. + Number of elements to skip between creation of consecutive buffers. + An observable sequence of buffers. + is null. + or is less than or equal to zero. + + + + Dematerializes the explicit notification values of an observable sequence as implicit notifications. + + The type of the elements materialized in the source sequence notification objects. + An observable sequence containing explicit notification values which have to be turned into implicit notifications. + An observable sequence exhibiting the behavior corresponding to the source sequence's notification values. + is null. + + + + Returns an observable sequence that contains only distinct contiguous elements. + + The type of the elements in the source sequence. + An observable sequence to retain distinct contiguous elements for. + An observable sequence only containing the distinct contiguous elements from the source sequence. + is null. + + + + Returns an observable sequence that contains only distinct contiguous elements according to the comparer. + + The type of the elements in the source sequence. + An observable sequence to retain distinct contiguous elements for. + Equality comparer for source elements. + An observable sequence only containing the distinct contiguous elements from the source sequence. + or is null. + + + + Returns an observable sequence that contains only distinct contiguous elements according to the keySelector. + + The type of the elements in the source sequence. + The type of the discriminator key computed for each element in the source sequence. + An observable sequence to retain distinct contiguous elements for, based on a computed key value. + A function to compute the comparison key for each element. + An observable sequence only containing the distinct contiguous elements, based on a computed key value, from the source sequence. + or is null. + + + + Returns an observable sequence that contains only distinct contiguous elements according to the keySelector and the comparer. + + The type of the elements in the source sequence. + The type of the discriminator key computed for each element in the source sequence. + An observable sequence to retain distinct contiguous elements for, based on a computed key value. + A function to compute the comparison key for each element. + Equality comparer for computed key values. + An observable sequence only containing the distinct contiguous elements, based on a computed key value, from the source sequence. + or or is null. + + + + Invokes an action for each element in the observable sequence, and propagates all observer messages through the result sequence. + This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + + The type of the elements in the source sequence. + Source sequence. + Action to invoke for each element in the observable sequence. + The source sequence with the side-effecting behavior applied. + or is null. + + + + Invokes an action for each element in the observable sequence and invokes an action upon graceful termination of the observable sequence. + This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + + The type of the elements in the source sequence. + Source sequence. + Action to invoke for each element in the observable sequence. + Action to invoke upon graceful termination of the observable sequence. + The source sequence with the side-effecting behavior applied. + or or is null. + + + + Invokes an action for each element in the observable sequence and invokes an action upon exceptional termination of the observable sequence. + This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + + The type of the elements in the source sequence. + Source sequence. + Action to invoke for each element in the observable sequence. + Action to invoke upon exceptional termination of the observable sequence. + The source sequence with the side-effecting behavior applied. + or or is null. + + + + Invokes an action for each element in the observable sequence and invokes an action upon graceful or exceptional termination of the observable sequence. + This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + + The type of the elements in the source sequence. + Source sequence. + Action to invoke for each element in the observable sequence. + Action to invoke upon exceptional termination of the observable sequence. + Action to invoke upon graceful termination of the observable sequence. + The source sequence with the side-effecting behavior applied. + or or or is null. + + + + Invokes the observer's methods for each message in the source sequence. + This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + + The type of the elements in the source sequence. + Source sequence. + Observer whose methods to invoke as part of the source sequence's observation. + The source sequence with the side-effecting behavior applied. + or is null. + + + + Invokes a specified action after the source observable sequence terminates gracefully or exceptionally. + + The type of the elements in the source sequence. + Source sequence. + Action to invoke after the source observable sequence terminates. + Source sequence with the action-invoking termination behavior applied. + or is null. + + + + Ignores all elements in an observable sequence leaving only the termination messages. + + The type of the elements in the source sequence. + Source sequence. + An empty observable sequence that signals termination, successful or exceptional, of the source sequence. + is null. + + + + Materializes the implicit notifications of an observable sequence as explicit notification values. + + The type of the elements in the source sequence. + An observable sequence to get notification values for. + An observable sequence containing the materialized notification values from the source sequence. + is null. + + + + Prepend a value to an observable sequence. + + The type of the elements in the source sequence. + Source sequence to prepend the value to. + Value to prepend to the specified sequence. + The source sequence prepended with the specified value. + is null. + + + + Prepend a value to an observable sequence. + + The type of the elements in the source sequence. + Source sequence to prepend the value to. + Value to prepend to the specified sequence. + Scheduler to emit the prepend values on. + The source sequence prepended with the specified value. + is null. + + + + Repeats the observable sequence indefinitely. + + The type of the elements in the source sequence. + Observable sequence to repeat. + The observable sequence producing the elements of the given sequence repeatedly and sequentially. + is null. + + + + Repeats the observable sequence a specified number of times. + + The type of the elements in the source sequence. + Observable sequence to repeat. + Number of times to repeat the sequence. + The observable sequence producing the elements of the given sequence repeatedly. + is null. + is less than zero. + + + + Repeatedly resubscribes to the source observable after a normal completion and when the observable + returned by a handler produces an arbitrary item. + + The type of the elements in the source sequence. + The arbitrary element type signaled by the handler observable. + Observable sequence to keep repeating when it successfully terminates. + The function that is called for each observer and takes an observable sequence objects. + It should return an observable of arbitrary items that should signal that arbitrary item in + response to receiving the completion signal from the source observable. If this observable signals + a terminal event, the sequence is terminated with that signal instead. + An observable sequence producing the elements of the given sequence repeatedly while each repetition terminates successfully. + is null. + is null. + + + + Repeats the source observable sequence until it successfully terminates. + + The type of the elements in the source sequence. + Observable sequence to repeat until it successfully terminates. + An observable sequence producing the elements of the given sequence repeatedly until it terminates successfully. + is null. + + + + Repeats the source observable sequence the specified number of times or until it successfully terminates. + + The type of the elements in the source sequence. + Observable sequence to repeat until it successfully terminates. + Number of times to repeat the sequence. + An observable sequence producing the elements of the given sequence repeatedly until it terminates successfully. + is null. + is less than zero. + + + + Retries (resubscribes to) the source observable after a failure and when the observable + returned by a handler produces an arbitrary item. + + The type of the elements in the source sequence. + The arbitrary element type signaled by the handler observable. + Observable sequence to repeat until it successfully terminates. + The function that is called for each observer and takes an observable sequence of + errors. It should return an observable of arbitrary items that should signal that arbitrary item in + response to receiving the failure Exception from the source observable. If this observable signals + a terminal event, the sequence is terminated with that signal instead. + An observable sequence producing the elements of the given sequence repeatedly until it terminates successfully. + is null. + is null. + + + + Applies an accumulator function over an observable sequence and returns each intermediate result. The specified seed value is used as the initial accumulator value. + For aggregation behavior with no intermediate results, see . + + The type of the elements in the source sequence. + The type of the result of the aggregation. + An observable sequence to accumulate over. + The initial accumulator value. + An accumulator function to be invoked on each element. + An observable sequence containing the accumulated values. + or is null. + + + + Applies an accumulator function over an observable sequence and returns each intermediate result. + For aggregation behavior with no intermediate results, see . + + The type of the elements in the source sequence and the result of the aggregation. + An observable sequence to accumulate over. + An accumulator function to be invoked on each element. + An observable sequence containing the accumulated values. + or is null. + + + + Bypasses a specified number of elements at the end of an observable sequence. + + The type of the elements in the source sequence. + Source sequence. + Number of elements to bypass at the end of the source sequence. + An observable sequence containing the source sequence elements except for the bypassed ones at the end. + is null. + is less than zero. + + This operator accumulates a queue with a length enough to store the first elements. As more elements are + received, elements are taken from the front of the queue and produced on the result sequence. This causes elements to be delayed. + + + + + Prepends a sequence of values to an observable sequence. + + The type of the elements in the source sequence. + Source sequence to prepend values to. + Values to prepend to the specified sequence. + The source sequence prepended with the specified values. + or is null. + + + + Prepends a sequence of values to an observable sequence. + + The type of the elements in the source sequence. + Source sequence to prepend values to. + Values to prepend to the specified sequence. + The source sequence prepended with the specified values. + or is null. + + + + Prepends a sequence of values to an observable sequence. + + The type of the elements in the source sequence. + Source sequence to prepend values to. + Scheduler to emit the prepended values on. + Values to prepend to the specified sequence. + The source sequence prepended with the specified values. + or or is null. + + + + Prepends a sequence of values to an observable sequence. + + The type of the elements in the source sequence. + Source sequence to prepend values to. + Scheduler to emit the prepended values on. + Values to prepend to the specified sequence. + The source sequence prepended with the specified values. + or or is null. + + + + Returns a specified number of contiguous elements from the end of an observable sequence. + + The type of the elements in the source sequence. + Source sequence. + Number of elements to take from the end of the source sequence. + An observable sequence containing the specified number of elements from the end of the source sequence. + is null. + is less than zero. + + This operator accumulates a buffer with a length enough to store elements elements. Upon completion of + the source sequence, this buffer is drained on the result sequence. This causes the elements to be delayed. + + + + + Returns a specified number of contiguous elements from the end of an observable sequence, using the specified scheduler to drain the queue. + + The type of the elements in the source sequence. + Source sequence. + Number of elements to take from the end of the source sequence. + Scheduler used to drain the queue upon completion of the source sequence. + An observable sequence containing the specified number of elements from the end of the source sequence. + or is null. + is less than zero. + + This operator accumulates a buffer with a length enough to store elements elements. Upon completion of + the source sequence, this buffer is drained on the result sequence. This causes the elements to be delayed. + + + + + Returns a list with the specified number of contiguous elements from the end of an observable sequence. + + The type of the elements in the source sequence. + Source sequence. + Number of elements to take from the end of the source sequence. + An observable sequence containing a single list with the specified number of elements from the end of the source sequence. + is null. + is less than zero. + + This operator accumulates a buffer with a length enough to store elements. Upon completion of the + source sequence, this buffer is produced on the result sequence. + + + + + Projects each element of an observable sequence into consecutive non-overlapping windows which are produced based on element count information. + + The type of the elements in the source sequence, and in the windows in the result sequence. + Source sequence to produce windows over. + Length of each window. + An observable sequence of windows. + is null. + is less than or equal to zero. + + + + Projects each element of an observable sequence into zero or more windows which are produced based on element count information. + + The type of the elements in the source sequence, and in the windows in the result sequence. + Source sequence to produce windows over. + Length of each window. + Number of elements to skip between creation of consecutive windows. + An observable sequence of windows. + is null. + or is less than or equal to zero. + + + + Converts the elements of an observable sequence to the specified type. + + The type to convert the elements in the source sequence to. + The observable sequence that contains the elements to be converted. + An observable sequence that contains each element of the source sequence converted to the specified type. + is null. + + + + Returns the elements of the specified sequence or the type parameter's default value in a singleton sequence if the sequence is empty. + + The type of the elements in the source sequence (if any), whose default value will be taken if the sequence is empty. + The sequence to return a default value for if it is empty. + An observable sequence that contains the default value for the TSource type if the source is empty; otherwise, the elements of the source itself. + is null. + + + + Returns the elements of the specified sequence or the specified value in a singleton sequence if the sequence is empty. + + The type of the elements in the source sequence (if any), and the specified default value which will be taken if the sequence is empty. + The sequence to return the specified value for if it is empty. + The value to return if the sequence is empty. + An observable sequence that contains the specified default value if the source is empty; otherwise, the elements of the source itself. + is null. + + + + Returns an observable sequence that contains only distinct elements. + + The type of the elements in the source sequence. + An observable sequence to retain distinct elements for. + An observable sequence only containing the distinct elements from the source sequence. + is null. + Usage of this operator should be considered carefully due to the maintenance of an internal lookup structure which can grow large. + + + + Returns an observable sequence that contains only distinct elements according to the comparer. + + The type of the elements in the source sequence. + An observable sequence to retain distinct elements for. + Equality comparer for source elements. + An observable sequence only containing the distinct elements from the source sequence. + or is null. + Usage of this operator should be considered carefully due to the maintenance of an internal lookup structure which can grow large. + + + + Returns an observable sequence that contains only distinct elements according to the keySelector. + + The type of the elements in the source sequence. + The type of the discriminator key computed for each element in the source sequence. + An observable sequence to retain distinct elements for. + A function to compute the comparison key for each element. + An observable sequence only containing the distinct elements, based on a computed key value, from the source sequence. + or is null. + Usage of this operator should be considered carefully due to the maintenance of an internal lookup structure which can grow large. + + + + Returns an observable sequence that contains only distinct elements according to the keySelector and the comparer. + + The type of the elements in the source sequence. + The type of the discriminator key computed for each element in the source sequence. + An observable sequence to retain distinct elements for. + A function to compute the comparison key for each element. + Equality comparer for source elements. + An observable sequence only containing the distinct elements, based on a computed key value, from the source sequence. + or or is null. + Usage of this operator should be considered carefully due to the maintenance of an internal lookup structure which can grow large. + + + + Groups the elements of an observable sequence according to a specified key selector function. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + An observable sequence whose elements to group. + A function to extract the key for each element. + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + or is null. + + + + Groups the elements of an observable sequence according to a specified key selector function and comparer. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + An observable sequence whose elements to group. + A function to extract the key for each element. + An equality comparer to compare keys with. + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + or or is null. + + + + Groups the elements of an observable sequence and selects the resulting elements by using a specified function. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements within the groups computed for each element in the source sequence. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to map each source element to an element in an observable group. + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + or or is null. + + + + Groups the elements of an observable sequence according to a specified key selector function and comparer and selects the resulting elements by using a specified function. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements within the groups computed for each element in the source sequence. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to map each source element to an element in an observable group. + An equality comparer to compare keys with. + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + or or or is null. + + + + Groups the elements of an observable sequence with the specified initial capacity according to a specified key selector function. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + An observable sequence whose elements to group. + A function to extract the key for each element. + The initial number of elements that the underlying dictionary can contain. + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + or is null. + is less than 0. + + + + Groups the elements of an observable sequence with the specified initial capacity according to a specified key selector function and comparer. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + An observable sequence whose elements to group. + A function to extract the key for each element. + The initial number of elements that the underlying dictionary can contain. + An equality comparer to compare keys with. + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + or or is null. + is less than 0. + + + + Groups the elements of an observable sequence with the specified initial capacity and selects the resulting elements by using a specified function. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements within the groups computed for each element in the source sequence. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to map each source element to an element in an observable group. + The initial number of elements that the underlying dictionary can contain. + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + or or is null. + is less than 0. + + + + Groups the elements of an observable sequence with the specified initial capacity according to a specified key selector function and comparer and selects the resulting elements by using a specified function. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements within the groups computed for each element in the source sequence. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to map each source element to an element in an observable group. + The initial number of elements that the underlying dictionary can contain. + An equality comparer to compare keys with. + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + or or or is null. + is less than 0. + + + + Groups the elements of an observable sequence according to a specified key selector function and comparer and selects the resulting elements by using a specified function. + A duration selector function is used to control the lifetime of groups. When a group expires, it receives an OnCompleted notification. When a new element with the same + key value as a reclaimed group occurs, the group will be reborn with a new lifetime request. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements within the groups computed for each element in the source sequence. + The type of the elements in the duration sequences obtained for each group to denote its lifetime. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to map each source element to an element in an observable group. + A function to signal the expiration of a group. + An equality comparer to compare keys with. + + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + If a group's lifetime expires, a new group with the same key value can be created once an element with such a key value is encountered. + + or or or or is null. + + + + Groups the elements of an observable sequence according to a specified key selector function and selects the resulting elements by using a specified function. + A duration selector function is used to control the lifetime of groups. When a group expires, it receives an OnCompleted notification. When a new element with the same + key value as a reclaimed group occurs, the group will be reborn with a new lifetime request. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements within the groups computed for each element in the source sequence. + The type of the elements in the duration sequences obtained for each group to denote its lifetime. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to map each source element to an element in an observable group. + A function to signal the expiration of a group. + + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + If a group's lifetime expires, a new group with the same key value can be created once an element with such a key value is encountered. + + or or or is null. + + + + Groups the elements of an observable sequence according to a specified key selector function and comparer. + A duration selector function is used to control the lifetime of groups. When a group expires, it receives an OnCompleted notification. When a new element with the same + key value as a reclaimed group occurs, the group will be reborn with a new lifetime request. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements in the duration sequences obtained for each group to denote its lifetime. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to signal the expiration of a group. + An equality comparer to compare keys with. + + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + If a group's lifetime expires, a new group with the same key value can be created once an element with such a key value is encountered. + + or or or is null. + + + + Groups the elements of an observable sequence according to a specified key selector function. + A duration selector function is used to control the lifetime of groups. When a group expires, it receives an OnCompleted notification. When a new element with the same + key value as a reclaimed group occurs, the group will be reborn with a new lifetime request. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements in the duration sequences obtained for each group to denote its lifetime. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to signal the expiration of a group. + + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + If a group's lifetime expires, a new group with the same key value can be created once an element with such a key value is encountered. + + or or is null. + + + + Groups the elements of an observable sequence with the specified initial capacity according to a specified key selector function and comparer and selects the resulting elements by using a specified function. + A duration selector function is used to control the lifetime of groups. When a group expires, it receives an OnCompleted notification. When a new element with the same + key value as a reclaimed group occurs, the group will be reborn with a new lifetime request. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements within the groups computed for each element in the source sequence. + The type of the elements in the duration sequences obtained for each group to denote its lifetime. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to map each source element to an element in an observable group. + A function to signal the expiration of a group. + The initial number of elements that the underlying dictionary can contain. + An equality comparer to compare keys with. + + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + If a group's lifetime expires, a new group with the same key value can be created once an element with such a key value is encountered. + + or or or or is null. + is less than 0. + + + + Groups the elements of an observable sequence with the specified initial capacity according to a specified key selector function and selects the resulting elements by using a specified function. + A duration selector function is used to control the lifetime of groups. When a group expires, it receives an OnCompleted notification. When a new element with the same + key value as a reclaimed group occurs, the group will be reborn with a new lifetime request. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements within the groups computed for each element in the source sequence. + The type of the elements in the duration sequences obtained for each group to denote its lifetime. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to map each source element to an element in an observable group. + A function to signal the expiration of a group. + The initial number of elements that the underlying dictionary can contain. + + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + If a group's lifetime expires, a new group with the same key value can be created once an element with such a key value is encountered. + + or or or is null. + is less than 0. + + + + Groups the elements of an observable sequence with the specified initial capacity according to a specified key selector function and comparer. + A duration selector function is used to control the lifetime of groups. When a group expires, it receives an OnCompleted notification. When a new element with the same + key value as a reclaimed group occurs, the group will be reborn with a new lifetime request. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements in the duration sequences obtained for each group to denote its lifetime. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to signal the expiration of a group. + The initial number of elements that the underlying dictionary can contain. + An equality comparer to compare keys with. + + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + If a group's lifetime expires, a new group with the same key value can be created once an element with such a key value is encountered. + + or or or is null. + is less than 0. + + + + Groups the elements of an observable sequence with the specified initial capacity according to a specified key selector function. + A duration selector function is used to control the lifetime of groups. When a group expires, it receives an OnCompleted notification. When a new element with the same + key value as a reclaimed group occurs, the group will be reborn with a new lifetime request. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements in the duration sequences obtained for each group to denote its lifetime. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to signal the expiration of a group. + The initial number of elements that the underlying dictionary can contain. + + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + If a group's lifetime expires, a new group with the same key value can be created once an element with such a key value is encountered. + + or or is null. + is less than 0. + + + + Correlates the elements of two sequences based on overlapping durations, and groups the results. + + The type of the elements in the left source sequence. + The type of the elements in the right source sequence. + The type of the elements in the duration sequence denoting the computed duration of each element in the left source sequence. + The type of the elements in the duration sequence denoting the computed duration of each element in the right source sequence. + The type of the elements in the result sequence, obtained by invoking the result selector function for source elements with overlapping duration. + The left observable sequence to join elements for. + The right observable sequence to join elements for. + A function to select the duration of each element of the left observable sequence, used to determine overlap. + A function to select the duration of each element of the right observable sequence, used to determine overlap. + A function invoked to compute a result element for any element of the left sequence with overlapping elements from the right observable sequence. + An observable sequence that contains result elements computed from source elements that have an overlapping duration. + or or or or is null. + + + + Correlates the elements of two sequences based on overlapping durations. + + The type of the elements in the left source sequence. + The type of the elements in the right source sequence. + The type of the elements in the duration sequence denoting the computed duration of each element in the left source sequence. + The type of the elements in the duration sequence denoting the computed duration of each element in the right source sequence. + The type of the elements in the result sequence, obtained by invoking the result selector function for source elements with overlapping duration. + The left observable sequence to join elements for. + The right observable sequence to join elements for. + A function to select the duration of each element of the left observable sequence, used to determine overlap. + A function to select the duration of each element of the right observable sequence, used to determine overlap. + A function invoked to compute a result element for any two overlapping elements of the left and right observable sequences. + An observable sequence that contains result elements computed from source elements that have an overlapping duration. + or or or or is null. + + + + Filters the elements of an observable sequence based on the specified type. + + The type to filter the elements in the source sequence on. + The observable sequence that contains the elements to be filtered. + An observable sequence that contains elements from the input sequence of type TResult. + is null. + + + + Projects each element of an observable sequence into a new form. + + The type of the elements in the source sequence. + The type of the elements in the result sequence, obtained by running the selector function for each element in the source sequence. + A sequence of elements to invoke a transform function on. + A transform function to apply to each source element. + An observable sequence whose elements are the result of invoking the transform function on each element of source. + or is null. + + + + Projects each element of an observable sequence into a new form by incorporating the element's index. + + The type of the elements in the source sequence. + The type of the elements in the result sequence, obtained by running the selector function for each element in the source sequence. + A sequence of elements to invoke a transform function on. + A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + An observable sequence whose elements are the result of invoking the transform function on each element of source. + or is null. + + + + Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the other sequence and the elements in the result sequence. + An observable sequence of elements to project. + An observable sequence to project each element from the source sequence onto. + An observable sequence whose elements are the result of projecting each source element onto the other sequence and merging all the resulting sequences together. + or is null. + + + + Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected inner sequences and the elements in the merged result sequence. + An observable sequence of elements to project. + A transform function to apply to each element. + An observable sequence whose elements are the result of invoking the one-to-many transform function on each element of the input sequence. + or is null. + + + + Projects each element of an observable sequence to an observable sequence by incorporating the element's index and merges the resulting observable sequences into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected inner sequences and the elements in the merged result sequence. + An observable sequence of elements to project. + A transform function to apply to each element; the second parameter of the function represents the index of the source element. + An observable sequence whose elements are the result of invoking the one-to-many transform function on each element of the input sequence. + or is null. + + + + Projects each element of an observable sequence to a task and merges all of the task results into one observable sequence. + + The type of the elements in the source sequence. + The type of the result produced by the projected tasks and the elements in the merged result sequence. + An observable sequence of elements to project. + A transform function to apply to each element. + An observable sequence whose elements are the result of the tasks executed for each element of the input sequence. + This overload supports composition of observable sequences and tasks, without requiring manual conversion of the tasks to observable sequences using . + or is null. + + + + Projects each element of an observable sequence to a task by incorporating the element's index and merges all of the task results into one observable sequence. + + The type of the elements in the source sequence. + The type of the result produced by the projected tasks and the elements in the merged result sequence. + An observable sequence of elements to project. + A transform function to apply to each element; the second parameter of the function represents the index of the source element. + An observable sequence whose elements are the result of the tasks executed for each element of the input sequence. + This overload supports composition of observable sequences and tasks, without requiring manual conversion of the tasks to observable sequences using . + or is null. + + + + Projects each element of an observable sequence to a task with cancellation support and merges all of the task results into one observable sequence. + + The type of the elements in the source sequence. + The type of the result produced by the projected tasks and the elements in the merged result sequence. + An observable sequence of elements to project. + A transform function to apply to each element. + An observable sequence whose elements are the result of the tasks executed for each element of the input sequence. + This overload supports composition of observable sequences and tasks, without requiring manual conversion of the tasks to observable sequences using . + or is null. + + + + Projects each element of an observable sequence to a task by incorporating the element's index with cancellation support and merges all of the task results into one observable sequence. + + The type of the elements in the source sequence. + The type of the result produced by the projected tasks and the elements in the merged result sequence. + An observable sequence of elements to project. + A transform function to apply to each element; the second parameter of the function represents the index of the source element. + An observable sequence whose elements are the result of the tasks executed for each element of the input sequence. + This overload supports composition of observable sequences and tasks, without requiring manual conversion of the tasks to observable sequences using . + or is null. + + + + Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected intermediate sequences. + The type of the elements in the result sequence, obtained by using the selector to combine source sequence elements with their corresponding intermediate sequence elements. + An observable sequence of elements to project. + A transform function to apply to each element. + A transform function to apply to each element of the intermediate sequence. + An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + or or is null. + + + + Projects each element of an observable sequence to an observable sequence by incorporating the element's index, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected intermediate sequences. + The type of the elements in the result sequence, obtained by using the selector to combine source sequence elements with their corresponding intermediate sequence elements. + An observable sequence of elements to project. + A transform function to apply to each element; the second parameter of the function represents the index of the source element. + A transform function to apply to each element of the intermediate sequence; the second parameter of the function represents the index of the source element and the fourth parameter represents the index of the intermediate element. + An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + or or is null. + + + + Projects each element of an observable sequence to a task, invokes the result selector for the source element and the task result, and merges the results into one observable sequence. + + The type of the elements in the source sequence. + The type of the results produced by the projected intermediate tasks. + The type of the elements in the result sequence, obtained by using the selector to combine source sequence elements with their corresponding intermediate task results. + An observable sequence of elements to project. + A transform function to apply to each element. + A transform function to apply to each element of the intermediate sequence. + An observable sequence whose elements are the result of obtaining a task for each element of the input sequence and then mapping the task's result and its corresponding source element to a result element. + or or is null. + This overload supports using LINQ query comprehension syntax in C# and Visual Basic to compose observable sequences and tasks, without requiring manual conversion of the tasks to observable sequences using . + + + + Projects each element of an observable sequence to a task by incorporating the element's index, invokes the result selector for the source element and the task result, and merges the results into one observable sequence. + + The type of the elements in the source sequence. + The type of the results produced by the projected intermediate tasks. + The type of the elements in the result sequence, obtained by using the selector to combine source sequence elements with their corresponding intermediate task results. + An observable sequence of elements to project. + A transform function to apply to each element; the second parameter of the function represents the index of the source element. + A transform function to apply to each element of the intermediate sequence; the second parameter of the function represents the index of the source element. + An observable sequence whose elements are the result of obtaining a task for each element of the input sequence and then mapping the task's result and its corresponding source element to a result element. + or or is null. + This overload supports using LINQ query comprehension syntax in C# and Visual Basic to compose observable sequences and tasks, without requiring manual conversion of the tasks to observable sequences using . + + + + Projects each element of an observable sequence to a task with cancellation support, invokes the result selector for the source element and the task result, and merges the results into one observable sequence. + + The type of the elements in the source sequence. + The type of the results produced by the projected intermediate tasks. + The type of the elements in the result sequence, obtained by using the selector to combine source sequence elements with their corresponding intermediate task results. + An observable sequence of elements to project. + A transform function to apply to each element. + A transform function to apply to each element of the intermediate sequence. + An observable sequence whose elements are the result of obtaining a task for each element of the input sequence and then mapping the task's result and its corresponding source element to a result element. + or or is null. + This overload supports using LINQ query comprehension syntax in C# and Visual Basic to compose observable sequences and tasks, without requiring manual conversion of the tasks to observable sequences using . + + + + Projects each element of an observable sequence to a task by incorporating the element's index with cancellation support, invokes the result selector for the source element and the task result, and merges the results into one observable sequence. + + The type of the elements in the source sequence. + The type of the results produced by the projected intermediate tasks. + The type of the elements in the result sequence, obtained by using the selector to combine source sequence elements with their corresponding intermediate task results. + An observable sequence of elements to project. + A transform function to apply to each element; the second parameter of the function represents the index of the source element. + A transform function to apply to each element of the intermediate sequence; the second parameter of the function represents the index of the source element. + An observable sequence whose elements are the result of obtaining a task for each element of the input sequence and then mapping the task's result and its corresponding source element to a result element. + or or is null. + This overload supports using LINQ query comprehension syntax in C# and Visual Basic to compose observable sequences and tasks, without requiring manual conversion of the tasks to observable sequences using . + + + + Projects each notification of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected inner sequences and the elements in the merged result sequence. + An observable sequence of notifications to project. + A transform function to apply to each element. + A transform function to apply when an error occurs in the source sequence. + A transform function to apply when the end of the source sequence is reached. + An observable sequence whose elements are the result of invoking the one-to-many transform function corresponding to each notification in the input sequence. + or or or is null. + + + + Projects each notification of an observable sequence to an observable sequence by incorporating the element's index and merges the resulting observable sequences into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected inner sequences and the elements in the merged result sequence. + An observable sequence of notifications to project. + A transform function to apply to each element; the second parameter of the function represents the index of the source element. + A transform function to apply when an error occurs in the source sequence. + A transform function to apply when the end of the source sequence is reached. + An observable sequence whose elements are the result of invoking the one-to-many transform function corresponding to each notification in the input sequence. + or or or is null. + + + + Projects each element of an observable sequence to an enumerable sequence and concatenates the resulting enumerable sequences into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected inner enumerable sequences and the elements in the merged result sequence. + An observable sequence of elements to project. + A transform function to apply to each element. + An observable sequence whose elements are the result of invoking the one-to-many transform function on each element of the input sequence. + or is null. + The projected sequences are enumerated synchronously within the OnNext call of the source sequence. In order to do a concurrent, non-blocking merge, change the selector to return an observable sequence obtained using the conversion. + + + + Projects each element of an observable sequence to an enumerable sequence by incorporating the element's index and concatenates the resulting enumerable sequences into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected inner enumerable sequences and the elements in the merged result sequence. + An observable sequence of elements to project. + A transform function to apply to each element; the second parameter of the function represents the index of the source element. + An observable sequence whose elements are the result of invoking the one-to-many transform function on each element of the input sequence. + or is null. + The projected sequences are enumerated synchronously within the OnNext call of the source sequence. In order to do a concurrent, non-blocking merge, change the selector to return an observable sequence obtained using the conversion. + + + + Projects each element of an observable sequence to an enumerable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected intermediate enumerable sequences. + The type of the elements in the result sequence, obtained by using the selector to combine source sequence elements with their corresponding intermediate sequence elements. + An observable sequence of elements to project. + A transform function to apply to each element. + A transform function to apply to each element of the intermediate sequence. + An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + or or is null. + The projected sequences are enumerated synchronously within the OnNext call of the source sequence. In order to do a concurrent, non-blocking merge, change the selector to return an observable sequence obtained using the conversion. + + + + Projects each element of an observable sequence to an enumerable sequence by incorporating the element's index, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected intermediate enumerable sequences. + The type of the elements in the result sequence, obtained by using the selector to combine source sequence elements with their corresponding intermediate sequence elements. + An observable sequence of elements to project. + A transform function to apply to each element; the second parameter of the function represents the index of the source element. + A transform function to apply to each element of the intermediate sequence; the second parameter of the function represents the index of the source element and the fourth parameter represents the index of the intermediate element. + An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + or or is null. + The projected sequences are enumerated synchronously within the OnNext call of the source sequence. In order to do a concurrent, non-blocking merge, change the selector to return an observable sequence obtained using the conversion. + + + + Bypasses a specified number of elements in an observable sequence and then returns the remaining elements. + + The type of the elements in the source sequence. + The sequence to take elements from. + The number of elements to skip before returning the remaining elements. + An observable sequence that contains the elements that occur after the specified index in the input sequence. + is null. + is less than zero. + + + + Bypasses elements in an observable sequence as long as a specified condition is true and then returns the remaining elements. + + The type of the elements in the source sequence. + An observable sequence to return elements from. + A function to test each element for a condition. + An observable sequence that contains the elements from the input sequence starting at the first element in the linear series that does not pass the test specified by predicate. + or is null. + + + + Bypasses elements in an observable sequence as long as a specified condition is true and then returns the remaining elements. + The element's index is used in the logic of the predicate function. + + The type of the elements in the source sequence. + An observable sequence to return elements from. + A function to test each element for a condition; the second parameter of the function represents the index of the source element. + An observable sequence that contains the elements from the input sequence starting at the first element in the linear series that does not pass the test specified by predicate. + or is null. + + + + Returns a specified number of contiguous elements from the start of an observable sequence. + + The type of the elements in the source sequence. + The sequence to take elements from. + The number of elements to return. + An observable sequence that contains the specified number of elements from the start of the input sequence. + is null. + is less than zero. + + + + Returns a specified number of contiguous elements from the start of an observable sequence, using the specified scheduler for the edge case of Take(0). + + The type of the elements in the source sequence. + The sequence to take elements from. + The number of elements to return. + Scheduler used to produce an OnCompleted message in case count is set to 0. + An observable sequence that contains the specified number of elements from the start of the input sequence. + or is null. + is less than zero. + + + + Returns elements from an observable sequence as long as a specified condition is true. + + The type of the elements in the source sequence. + A sequence to return elements from. + A function to test each element for a condition. + An observable sequence that contains the elements from the input sequence that occur before the element at which the test no longer passes. + or is null. + + + + Returns elements from an observable sequence as long as a specified condition is true. + The element's index is used in the logic of the predicate function. + + The type of the elements in the source sequence. + A sequence to return elements from. + A function to test each element for a condition; the second parameter of the function represents the index of the source element. + An observable sequence that contains the elements from the input sequence that occur before the element at which the test no longer passes. + or is null. + + + + Filters the elements of an observable sequence based on a predicate. + + The type of the elements in the source sequence. + An observable sequence whose elements to filter. + A function to test each source element for a condition. + An observable sequence that contains elements from the input sequence that satisfy the condition. + or is null. + + + + Filters the elements of an observable sequence based on a predicate by incorporating the element's index. + + The type of the elements in the source sequence. + An observable sequence whose elements to filter. + A function to test each source element for a condition; the second parameter of the function represents the index of the source element. + An observable sequence that contains elements from the input sequence that satisfy the condition. + or is null. + + + + Projects each element of an observable sequence into consecutive non-overlapping buffers which are produced based on timing information. + + The type of the elements in the source sequence, and in the lists in the result sequence. + Source sequence to produce buffers over. + Length of each buffer. + An observable sequence of buffers. + is null. + is less than TimeSpan.Zero. + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create buffers as fast as it can. + Because all source sequence elements end up in one of the buffers, some buffers won't have a zero time span. This is a side-effect of the asynchrony introduced + by the scheduler, where the action to close the current buffer and to create a new buffer may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Projects each element of an observable sequence into consecutive non-overlapping buffers which are produced based on timing information, using the specified scheduler to run timers. + + The type of the elements in the source sequence, and in the lists in the result sequence. + Source sequence to produce buffers over. + Length of each buffer. + Scheduler to run buffering timers on. + An observable sequence of buffers. + or is null. + is less than TimeSpan.Zero. + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create buffers as fast as it can. + Because all source sequence elements end up in one of the buffers, some buffers won't have a zero time span. This is a side-effect of the asynchrony introduced + by the scheduler, where the action to close the current buffer and to create a new buffer may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Projects each element of an observable sequence into zero or more buffers which are produced based on timing information. + + The type of the elements in the source sequence, and in the lists in the result sequence. + Source sequence to produce buffers over. + Length of each buffer. + Interval between creation of consecutive buffers. + An observable sequence of buffers. + is null. + or is less than TimeSpan.Zero. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create buffers with minimum duration + length. However, some buffers won't have a zero time span. This is a side-effect of the asynchrony introduced by the scheduler, where the action to close the + current buffer may not execute immediately, despite the TimeSpan.Zero due time. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create buffers as fast as it can. + However, this doesn't mean all buffers will start at the beginning of the source sequence. This is a side-effect of the asynchrony introduced by the scheduler, + where the action to create a new buffer may not execute immediately, despite the TimeSpan.Zero due time. + + + + + + Projects each element of an observable sequence into zero or more buffers which are produced based on timing information, using the specified scheduler to run timers. + + The type of the elements in the source sequence, and in the lists in the result sequence. + Source sequence to produce buffers over. + Length of each buffer. + Interval between creation of consecutive buffers. + Scheduler to run buffering timers on. + An observable sequence of buffers. + or is null. + or is less than TimeSpan.Zero. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create buffers with minimum duration + length. However, some buffers won't have a zero time span. This is a side-effect of the asynchrony introduced by the scheduler, where the action to close the + current buffer may not execute immediately, despite the TimeSpan.Zero due time. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create buffers as fast as it can. + However, this doesn't mean all buffers will start at the beginning of the source sequence. This is a side-effect of the asynchrony introduced by the scheduler, + where the action to create a new buffer may not execute immediately, despite the TimeSpan.Zero due time. + + + + + + Projects each element of an observable sequence into a buffer that's sent out when either it's full or a given amount of time has elapsed. + A useful real-world analogy of this overload is the behavior of a ferry leaving the dock when all seats are taken, or at the scheduled time of departure, whichever event occurs first. + + The type of the elements in the source sequence, and in the lists in the result sequence. + Source sequence to produce buffers over. + Maximum time length of a window. + Maximum element count of a window. + An observable sequence of buffers. + is null. + is less than TimeSpan.Zero. -or- is less than or equal to zero. + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create buffers as fast as it can. + Because all source sequence elements end up in one of the buffers, some buffers won't have a zero time span. This is a side-effect of the asynchrony introduced + by the scheduler, where the action to close the current buffer and to create a new buffer may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Projects each element of an observable sequence into a buffer that's sent out when either it's full or a given amount of time has elapsed, using the specified scheduler to run timers. + A useful real-world analogy of this overload is the behavior of a ferry leaving the dock when all seats are taken, or at the scheduled time of departure, whichever event occurs first. + + The type of the elements in the source sequence, and in the lists in the result sequence. + Source sequence to produce buffers over. + Maximum time length of a buffer. + Maximum element count of a buffer. + Scheduler to run buffering timers on. + An observable sequence of buffers. + or is null. + is less than TimeSpan.Zero. -or- is less than or equal to zero. + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create buffers as fast as it can. + Because all source sequence elements end up in one of the buffers, some buffers won't have a zero time span. This is a side-effect of the asynchrony introduced + by the scheduler, where the action to close the current buffer and to create a new buffer may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Time shifts the observable sequence by the specified relative time duration. + The relative time intervals between the values are preserved. + + The type of the elements in the source sequence. + Source sequence to delay values for. + Relative time by which to shift the observable sequence. If this value is equal to TimeSpan.Zero, the scheduler will dispatch observer callbacks as soon as possible. + Time-shifted sequence. + is null. + is less than TimeSpan.Zero. + + + This operator is less efficient than DelaySubscription because it records all notifications and time-delays those. This allows for immediate propagation of errors. + + + Observer callbacks for the resulting sequence will be run on the default scheduler. This effect is similar to using ObserveOn. + + + Exceptions signaled by the source sequence through an OnError callback are forwarded immediately to the result sequence. Any OnNext notifications that were in the queue at the point of the OnError callback will be dropped. + In order to delay error propagation, consider using the Observable.Materialize and Observable.Dematerialize operators, or use DelaySubscription. + + + + + + Time shifts the observable sequence by the specified relative time duration, using the specified scheduler to run timers. + The relative time intervals between the values are preserved. + + The type of the elements in the source sequence. + Source sequence to delay values for. + Relative time by which to shift the observable sequence. If this value is equal to TimeSpan.Zero, the scheduler will dispatch observer callbacks as soon as possible. + Scheduler to run the delay timers on. + Time-shifted sequence. + or is null. + is less than TimeSpan.Zero. + + + This operator is less efficient than DelaySubscription because it records all notifications and time-delays those. This allows for immediate propagation of errors. + + + Observer callbacks for the resulting sequence will be run on the specified scheduler. This effect is similar to using ObserveOn. + + + Exceptions signaled by the source sequence through an OnError callback are forwarded immediately to the result sequence. Any OnNext notifications that were in the queue at the point of the OnError callback will be dropped. + + + Exceptions signaled by the source sequence through an OnError callback are forwarded immediately to the result sequence. Any OnNext notifications that were in the queue at the point of the OnError callback will be dropped. + In order to delay error propagation, consider using the Observable.Materialize and Observable.Dematerialize operators, or use DelaySubscription. + + + + + + Time shifts the observable sequence to start propagating notifications at the specified absolute time. + The relative time intervals between the values are preserved. + + The type of the elements in the source sequence. + Source sequence to delay values for. + Absolute time used to shift the observable sequence; the relative time shift gets computed upon subscription. If this value is less than or equal to DateTimeOffset.UtcNow, the scheduler will dispatch observer callbacks as soon as possible. + Time-shifted sequence. + is null. + + + This operator is less efficient than DelaySubscription because it records all notifications and time-delays those. This allows for immediate propagation of errors. + + + Observer callbacks for the resulting sequence will be run on the default scheduler. This effect is similar to using ObserveOn. + + + Exceptions signaled by the source sequence through an OnError callback are forwarded immediately to the result sequence. Any OnNext notifications that were in the queue at the point of the OnError callback will be dropped. + In order to delay error propagation, consider using the Observable.Materialize and Observable.Dematerialize operators, or use DelaySubscription. + + + + + + Time shifts the observable sequence to start propagating notifications at the specified absolute time, using the specified scheduler to run timers. + The relative time intervals between the values are preserved. + + The type of the elements in the source sequence. + Source sequence to delay values for. + Absolute time used to shift the observable sequence; the relative time shift gets computed upon subscription. If this value is less than or equal to DateTimeOffset.UtcNow, the scheduler will dispatch observer callbacks as soon as possible. + Scheduler to run the delay timers on. + Time-shifted sequence. + or is null. + + + This operator is less efficient than DelaySubscription because it records all notifications and time-delays those. This allows for immediate propagation of errors. + + + Observer callbacks for the resulting sequence will be run on the specified scheduler. This effect is similar to using ObserveOn. + + + Exceptions signaled by the source sequence through an OnError callback are forwarded immediately to the result sequence. Any OnNext notifications that were in the queue at the point of the OnError callback will be dropped. + In order to delay error propagation, consider using the Observable.Materialize and Observable.Dematerialize operators, or use DelaySubscription. + + + + + + Time shifts the observable sequence based on a delay selector function for each element. + + The type of the elements in the source sequence. + The type of the elements in the delay sequences used to denote the delay duration of each element in the source sequence. + Source sequence to delay values for. + Selector function to retrieve a sequence indicating the delay for each given element. + Time-shifted sequence. + or is null. + + + + Time shifts the observable sequence based on a subscription delay and a delay selector function for each element. + + The type of the elements in the source sequence. + The type of the elements in the delay sequences used to denote the delay duration of each element in the source sequence. + Source sequence to delay values for. + Sequence indicating the delay for the subscription to the source. + Selector function to retrieve a sequence indicating the delay for each given element. + Time-shifted sequence. + or or is null. + + + + Time shifts the observable sequence by delaying the subscription with the specified relative time duration. + + The type of the elements in the source sequence. + Source sequence to delay subscription for. + Relative time shift of the subscription. + Time-shifted sequence. + is null. + is less than TimeSpan.Zero. + + + This operator is more efficient than Delay but postpones all side-effects of subscription and affects error propagation timing. + + + The side-effects of subscribing to the source sequence will be run on the default scheduler. Observer callbacks will not be affected. + + + + + + Time shifts the observable sequence by delaying the subscription with the specified relative time duration, using the specified scheduler to run timers. + + The type of the elements in the source sequence. + Source sequence to delay subscription for. + Relative time shift of the subscription. + Scheduler to run the subscription delay timer on. + Time-shifted sequence. + or is null. + is less than TimeSpan.Zero. + + + This operator is more efficient than Delay but postpones all side-effects of subscription and affects error propagation timing. + + + The side-effects of subscribing to the source sequence will be run on the specified scheduler. Observer callbacks will not be affected. + + + + + + Time shifts the observable sequence by delaying the subscription to the specified absolute time. + + The type of the elements in the source sequence. + Source sequence to delay subscription for. + Absolute time to perform the subscription at. + Time-shifted sequence. + is null. + + + This operator is more efficient than Delay but postpones all side-effects of subscription and affects error propagation timing. + + + The side-effects of subscribing to the source sequence will be run on the default scheduler. Observer callbacks will not be affected. + + + + + + Time shifts the observable sequence by delaying the subscription to the specified absolute time, using the specified scheduler to run timers. + + The type of the elements in the source sequence. + Source sequence to delay subscription for. + Absolute time to perform the subscription at. + Scheduler to run the subscription delay timer on. + Time-shifted sequence. + or is null. + + + This operator is more efficient than Delay but postpones all side-effects of subscription and affects error propagation timing. + + + The side-effects of subscribing to the source sequence will be run on the specified scheduler. Observer callbacks will not be affected. + + + + + + Generates an observable sequence by running a state-driven and temporal loop producing the sequence's elements. + + The type of the state used in the generator loop. + The type of the elements in the produced sequence. + Initial state. + Condition to terminate generation (upon returning false). + Iteration step function. + Selector function for results produced in the sequence. + Time selector function to control the speed of values being produced each iteration. + The generated sequence. + or or or is null. + + + + Generates an observable sequence by running a state-driven and temporal loop producing the sequence's elements, using the specified scheduler to run timers and to send out observer messages. + + The type of the state used in the generator loop. + The type of the elements in the produced sequence. + Initial state. + Condition to terminate generation (upon returning false). + Iteration step function. + Selector function for results produced in the sequence. + Time selector function to control the speed of values being produced each iteration. + Scheduler on which to run the generator loop. + The generated sequence. + or or or or is null. + + + + Generates an observable sequence by running a state-driven and temporal loop producing the sequence's elements. + + The type of the state used in the generator loop. + The type of the elements in the produced sequence. + Initial state. + Condition to terminate generation (upon returning false). + Iteration step function. + Selector function for results produced in the sequence. + Time selector function to control the speed of values being produced each iteration. + The generated sequence. + or or or is null. + + + + Generates an observable sequence by running a state-driven and temporal loop producing the sequence's elements, using the specified scheduler to run timers and to send out observer messages. + + The type of the state used in the generator loop. + The type of the elements in the produced sequence. + Initial state. + Condition to terminate generation (upon returning false). + Iteration step function. + Selector function for results produced in the sequence. + Time selector function to control the speed of values being produced each iteration. + Scheduler on which to run the generator loop. + The generated sequence. + or or or or is null. + + + + Returns an observable sequence that produces a value after each period. + + Period for producing the values in the resulting sequence. If this value is equal to TimeSpan.Zero, the timer will recur as fast as possible. + An observable sequence that produces a value after each period. + is less than TimeSpan.Zero. + + Intervals are measured between the start of subsequent notifications, not between the end of the previous and the start of the next notification. + If the observer takes longer than the interval period to handle the message, the subsequent notification will be delivered immediately after the + current one has been handled. In case you need to control the time between the end and the start of consecutive notifications, consider using the + + operator instead. + + + + + Returns an observable sequence that produces a value after each period, using the specified scheduler to run timers and to send out observer messages. + + Period for producing the values in the resulting sequence. If this value is equal to TimeSpan.Zero, the timer will recur as fast as possible. + Scheduler to run the timer on. + An observable sequence that produces a value after each period. + is less than TimeSpan.Zero. + is null. + + Intervals are measured between the start of subsequent notifications, not between the end of the previous and the start of the next notification. + If the observer takes longer than the interval period to handle the message, the subsequent notification will be delivered immediately after the + current one has been handled. In case you need to control the time between the end and the start of consecutive notifications, consider using the + + operator instead. + + + + + Samples the observable sequence at each interval. + Upon each sampling tick, the latest element (if any) in the source sequence during the last sampling interval is sent to the resulting sequence. + + The type of the elements in the source sequence. + Source sequence to sample. + Interval at which to sample. If this value is equal to TimeSpan.Zero, the scheduler will continuously sample the stream. + Sampled observable sequence. + is null. + is less than TimeSpan.Zero. + + Specifying a TimeSpan.Zero value for doesn't guarantee all source sequence elements will be preserved. This is a side-effect + of the asynchrony introduced by the scheduler, where the sampling action may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Samples the observable sequence at each interval, using the specified scheduler to run sampling timers. + Upon each sampling tick, the latest element (if any) in the source sequence during the last sampling interval is sent to the resulting sequence. + + The type of the elements in the source sequence. + Source sequence to sample. + Interval at which to sample. If this value is equal to TimeSpan.Zero, the scheduler will continuously sample the stream. + Scheduler to run the sampling timer on. + Sampled observable sequence. + or is null. + is less than TimeSpan.Zero. + + Specifying a TimeSpan.Zero value for doesn't guarantee all source sequence elements will be preserved. This is a side-effect + of the asynchrony introduced by the scheduler, where the sampling action may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Samples the source observable sequence using a sampler observable sequence producing sampling ticks. + Upon each sampling tick, the latest element (if any) in the source sequence during the last sampling interval is sent to the resulting sequence. + + The type of the elements in the source sequence. + The type of the elements in the sampling sequence. + Source sequence to sample. + Sampling tick sequence. + Sampled observable sequence. + or is null. + + + + Skips elements for the specified duration from the start of the observable source sequence. + + The type of the elements in the source sequence. + Source sequence to skip elements for. + Duration for skipping elements from the start of the sequence. + An observable sequence with the elements skipped during the specified duration from the start of the source sequence. + is null. + is less than TimeSpan.Zero. + + + Specifying a TimeSpan.Zero value for doesn't guarantee no elements will be dropped from the start of the source sequence. + This is a side-effect of the asynchrony introduced by the scheduler, where the action that causes callbacks from the source sequence to be forwarded + may not execute immediately, despite the TimeSpan.Zero due time. + + + Errors produced by the source sequence are always forwarded to the result sequence, even if the error occurs before the . + + + + + + Skips elements for the specified duration from the start of the observable source sequence, using the specified scheduler to run timers. + + The type of the elements in the source sequence. + Source sequence to skip elements for. + Duration for skipping elements from the start of the sequence. + Scheduler to run the timer on. + An observable sequence with the elements skipped during the specified duration from the start of the source sequence. + or is null. + is less than TimeSpan.Zero. + + + Specifying a TimeSpan.Zero value for doesn't guarantee no elements will be dropped from the start of the source sequence. + This is a side-effect of the asynchrony introduced by the scheduler, where the action that causes callbacks from the source sequence to be forwarded + may not execute immediately, despite the TimeSpan.Zero due time. + + + Errors produced by the source sequence are always forwarded to the result sequence, even if the error occurs before the . + + + + + + Skips elements for the specified duration from the end of the observable source sequence. + + The type of the elements in the source sequence. + Source sequence to skip elements for. + Duration for skipping elements from the end of the sequence. + An observable sequence with the elements skipped during the specified duration from the end of the source sequence. + is null. + is less than TimeSpan.Zero. + + This operator accumulates a queue with a length enough to store elements received during the initial window. + As more elements are received, elements older than the specified are taken from the queue and produced on the + result sequence. This causes elements to be delayed with . + + + + + Skips elements for the specified duration from the end of the observable source sequence, using the specified scheduler to run timers. + + The type of the elements in the source sequence. + Source sequence to skip elements for. + Duration for skipping elements from the end of the sequence. + Scheduler to run the timer on. + An observable sequence with the elements skipped during the specified duration from the end of the source sequence. + or is null. + is less than TimeSpan.Zero. + + This operator accumulates a queue with a length enough to store elements received during the initial window. + As more elements are received, elements older than the specified are taken from the queue and produced on the + result sequence. This causes elements to be delayed with . + + + + + Skips elements from the observable source sequence until the specified start time. + + The type of the elements in the source sequence. + Source sequence to skip elements for. + Time to start taking elements from the source sequence. If this value is less than or equal to DateTimeOffset.UtcNow, no elements will be skipped. + An observable sequence with the elements skipped until the specified start time. + is null. + + Errors produced by the source sequence are always forwarded to the result sequence, even if the error occurs before the . + + + + + Skips elements from the observable source sequence until the specified start time, using the specified scheduler to run timers. + + The type of the elements in the source sequence. + Source sequence to skip elements for. + Time to start taking elements from the source sequence. If this value is less than or equal to DateTimeOffset.UtcNow, no elements will be skipped. + Scheduler to run the timer on. + An observable sequence with the elements skipped until the specified start time. + or is null. + + Errors produced by the source sequence are always forwarded to the result sequence, even if the error occurs before the . + + + + + Takes elements for the specified duration from the start of the observable source sequence. + + The type of the elements in the source sequence. + Source sequence to take elements from. + Duration for taking elements from the start of the sequence. + An observable sequence with the elements taken during the specified duration from the start of the source sequence. + is null. + is less than TimeSpan.Zero. + + Specifying a TimeSpan.Zero value for doesn't guarantee an empty sequence will be returned. This is a side-effect + of the asynchrony introduced by the scheduler, where the action that stops forwarding callbacks from the source sequence may not execute + immediately, despite the TimeSpan.Zero due time. + + + + + Takes elements for the specified duration from the start of the observable source sequence, using the specified scheduler to run timers. + + The type of the elements in the source sequence. + Source sequence to take elements from. + Duration for taking elements from the start of the sequence. + Scheduler to run the timer on. + An observable sequence with the elements taken during the specified duration from the start of the source sequence. + or is null. + is less than TimeSpan.Zero. + + Specifying a TimeSpan.Zero value for doesn't guarantee an empty sequence will be returned. This is a side-effect + of the asynchrony introduced by the scheduler, where the action that stops forwarding callbacks from the source sequence may not execute + immediately, despite the TimeSpan.Zero due time. + + + + + Returns elements within the specified duration from the end of the observable source sequence. + + The type of the elements in the source sequence. + Source sequence to take elements from. + Duration for taking elements from the end of the sequence. + An observable sequence with the elements taken during the specified duration from the end of the source sequence. + is null. + is less than TimeSpan.Zero. + + This operator accumulates a buffer with a length enough to store elements for any window during the lifetime of + the source sequence. Upon completion of the source sequence, this buffer is drained on the result sequence. This causes the result elements + to be delayed with . + + + + + Returns elements within the specified duration from the end of the observable source sequence, using the specified scheduler to run timers. + + The type of the elements in the source sequence. + Source sequence to take elements from. + Duration for taking elements from the end of the sequence. + Scheduler to run the timer on. + An observable sequence with the elements taken during the specified duration from the end of the source sequence. + or is null. + is less than TimeSpan.Zero. + + This operator accumulates a buffer with a length enough to store elements for any window during the lifetime of + the source sequence. Upon completion of the source sequence, this buffer is drained on the result sequence. This causes the result elements + to be delayed with . + + + + + Returns elements within the specified duration from the end of the observable source sequence, using the specified schedulers to run timers and to drain the collected elements. + + The type of the elements in the source sequence. + Source sequence to take elements from. + Duration for taking elements from the end of the sequence. + Scheduler to run the timer on. + Scheduler to drain the collected elements. + An observable sequence with the elements taken during the specified duration from the end of the source sequence. + or or is null. + is less than TimeSpan.Zero. + + This operator accumulates a buffer with a length enough to store elements for any window during the lifetime of + the source sequence. Upon completion of the source sequence, this buffer is drained on the result sequence. This causes the result elements + to be delayed with . + + + + + Returns a list with the elements within the specified duration from the end of the observable source sequence. + + The type of the elements in the source sequence. + Source sequence to take elements from. + Duration for taking elements from the end of the sequence. + An observable sequence containing a single list with the elements taken during the specified duration from the end of the source sequence. + is null. + is less than TimeSpan.Zero. + + This operator accumulates a buffer with a length enough to store elements for any window during the lifetime of + the source sequence. Upon completion of the source sequence, this buffer is produced on the result sequence. + + + + + Returns a list with the elements within the specified duration from the end of the observable source sequence, using the specified scheduler to run timers. + + The type of the elements in the source sequence. + Source sequence to take elements from. + Duration for taking elements from the end of the sequence. + Scheduler to run the timer on. + An observable sequence containing a single list with the elements taken during the specified duration from the end of the source sequence. + or is null. + is less than TimeSpan.Zero. + + This operator accumulates a buffer with a length enough to store elements for any window during the lifetime of + the source sequence. Upon completion of the source sequence, this buffer is produced on the result sequence. + + + + + Takes elements for the specified duration until the specified end time. + + The type of the elements in the source sequence. + Source sequence to take elements from. + Time to stop taking elements from the source sequence. If this value is less than or equal to DateTimeOffset.UtcNow, the result stream will complete immediately. + An observable sequence with the elements taken until the specified end time. + is null. + + + + Takes elements for the specified duration until the specified end time, using the specified scheduler to run timers. + + The type of the elements in the source sequence. + Source sequence to take elements from. + Time to stop taking elements from the source sequence. If this value is less than or equal to DateTimeOffset.UtcNow, the result stream will complete immediately. + Scheduler to run the timer on. + An observable sequence with the elements taken until the specified end time. + or is null. + + + + Ignores elements from an observable sequence which are followed by another element within a specified relative time duration. + + The type of the elements in the source sequence. + Source sequence to throttle. + Throttling duration for each element. + The throttled sequence. + is null. + is less than TimeSpan.Zero. + + + This operator throttles the source sequence by holding on to each element for the duration specified in . If another + element is produced within this time window, the element is dropped and a new timer is started for the current element, repeating this whole + process. For streams that never have gaps larger than or equal to between elements, the resulting stream won't + produce any elements. In order to reduce the volume of a stream whilst guaranteeing the periodic production of elements, consider using the + Observable.Sample set of operators. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing throttling timers to be scheduled + that are due immediately. However, this doesn't guarantee all elements will be retained in the result sequence. This is a side-effect of the + asynchrony introduced by the scheduler, where the action to forward the current element may not execute immediately, despite the TimeSpan.Zero + due time. In such cases, the next element may arrive before the scheduler gets a chance to run the throttling action. + + + + + + Ignores elements from an observable sequence which are followed by another element within a specified relative time duration, using the specified scheduler to run throttling timers. + + The type of the elements in the source sequence. + Source sequence to throttle. + Throttling duration for each element. + Scheduler to run the throttle timers on. + The throttled sequence. + or is null. + is less than TimeSpan.Zero. + + + This operator throttles the source sequence by holding on to each element for the duration specified in . If another + element is produced within this time window, the element is dropped and a new timer is started for the current element, repeating this whole + process. For streams that never have gaps larger than or equal to between elements, the resulting stream won't + produce any elements. In order to reduce the volume of a stream whilst guaranteeing the periodic production of elements, consider using the + Observable.Sample set of operators. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing throttling timers to be scheduled + that are due immediately. However, this doesn't guarantee all elements will be retained in the result sequence. This is a side-effect of the + asynchrony introduced by the scheduler, where the action to forward the current element may not execute immediately, despite the TimeSpan.Zero + due time. In such cases, the next element may arrive before the scheduler gets a chance to run the throttling action. + + + + + + Ignores elements from an observable sequence which are followed by another value within a computed throttle duration. + + The type of the elements in the source sequence. + The type of the elements in the throttle sequences selected for each element in the source sequence. + Source sequence to throttle. + Selector function to retrieve a sequence indicating the throttle duration for each given element. + The throttled sequence. + or is null. + + This operator throttles the source sequence by holding on to each element for the duration denoted by . + If another element is produced within this time window, the element is dropped and a new timer is started for the current element, repeating this + whole process. For streams where the duration computed by applying the to each element overlaps with + the occurrence of the successor element, the resulting stream won't produce any elements. In order to reduce the volume of a stream whilst + guaranteeing the periodic production of elements, consider using the Observable.Sample set of operators. + + + + + Records the time interval between consecutive elements in an observable sequence. + + The type of the elements in the source sequence. + Source sequence to record time intervals for. + An observable sequence with time interval information on elements. + is null. + + + + Records the time interval between consecutive elements in an observable sequence, using the specified scheduler to compute time intervals. + + The type of the elements in the source sequence. + Source sequence to record time intervals for. + Scheduler used to compute time intervals. + An observable sequence with time interval information on elements. + or is null. + + + + Applies a timeout policy for each element in the observable sequence. + If the next element isn't received within the specified timeout duration starting from its predecessor, a TimeoutException is propagated to the observer. + + The type of the elements in the source sequence. + Source sequence to perform a timeout for. + Maximum duration between values before a timeout occurs. + The source sequence with a TimeoutException in case of a timeout. + is null. + is less than TimeSpan.Zero. + (Asynchronous) If no element is produced within from the previous element. + + + In case you only want to timeout on the first element, consider using the + operator applied to the source sequence and a delayed sequence. Alternatively, the general-purpose overload + of Timeout, can be used. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing timeout timers to be scheduled that are due + immediately. However, this doesn't guarantee a timeout will occur, even for the first element. This is a side-effect of the asynchrony introduced by the + scheduler, where the action to propagate a timeout may not execute immediately, despite the TimeSpan.Zero due time. In such cases, the next element may + arrive before the scheduler gets a chance to run the timeout action. + + + + + + Applies a timeout policy for each element in the observable sequence, using the specified scheduler to run timeout timers. + If the next element isn't received within the specified timeout duration starting from its predecessor, a TimeoutException is propagated to the observer. + + The type of the elements in the source sequence. + Source sequence to perform a timeout for. + Maximum duration between values before a timeout occurs. + Scheduler to run the timeout timers on. + The source sequence with a TimeoutException in case of a timeout. + or is null. + is less than TimeSpan.Zero. + (Asynchronous) If no element is produced within from the previous element. + + + In case you only want to timeout on the first element, consider using the + operator applied to the source sequence and a delayed sequence. Alternatively, the general-purpose overload + of Timeout, can be used. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing timeout timers to be scheduled that are due + immediately. However, this doesn't guarantee a timeout will occur, even for the first element. This is a side-effect of the asynchrony introduced by the + scheduler, where the action to propagate a timeout may not execute immediately, despite the TimeSpan.Zero due time. In such cases, the next element may + arrive before the scheduler gets a chance to run the timeout action. + + + + + + Applies a timeout policy for each element in the observable sequence. + If the next element isn't received within the specified timeout duration starting from its predecessor, the other observable sequence is used to produce future messages from that point on. + + The type of the elements in the source sequence and the other sequence used upon a timeout. + Source sequence to perform a timeout for. + Maximum duration between values before a timeout occurs. + Sequence to return in case of a timeout. + The source sequence switching to the other sequence in case of a timeout. + or is null. + is less than TimeSpan.Zero. + + + In case you only want to timeout on the first element, consider using the + operator applied to the source sequence and a delayed sequence. Alternatively, the general-purpose overload + of Timeout, can be used. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing timeout timers to be scheduled that are due + immediately. However, this doesn't guarantee a timeout will occur, even for the first element. This is a side-effect of the asynchrony introduced by the + scheduler, where the action to propagate a timeout may not execute immediately, despite the TimeSpan.Zero due time. In such cases, the next element may + arrive before the scheduler gets a chance to run the timeout action. + + + + + + Applies a timeout policy for each element in the observable sequence, using the specified scheduler to run timeout timers. + If the next element isn't received within the specified timeout duration starting from its predecessor, the other observable sequence is used to produce future messages from that point on. + + The type of the elements in the source sequence and the other sequence used upon a timeout. + Source sequence to perform a timeout for. + Maximum duration between values before a timeout occurs. + Sequence to return in case of a timeout. + Scheduler to run the timeout timers on. + The source sequence switching to the other sequence in case of a timeout. + or or is null. + is less than TimeSpan.Zero. + + + In case you only want to timeout on the first element, consider using the + operator applied to the source sequence and a delayed sequence. Alternatively, the general-purpose overload + of Timeout, can be used. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing timeout timers to be scheduled that are due + immediately. However, this doesn't guarantee a timeout will occur, even for the first element. This is a side-effect of the asynchrony introduced by the + scheduler, where the action to propagate a timeout may not execute immediately, despite the TimeSpan.Zero due time. In such cases, the next element may + arrive before the scheduler gets a chance to run the timeout action. + + + + + + Applies a timeout policy to the observable sequence based on an absolute time. + If the sequence doesn't terminate before the specified absolute due time, a TimeoutException is propagated to the observer. + + The type of the elements in the source sequence. + Source sequence to perform a timeout for. + Time when a timeout occurs. If this value is less than or equal to DateTimeOffset.UtcNow, the timeout occurs immediately. + The source sequence with a TimeoutException in case of a timeout. + is null. + (Asynchronous) If the sequence hasn't terminated before . + + In case you only want to timeout on the first element, consider using the + operator applied to the source sequence and a delayed sequence. Alternatively, the general-purpose overload + of Timeout, can be used. + + + + + Applies a timeout policy to the observable sequence based on an absolute time, using the specified scheduler to run timeout timers. + If the sequence doesn't terminate before the specified absolute due time, a TimeoutException is propagated to the observer. + + The type of the elements in the source sequence. + Source sequence to perform a timeout for. + Time when a timeout occurs. If this value is less than or equal to DateTimeOffset.UtcNow, the timeout occurs immediately. + Scheduler to run the timeout timers on. + The source sequence with a TimeoutException in case of a timeout. + or is null. + (Asynchronous) If the sequence hasn't terminated before . + + In case you only want to timeout on the first element, consider using the + operator applied to the source sequence and a delayed sequence. Alternatively, the general-purpose overload + of Timeout, can be used. + + + + + Applies a timeout policy to the observable sequence based on an absolute time. + If the sequence doesn't terminate before the specified absolute due time, the other observable sequence is used to produce future messages from that point on. + + The type of the elements in the source sequence and the other sequence used upon a timeout. + Source sequence to perform a timeout for. + Time when a timeout occurs. If this value is less than or equal to DateTimeOffset.UtcNow, the timeout occurs immediately. + Sequence to return in case of a timeout. + The source sequence switching to the other sequence in case of a timeout. + or is null. + + In case you only want to timeout on the first element, consider using the + operator applied to the source sequence and a delayed sequence. Alternatively, the general-purpose overload + of Timeout, can be used. + + + + + Applies a timeout policy to the observable sequence based on an absolute time, using the specified scheduler to run timeout timers. + If the sequence doesn't terminate before the specified absolute due time, the other observable sequence is used to produce future messages from that point on. + + The type of the elements in the source sequence and the other sequence used upon a timeout. + Source sequence to perform a timeout for. + Time when a timeout occurs. If this value is less than or equal to DateTimeOffset.UtcNow, the timeout occurs immediately. + Sequence to return in case of a timeout. + Scheduler to run the timeout timers on. + The source sequence switching to the other sequence in case of a timeout. + or or is null. + + In case you only want to timeout on the first element, consider using the + operator applied to the source sequence and a delayed sequence. Alternatively, the general-purpose overload + of Timeout, can be used. + + + + + Applies a timeout policy to the observable sequence based on a timeout duration computed for each element. + If the next element isn't received within the computed duration starting from its predecessor, a TimeoutException is propagated to the observer. + + The type of the elements in the source sequence. + The type of the elements in the timeout sequences used to indicate the timeout duration for each element in the source sequence. + Source sequence to perform a timeout for. + Selector to retrieve an observable sequence that represents the timeout between the current element and the next element. + The source sequence with a TimeoutException in case of a timeout. + or is null. + + + + Applies a timeout policy to the observable sequence based on a timeout duration computed for each element. + If the next element isn't received within the computed duration starting from its predecessor, the other observable sequence is used to produce future messages from that point on. + + The type of the elements in the source sequence and the other sequence used upon a timeout. + The type of the elements in the timeout sequences used to indicate the timeout duration for each element in the source sequence. + Source sequence to perform a timeout for. + Selector to retrieve an observable sequence that represents the timeout between the current element and the next element. + Sequence to return in case of a timeout. + The source sequence switching to the other sequence in case of a timeout. + or or is null. + + + + Applies a timeout policy to the observable sequence based on an initial timeout duration for the first element, and a timeout duration computed for each subsequent element. + If the next element isn't received within the computed duration starting from its predecessor, a TimeoutException is propagated to the observer. + + The type of the elements in the source sequence. + The type of the elements in the timeout sequences used to indicate the timeout duration for each element in the source sequence. + Source sequence to perform a timeout for. + Observable sequence that represents the timeout for the first element. + Selector to retrieve an observable sequence that represents the timeout between the current element and the next element. + The source sequence with a TimeoutException in case of a timeout. + or or is null. + + + + Applies a timeout policy to the observable sequence based on an initial timeout duration for the first element, and a timeout duration computed for each subsequent element. + If the next element isn't received within the computed duration starting from its predecessor, the other observable sequence is used to produce future messages from that point on. + + The type of the elements in the source sequence and the other sequence used upon a timeout. + The type of the elements in the timeout sequences used to indicate the timeout duration for each element in the source sequence. + Source sequence to perform a timeout for. + Observable sequence that represents the timeout for the first element. + Selector to retrieve an observable sequence that represents the timeout between the current element and the next element. + Sequence to return in case of a timeout. + The source sequence switching to the other sequence in case of a timeout. + or or or is null. + + + + Returns an observable sequence that produces a single value after the specified relative due time has elapsed. + + Relative time at which to produce the value. If this value is less than or equal to TimeSpan.Zero, the timer will fire as soon as possible. + An observable sequence that produces a value after the due time has elapsed. + + + + Returns an observable sequence that produces a single value at the specified absolute due time. + + Absolute time at which to produce the value. If this value is less than or equal to DateTimeOffset.UtcNow, the timer will fire as soon as possible. + An observable sequence that produces a value at due time. + + + + Returns an observable sequence that periodically produces a value after the specified initial relative due time has elapsed. + + Relative time at which to produce the first value. If this value is less than or equal to TimeSpan.Zero, the timer will fire as soon as possible. + Period to produce subsequent values. If this value is equal to TimeSpan.Zero, the timer will recur as fast as possible. + An observable sequence that produces a value after due time has elapsed and then after each period. + is less than TimeSpan.Zero. + + + + Returns an observable sequence that periodically produces a value starting at the specified initial absolute due time. + + Absolute time at which to produce the first value. If this value is less than or equal to DateTimeOffset.UtcNow, the timer will fire as soon as possible. + Period to produce subsequent values. If this value is equal to TimeSpan.Zero, the timer will recur as fast as possible. + An observable sequence that produces a value at due time and then after each period. + is less than TimeSpan.Zero. + + + + Returns an observable sequence that produces a single value after the specified relative due time has elapsed, using the specified scheduler to run the timer. + + Relative time at which to produce the value. If this value is less than or equal to TimeSpan.Zero, the timer will fire as soon as possible. + Scheduler to run the timer on. + An observable sequence that produces a value after the due time has elapsed. + is null. + + + + Returns an observable sequence that produces a single value at the specified absolute due time, using the specified scheduler to run the timer. + + Absolute time at which to produce the value. If this value is less than or equal to DateTimeOffset.UtcNow, the timer will fire as soon as possible. + Scheduler to run the timer on. + An observable sequence that produces a value at due time. + is null. + + + + Returns an observable sequence that periodically produces a value after the specified initial relative due time has elapsed, using the specified scheduler to run timers. + + Relative time at which to produce the first value. If this value is less than or equal to TimeSpan.Zero, the timer will fire as soon as possible. + Period to produce subsequent values. If this value is equal to TimeSpan.Zero, the timer will recur as fast as possible. + Scheduler to run timers on. + An observable sequence that produces a value after due time has elapsed and then each period. + is less than TimeSpan.Zero. + is null. + + + + Returns an observable sequence that periodically produces a value starting at the specified initial absolute due time, using the specified scheduler to run timers. + + Absolute time at which to produce the first value. If this value is less than or equal to DateTimeOffset.UtcNow, the timer will fire as soon as possible. + Period to produce subsequent values. If this value is equal to TimeSpan.Zero, the timer will recur as fast as possible. + Scheduler to run timers on. + An observable sequence that produces a value at due time and then after each period. + is less than TimeSpan.Zero. + is null. + + + + Timestamps each element in an observable sequence using the local system clock. + + The type of the elements in the source sequence. + Source sequence to timestamp elements for. + An observable sequence with timestamp information on elements. + is null. + + + + Timestamp each element in an observable sequence using the clock of the specified scheduler. + + The type of the elements in the source sequence. + Source sequence to timestamp elements for. + Scheduler used to compute timestamps. + An observable sequence with timestamp information on elements. + or is null. + + + + Projects each element of an observable sequence into consecutive non-overlapping windows which are produced based on timing information. + + The type of the elements in the source sequence, and in the windows in the result sequence. + Source sequence to produce windows over. + Length of each window. + The sequence of windows. + is null. + is less than TimeSpan.Zero. + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create windows as fast as it can. + Because all source sequence elements end up in one of the windows, some windows won't have a zero time span. This is a side-effect of the asynchrony introduced + by the scheduler, where the action to close the current window and to create a new window may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Projects each element of an observable sequence into consecutive non-overlapping windows which are produced based on timing information, using the specified scheduler to run timers. + + The type of the elements in the source sequence, and in the windows in the result sequence. + Source sequence to produce windows over. + Length of each window. + Scheduler to run windowing timers on. + An observable sequence of windows. + or is null. + is less than TimeSpan.Zero. + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create windows as fast as it can. + Because all source sequence elements end up in one of the windows, some windows won't have a zero time span. This is a side-effect of the asynchrony introduced + by the scheduler, where the action to close the current window and to create a new window may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Projects each element of an observable sequence into zero or more windows which are produced based on timing information. + + The type of the elements in the source sequence, and in the windows in the result sequence. + Source sequence to produce windows over. + Length of each window. + Interval between creation of consecutive windows. + An observable sequence of windows. + is null. + or is less than TimeSpan.Zero. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create windows with minimum duration + length. However, some windows won't have a zero time span. This is a side-effect of the asynchrony introduced by the scheduler, where the action to close the + current window may not execute immediately, despite the TimeSpan.Zero due time. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create windows as fast as it can. + However, this doesn't mean all windows will start at the beginning of the source sequence. This is a side-effect of the asynchrony introduced by the scheduler, + where the action to create a new window may not execute immediately, despite the TimeSpan.Zero due time. + + + + + + Projects each element of an observable sequence into zero or more windows which are produced based on timing information, using the specified scheduler to run timers. + + The type of the elements in the source sequence, and in the windows in the result sequence. + Source sequence to produce windows over. + Length of each window. + Interval between creation of consecutive windows. + Scheduler to run windowing timers on. + An observable sequence of windows. + or is null. + or is less than TimeSpan.Zero. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create windows with minimum duration + length. However, some windows won't have a zero time span. This is a side-effect of the asynchrony introduced by the scheduler, where the action to close the + current window may not execute immediately, despite the TimeSpan.Zero due time. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create windows as fast as it can. + However, this doesn't mean all windows will start at the beginning of the source sequence. This is a side-effect of the asynchrony introduced by the scheduler, + where the action to create a new window may not execute immediately, despite the TimeSpan.Zero due time. + + + + + + Projects each element of an observable sequence into a window that is completed when either it's full or a given amount of time has elapsed. + A useful real-world analogy of this overload is the behavior of a ferry leaving the dock when all seats are taken, or at the scheduled time of departure, whichever event occurs first. + + The type of the elements in the source sequence, and in the windows in the result sequence. + Source sequence to produce windows over. + Maximum time length of a window. + Maximum element count of a window. + An observable sequence of windows. + is null. + is less than TimeSpan.Zero. -or- is less than or equal to zero. + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create windows as fast as it can. + Because all source sequence elements end up in one of the windows, some windows won't have a zero time span. This is a side-effect of the asynchrony introduced + by the scheduler, where the action to close the current window and to create a new window may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Projects each element of an observable sequence into a window that is completed when either it's full or a given amount of time has elapsed, using the specified scheduler to run timers. + A useful real-world analogy of this overload is the behavior of a ferry leaving the dock when all seats are taken, or at the scheduled time of departure, whichever event occurs first. + + The type of the elements in the source sequence, and in the windows in the result sequence. + Source sequence to produce windows over. + Maximum time length of a window. + Maximum element count of a window. + Scheduler to run windowing timers on. + An observable sequence of windows. + or is null. + is less than TimeSpan.Zero. -or- is less than or equal to zero. + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create windows as fast as it can. + Because all source sequence elements end up in one of the windows, some windows won't have a zero time span. This is a side-effect of the asynchrony introduced + by the scheduler, where the action to close the current window and to create a new window may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Provides a set of static methods for writing in-memory queries over observable sequences. + + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + First observable source. + Second observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + First observable source. + Second observable source. + Third observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or is null. + + + + Merges two observable sequences into one observable sequence by combining each element from the first source with the latest element from the second source, if any. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + First observable source. + Second observable source. + An observable sequence containing the result of combining each element of the first source with the latest element from the second source, if any, as a tuple value. + or is null. + + + + Merges an observable sequence and an enumerable sequence into one observable sequence of tuple values. + + The type of the elements in the first observable source sequence. + The type of the elements in the second enumerable source sequence. + First observable source. + Second enumerable source. + An observable sequence containing the result of pairwise combining the elements of the first and second source as a tuple value. + or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + First observable source. + Second observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + First observable source. + Second observable source. + Third observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or is null. + + + + Subscribes to each observable sequence returned by the iteratorMethod in sequence and returns the observable sequence of values sent to the observer given to the iteratorMethod. + + The type of the elements in the produced sequence. + Iterator method that produces elements in the resulting sequence by calling the given observer. + An observable sequence obtained by running the iterator and returning the elements that were sent to the observer. + is null. + + + + Subscribes to each observable sequence returned by the iteratorMethod in sequence and produces a Unit value on the resulting sequence for each step of the iteration. + + Iterator method that drives the resulting observable sequence. + An observable sequence obtained by running the iterator and returning Unit values for each iteration step. + is null. + + + + Expands an observable sequence by recursively invoking selector, using the specified scheduler to enumerate the queue of obtained sequences. + + The type of the elements in the source sequence and each of the recursively expanded sources obtained by running the selector function. + Source sequence with the initial elements. + Selector function to invoke for each produced element, resulting in another sequence to which the selector will be invoked recursively again. + Scheduler on which to perform the expansion by enumerating the internal queue of obtained sequences. + An observable sequence containing all the elements produced by the recursive expansion. + or or is null. + + + + Expands an observable sequence by recursively invoking selector. + + The type of the elements in the source sequence and each of the recursively expanded sources obtained by running the selector function. + Source sequence with the initial elements. + Selector function to invoke for each produced element, resulting in another sequence to which the selector will be invoked recursively again. + An observable sequence containing all the elements produced by the recursive expansion. + or is null. + + + + Runs two observable sequences in parallel and combines their last elements. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable sequence. + Second observable sequence. + Result selector function to invoke with the last elements of both sequences. + An observable sequence with the result of calling the selector function with the last elements of both input sequences. + or or is null. + + + + Runs all specified observable sequences in parallel and collects their last elements. + + The type of the elements in the source sequences. + Observable sequence to collect the last elements for. + An observable sequence with an array collecting the last elements of all the input sequences. + is null. + + + + Runs all observable sequences in the enumerable sources sequence in parallel and collect their last elements. + + The type of the elements in the source sequences. + Observable sequence to collect the last elements for. + An observable sequence with an array collecting the last elements of all the input sequences. + is null. + + + + Returns an observable sequence that is the result of invoking the selector on the source sequence, without sharing subscriptions. + This operator allows for a fluent style of writing queries that use the same sequence multiple times. + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence that will be shared in the selector function. + Selector function which can use the source sequence as many times as needed, without sharing subscriptions to the source sequence. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + or is null. + + + + Comonadic bind operator. + + + + + Comonadic bind operator. + + + + + Immediately subscribes to source and retains the elements in the observable sequence. + + The type of the elements in the source sequence. + Source sequence. + Object that's both an observable sequence and a list which can be used to access the source sequence's elements. + is null. + + + + Provides a set of static methods for writing queries over observable sequences, allowing translation to a target query language. + + + + + Gets the local query provider which will retarget Qbservable-based queries to the corresponding Observable-based query for in-memory execution upon subscription. + + + + + Converts an in-memory observable sequence into an sequence with an expression tree representing the source sequence. + + The type of the elements in the source sequence. + Source sequence. + sequence representing the given observable source sequence. + is null. + + + + Returns the input typed as an . + This operator is used to separate the part of the query that's captured as an expression tree from the part that's executed locally. + + The type of the elements in the source sequence. + An sequence to convert to an sequence. + The original source object, but typed as an . + is null. + + + + Converts an enumerable sequence to an observable sequence. + + The type of the elements in the source sequence. + Enumerable sequence to convert to an observable sequence. + The observable sequence whose elements are pulled from the given enumerable sequence. + is null. + This operator requires the source's object (see ) to implement . + + + + Converts an enumerable sequence to an observable sequence, using the specified scheduler to run the enumeration loop. + + The type of the elements in the source sequence. + Enumerable sequence to convert to an observable sequence. + Scheduler to run the enumeration of the input sequence on. + The observable sequence whose elements are pulled from the given enumerable sequence. + or is null. + This operator requires the source's object (see ) to implement . + + + + Applies an accumulator function over an observable sequence, returning the result of the aggregation as a single element in the result sequence. + For aggregation behavior with incremental intermediate results, see . + + The type of the elements in the source sequence and the result of the aggregation. + An observable sequence to aggregate over. + An accumulator function to be invoked on each element. + An observable sequence containing a single element with the final accumulator value. + + or is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Applies an accumulator function over an observable sequence, returning the result of the aggregation as a single element in the result sequence. The specified seed value is used as the initial accumulator value. + For aggregation behavior with incremental intermediate results, see . + + The type of the elements in the source sequence. + The type of the result of the aggregation. + An observable sequence to aggregate over. + The initial accumulator value. + An accumulator function to be invoked on each element. + An observable sequence containing a single element with the final accumulator value. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Applies an accumulator function over an observable sequence, returning the result of the aggregation as a single element in the result sequence. The specified seed value is used as the initial accumulator value, + and the specified result selector function is used to select the result value. + + The type of the elements in the source sequence. + The type of the accumulator value. + The type of the resulting value. + An observable sequence to aggregate over. + The initial accumulator value. + An accumulator function to be invoked on each element. + A function to transform the final accumulator value into the result value. + An observable sequence containing a single element with the final accumulator value. + + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Determines whether all elements of an observable sequence satisfy a condition. + + The type of the elements in the source sequence. + An observable sequence whose elements to apply the predicate to. + A function to test each element for a condition. + An observable sequence containing a single element determining whether all elements in the source sequence pass the test in the specified predicate. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Propagates the observable sequence that reacts first. + + The type of the elements in the source sequences. + First observable sequence. + Second observable sequence. + An observable sequence that surfaces either of the given sequences, whichever reacted first. + + or is null. + + + + Propagates the observable sequence that reacts first. + + Query provider used to construct the data source. + The type of the elements in the source sequences. + Observable sources competing to react first. + An observable sequence that surfaces any of the given sequences, whichever reacted first. + + is null. + + + + Propagates the observable sequence that reacts first. + + Query provider used to construct the data source. + The type of the elements in the source sequences. + Observable sources competing to react first. + An observable sequence that surfaces any of the given sequences, whichever reacted first. + + is null. + + + + Determines whether an observable sequence contains any elements. + + The type of the elements in the source sequence. + An observable sequence to check for non-emptiness. + An observable sequence containing a single element determining whether the source sequence contains any elements. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Determines whether any element of an observable sequence satisfies a condition. + + The type of the elements in the source sequence. + An observable sequence whose elements to apply the predicate to. + A function to test each element for a condition. + An observable sequence containing a single element determining whether any elements in the source sequence pass the test in the specified predicate. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Append a value to an observable sequence. + + The type of the elements in the source sequence. + Source sequence to append the value to. + Value to append to the specified sequence. + The source sequence appended with the specified value. + + is null. + + + + Append a value to an observable sequence. + + The type of the elements in the source sequence. + Source sequence to append the value to. + Value to append to the specified sequence. + Scheduler to emit the append values on. + The source sequence appended with the specified value. + + is null. + + + + Automatically connect the upstream IConnectableObservable at most once when the + specified number of IObservers have subscribed to this IObservable. + + Query provider used to construct the data source. + The type of the elements in the source sequence. + Connectable observable sequence. + The number of observers required to subscribe before the connection to source happens, non-positive value will trigger an immediate subscription. + If not null, the connection's IDisposable is provided to it. + An observable sequence that connects to the source at most once when the given number of observers have subscribed to it. + + is null. + + + + Computes the average of an observable sequence of values. + + A sequence of values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values. + + is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values. + + A sequence of values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values. + + is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values. + + A sequence of values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values. + + is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values. + + A sequence of values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values. + + is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of nullable values. + + A sequence of nullable values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + + is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of nullable values. + + A sequence of nullable values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + + is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of nullable values. + + A sequence of nullable values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + + is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + (Asynchronous) The sum of the elements in the source sequence is larger than . + + + + Computes the average of an observable sequence of nullable values. + + A sequence of nullable values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + + is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of nullable values. + + A sequence of nullable values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + + is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values. + + A sequence of values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values. + + is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values. + + or is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values. + + or is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values. + + or is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values. + + or is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values. + + or is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + + or is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + + or is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + + or is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + + or is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + + or is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Projects each element of an observable sequence into consecutive non-overlapping buffers which are produced based on element count information. + + The type of the elements in the source sequence, and in the lists in the result sequence. + Source sequence to produce buffers over. + Length of each buffer. + An observable sequence of buffers. + + is null. + + is less than or equal to zero. + + + + Projects each element of an observable sequence into zero or more buffers which are produced based on element count information. + + The type of the elements in the source sequence, and in the lists in the result sequence. + Source sequence to produce buffers over. + Length of each buffer. + Number of elements to skip between creation of consecutive buffers. + An observable sequence of buffers. + + is null. + + or is less than or equal to zero. + + + + Projects each element of an observable sequence into consecutive non-overlapping buffers which are produced based on timing information. + + The type of the elements in the source sequence, and in the lists in the result sequence. + Source sequence to produce buffers over. + Length of each buffer. + An observable sequence of buffers. + + is null. + + is less than TimeSpan.Zero. + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create buffers as fast as it can. + Because all source sequence elements end up in one of the buffers, some buffers won't have a zero time span. This is a side-effect of the asynchrony introduced + by the scheduler, where the action to close the current buffer and to create a new buffer may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Projects each element of an observable sequence into a buffer that's sent out when either it's full or a given amount of time has elapsed. + A useful real-world analogy of this overload is the behavior of a ferry leaving the dock when all seats are taken, or at the scheduled time of departure, whichever event occurs first. + + The type of the elements in the source sequence, and in the lists in the result sequence. + Source sequence to produce buffers over. + Maximum time length of a window. + Maximum element count of a window. + An observable sequence of buffers. + + is null. + + is less than TimeSpan.Zero. -or- is less than or equal to zero. + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create buffers as fast as it can. + Because all source sequence elements end up in one of the buffers, some buffers won't have a zero time span. This is a side-effect of the asynchrony introduced + by the scheduler, where the action to close the current buffer and to create a new buffer may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Projects each element of an observable sequence into a buffer that's sent out when either it's full or a given amount of time has elapsed, using the specified scheduler to run timers. + A useful real-world analogy of this overload is the behavior of a ferry leaving the dock when all seats are taken, or at the scheduled time of departure, whichever event occurs first. + + The type of the elements in the source sequence, and in the lists in the result sequence. + Source sequence to produce buffers over. + Maximum time length of a buffer. + Maximum element count of a buffer. + Scheduler to run buffering timers on. + An observable sequence of buffers. + + or is null. + + is less than TimeSpan.Zero. -or- is less than or equal to zero. + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create buffers as fast as it can. + Because all source sequence elements end up in one of the buffers, some buffers won't have a zero time span. This is a side-effect of the asynchrony introduced + by the scheduler, where the action to close the current buffer and to create a new buffer may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Projects each element of an observable sequence into consecutive non-overlapping buffers which are produced based on timing information, using the specified scheduler to run timers. + + The type of the elements in the source sequence, and in the lists in the result sequence. + Source sequence to produce buffers over. + Length of each buffer. + Scheduler to run buffering timers on. + An observable sequence of buffers. + + or is null. + + is less than TimeSpan.Zero. + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create buffers as fast as it can. + Because all source sequence elements end up in one of the buffers, some buffers won't have a zero time span. This is a side-effect of the asynchrony introduced + by the scheduler, where the action to close the current buffer and to create a new buffer may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Projects each element of an observable sequence into zero or more buffers which are produced based on timing information. + + The type of the elements in the source sequence, and in the lists in the result sequence. + Source sequence to produce buffers over. + Length of each buffer. + Interval between creation of consecutive buffers. + An observable sequence of buffers. + + is null. + + or is less than TimeSpan.Zero. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create buffers with minimum duration + length. However, some buffers won't have a zero time span. This is a side-effect of the asynchrony introduced by the scheduler, where the action to close the + current buffer may not execute immediately, despite the TimeSpan.Zero due time. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create buffers as fast as it can. + However, this doesn't mean all buffers will start at the beginning of the source sequence. This is a side-effect of the asynchrony introduced by the scheduler, + where the action to create a new buffer may not execute immediately, despite the TimeSpan.Zero due time. + + + + + + Projects each element of an observable sequence into zero or more buffers which are produced based on timing information, using the specified scheduler to run timers. + + The type of the elements in the source sequence, and in the lists in the result sequence. + Source sequence to produce buffers over. + Length of each buffer. + Interval between creation of consecutive buffers. + Scheduler to run buffering timers on. + An observable sequence of buffers. + + or is null. + + or is less than TimeSpan.Zero. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create buffers with minimum duration + length. However, some buffers won't have a zero time span. This is a side-effect of the asynchrony introduced by the scheduler, where the action to close the + current buffer may not execute immediately, despite the TimeSpan.Zero due time. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create buffers as fast as it can. + However, this doesn't mean all buffers will start at the beginning of the source sequence. This is a side-effect of the asynchrony introduced by the scheduler, + where the action to create a new buffer may not execute immediately, despite the TimeSpan.Zero due time. + + + + + + Projects each element of an observable sequence into consecutive non-overlapping buffers. + + The type of the elements in the source sequence, and in the lists in the result sequence. + The type of the elements in the sequences indicating buffer boundary events. + Source sequence to produce buffers over. + Sequence of buffer boundary markers. The current buffer is closed and a new buffer is opened upon receiving a boundary marker. + An observable sequence of buffers. + + or is null. + + + + Projects each element of an observable sequence into consecutive non-overlapping buffers. + + The type of the elements in the source sequence, and in the lists in the result sequence. + The type of the elements in the sequences indicating buffer closing events. + Source sequence to produce buffers over. + A function invoked to define the boundaries of the produced buffers. A new buffer is started when the previous one is closed. + An observable sequence of buffers. + + or is null. + + + + Projects each element of an observable sequence into zero or more buffers. + + The type of the elements in the source sequence, and in the lists in the result sequence. + The type of the elements in the sequence indicating buffer opening events, also passed to the closing selector to obtain a sequence of buffer closing events. + The type of the elements in the sequences indicating buffer closing events. + Source sequence to produce buffers over. + Observable sequence whose elements denote the creation of new buffers. + A function invoked to define the closing of each produced buffer. + An observable sequence of buffers. + + or or is null. + + + + Uses to determine which source in to return, choosing an empty sequence if no match is found. + + Query provider used to construct the data source. + The type of the value returned by the selector function, used to look up the resulting source. + The type of the elements in the result sequence. + Selector function invoked to determine the source to lookup in the dictionary. + Dictionary of sources to select from based on the invocation result. + The observable sequence retrieved from the dictionary based on the invocation result, or an empty sequence if no match is found. + + or is null. + + + + Uses to determine which source in to return, choosing if no match is found. + + Query provider used to construct the data source. + The type of the value returned by the selector function, used to look up the resulting source. + The type of the elements in the result sequence. + Selector function invoked to determine the source to lookup in the dictionary. + Dictionary of sources to select from based on the invocation result. + Default source to select in case no matching source in is found. + The observable sequence retrieved from the dictionary based on the invocation result, or if no match is found. + + or or is null. + + + + Uses to determine which source in to return, choosing an empty sequence on the specified scheduler if no match is found. + + Query provider used to construct the data source. + The type of the value returned by the selector function, used to look up the resulting source. + The type of the elements in the result sequence. + Selector function invoked to determine the source to lookup in the dictionary. + Dictionary of sources to select from based on the invocation result. + Scheduler to generate an empty sequence on in case no matching source in is found. + The observable sequence retrieved from the dictionary based on the invocation result, or an empty sequence if no match is found. + + or or is null. + + + + Converts the elements of an observable sequence to the specified type. + + The type to convert the elements in the source sequence to. + The observable sequence that contains the elements to be converted. + An observable sequence that contains each element of the source sequence converted to the specified type. + + is null. + + + + Continues an observable sequence that is terminated by an exception with the next observable sequence. + + The type of the elements in the source sequence and handler sequence. + First observable sequence whose exception (if any) is caught. + Second observable sequence used to produce results when an error occurred in the first sequence. + An observable sequence containing the first sequence's elements, followed by the elements of the second sequence in case an exception occurred. + + or is null. + + + + Continues an observable sequence that is terminated by an exception with the next observable sequence. + + Query provider used to construct the data source. + The type of the elements in the source and handler sequences. + Observable sequences to catch exceptions for. + An observable sequence containing elements from consecutive source sequences until a source sequence terminates successfully. + + is null. + + + + Continues an observable sequence that is terminated by an exception with the next observable sequence. + + Query provider used to construct the data source. + The type of the elements in the source and handler sequences. + Observable sequences to catch exceptions for. + An observable sequence containing elements from consecutive source sequences until a source sequence terminates successfully. + + is null. + + + + Continues an observable sequence that is terminated by an exception of the specified type with the observable sequence produced by the handler. + + The type of the elements in the source sequence and sequences returned by the exception handler function. + The type of the exception to catch and handle. Needs to derive from . + Source sequence. + Exception handler function, producing another observable sequence. + An observable sequence containing the source sequence's elements, followed by the elements produced by the handler's resulting observable sequence in case an exception occurred. + + or is null. + + + + Produces an enumerable sequence of consecutive (possibly empty) chunks of the source sequence. + + The type of the elements in the source sequence. + Source observable sequence. + The enumerable sequence that returns consecutive (possibly empty) chunks upon each iteration. + + is null. + This operator requires the source's object (see ) to implement . + + + + Produces an enumerable sequence that returns elements collected/aggregated from the source sequence between consecutive iterations. + + The type of the elements in the source sequence. + The type of the elements produced by the merge operation during collection. + Source observable sequence. + Factory to create the initial collector object. + Merges a sequence element with the current collector. + Factory to replace the current collector by a new collector. + The enumerable sequence that returns collected/aggregated elements from the source sequence upon each iteration. + + or or or is null. + This operator requires the source's object (see ) to implement . + + + + Produces an enumerable sequence that returns elements collected/aggregated from the source sequence between consecutive iterations. + + The type of the elements in the source sequence. + The type of the elements produced by the merge operation during collection. + Source observable sequence. + Factory to create a new collector object. + Merges a sequence element with the current collector. + The enumerable sequence that returns collected/aggregated elements from the source sequence upon each iteration. + + or or is null. + This operator requires the source's object (see ) to implement . + + + + Merges the specified observable sequences into one observable sequence by emitting a list with the latest source elements whenever any of the observable sequences produces an element. + + Query provider used to construct the data source. + The type of the elements in the source sequences, and in the lists in the result sequence. + Observable sources. + An observable sequence containing lists of the latest elements of the sources. + + is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by emitting a list with the latest source elements whenever any of the observable sequences produces an element. + + Query provider used to construct the data source. + The type of the elements in the source sequences, and in the lists in the result sequence. + Observable sources. + An observable sequence containing lists of the latest elements of the sources. + + is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + Query provider used to construct the data source. + The type of the elements in the source sequences. + The type of the elements in the result sequence, returned by the selector function. + Observable sources. + Function to invoke whenever any of the sources produces an element. For efficiency, the input list is reused after the selector returns. Either aggregate or copy the values during the function call. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges two observable sequences into one observable sequence by using the selector function whenever one of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Function to invoke whenever either of the sources produces an element. + An observable sequence containing the result of combining elements of both sources using the specified result selector function. + + or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Fourteenth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the fifteenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Fourteenth observable source. + Fifteenth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or or or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the fifteenth source sequence. + The type of the elements in the sixteenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Fourteenth observable source. + Fifteenth observable source. + Sixteenth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or or or or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Concatenates the second observable sequence to the first observable sequence upon successful termination of the first. + + The type of the elements in the source sequences. + First observable sequence. + Second observable sequence. + An observable sequence that contains the elements of the first sequence, followed by those of the second the sequence. + + or is null. + + + + Concatenates all of the specified observable sequences, as long as the previous observable sequence terminated successfully. + + Query provider used to construct the data source. + The type of the elements in the source sequences. + Observable sequences to concatenate. + An observable sequence that contains the elements of each given sequence, in sequential order. + + is null. + + + + Concatenates all observable sequences in the given enumerable sequence, as long as the previous observable sequence terminated successfully. + + Query provider used to construct the data source. + The type of the elements in the source sequences. + Observable sequences to concatenate. + An observable sequence that contains the elements of each given sequence, in sequential order. + + is null. + + + + Concatenates all inner observable sequences, as long as the previous observable sequence terminated successfully. + + The type of the elements in the source sequences. + Observable sequence of inner observable sequences. + An observable sequence that contains the elements of each observed inner sequence, in sequential order. + + is null. + + + + Concatenates all task results, as long as the previous task terminated successfully. + + The type of the results produced by the tasks. + Observable sequence of tasks. + An observable sequence that contains the results of each task, in sequential order. + + is null. + If the tasks support cancellation, consider manual conversion of the tasks using , followed by a concatenation operation using . + + + + Determines whether an observable sequence contains a specified element by using the default equality comparer. + + The type of the elements in the source sequence. + An observable sequence in which to locate a value. + The value to locate in the source sequence. + An observable sequence containing a single element determining whether the source sequence contains an element that has the specified value. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Determines whether an observable sequence contains a specified element by using a specified System.Collections.Generic.IEqualityComparer{T}. + + The type of the elements in the source sequence. + An observable sequence in which to locate a value. + The value to locate in the source sequence. + An equality comparer to compare elements. + An observable sequence containing a single element determining whether the source sequence contains an element that has the specified value. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns an observable sequence containing an that represents the total number of elements in an observable sequence. + + The type of the elements in the source sequence. + An observable sequence that contains elements to be counted. + An observable sequence containing a single element with the number of elements in the input sequence. + + is null. + (Asynchronous) The number of elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns an observable sequence containing an that represents how many elements in the specified observable sequence satisfy a condition. + + The type of the elements in the source sequence. + An observable sequence that contains elements to be counted. + A function to test each element for a condition. + An observable sequence containing a single element with a number that represents how many elements in the input sequence satisfy the condition in the predicate function. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates an observable sequence from a specified Subscribe method implementation. + + Query provider used to construct the data source. + The type of the elements in the produced sequence. + Implementation of the resulting observable sequence's Subscribe method. + The observable sequence with the specified implementation for the Subscribe method. + + is null. + + Use of this operator is preferred over manual implementation of the interface. In case + you need a type implementing rather than an anonymous implementation, consider using + the abstract base class. + + + + + Creates an observable sequence from a specified Subscribe method implementation. + + Query provider used to construct the data source. + The type of the elements in the produced sequence. + Implementation of the resulting observable sequence's Subscribe method, returning an Action delegate that will be wrapped in an IDisposable. + The observable sequence with the specified implementation for the Subscribe method. + + is null. + + Use of this operator is preferred over manual implementation of the interface. In case + you need a type implementing rather than an anonymous implementation, consider using + the abstract base class. + + + + + Creates an observable sequence from a specified cancellable asynchronous Subscribe method. + The CancellationToken passed to the asynchronous Subscribe method is tied to the returned disposable subscription, allowing best-effort cancellation. + + Query provider used to construct the data source. + The type of the elements in the produced sequence. + Asynchronous method used to produce elements. + The observable sequence surfacing the elements produced by the asynchronous method. + + is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + When a subscription to the resulting sequence is disposed, the CancellationToken that was fed to the asynchronous subscribe function will be signaled. + + + + Creates an observable sequence from a specified asynchronous Subscribe method. + + Query provider used to construct the data source. + The type of the elements in the produced sequence. + Asynchronous method used to produce elements. + The observable sequence surfacing the elements produced by the asynchronous method. + + is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + + + + Creates an observable sequence from a specified cancellable asynchronous Subscribe method. + The CancellationToken passed to the asynchronous Subscribe method is tied to the returned disposable subscription, allowing best-effort cancellation. + + Query provider used to construct the data source. + The type of the elements in the produced sequence. + Asynchronous method used to implement the resulting sequence's Subscribe method. + The observable sequence with the specified implementation for the Subscribe method. + + is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + When a subscription to the resulting sequence is disposed, the CancellationToken that was fed to the asynchronous subscribe function will be signaled. + + + + Creates an observable sequence from a specified asynchronous Subscribe method. + + Query provider used to construct the data source. + The type of the elements in the produced sequence. + Asynchronous method used to implement the resulting sequence's Subscribe method. + The observable sequence with the specified implementation for the Subscribe method. + + is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + + + + Creates an observable sequence from a specified cancellable asynchronous Subscribe method. + The CancellationToken passed to the asynchronous Subscribe method is tied to the returned disposable subscription, allowing best-effort cancellation. + + Query provider used to construct the data source. + The type of the elements in the produced sequence. + Asynchronous method used to implement the resulting sequence's Subscribe method, returning an Action delegate that will be wrapped in an IDisposable. + The observable sequence with the specified implementation for the Subscribe method. + + is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + When a subscription to the resulting sequence is disposed, the CancellationToken that was fed to the asynchronous subscribe function will be signaled. + + + + Creates an observable sequence from a specified asynchronous Subscribe method. + + Query provider used to construct the data source. + The type of the elements in the produced sequence. + Asynchronous method used to implement the resulting sequence's Subscribe method, returning an Action delegate that will be wrapped in an IDisposable. + The observable sequence with the specified implementation for the Subscribe method. + + is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + + + + Returns the elements of the specified sequence or the type parameter's default value in a singleton sequence if the sequence is empty. + + The type of the elements in the source sequence (if any), whose default value will be taken if the sequence is empty. + The sequence to return a default value for if it is empty. + An observable sequence that contains the default value for the TSource type if the source is empty; otherwise, the elements of the source itself. + + is null. + + + + Returns the elements of the specified sequence or the specified value in a singleton sequence if the sequence is empty. + + The type of the elements in the source sequence (if any), and the specified default value which will be taken if the sequence is empty. + The sequence to return the specified value for if it is empty. + The value to return if the sequence is empty. + An observable sequence that contains the specified default value if the source is empty; otherwise, the elements of the source itself. + + is null. + + + + Returns an observable sequence that invokes the specified factory function whenever a new observer subscribes. + + Query provider used to construct the data source. + The type of the elements in the sequence returned by the factory function, and in the resulting sequence. + Observable factory function to invoke for each observer that subscribes to the resulting sequence. + An observable sequence whose observers trigger an invocation of the given observable factory function. + + is null. + + + + Returns an observable sequence that starts the specified asynchronous factory function whenever a new observer subscribes. + + Query provider used to construct the data source. + The type of the elements in the sequence returned by the factory function, and in the resulting sequence. + Asynchronous factory function to start for each observer that subscribes to the resulting sequence. + An observable sequence whose observers trigger the given asynchronous observable factory function to be started. + + is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + + + + Returns an observable sequence that starts the specified cancellable asynchronous factory function whenever a new observer subscribes. + The CancellationToken passed to the asynchronous factory function is tied to the returned disposable subscription, allowing best-effort cancellation. + + Query provider used to construct the data source. + The type of the elements in the sequence returned by the factory function, and in the resulting sequence. + Asynchronous factory function to start for each observer that subscribes to the resulting sequence. + An observable sequence whose observers trigger the given asynchronous observable factory function to be started. + + is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + When a subscription to the resulting sequence is disposed, the CancellationToken that was fed to the asynchronous observable factory function will be signaled. + + + + Time shifts the observable sequence to start propagating notifications at the specified absolute time. + The relative time intervals between the values are preserved. + + The type of the elements in the source sequence. + Source sequence to delay values for. + Absolute time used to shift the observable sequence; the relative time shift gets computed upon subscription. If this value is less than or equal to DateTimeOffset.UtcNow, the scheduler will dispatch observer callbacks as soon as possible. + Time-shifted sequence. + + is null. + + + This operator is less efficient than DelaySubscription because it records all notifications and time-delays those. This allows for immediate propagation of errors. + + + Observer callbacks for the resulting sequence will be run on the default scheduler. This effect is similar to using ObserveOn. + + + Exceptions signaled by the source sequence through an OnError callback are forwarded immediately to the result sequence. Any OnNext notifications that were in the queue at the point of the OnError callback will be dropped. + In order to delay error propagation, consider using the Observable.Materialize and Observable.Dematerialize operators, or use DelaySubscription. + + + + + + Time shifts the observable sequence to start propagating notifications at the specified absolute time, using the specified scheduler to run timers. + The relative time intervals between the values are preserved. + + The type of the elements in the source sequence. + Source sequence to delay values for. + Absolute time used to shift the observable sequence; the relative time shift gets computed upon subscription. If this value is less than or equal to DateTimeOffset.UtcNow, the scheduler will dispatch observer callbacks as soon as possible. + Scheduler to run the delay timers on. + Time-shifted sequence. + + or is null. + + + This operator is less efficient than DelaySubscription because it records all notifications and time-delays those. This allows for immediate propagation of errors. + + + Observer callbacks for the resulting sequence will be run on the specified scheduler. This effect is similar to using ObserveOn. + + + Exceptions signaled by the source sequence through an OnError callback are forwarded immediately to the result sequence. Any OnNext notifications that were in the queue at the point of the OnError callback will be dropped. + In order to delay error propagation, consider using the Observable.Materialize and Observable.Dematerialize operators, or use DelaySubscription. + + + + + + Time shifts the observable sequence by the specified relative time duration. + The relative time intervals between the values are preserved. + + The type of the elements in the source sequence. + Source sequence to delay values for. + Relative time by which to shift the observable sequence. If this value is equal to TimeSpan.Zero, the scheduler will dispatch observer callbacks as soon as possible. + Time-shifted sequence. + + is null. + + is less than TimeSpan.Zero. + + + This operator is less efficient than DelaySubscription because it records all notifications and time-delays those. This allows for immediate propagation of errors. + + + Observer callbacks for the resulting sequence will be run on the default scheduler. This effect is similar to using ObserveOn. + + + Exceptions signaled by the source sequence through an OnError callback are forwarded immediately to the result sequence. Any OnNext notifications that were in the queue at the point of the OnError callback will be dropped. + In order to delay error propagation, consider using the Observable.Materialize and Observable.Dematerialize operators, or use DelaySubscription. + + + + + + Time shifts the observable sequence by the specified relative time duration, using the specified scheduler to run timers. + The relative time intervals between the values are preserved. + + The type of the elements in the source sequence. + Source sequence to delay values for. + Relative time by which to shift the observable sequence. If this value is equal to TimeSpan.Zero, the scheduler will dispatch observer callbacks as soon as possible. + Scheduler to run the delay timers on. + Time-shifted sequence. + + or is null. + + is less than TimeSpan.Zero. + + + This operator is less efficient than DelaySubscription because it records all notifications and time-delays those. This allows for immediate propagation of errors. + + + Observer callbacks for the resulting sequence will be run on the specified scheduler. This effect is similar to using ObserveOn. + + + Exceptions signaled by the source sequence through an OnError callback are forwarded immediately to the result sequence. Any OnNext notifications that were in the queue at the point of the OnError callback will be dropped. + + + Exceptions signaled by the source sequence through an OnError callback are forwarded immediately to the result sequence. Any OnNext notifications that were in the queue at the point of the OnError callback will be dropped. + In order to delay error propagation, consider using the Observable.Materialize and Observable.Dematerialize operators, or use DelaySubscription. + + + + + + Time shifts the observable sequence based on a delay selector function for each element. + + The type of the elements in the source sequence. + The type of the elements in the delay sequences used to denote the delay duration of each element in the source sequence. + Source sequence to delay values for. + Selector function to retrieve a sequence indicating the delay for each given element. + Time-shifted sequence. + + or is null. + + + + Time shifts the observable sequence based on a subscription delay and a delay selector function for each element. + + The type of the elements in the source sequence. + The type of the elements in the delay sequences used to denote the delay duration of each element in the source sequence. + Source sequence to delay values for. + Sequence indicating the delay for the subscription to the source. + Selector function to retrieve a sequence indicating the delay for each given element. + Time-shifted sequence. + + or or is null. + + + + Time shifts the observable sequence by delaying the subscription to the specified absolute time. + + The type of the elements in the source sequence. + Source sequence to delay subscription for. + Absolute time to perform the subscription at. + Time-shifted sequence. + + is null. + + + This operator is more efficient than Delay but postpones all side-effects of subscription and affects error propagation timing. + + + The side-effects of subscribing to the source sequence will be run on the default scheduler. Observer callbacks will not be affected. + + + + + + Time shifts the observable sequence by delaying the subscription to the specified absolute time, using the specified scheduler to run timers. + + The type of the elements in the source sequence. + Source sequence to delay subscription for. + Absolute time to perform the subscription at. + Scheduler to run the subscription delay timer on. + Time-shifted sequence. + + or is null. + + + This operator is more efficient than Delay but postpones all side-effects of subscription and affects error propagation timing. + + + The side-effects of subscribing to the source sequence will be run on the specified scheduler. Observer callbacks will not be affected. + + + + + + Time shifts the observable sequence by delaying the subscription with the specified relative time duration. + + The type of the elements in the source sequence. + Source sequence to delay subscription for. + Relative time shift of the subscription. + Time-shifted sequence. + + is null. + + is less than TimeSpan.Zero. + + + This operator is more efficient than Delay but postpones all side-effects of subscription and affects error propagation timing. + + + The side-effects of subscribing to the source sequence will be run on the default scheduler. Observer callbacks will not be affected. + + + + + + Time shifts the observable sequence by delaying the subscription with the specified relative time duration, using the specified scheduler to run timers. + + The type of the elements in the source sequence. + Source sequence to delay subscription for. + Relative time shift of the subscription. + Scheduler to run the subscription delay timer on. + Time-shifted sequence. + + or is null. + + is less than TimeSpan.Zero. + + + This operator is more efficient than Delay but postpones all side-effects of subscription and affects error propagation timing. + + + The side-effects of subscribing to the source sequence will be run on the specified scheduler. Observer callbacks will not be affected. + + + + + + Dematerializes the explicit notification values of an observable sequence as implicit notifications. + + The type of the elements materialized in the source sequence notification objects. + An observable sequence containing explicit notification values which have to be turned into implicit notifications. + An observable sequence exhibiting the behavior corresponding to the source sequence's notification values. + + is null. + + + + Returns an observable sequence that contains only distinct elements. + + The type of the elements in the source sequence. + An observable sequence to retain distinct elements for. + An observable sequence only containing the distinct elements from the source sequence. + + is null. + Usage of this operator should be considered carefully due to the maintenance of an internal lookup structure which can grow large. + + + + Returns an observable sequence that contains only distinct elements according to the comparer. + + The type of the elements in the source sequence. + An observable sequence to retain distinct elements for. + Equality comparer for source elements. + An observable sequence only containing the distinct elements from the source sequence. + + or is null. + Usage of this operator should be considered carefully due to the maintenance of an internal lookup structure which can grow large. + + + + Returns an observable sequence that contains only distinct elements according to the keySelector. + + The type of the elements in the source sequence. + The type of the discriminator key computed for each element in the source sequence. + An observable sequence to retain distinct elements for. + A function to compute the comparison key for each element. + An observable sequence only containing the distinct elements, based on a computed key value, from the source sequence. + + or is null. + Usage of this operator should be considered carefully due to the maintenance of an internal lookup structure which can grow large. + + + + Returns an observable sequence that contains only distinct elements according to the keySelector and the comparer. + + The type of the elements in the source sequence. + The type of the discriminator key computed for each element in the source sequence. + An observable sequence to retain distinct elements for. + A function to compute the comparison key for each element. + Equality comparer for source elements. + An observable sequence only containing the distinct elements, based on a computed key value, from the source sequence. + + or or is null. + Usage of this operator should be considered carefully due to the maintenance of an internal lookup structure which can grow large. + + + + Returns an observable sequence that contains only distinct contiguous elements. + + The type of the elements in the source sequence. + An observable sequence to retain distinct contiguous elements for. + An observable sequence only containing the distinct contiguous elements from the source sequence. + + is null. + + + + Returns an observable sequence that contains only distinct contiguous elements according to the comparer. + + The type of the elements in the source sequence. + An observable sequence to retain distinct contiguous elements for. + Equality comparer for source elements. + An observable sequence only containing the distinct contiguous elements from the source sequence. + + or is null. + + + + Returns an observable sequence that contains only distinct contiguous elements according to the keySelector. + + The type of the elements in the source sequence. + The type of the discriminator key computed for each element in the source sequence. + An observable sequence to retain distinct contiguous elements for, based on a computed key value. + A function to compute the comparison key for each element. + An observable sequence only containing the distinct contiguous elements, based on a computed key value, from the source sequence. + + or is null. + + + + Returns an observable sequence that contains only distinct contiguous elements according to the keySelector and the comparer. + + The type of the elements in the source sequence. + The type of the discriminator key computed for each element in the source sequence. + An observable sequence to retain distinct contiguous elements for, based on a computed key value. + A function to compute the comparison key for each element. + Equality comparer for computed key values. + An observable sequence only containing the distinct contiguous elements, based on a computed key value, from the source sequence. + + or or is null. + + + + Invokes the observer's methods for each message in the source sequence. + This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + + The type of the elements in the source sequence. + Source sequence. + Observer whose methods to invoke as part of the source sequence's observation. + The source sequence with the side-effecting behavior applied. + + or is null. + + + + Invokes an action for each element in the observable sequence, and propagates all observer messages through the result sequence. + This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + + The type of the elements in the source sequence. + Source sequence. + Action to invoke for each element in the observable sequence. + The source sequence with the side-effecting behavior applied. + + or is null. + + + + Invokes an action for each element in the observable sequence and invokes an action upon graceful termination of the observable sequence. + This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + + The type of the elements in the source sequence. + Source sequence. + Action to invoke for each element in the observable sequence. + Action to invoke upon graceful termination of the observable sequence. + The source sequence with the side-effecting behavior applied. + + or or is null. + + + + Invokes an action for each element in the observable sequence and invokes an action upon exceptional termination of the observable sequence. + This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + + The type of the elements in the source sequence. + Source sequence. + Action to invoke for each element in the observable sequence. + Action to invoke upon exceptional termination of the observable sequence. + The source sequence with the side-effecting behavior applied. + + or or is null. + + + + Invokes an action for each element in the observable sequence and invokes an action upon graceful or exceptional termination of the observable sequence. + This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + + The type of the elements in the source sequence. + Source sequence. + Action to invoke for each element in the observable sequence. + Action to invoke upon exceptional termination of the observable sequence. + Action to invoke upon graceful termination of the observable sequence. + The source sequence with the side-effecting behavior applied. + + or or or is null. + + + + Repeats the given as long as the specified holds, where the is evaluated after each repeated completed. + + The type of the elements in the source sequence. + Source to repeat as long as the function evaluates to true. + Condition that will be evaluated upon the completion of an iteration through the , to determine whether repetition of the source is required. + The observable sequence obtained by concatenating the sequence as long as the holds. + + or is null. + + + + Returns the element at a specified index in a sequence. + + The type of the elements in the source sequence. + Observable sequence to return the element from. + The zero-based index of the element to retrieve. + An observable sequence that produces the element at the specified position in the source sequence. + + is null. + + is less than zero. + (Asynchronous) is greater than or equal to the number of elements in the source sequence. + + + + Returns the element at a specified index in a sequence or a default value if the index is out of range. + + The type of the elements in the source sequence. + Observable sequence to return the element from. + The zero-based index of the element to retrieve. + An observable sequence that produces the element at the specified position in the source sequence, or a default value if the index is outside the bounds of the source sequence. + + is null. + + is less than zero. + + + + Returns an empty observable sequence. + + Query provider used to construct the data source. + The type used for the type parameter of the resulting sequence. + An observable sequence with no elements. + + + + Returns an empty observable sequence, using the specified scheduler to send out the single OnCompleted message. + + Query provider used to construct the data source. + The type used for the type parameter of the resulting sequence. + Scheduler to send the termination call on. + An observable sequence with no elements. + + is null. + + + + Returns an empty observable sequence, using the specified scheduler to send out the single OnCompleted message. + + Query provider used to construct the data source. + The type used for the type parameter of the resulting sequence. + Scheduler to send the termination call on. + Object solely used to infer the type of the type parameter. This parameter is typically used when creating a sequence of anonymously typed elements. + An observable sequence with no elements. + + is null. + + + + Returns an empty observable sequence. + + Query provider used to construct the data source. + The type used for the type parameter of the resulting sequence. + Object solely used to infer the type of the type parameter. This parameter is typically used when creating a sequence of anonymously typed elements. + An observable sequence with no elements. + + + + Invokes a specified action after the source observable sequence terminates gracefully or exceptionally. + + The type of the elements in the source sequence. + Source sequence. + Action to invoke after the source observable sequence terminates. + Source sequence with the action-invoking termination behavior applied. + + or is null. + + + + Returns the first element of an observable sequence. + + The type of the elements in the source sequence. + Source observable sequence. + Sequence containing the first element in the observable sequence. + + is null. + (Asynchronous) The source sequence is empty. + + + + Returns the first element of an observable sequence that satisfies the condition in the predicate. + + The type of the elements in the source sequence. + Source observable sequence. + A predicate function to evaluate for elements in the source sequence. + Sequence containing the first element in the observable sequence that satisfies the condition in the predicate. + + or is null. + (Asynchronous) No element satisfies the condition in the predicate. -or- The source sequence is empty. + + + + Returns the first element of an observable sequence, or a default value if no such element exists. + + The type of the elements in the source sequence. + Source observable sequence. + Sequence containing the first element in the observable sequence, or a default value if no such element exists. + + is null. + + + + Returns the first element of an observable sequence that satisfies the condition in the predicate, or a default value if no such element exists. + + The type of the elements in the source sequence. + Source observable sequence. + A predicate function to evaluate for elements in the source sequence. + Sequence containing the first element in the observable sequence that satisfies the condition in the predicate, or a default value if no such element exists. + + or is null. + + + + Concatenates the observable sequences obtained by running the for each element in the given enumerable . + + Query provider used to construct the data source. + The type of the elements in the enumerable source sequence. + The type of the elements in the observable result sequence. + Enumerable source for which each element will be mapped onto an observable source that will be concatenated in the result sequence. + Function to select an observable source for each element in the . + The observable sequence obtained by concatenating the sources returned by for each element in the . + + or is null. + + + + Converts to asynchronous action into an observable sequence. Each subscription to the resulting sequence causes the action to be started. + + Query provider used to construct the data source. + Asynchronous action to convert. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + + is null. + + + + Converts to asynchronous action into an observable sequence. Each subscription to the resulting sequence causes the action to be started. + + Query provider used to construct the data source. + Asynchronous action to convert. + Scheduler on which to notify observers. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + + is null or is null. + + + + Converts to asynchronous action into an observable sequence. Each subscription to the resulting sequence causes the action to be started. + The CancellationToken passed to the asynchronous action is tied to the observable sequence's subscription that triggered the action's invocation and can be used for best-effort cancellation. + + Query provider used to construct the data source. + Asynchronous action to convert. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + When a subscription to the resulting sequence is disposed, the CancellationToken that was fed to the asynchronous function will be signaled. + + is null. + + + + Converts to asynchronous action into an observable sequence. Each subscription to the resulting sequence causes the action to be started. + The CancellationToken passed to the asynchronous action is tied to the observable sequence's subscription that triggered the action's invocation and can be used for best-effort cancellation. + + Query provider used to construct the data source. + Asynchronous action to convert. + Scheduler on which to notify observers. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + When a subscription to the resulting sequence is disposed, the CancellationToken that was fed to the asynchronous function will be signaled. + + is null or is null. + + + + Converts to asynchronous function into an observable sequence. Each subscription to the resulting sequence causes the function to be started. + + Query provider used to construct the data source. + The type of the result returned by the asynchronous function. + Asynchronous function to convert. + An observable sequence exposing the result of invoking the function, or an exception. + + is null. + + + + Converts to asynchronous function into an observable sequence. Each subscription to the resulting sequence causes the function to be started. + The CancellationToken passed to the asynchronous function is tied to the observable sequence's subscription that triggered the function's invocation and can be used for best-effort cancellation. + + Query provider used to construct the data source. + The type of the result returned by the asynchronous function. + Asynchronous function to convert. + An observable sequence exposing the result of invoking the function, or an exception. + + is null. + When a subscription to the resulting sequence is disposed, the CancellationToken that was fed to the asynchronous function will be signaled. + + + + Converts to asynchronous function into an observable sequence. Each subscription to the resulting sequence causes the function to be started. + + Query provider used to construct the data source. + The type of the result returned by the asynchronous function. + Asynchronous function to convert. + Scheduler on which to notify observers. + An observable sequence exposing the result of invoking the function, or an exception. + + is null or is null. + + + + Converts to asynchronous function into an observable sequence. Each subscription to the resulting sequence causes the function to be started. + The CancellationToken passed to the asynchronous function is tied to the observable sequence's subscription that triggered the function's invocation and can be used for best-effort cancellation. + + Query provider used to construct the data source. + The type of the result returned by the asynchronous function. + Asynchronous function to convert. + Scheduler on which to notify observers. + An observable sequence exposing the result of invoking the function, or an exception. + + is null or is null. + When a subscription to the resulting sequence is disposed, the CancellationToken that was fed to the asynchronous function will be signaled. + + + + Converts an Action-based .NET event to an observable sequence. Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events conforming to the standard .NET event pattern, use any of the FromEventPattern overloads instead. + + Query provider used to construct the data source. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains the event argument objects passed to the invocations of the underlying .NET event. + + or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEvent, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEvent, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEvent calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts an Action-based .NET event to an observable sequence. Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events conforming to the standard .NET event pattern, use any of the FromEventPattern overloads instead. + + Query provider used to construct the data source. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains the event argument objects passed to the invocations of the underlying .NET event. + + or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEvent calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEvent that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a .NET event to an observable sequence, using a supplied event delegate type. Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events conforming to the standard .NET event pattern, use any of the FromEventPattern overloads instead. + + Query provider used to construct the data source. + The delegate type of the event to be converted. + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains the event argument objects passed to the invocations of the underlying .NET event. + + or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEvent, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEvent, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEvent calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a .NET event to an observable sequence, using a supplied event delegate type. Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events conforming to the standard .NET event pattern, use any of the FromEventPattern overloads instead. + + Query provider used to construct the data source. + The delegate type of the event to be converted. + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains the event argument objects passed to the invocations of the underlying .NET event. + + or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEvent calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEvent that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a .NET event to an observable sequence, using a conversion function to obtain the event delegate. Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events conforming to the standard .NET event pattern, use any of the FromEventPattern overloads instead. + + Query provider used to construct the data source. + The delegate type of the event to be converted. + The type of the event data generated by the event. + A function used to convert the given event handler to a delegate compatible with the underlying .NET event. The resulting delegate is used in calls to the addHandler and removeHandler action parameters. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains the event argument objects passed to the invocations of the underlying .NET event. + + or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEvent, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEvent, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEvent calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a .NET event to an observable sequence, using a conversion function to obtain the event delegate. Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events conforming to the standard .NET event pattern, use any of the FromEventPattern overloads instead. + + Query provider used to construct the data source. + The delegate type of the event to be converted. + The type of the event data generated by the event. + A function used to convert the given event handler to a delegate compatible with the underlying .NET event. The resulting delegate is used in calls to the addHandler and removeHandler action parameters. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains the event argument objects passed to the invocations of the underlying .NET event. + + or or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEvent calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEvent that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a generic Action-based .NET event to an observable sequence. Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events conforming to the standard .NET event pattern, use any of the FromEventPattern overloads instead. + + Query provider used to construct the data source. + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains the event argument objects passed to the invocations of the underlying .NET event. + + or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEvent, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEvent, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEvent calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a generic Action-based .NET event to an observable sequence. Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events conforming to the standard .NET event pattern, use any of the FromEventPattern overloads instead. + + Query provider used to construct the data source. + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains the event argument objects passed to the invocations of the underlying .NET event. + + or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEvent calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEvent that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on , to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on , to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts an instance .NET event, conforming to the standard .NET event pattern with an parameter, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the target object type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + Object instance that exposes the event to convert. + Name of the event to convert. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts an instance .NET event, conforming to the standard .NET event pattern with an parameter, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the target object type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + Object instance that exposes the event to convert. + Name of the event to convert. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a static .NET event, conforming to the standard .NET event pattern with an parameter, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the specified type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + Type that exposes the static event to convert. + Name of the event to convert. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a static .NET event, conforming to the standard .NET event pattern with an parameter, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the specified type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + Type that exposes the static event to convert. + Name of the event to convert. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on a supplied event delegate type, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + The delegate type of the event to be converted. + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on a supplied event delegate type, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + The delegate type of the event to be converted. + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on , to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + The delegate type of the event to be converted. + The type of the event data generated by the event. + A function used to convert the given event handler to a delegate compatible with the underlying .NET event. The resulting delegate is used in calls to the addHandler and removeHandler action parameters. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on , to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + The delegate type of the event to be converted. + The type of the event data generated by the event. + A function used to convert the given event handler to a delegate compatible with the underlying .NET event. The resulting delegate is used in calls to the addHandler and removeHandler action parameters. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on a supplied event delegate type with a strongly typed sender parameter, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + The delegate type of the event to be converted. + The type of the sender that raises the event. + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on a supplied event delegate type with a strongly typed sender parameter, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + The delegate type of the event to be converted. + The type of the sender that raises the event. + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on , to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on , to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts an instance .NET event, conforming to the standard .NET event pattern with strongly typed event arguments, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the target object type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + The type of the event data generated by the event. + Object instance that exposes the event to convert. + Name of the event to convert. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. -or- The event's second argument type is not assignable to TEventArgs. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts an instance .NET event, conforming to the standard .NET event pattern with strongly typed event arguments, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the target object type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + The type of the event data generated by the event. + Object instance that exposes the event to convert. + Name of the event to convert. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. -or- The event's second argument type is not assignable to TEventArgs. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a static .NET event, conforming to the standard .NET event pattern with strongly typed event arguments, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the specified type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + The type of the event data generated by the event. + Type that exposes the static event to convert. + Name of the event to convert. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. -or- The event's second argument type is not assignable to TEventArgs. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a static .NET event, conforming to the standard .NET event pattern with strongly typed event arguments, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the specified type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + The type of the event data generated by the event. + Type that exposes the static event to convert. + Name of the event to convert. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. -or- The event's second argument type is not assignable to TEventArgs. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts an instance .NET event, conforming to the standard .NET event pattern with a strongly typed sender and strongly typed event arguments, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the target object type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + The type of the sender that raises the event. + The type of the event data generated by the event. + Object instance that exposes the event to convert. + Name of the event to convert. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. -or- The event's first argument type is not assignable to TSender. -or- The event's second argument type is not assignable to TEventArgs. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts an instance .NET event, conforming to the standard .NET event pattern with a strongly typed sender and strongly typed event arguments, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the target object type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + The type of the sender that raises the event. + The type of the event data generated by the event. + Object instance that exposes the event to convert. + Name of the event to convert. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. -or- The event's first argument type is not assignable to TSender. -or- The event's second argument type is not assignable to TEventArgs. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a static .NET event, conforming to the standard .NET event pattern with a strongly typed sender and strongly typed event arguments, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the specified type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + The type of the sender that raises the event. + The type of the event data generated by the event. + Type that exposes the static event to convert. + Name of the event to convert. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. -or- The event's first argument type is not assignable to TSender. -or- The event's second argument type is not assignable to TEventArgs. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a static .NET event, conforming to the standard .NET event pattern with a strongly typed sender and strongly typed event arguments, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the specified type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + The type of the sender that raises the event. + The type of the event data generated by the event. + Type that exposes the static event to convert. + Name of the event to convert. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. -or- The event's first argument type is not assignable to TSender. -or- The event's second argument type is not assignable to TEventArgs. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Generates an observable sequence by running a state-driven loop producing the sequence's elements. + + Query provider used to construct the data source. + The type of the state used in the generator loop. + The type of the elements in the produced sequence. + Initial state. + Condition to terminate generation (upon returning false). + Iteration step function. + Selector function for results produced in the sequence. + The generated sequence. + + or or is null. + + + + Generates an observable sequence by running a state-driven loop producing the sequence's elements, using the specified scheduler to send out observer messages. + + Query provider used to construct the data source. + The type of the state used in the generator loop. + The type of the elements in the produced sequence. + Initial state. + Condition to terminate generation (upon returning false). + Iteration step function. + Selector function for results produced in the sequence. + Scheduler on which to run the generator loop. + The generated sequence. + + or or or is null. + + + + Generates an observable sequence by running a state-driven and temporal loop producing the sequence's elements. + + Query provider used to construct the data source. + The type of the state used in the generator loop. + The type of the elements in the produced sequence. + Initial state. + Condition to terminate generation (upon returning false). + Iteration step function. + Selector function for results produced in the sequence. + Time selector function to control the speed of values being produced each iteration. + The generated sequence. + + or or or is null. + + + + Generates an observable sequence by running a state-driven and temporal loop producing the sequence's elements. + + Query provider used to construct the data source. + The type of the state used in the generator loop. + The type of the elements in the produced sequence. + Initial state. + Condition to terminate generation (upon returning false). + Iteration step function. + Selector function for results produced in the sequence. + Time selector function to control the speed of values being produced each iteration. + The generated sequence. + + or or or is null. + + + + Generates an observable sequence by running a state-driven and temporal loop producing the sequence's elements, using the specified scheduler to run timers and to send out observer messages. + + Query provider used to construct the data source. + The type of the state used in the generator loop. + The type of the elements in the produced sequence. + Initial state. + Condition to terminate generation (upon returning false). + Iteration step function. + Selector function for results produced in the sequence. + Time selector function to control the speed of values being produced each iteration. + Scheduler on which to run the generator loop. + The generated sequence. + + or or or or is null. + + + + Generates an observable sequence by running a state-driven and temporal loop producing the sequence's elements, using the specified scheduler to run timers and to send out observer messages. + + Query provider used to construct the data source. + The type of the state used in the generator loop. + The type of the elements in the produced sequence. + Initial state. + Condition to terminate generation (upon returning false). + Iteration step function. + Selector function for results produced in the sequence. + Time selector function to control the speed of values being produced each iteration. + Scheduler on which to run the generator loop. + The generated sequence. + + or or or or is null. + + + + Groups the elements of an observable sequence according to a specified key selector function. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + An observable sequence whose elements to group. + A function to extract the key for each element. + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + + or is null. + + + + Groups the elements of an observable sequence with the specified initial capacity according to a specified key selector function. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + An observable sequence whose elements to group. + A function to extract the key for each element. + The initial number of elements that the underlying dictionary can contain. + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + + or is null. + + is less than 0. + + + + Groups the elements of an observable sequence with the specified initial capacity according to a specified key selector function and comparer. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + An observable sequence whose elements to group. + A function to extract the key for each element. + The initial number of elements that the underlying dictionary can contain. + An equality comparer to compare keys with. + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + + or or is null. + + is less than 0. + + + + Groups the elements of an observable sequence according to a specified key selector function and comparer. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + An observable sequence whose elements to group. + A function to extract the key for each element. + An equality comparer to compare keys with. + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + + or or is null. + + + + Groups the elements of an observable sequence and selects the resulting elements by using a specified function. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements within the groups computed for each element in the source sequence. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to map each source element to an element in an observable group. + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + + or or is null. + + + + Groups the elements of an observable sequence with the specified initial capacity and selects the resulting elements by using a specified function. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements within the groups computed for each element in the source sequence. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to map each source element to an element in an observable group. + The initial number of elements that the underlying dictionary can contain. + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + + or or is null. + + is less than 0. + + + + Groups the elements of an observable sequence with the specified initial capacity according to a specified key selector function and comparer and selects the resulting elements by using a specified function. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements within the groups computed for each element in the source sequence. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to map each source element to an element in an observable group. + The initial number of elements that the underlying dictionary can contain. + An equality comparer to compare keys with. + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + + or or or is null. + + is less than 0. + + + + Groups the elements of an observable sequence according to a specified key selector function and comparer and selects the resulting elements by using a specified function. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements within the groups computed for each element in the source sequence. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to map each source element to an element in an observable group. + An equality comparer to compare keys with. + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + + or or or is null. + + + + Groups the elements of an observable sequence according to a specified key selector function. + A duration selector function is used to control the lifetime of groups. When a group expires, it receives an OnCompleted notification. When a new element with the same + key value as a reclaimed group occurs, the group will be reborn with a new lifetime request. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements in the duration sequences obtained for each group to denote its lifetime. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to signal the expiration of a group. + + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + If a group's lifetime expires, a new group with the same key value can be created once an element with such a key value is encountered. + + + or or is null. + + + + Groups the elements of an observable sequence with the specified initial capacity according to a specified key selector function. + A duration selector function is used to control the lifetime of groups. When a group expires, it receives an OnCompleted notification. When a new element with the same + key value as a reclaimed group occurs, the group will be reborn with a new lifetime request. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements in the duration sequences obtained for each group to denote its lifetime. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to signal the expiration of a group. + The initial number of elements that the underlying dictionary can contain. + + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + If a group's lifetime expires, a new group with the same key value can be created once an element with such a key value is encountered. + + + or or is null. + + is less than 0. + + + + Groups the elements of an observable sequence with the specified initial capacity according to a specified key selector function and comparer. + A duration selector function is used to control the lifetime of groups. When a group expires, it receives an OnCompleted notification. When a new element with the same + key value as a reclaimed group occurs, the group will be reborn with a new lifetime request. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements in the duration sequences obtained for each group to denote its lifetime. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to signal the expiration of a group. + The initial number of elements that the underlying dictionary can contain. + An equality comparer to compare keys with. + + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + If a group's lifetime expires, a new group with the same key value can be created once an element with such a key value is encountered. + + + or or or is null. + + is less than 0. + + + + Groups the elements of an observable sequence according to a specified key selector function and comparer. + A duration selector function is used to control the lifetime of groups. When a group expires, it receives an OnCompleted notification. When a new element with the same + key value as a reclaimed group occurs, the group will be reborn with a new lifetime request. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements in the duration sequences obtained for each group to denote its lifetime. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to signal the expiration of a group. + An equality comparer to compare keys with. + + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + If a group's lifetime expires, a new group with the same key value can be created once an element with such a key value is encountered. + + + or or or is null. + + + + Groups the elements of an observable sequence according to a specified key selector function and selects the resulting elements by using a specified function. + A duration selector function is used to control the lifetime of groups. When a group expires, it receives an OnCompleted notification. When a new element with the same + key value as a reclaimed group occurs, the group will be reborn with a new lifetime request. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements within the groups computed for each element in the source sequence. + The type of the elements in the duration sequences obtained for each group to denote its lifetime. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to map each source element to an element in an observable group. + A function to signal the expiration of a group. + + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + If a group's lifetime expires, a new group with the same key value can be created once an element with such a key value is encountered. + + + or or or is null. + + + + Groups the elements of an observable sequence with the specified initial capacity according to a specified key selector function and selects the resulting elements by using a specified function. + A duration selector function is used to control the lifetime of groups. When a group expires, it receives an OnCompleted notification. When a new element with the same + key value as a reclaimed group occurs, the group will be reborn with a new lifetime request. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements within the groups computed for each element in the source sequence. + The type of the elements in the duration sequences obtained for each group to denote its lifetime. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to map each source element to an element in an observable group. + A function to signal the expiration of a group. + The initial number of elements that the underlying dictionary can contain. + + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + If a group's lifetime expires, a new group with the same key value can be created once an element with such a key value is encountered. + + + or or or is null. + + is less than 0. + + + + Groups the elements of an observable sequence with the specified initial capacity according to a specified key selector function and comparer and selects the resulting elements by using a specified function. + A duration selector function is used to control the lifetime of groups. When a group expires, it receives an OnCompleted notification. When a new element with the same + key value as a reclaimed group occurs, the group will be reborn with a new lifetime request. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements within the groups computed for each element in the source sequence. + The type of the elements in the duration sequences obtained for each group to denote its lifetime. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to map each source element to an element in an observable group. + A function to signal the expiration of a group. + The initial number of elements that the underlying dictionary can contain. + An equality comparer to compare keys with. + + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + If a group's lifetime expires, a new group with the same key value can be created once an element with such a key value is encountered. + + + or or or or is null. + + is less than 0. + + + + Groups the elements of an observable sequence according to a specified key selector function and comparer and selects the resulting elements by using a specified function. + A duration selector function is used to control the lifetime of groups. When a group expires, it receives an OnCompleted notification. When a new element with the same + key value as a reclaimed group occurs, the group will be reborn with a new lifetime request. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements within the groups computed for each element in the source sequence. + The type of the elements in the duration sequences obtained for each group to denote its lifetime. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to map each source element to an element in an observable group. + A function to signal the expiration of a group. + An equality comparer to compare keys with. + + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + If a group's lifetime expires, a new group with the same key value can be created once an element with such a key value is encountered. + + + or or or or is null. + + + + Correlates the elements of two sequences based on overlapping durations, and groups the results. + + The type of the elements in the left source sequence. + The type of the elements in the right source sequence. + The type of the elements in the duration sequence denoting the computed duration of each element in the left source sequence. + The type of the elements in the duration sequence denoting the computed duration of each element in the right source sequence. + The type of the elements in the result sequence, obtained by invoking the result selector function for source elements with overlapping duration. + The left observable sequence to join elements for. + The right observable sequence to join elements for. + A function to select the duration of each element of the left observable sequence, used to determine overlap. + A function to select the duration of each element of the right observable sequence, used to determine overlap. + A function invoked to compute a result element for any element of the left sequence with overlapping elements from the right observable sequence. + An observable sequence that contains result elements computed from source elements that have an overlapping duration. + + or or or or is null. + + + + If the specified evaluates true, select the sequence. Otherwise, return an empty sequence. + + Query provider used to construct the data source. + The type of the elements in the result sequence. + Condition evaluated to decide which sequence to return. + Sequence returned in case evaluates true. + + if evaluates true; an empty sequence otherwise. + + or is null. + + + + If the specified evaluates true, select the sequence. Otherwise, select the sequence. + + Query provider used to construct the data source. + The type of the elements in the result sequence. + Condition evaluated to decide which sequence to return. + Sequence returned in case evaluates true. + Sequence returned in case evaluates false. + + if evaluates true; otherwise. + + or or is null. + + + + If the specified evaluates true, select the sequence. Otherwise, return an empty sequence generated on the specified scheduler. + + Query provider used to construct the data source. + The type of the elements in the result sequence. + Condition evaluated to decide which sequence to return. + Sequence returned in case evaluates true. + Scheduler to generate an empty sequence on in case evaluates false. + + if evaluates true; an empty sequence otherwise. + + or or is null. + + + + Ignores all elements in an observable sequence leaving only the termination messages. + + The type of the elements in the source sequence. + Source sequence. + An empty observable sequence that signals termination, successful or exceptional, of the source sequence. + + is null. + + + + Returns an observable sequence that produces a value after each period. + + Query provider used to construct the data source. + Period for producing the values in the resulting sequence. If this value is equal to TimeSpan.Zero, the timer will recur as fast as possible. + An observable sequence that produces a value after each period. + + is less than TimeSpan.Zero. + + Intervals are measured between the start of subsequent notifications, not between the end of the previous and the start of the next notification. + If the observer takes longer than the interval period to handle the message, the subsequent notification will be delivered immediately after the + current one has been handled. In case you need to control the time between the end and the start of consecutive notifications, consider using the + + operator instead. + + + + + Returns an observable sequence that produces a value after each period, using the specified scheduler to run timers and to send out observer messages. + + Query provider used to construct the data source. + Period for producing the values in the resulting sequence. If this value is equal to TimeSpan.Zero, the timer will recur as fast as possible. + Scheduler to run the timer on. + An observable sequence that produces a value after each period. + + is less than TimeSpan.Zero. + + is null. + + Intervals are measured between the start of subsequent notifications, not between the end of the previous and the start of the next notification. + If the observer takes longer than the interval period to handle the message, the subsequent notification will be delivered immediately after the + current one has been handled. In case you need to control the time between the end and the start of consecutive notifications, consider using the + + operator instead. + + + + + Determines whether an observable sequence is empty. + + The type of the elements in the source sequence. + An observable sequence to check for emptiness. + An observable sequence containing a single element determining whether the source sequence is empty. + + is null. + + + + Correlates the elements of two sequences based on overlapping durations. + + The type of the elements in the left source sequence. + The type of the elements in the right source sequence. + The type of the elements in the duration sequence denoting the computed duration of each element in the left source sequence. + The type of the elements in the duration sequence denoting the computed duration of each element in the right source sequence. + The type of the elements in the result sequence, obtained by invoking the result selector function for source elements with overlapping duration. + The left observable sequence to join elements for. + The right observable sequence to join elements for. + A function to select the duration of each element of the left observable sequence, used to determine overlap. + A function to select the duration of each element of the right observable sequence, used to determine overlap. + A function invoked to compute a result element for any two overlapping elements of the left and right observable sequences. + An observable sequence that contains result elements computed from source elements that have an overlapping duration. + + or or or or is null. + + + + Returns the last element of an observable sequence. + + The type of the elements in the source sequence. + Source observable sequence. + Sequence containing the last element in the observable sequence. + + is null. + (Asynchronous) The source sequence is empty. + + + + Returns the last element of an observable sequence that satisfies the condition in the predicate. + + The type of the elements in the source sequence. + Source observable sequence. + A predicate function to evaluate for elements in the source sequence. + Sequence containing the last element in the observable sequence that satisfies the condition in the predicate. + + or is null. + (Asynchronous) No element satisfies the condition in the predicate. -or- The source sequence is empty. + + + + Returns the last element of an observable sequence, or a default value if no such element exists. + + The type of the elements in the source sequence. + Source observable sequence. + Sequence containing the last element in the observable sequence, or a default value if no such element exists. + + is null. + + + + Returns the last element of an observable sequence that satisfies the condition in the predicate, or a default value if no such element exists. + + The type of the elements in the source sequence. + Source observable sequence. + A predicate function to evaluate for elements in the source sequence. + Sequence containing the last element in the observable sequence that satisfies the condition in the predicate, or a default value if no such element exists. + + or is null. + + + + Returns an enumerable sequence whose enumeration returns the latest observed element in the source observable sequence. + Enumerators on the resulting sequence will never produce the same element repeatedly, and will block until the next element becomes available. + + The type of the elements in the source sequence. + Source observable sequence. + The enumerable sequence that returns the last sampled element upon each iteration and subsequently blocks until the next element in the observable source sequence becomes available. + This operator requires the source's object (see ) to implement . + + + + Returns an observable sequence containing an that represents the total number of elements in an observable sequence. + + The type of the elements in the source sequence. + An observable sequence that contains elements to be counted. + An observable sequence containing a single element with the number of elements in the input sequence. + + is null. + (Asynchronous) The number of elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns an observable sequence containing an that represents how many elements in the specified observable sequence satisfy a condition. + + The type of the elements in the source sequence. + An observable sequence that contains elements to be counted. + A function to test each element for a condition. + An observable sequence containing a single element with a number that represents how many elements in the input sequence satisfy the condition in the predicate function. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Materializes the implicit notifications of an observable sequence as explicit notification values. + + The type of the elements in the source sequence. + An observable sequence to get notification values for. + An observable sequence containing the materialized notification values from the source sequence. + + is null. + + + + Returns the maximum value in an observable sequence of values. + + A sequence of values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of values. + + A sequence of values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of values. + + A sequence of values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of values. + + A sequence of values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of values. + + A sequence of values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum element in an observable sequence. + + The type of the elements in the source sequence. + An observable sequence to determine the maximum element of. + An observable sequence containing a single element with the maximum element in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence according to the specified comparer. + + The type of the elements in the source sequence. + An observable sequence to determine the maximum element of. + Comparer used to compare elements. + An observable sequence containing a single element with the maximum element in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum value. + + The type of the elements in the source sequence. + The type of the objects derived from the elements in the source sequence to determine the maximum of. + An observable sequence to determine the minimum element of. + A transform function to apply to each element. + An observable sequence containing a single element with the value that corresponds to the maximum element in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum value according to the specified comparer. + + The type of the elements in the source sequence. + The type of the objects derived from the elements in the source sequence to determine the maximum of. + An observable sequence to determine the minimum element of. + A transform function to apply to each element. + Comparer used to compare elements. + An observable sequence containing a single element with the value that corresponds to the maximum element in the source sequence. + + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the elements in an observable sequence with the maximum key value. + + The type of the elements in the source sequence. + The type of the key computed for each element in the source sequence. + An observable sequence to get the maximum elements for. + Key selector function. + An observable sequence containing a list of zero or more elements that have a maximum key value. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the elements in an observable sequence with the maximum key value according to the specified comparer. + + The type of the elements in the source sequence. + The type of the key computed for each element in the source sequence. + An observable sequence to get the maximum elements for. + Key selector function. + Comparer used to compare key values. + An observable sequence containing a list of zero or more elements that have a maximum key value. + + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Merges elements from two observable sequences into a single observable sequence. + + The type of the elements in the source sequences. + First observable sequence. + Second observable sequence. + The observable sequence that merges the elements of the given sequences. + + or is null. + + + + Merges elements from two observable sequences into a single observable sequence, using the specified scheduler for enumeration of and subscription to the sources. + + The type of the elements in the source sequences. + First observable sequence. + Second observable sequence. + Scheduler used to introduce concurrency for making subscriptions to the given sequences. + The observable sequence that merges the elements of the given sequences. + + or or is null. + + + + Merges elements from all of the specified observable sequences into a single observable sequence, using the specified scheduler for enumeration of and subscription to the sources. + + Query provider used to construct the data source. + The type of the elements in the source sequences. + Observable sequences. + Scheduler to run the enumeration of the sequence of sources on. + The observable sequence that merges the elements of the observable sequences. + + or is null. + + + + Merges elements from all inner observable sequences into a single observable sequence. + + The type of the elements in the source sequences. + Observable sequence of inner observable sequences. + The observable sequence that merges the elements of the inner sequences. + + is null. + + + + Merges results from all source tasks into a single observable sequence. + + The type of the results produced by the source tasks. + Observable sequence of tasks. + The observable sequence that merges the results of the source tasks. + + is null. + If the tasks support cancellation, consider manual conversion of the tasks using , followed by a merge operation using . + + + + Merges elements from all of the specified observable sequences into a single observable sequence. + + Query provider used to construct the data source. + The type of the elements in the source sequences. + Observable sequences. + The observable sequence that merges the elements of the observable sequences. + + is null. + + + + Merges elements from all observable sequences in the given enumerable sequence into a single observable sequence. + + Query provider used to construct the data source. + The type of the elements in the source sequences. + Enumerable sequence of observable sequences. + The observable sequence that merges the elements of the observable sequences. + + is null. + + + + Merges elements from all inner observable sequences into a single observable sequence, limiting the number of concurrent subscriptions to inner sequences. + + The type of the elements in the source sequences. + Observable sequence of inner observable sequences. + Maximum number of inner observable sequences being subscribed to concurrently. + The observable sequence that merges the elements of the inner sequences. + + is null. + + is less than or equal to zero. + + + + Merges elements from all observable sequences in the given enumerable sequence into a single observable sequence, limiting the number of concurrent subscriptions to inner sequences. + + Query provider used to construct the data source. + The type of the elements in the source sequences. + Enumerable sequence of observable sequences. + Maximum number of observable sequences being subscribed to concurrently. + The observable sequence that merges the elements of the observable sequences. + + is null. + + is less than or equal to zero. + + + + Merges elements from all observable sequences in the given enumerable sequence into a single observable sequence, limiting the number of concurrent subscriptions to inner sequences, and using the specified scheduler for enumeration of and subscription to the sources. + + Query provider used to construct the data source. + The type of the elements in the source sequences. + Enumerable sequence of observable sequences. + Maximum number of observable sequences being subscribed to concurrently. + Scheduler to run the enumeration of the sequence of sources on. + The observable sequence that merges the elements of the observable sequences. + + or is null. + + is less than or equal to zero. + + + + Merges elements from all observable sequences in the given enumerable sequence into a single observable sequence, using the specified scheduler for enumeration of and subscription to the sources. + + Query provider used to construct the data source. + The type of the elements in the source sequences. + Enumerable sequence of observable sequences. + Scheduler to run the enumeration of the sequence of sources on. + The observable sequence that merges the elements of the observable sequences. + + or is null. + + + + Returns the minimum value in an observable sequence of values. + + A sequence of values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of values. + + A sequence of values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of values. + + A sequence of values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of values. + + A sequence of values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of values. + + A sequence of values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum element in an observable sequence. + + The type of the elements in the source sequence. + An observable sequence to determine the minimum element of. + An observable sequence containing a single element with the minimum element in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum element in an observable sequence according to the specified comparer. + + The type of the elements in the source sequence. + An observable sequence to determine the minimum element of. + Comparer used to compare elements. + An observable sequence containing a single element with the minimum element in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum value. + + The type of the elements in the source sequence. + The type of the objects derived from the elements in the source sequence to determine the minimum of. + An observable sequence to determine the minimum element of. + A transform function to apply to each element. + An observable sequence containing a single element with the value that corresponds to the minimum element in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum value according to the specified comparer. + + The type of the elements in the source sequence. + The type of the objects derived from the elements in the source sequence to determine the minimum of. + An observable sequence to determine the minimum element of. + A transform function to apply to each element. + Comparer used to compare elements. + An observable sequence containing a single element with the value that corresponds to the minimum element in the source sequence. + + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the elements in an observable sequence with the minimum key value. + + The type of the elements in the source sequence. + The type of the key computed for each element in the source sequence. + An observable sequence to get the minimum elements for. + Key selector function. + An observable sequence containing a list of zero or more elements that have a minimum key value. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the elements in an observable sequence with the minimum key value according to the specified comparer. + + The type of the elements in the source sequence. + The type of the key computed for each element in the source sequence. + An observable sequence to get the minimum elements for. + Key selector function. + Comparer used to compare key values. + An observable sequence containing a list of zero or more elements that have a minimum key value. + + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns an enumerable sequence whose enumeration returns the most recently observed element in the source observable sequence, using the specified initial value in case no element has been sampled yet. + Enumerators on the resulting sequence never block and can produce the same element repeatedly. + + The type of the elements in the source sequence. + Source observable sequence. + Initial value that will be yielded by the enumerable sequence if no element has been sampled yet. + The enumerable sequence that returns the last sampled element upon each iteration. + + is null. + This operator requires the source's object (see ) to implement . + + + + Multicasts the source sequence notifications through an instantiated subject into all uses of the sequence within a selector function. Each + subscription to the resulting sequence causes a separate multicast invocation, exposing the sequence resulting from the selector function's + invocation. For specializations with fixed subject types, see Publish, PublishLast, and Replay. + + The type of the elements in the source sequence. + The type of the elements produced by the intermediate subject. + The type of the elements in the result sequence. + Source sequence which will be multicasted in the specified selector function. + Factory function to create an intermediate subject through which the source sequence's elements will be multicast to the selector function. + Selector function which can use the multicasted source sequence subject to the policies enforced by the created subject. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + + or or is null. + + + + Returns a non-terminating observable sequence, which can be used to denote an infinite duration (e.g. when using reactive joins). + + Query provider used to construct the data source. + The type used for the type parameter of the resulting sequence. + An observable sequence whose observers will never get called. + + + + Returns a non-terminating observable sequence, which can be used to denote an infinite duration (e.g. when using reactive joins). + + Query provider used to construct the data source. + The type used for the type parameter of the resulting sequence. + Object solely used to infer the type of the type parameter. This parameter is typically used when creating a sequence of anonymously typed elements. + An observable sequence whose observers will never get called. + + + + Returns an enumerable sequence whose enumeration blocks until the next element in the source observable sequence becomes available. + Enumerators on the resulting sequence will block until the next element becomes available. + + The type of the elements in the source sequence. + Source observable sequence. + The enumerable sequence that blocks upon each iteration until the next element in the observable source sequence becomes available. + + is null. + This operator requires the source's object (see ) to implement . + + + + Wraps the source sequence in order to run its observer callbacks on the specified synchronization context. + + The type of the elements in the source sequence. + Source sequence. + Synchronization context to notify observers on. + The source sequence whose observations happen on the specified synchronization context. + + or is null. + + This only invokes observer callbacks on a synchronization context. In case the subscription and/or unsubscription actions have side-effects + that require to be run on a synchronization context, use . + + + + + Wraps the source sequence in order to run its observer callbacks on the specified scheduler. + + The type of the elements in the source sequence. + Source sequence. + Scheduler to notify observers on. + The source sequence whose observations happen on the specified scheduler. + + or is null. + + This only invokes observer callbacks on a scheduler. In case the subscription and/or unsubscription actions have side-effects + that require to be run on a scheduler, use . + + + + + Filters the elements of an observable sequence based on the specified type. + + The type to filter the elements in the source sequence on. + The observable sequence that contains the elements to be filtered. + An observable sequence that contains elements from the input sequence of type TResult. + + is null. + + + + Concatenates the second observable sequence to the first observable sequence upon successful or exceptional termination of the first. + + The type of the elements in the source sequences. + First observable sequence whose exception (if any) is caught. + Second observable sequence used to produce results after the first sequence terminates. + An observable sequence that concatenates the first and second sequence, even if the first sequence terminates exceptionally. + + or is null. + + + + Concatenates all of the specified observable sequences, even if the previous observable sequence terminated exceptionally. + + Query provider used to construct the data source. + The type of the elements in the source sequences. + Observable sequences to concatenate. + An observable sequence that concatenates the source sequences, even if a sequence terminates exceptionally. + + is null. + + + + Concatenates all observable sequences in the given enumerable sequence, even if the previous observable sequence terminated exceptionally. + + Query provider used to construct the data source. + The type of the elements in the source sequences. + Observable sequences to concatenate. + An observable sequence that concatenates the source sequences, even if a sequence terminates exceptionally. + + is null. + + + + Prepend a value to an observable sequence. + + The type of the elements in the source sequence. + Source sequence to prepend the value to. + Value to prepend to the specified sequence. + The source sequence prepended with the specified value. + + is null. + + + + Prepend a value to an observable sequence. + + The type of the elements in the source sequence. + Source sequence to prepend the value to. + Value to prepend to the specified sequence. + Scheduler to emit the prepend values on. + The source sequence prepended with the specified value. + + is null. + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence. + This operator is a specialization of Multicast using a regular . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all notifications of the source from the time of the subscription on. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + + or is null. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence and starts with initialValue. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive immediately receive the initial value, followed by all notifications of the source from the time of the subscription on. + Initial value received by observers upon subscription. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + + or is null. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence containing only the last notification. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will only receive the last notification of the source. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + + or is null. + + + + + Generates an observable sequence of integral numbers within a specified range. + + Query provider used to construct the data source. + The value of the first integer in the sequence. + The number of sequential integers to generate. + An observable sequence that contains a range of sequential integral numbers. + + is less than zero. -or- + - 1 is larger than . + + + + Generates an observable sequence of integral numbers within a specified range, using the specified scheduler to send out observer messages. + + Query provider used to construct the data source. + The value of the first integer in the sequence. + The number of sequential integers to generate. + Scheduler to run the generator loop on. + An observable sequence that contains a range of sequential integral numbers. + + is less than zero. -or- + - 1 is larger than . + + is null. + + + + Returns an observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + + Query provider used to construct the data source. + The type of the elements in the source sequence. + Connectable observable sequence. + An observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + + is null. + + + + Returns an observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + + Query provider used to construct the data source. + The type of the elements in the source sequence. + Connectable observable sequence. + The time span that should be waited before possibly unsubscribing from the connectable observable. + An observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + + is null. + + + + Returns an observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + + Query provider used to construct the data source. + The type of the elements in the source sequence. + Connectable observable sequence. + The time span that should be waited before possibly unsubscribing from the connectable observable. + The scheduler to use for delayed unsubscription. + An observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + + is null. + + + + Returns an observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + + Query provider used to construct the data source. + The type of the elements in the source sequence. + Connectable observable sequence. + The minimum number of observers required to subscribe before establishing the connection to the source. + An observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + + is null. + is non-positive. + + + + Returns an observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + + Query provider used to construct the data source. + The type of the elements in the source sequence. + Connectable observable sequence. + The minimum number of observers required to subscribe before establishing the connection to the source. + The time span that should be waited before possibly unsubscribing from the connectable observable. + An observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + + is null. + is non-positive. + + + + Returns an observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + + Query provider used to construct the data source. + The type of the elements in the source sequence. + Connectable observable sequence. + The minimum number of observers required to subscribe before establishing the connection to the source. + The time span that should be waited before possibly unsubscribing from the connectable observable. + The scheduler to use for delayed unsubscription. + An observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + + is null. + is non-positive. + + + + Generates an observable sequence that repeats the given element infinitely. + + Query provider used to construct the data source. + The type of the element that will be repeated in the produced sequence. + Element to repeat. + An observable sequence that repeats the given element infinitely. + + + + Generates an observable sequence that repeats the given element the specified number of times. + + Query provider used to construct the data source. + The type of the element that will be repeated in the produced sequence. + Element to repeat. + Number of times to repeat the element. + An observable sequence that repeats the given element the specified number of times. + + is less than zero. + + + + Generates an observable sequence that repeats the given element the specified number of times, using the specified scheduler to send out observer messages. + + Query provider used to construct the data source. + The type of the element that will be repeated in the produced sequence. + Element to repeat. + Number of times to repeat the element. + Scheduler to run the producer loop on. + An observable sequence that repeats the given element the specified number of times. + + is less than zero. + + is null. + + + + Generates an observable sequence that repeats the given element infinitely, using the specified scheduler to send out observer messages. + + Query provider used to construct the data source. + The type of the element that will be repeated in the produced sequence. + Element to repeat. + Scheduler to run the producer loop on. + An observable sequence that repeats the given element infinitely. + + is null. + + + + Repeats the observable sequence indefinitely. + + The type of the elements in the source sequence. + Observable sequence to repeat. + The observable sequence producing the elements of the given sequence repeatedly and sequentially. + + is null. + + + + Repeats the observable sequence a specified number of times. + + The type of the elements in the source sequence. + Observable sequence to repeat. + Number of times to repeat the sequence. + The observable sequence producing the elements of the given sequence repeatedly. + + is null. + + is less than zero. + + + + Repeatedly resubscribes to the source observable after a normal completion and when the observable + returned by a handler produces an arbitrary item. + + The type of the elements in the source sequence. + The arbitrary element type signaled by the handler observable. + Observable sequence to keep repeating when it successfully terminates. + The function that is called for each observer and takes an observable sequence objects. + It should return an observable of arbitrary items that should signal that arbitrary item in + response to receiving the completion signal from the source observable. If this observable signals + a terminal event, the sequence is terminated with that signal instead. + An observable sequence producing the elements of the given sequence repeatedly while each repetition terminates successfully. + is null. + is null. + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying all notifications. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all the notifications of the source. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + + or is null. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum element count for the replay buffer. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all the notifications of the source subject to the specified replay buffer trimming policy. + Maximum element count of the replay buffer. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + + or is null. + + is less than zero. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum element count for the replay buffer. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all the notifications of the source subject to the specified replay buffer trimming policy. + Maximum element count of the replay buffer. + Scheduler where connected observers within the selector function will be invoked on. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + + or or is null. + + is less than zero. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum time length and element count for the replay buffer. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all the notifications of the source subject to the specified replay buffer trimming policy. + Maximum element count of the replay buffer. + Maximum time length of the replay buffer. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + + or is null. + + is less than zero. + + is less than TimeSpan.Zero. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum time length and element count for the replay buffer. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all the notifications of the source subject to the specified replay buffer trimming policy. + Maximum element count of the replay buffer. + Maximum time length of the replay buffer. + Scheduler where connected observers within the selector function will be invoked on. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + + or or is null. + + is less than zero. + + is less than TimeSpan.Zero. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying all notifications. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all the notifications of the source. + Scheduler where connected observers within the selector function will be invoked on. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + + or or is null. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum time length for the replay buffer. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all the notifications of the source subject to the specified replay buffer trimming policy. + Maximum time length of the replay buffer. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + + or is null. + + is less than TimeSpan.Zero. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum time length for the replay buffer. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all the notifications of the source subject to the specified replay buffer trimming policy. + Maximum time length of the replay buffer. + Scheduler where connected observers within the selector function will be invoked on. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + + or or is null. + + is less than TimeSpan.Zero. + + + + + Repeats the source observable sequence until it successfully terminates. + + The type of the elements in the source sequence. + Observable sequence to repeat until it successfully terminates. + An observable sequence producing the elements of the given sequence repeatedly until it terminates successfully. + + is null. + + + + Repeats the source observable sequence the specified number of times or until it successfully terminates. + + The type of the elements in the source sequence. + Observable sequence to repeat until it successfully terminates. + Number of times to repeat the sequence. + An observable sequence producing the elements of the given sequence repeatedly until it terminates successfully. + + is null. + + is less than zero. + + + + Retries (resubscribes to) the source observable after a failure and when the observable + returned by a handler produces an arbitrary item. + + The type of the elements in the source sequence. + The arbitrary element type signaled by the handler observable. + Observable sequence to repeat until it successfully terminates. + The function that is called for each observer and takes an observable sequence of + errors. It should return an observable of arbitrary items that should signal that arbitrary item in + response to receiving the failure Exception from the source observable. If this observable signals + a terminal event, the sequence is terminated with that signal instead. + An observable sequence producing the elements of the given sequence repeatedly until it terminates successfully. + + is null. + + is null. + + + + Returns an observable sequence that contains a single element. + + Query provider used to construct the data source. + The type of the element that will be returned in the produced sequence. + Single element in the resulting observable sequence. + An observable sequence containing the single specified element. + + + + Returns an observable sequence that contains a single element, using the specified scheduler to send out observer messages. + + Query provider used to construct the data source. + The type of the element that will be returned in the produced sequence. + Single element in the resulting observable sequence. + Scheduler to send the single element on. + An observable sequence containing the single specified element. + + is null. + + + + Samples the observable sequence at each interval. + Upon each sampling tick, the latest element (if any) in the source sequence during the last sampling interval is sent to the resulting sequence. + + The type of the elements in the source sequence. + Source sequence to sample. + Interval at which to sample. If this value is equal to TimeSpan.Zero, the scheduler will continuously sample the stream. + Sampled observable sequence. + + is null. + + is less than TimeSpan.Zero. + + Specifying a TimeSpan.Zero value for doesn't guarantee all source sequence elements will be preserved. This is a side-effect + of the asynchrony introduced by the scheduler, where the sampling action may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Samples the observable sequence at each interval, using the specified scheduler to run sampling timers. + Upon each sampling tick, the latest element (if any) in the source sequence during the last sampling interval is sent to the resulting sequence. + + The type of the elements in the source sequence. + Source sequence to sample. + Interval at which to sample. If this value is equal to TimeSpan.Zero, the scheduler will continuously sample the stream. + Scheduler to run the sampling timer on. + Sampled observable sequence. + + or is null. + + is less than TimeSpan.Zero. + + Specifying a TimeSpan.Zero value for doesn't guarantee all source sequence elements will be preserved. This is a side-effect + of the asynchrony introduced by the scheduler, where the sampling action may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Samples the source observable sequence using a sampler observable sequence producing sampling ticks. + Upon each sampling tick, the latest element (if any) in the source sequence during the last sampling interval is sent to the resulting sequence. + + The type of the elements in the source sequence. + The type of the elements in the sampling sequence. + Source sequence to sample. + Sampling tick sequence. + Sampled observable sequence. + + or is null. + + + + Applies an accumulator function over an observable sequence and returns each intermediate result. + For aggregation behavior with no intermediate results, see . + + The type of the elements in the source sequence and the result of the aggregation. + An observable sequence to accumulate over. + An accumulator function to be invoked on each element. + An observable sequence containing the accumulated values. + + or is null. + + + + Applies an accumulator function over an observable sequence and returns each intermediate result. The specified seed value is used as the initial accumulator value. + For aggregation behavior with no intermediate results, see . + + The type of the elements in the source sequence. + The type of the result of the aggregation. + An observable sequence to accumulate over. + The initial accumulator value. + An accumulator function to be invoked on each element. + An observable sequence containing the accumulated values. + + or is null. + + + + Projects each element of an observable sequence into a new form. + + The type of the elements in the source sequence. + The type of the elements in the result sequence, obtained by running the selector function for each element in the source sequence. + A sequence of elements to invoke a transform function on. + A transform function to apply to each source element. + An observable sequence whose elements are the result of invoking the transform function on each element of source. + + or is null. + + + + Projects each element of an observable sequence into a new form by incorporating the element's index. + + The type of the elements in the source sequence. + The type of the elements in the result sequence, obtained by running the selector function for each element in the source sequence. + A sequence of elements to invoke a transform function on. + A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + An observable sequence whose elements are the result of invoking the transform function on each element of source. + + or is null. + + + + Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected intermediate sequences. + The type of the elements in the result sequence, obtained by using the selector to combine source sequence elements with their corresponding intermediate sequence elements. + An observable sequence of elements to project. + A transform function to apply to each element. + A transform function to apply to each element of the intermediate sequence. + An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + + or or is null. + + + + Projects each element of an observable sequence to an observable sequence by incorporating the element's index, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected intermediate sequences. + The type of the elements in the result sequence, obtained by using the selector to combine source sequence elements with their corresponding intermediate sequence elements. + An observable sequence of elements to project. + A transform function to apply to each element; the second parameter of the function represents the index of the source element. + A transform function to apply to each element of the intermediate sequence; the second parameter of the function represents the index of the source element and the fourth parameter represents the index of the intermediate element. + An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + + or or is null. + + + + Projects each element of an observable sequence to an enumerable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected intermediate enumerable sequences. + The type of the elements in the result sequence, obtained by using the selector to combine source sequence elements with their corresponding intermediate sequence elements. + An observable sequence of elements to project. + A transform function to apply to each element. + A transform function to apply to each element of the intermediate sequence. + An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + + or or is null. + The projected sequences are enumerated synchronously within the OnNext call of the source sequence. In order to do a concurrent, non-blocking merge, change the selector to return an observable sequence obtained using the conversion. + + + + Projects each element of an observable sequence to an enumerable sequence by incorporating the element's index, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected intermediate enumerable sequences. + The type of the elements in the result sequence, obtained by using the selector to combine source sequence elements with their corresponding intermediate sequence elements. + An observable sequence of elements to project. + A transform function to apply to each element; the second parameter of the function represents the index of the source element. + A transform function to apply to each element of the intermediate sequence; the second parameter of the function represents the index of the source element and the fourth parameter represents the index of the intermediate element. + An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + + or or is null. + The projected sequences are enumerated synchronously within the OnNext call of the source sequence. In order to do a concurrent, non-blocking merge, change the selector to return an observable sequence obtained using the conversion. + + + + Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the other sequence and the elements in the result sequence. + An observable sequence of elements to project. + An observable sequence to project each element from the source sequence onto. + An observable sequence whose elements are the result of projecting each source element onto the other sequence and merging all the resulting sequences together. + + or is null. + + + + Projects each notification of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected inner sequences and the elements in the merged result sequence. + An observable sequence of notifications to project. + A transform function to apply to each element. + A transform function to apply when an error occurs in the source sequence. + A transform function to apply when the end of the source sequence is reached. + An observable sequence whose elements are the result of invoking the one-to-many transform function corresponding to each notification in the input sequence. + + or or or is null. + + + + Projects each notification of an observable sequence to an observable sequence by incorporating the element's index and merges the resulting observable sequences into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected inner sequences and the elements in the merged result sequence. + An observable sequence of notifications to project. + A transform function to apply to each element; the second parameter of the function represents the index of the source element. + A transform function to apply when an error occurs in the source sequence. + A transform function to apply when the end of the source sequence is reached. + An observable sequence whose elements are the result of invoking the one-to-many transform function corresponding to each notification in the input sequence. + + or or or is null. + + + + Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected inner sequences and the elements in the merged result sequence. + An observable sequence of elements to project. + A transform function to apply to each element. + An observable sequence whose elements are the result of invoking the one-to-many transform function on each element of the input sequence. + + or is null. + + + + Projects each element of an observable sequence to an observable sequence by incorporating the element's index and merges the resulting observable sequences into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected inner sequences and the elements in the merged result sequence. + An observable sequence of elements to project. + A transform function to apply to each element; the second parameter of the function represents the index of the source element. + An observable sequence whose elements are the result of invoking the one-to-many transform function on each element of the input sequence. + + or is null. + + + + Projects each element of an observable sequence to a task and merges all of the task results into one observable sequence. + + The type of the elements in the source sequence. + The type of the result produced by the projected tasks and the elements in the merged result sequence. + An observable sequence of elements to project. + A transform function to apply to each element. + An observable sequence whose elements are the result of the tasks executed for each element of the input sequence. + This overload supports composition of observable sequences and tasks, without requiring manual conversion of the tasks to observable sequences using . + + or is null. + + + + Projects each element of an observable sequence to a task by incorporating the element's index and merges all of the task results into one observable sequence. + + The type of the elements in the source sequence. + The type of the result produced by the projected tasks and the elements in the merged result sequence. + An observable sequence of elements to project. + A transform function to apply to each element; the second parameter of the function represents the index of the source element. + An observable sequence whose elements are the result of the tasks executed for each element of the input sequence. + This overload supports composition of observable sequences and tasks, without requiring manual conversion of the tasks to observable sequences using . + + or is null. + + + + Projects each element of an observable sequence to a task with cancellation support and merges all of the task results into one observable sequence. + + The type of the elements in the source sequence. + The type of the result produced by the projected tasks and the elements in the merged result sequence. + An observable sequence of elements to project. + A transform function to apply to each element. + An observable sequence whose elements are the result of the tasks executed for each element of the input sequence. + This overload supports composition of observable sequences and tasks, without requiring manual conversion of the tasks to observable sequences using . + + or is null. + + + + Projects each element of an observable sequence to a task by incorporating the element's index with cancellation support and merges all of the task results into one observable sequence. + + The type of the elements in the source sequence. + The type of the result produced by the projected tasks and the elements in the merged result sequence. + An observable sequence of elements to project. + A transform function to apply to each element; the second parameter of the function represents the index of the source element. + An observable sequence whose elements are the result of the tasks executed for each element of the input sequence. + This overload supports composition of observable sequences and tasks, without requiring manual conversion of the tasks to observable sequences using . + + or is null. + + + + Projects each element of an observable sequence to an enumerable sequence and concatenates the resulting enumerable sequences into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected inner enumerable sequences and the elements in the merged result sequence. + An observable sequence of elements to project. + A transform function to apply to each element. + An observable sequence whose elements are the result of invoking the one-to-many transform function on each element of the input sequence. + + or is null. + The projected sequences are enumerated synchronously within the OnNext call of the source sequence. In order to do a concurrent, non-blocking merge, change the selector to return an observable sequence obtained using the conversion. + + + + Projects each element of an observable sequence to an enumerable sequence by incorporating the element's index and concatenates the resulting enumerable sequences into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected inner enumerable sequences and the elements in the merged result sequence. + An observable sequence of elements to project. + A transform function to apply to each element; the second parameter of the function represents the index of the source element. + An observable sequence whose elements are the result of invoking the one-to-many transform function on each element of the input sequence. + + or is null. + The projected sequences are enumerated synchronously within the OnNext call of the source sequence. In order to do a concurrent, non-blocking merge, change the selector to return an observable sequence obtained using the conversion. + + + + Projects each element of an observable sequence to a task, invokes the result selector for the source element and the task result, and merges the results into one observable sequence. + + The type of the elements in the source sequence. + The type of the results produced by the projected intermediate tasks. + The type of the elements in the result sequence, obtained by using the selector to combine source sequence elements with their corresponding intermediate task results. + An observable sequence of elements to project. + A transform function to apply to each element. + A transform function to apply to each element of the intermediate sequence. + An observable sequence whose elements are the result of obtaining a task for each element of the input sequence and then mapping the task's result and its corresponding source element to a result element. + + or or is null. + This overload supports using LINQ query comprehension syntax in C# and Visual Basic to compose observable sequences and tasks, without requiring manual conversion of the tasks to observable sequences using . + + + + Projects each element of an observable sequence to a task by incorporating the element's index, invokes the result selector for the source element and the task result, and merges the results into one observable sequence. + + The type of the elements in the source sequence. + The type of the results produced by the projected intermediate tasks. + The type of the elements in the result sequence, obtained by using the selector to combine source sequence elements with their corresponding intermediate task results. + An observable sequence of elements to project. + A transform function to apply to each element; the second parameter of the function represents the index of the source element. + A transform function to apply to each element of the intermediate sequence; the second parameter of the function represents the index of the source element. + An observable sequence whose elements are the result of obtaining a task for each element of the input sequence and then mapping the task's result and its corresponding source element to a result element. + + or or is null. + This overload supports using LINQ query comprehension syntax in C# and Visual Basic to compose observable sequences and tasks, without requiring manual conversion of the tasks to observable sequences using . + + + + Projects each element of an observable sequence to a task with cancellation support, invokes the result selector for the source element and the task result, and merges the results into one observable sequence. + + The type of the elements in the source sequence. + The type of the results produced by the projected intermediate tasks. + The type of the elements in the result sequence, obtained by using the selector to combine source sequence elements with their corresponding intermediate task results. + An observable sequence of elements to project. + A transform function to apply to each element. + A transform function to apply to each element of the intermediate sequence. + An observable sequence whose elements are the result of obtaining a task for each element of the input sequence and then mapping the task's result and its corresponding source element to a result element. + + or or is null. + This overload supports using LINQ query comprehension syntax in C# and Visual Basic to compose observable sequences and tasks, without requiring manual conversion of the tasks to observable sequences using . + + + + Projects each element of an observable sequence to a task by incorporating the element's index with cancellation support, invokes the result selector for the source element and the task result, and merges the results into one observable sequence. + + The type of the elements in the source sequence. + The type of the results produced by the projected intermediate tasks. + The type of the elements in the result sequence, obtained by using the selector to combine source sequence elements with their corresponding intermediate task results. + An observable sequence of elements to project. + A transform function to apply to each element; the second parameter of the function represents the index of the source element. + A transform function to apply to each element of the intermediate sequence; the second parameter of the function represents the index of the source element. + An observable sequence whose elements are the result of obtaining a task for each element of the input sequence and then mapping the task's result and its corresponding source element to a result element. + + or or is null. + This overload supports using LINQ query comprehension syntax in C# and Visual Basic to compose observable sequences and tasks, without requiring manual conversion of the tasks to observable sequences using . + + + + Determines whether two sequences are equal by comparing the elements pairwise. + + The type of the elements in the source sequence. + First observable sequence to compare. + Second observable sequence to compare. + An observable sequence that contains a single element which indicates whether both sequences are of equal length and their corresponding elements are equal according to the default equality comparer for their type. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Determines whether an observable and enumerable sequence are equal by comparing the elements pairwise. + + The type of the elements in the source sequence. + First observable sequence to compare. + Second observable sequence to compare. + An observable sequence that contains a single element which indicates whether both sequences are of equal length and their corresponding elements are equal according to the default equality comparer for their type. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Determines whether two sequences are equal by comparing the elements pairwise using a specified equality comparer. + + The type of the elements in the source sequence. + First observable sequence to compare. + Second observable sequence to compare. + Comparer used to compare elements of both sequences. + An observable sequence that contains a single element which indicates whether both sequences are of equal length and their corresponding elements are equal according to the specified equality comparer. + + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Determines whether an observable and enumerable sequence are equal by comparing the elements pairwise using a specified equality comparer. + + The type of the elements in the source sequence. + First observable sequence to compare. + Second observable sequence to compare. + Comparer used to compare elements of both sequences. + An observable sequence that contains a single element which indicates whether both sequences are of equal length and their corresponding elements are equal according to the specified equality comparer. + + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the only element of an observable sequence, and reports an exception if there is not exactly one element in the observable sequence. + + The type of the elements in the source sequence. + Source observable sequence. + Sequence containing the single element in the observable sequence. + + is null. + (Asynchronous) The source sequence contains more than one element. -or- The source sequence is empty. + + + + Returns the only element of an observable sequence that satisfies the condition in the predicate, and reports an exception if there is not exactly one element in the observable sequence. + + The type of the elements in the source sequence. + Source observable sequence. + A predicate function to evaluate for elements in the source sequence. + Sequence containing the single element in the observable sequence that satisfies the condition in the predicate. + + or is null. + (Asynchronous) No element satisfies the condition in the predicate. -or- More than one element satisfies the condition in the predicate. -or- The source sequence is empty. + + + + Returns the only element of an observable sequence, or a default value if the observable sequence is empty; this method reports an exception if there is more than one element in the observable sequence. + + The type of the elements in the source sequence. + Source observable sequence. + Sequence containing the single element in the observable sequence, or a default value if no such element exists. + + is null. + (Asynchronous) The source sequence contains more than one element. + + + + Returns the only element of an observable sequence that matches the predicate, or a default value if no such element exists; this method reports an exception if there is more than one element in the observable sequence. + + The type of the elements in the source sequence. + Source observable sequence. + A predicate function to evaluate for elements in the source sequence. + Sequence containing the single element in the observable sequence that satisfies the condition in the predicate, or a default value if no such element exists. + + or is null. + (Asynchronous) The sequence contains more than one element that satisfies the condition in the predicate. + + + + Bypasses a specified number of elements in an observable sequence and then returns the remaining elements. + + The type of the elements in the source sequence. + The sequence to take elements from. + The number of elements to skip before returning the remaining elements. + An observable sequence that contains the elements that occur after the specified index in the input sequence. + + is null. + + is less than zero. + + + + Skips elements for the specified duration from the start of the observable source sequence. + + The type of the elements in the source sequence. + Source sequence to skip elements for. + Duration for skipping elements from the start of the sequence. + An observable sequence with the elements skipped during the specified duration from the start of the source sequence. + + is null. + + is less than TimeSpan.Zero. + + + Specifying a TimeSpan.Zero value for doesn't guarantee no elements will be dropped from the start of the source sequence. + This is a side-effect of the asynchrony introduced by the scheduler, where the action that causes callbacks from the source sequence to be forwarded + may not execute immediately, despite the TimeSpan.Zero due time. + + + Errors produced by the source sequence are always forwarded to the result sequence, even if the error occurs before the . + + + + + + Skips elements for the specified duration from the start of the observable source sequence, using the specified scheduler to run timers. + + The type of the elements in the source sequence. + Source sequence to skip elements for. + Duration for skipping elements from the start of the sequence. + Scheduler to run the timer on. + An observable sequence with the elements skipped during the specified duration from the start of the source sequence. + + or is null. + + is less than TimeSpan.Zero. + + + Specifying a TimeSpan.Zero value for doesn't guarantee no elements will be dropped from the start of the source sequence. + This is a side-effect of the asynchrony introduced by the scheduler, where the action that causes callbacks from the source sequence to be forwarded + may not execute immediately, despite the TimeSpan.Zero due time. + + + Errors produced by the source sequence are always forwarded to the result sequence, even if the error occurs before the . + + + + + + Bypasses a specified number of elements at the end of an observable sequence. + + The type of the elements in the source sequence. + Source sequence. + Number of elements to bypass at the end of the source sequence. + An observable sequence containing the source sequence elements except for the bypassed ones at the end. + + is null. + + is less than zero. + + This operator accumulates a queue with a length enough to store the first elements. As more elements are + received, elements are taken from the front of the queue and produced on the result sequence. This causes elements to be delayed. + + + + + Skips elements for the specified duration from the end of the observable source sequence. + + The type of the elements in the source sequence. + Source sequence to skip elements for. + Duration for skipping elements from the end of the sequence. + An observable sequence with the elements skipped during the specified duration from the end of the source sequence. + + is null. + + is less than TimeSpan.Zero. + + This operator accumulates a queue with a length enough to store elements received during the initial window. + As more elements are received, elements older than the specified are taken from the queue and produced on the + result sequence. This causes elements to be delayed with . + + + + + Skips elements for the specified duration from the end of the observable source sequence, using the specified scheduler to run timers. + + The type of the elements in the source sequence. + Source sequence to skip elements for. + Duration for skipping elements from the end of the sequence. + Scheduler to run the timer on. + An observable sequence with the elements skipped during the specified duration from the end of the source sequence. + + or is null. + + is less than TimeSpan.Zero. + + This operator accumulates a queue with a length enough to store elements received during the initial window. + As more elements are received, elements older than the specified are taken from the queue and produced on the + result sequence. This causes elements to be delayed with . + + + + + Skips elements from the observable source sequence until the specified start time. + + The type of the elements in the source sequence. + Source sequence to skip elements for. + Time to start taking elements from the source sequence. If this value is less than or equal to DateTimeOffset.UtcNow, no elements will be skipped. + An observable sequence with the elements skipped until the specified start time. + + is null. + + Errors produced by the source sequence are always forwarded to the result sequence, even if the error occurs before the . + + + + + Skips elements from the observable source sequence until the specified start time, using the specified scheduler to run timers. + + The type of the elements in the source sequence. + Source sequence to skip elements for. + Time to start taking elements from the source sequence. If this value is less than or equal to DateTimeOffset.UtcNow, no elements will be skipped. + Scheduler to run the timer on. + An observable sequence with the elements skipped until the specified start time. + + or is null. + + Errors produced by the source sequence are always forwarded to the result sequence, even if the error occurs before the . + + + + + Returns the elements from the source observable sequence only after the other observable sequence produces an element. + Starting from Rx.NET 4.0, this will subscribe to before subscribing to + so in case emits an element right away, elements from are not missed. + + The type of the elements in the source sequence. + The type of the elements in the other sequence that indicates the end of skip behavior. + Source sequence to propagate elements for. + Observable sequence that triggers propagation of elements of the source sequence. + An observable sequence containing the elements of the source sequence starting from the point the other sequence triggered propagation. + + or is null. + + + + Bypasses elements in an observable sequence as long as a specified condition is true and then returns the remaining elements. + + The type of the elements in the source sequence. + An observable sequence to return elements from. + A function to test each element for a condition. + An observable sequence that contains the elements from the input sequence starting at the first element in the linear series that does not pass the test specified by predicate. + + or is null. + + + + Bypasses elements in an observable sequence as long as a specified condition is true and then returns the remaining elements. + The element's index is used in the logic of the predicate function. + + The type of the elements in the source sequence. + An observable sequence to return elements from. + A function to test each element for a condition; the second parameter of the function represents the index of the source element. + An observable sequence that contains the elements from the input sequence starting at the first element in the linear series that does not pass the test specified by predicate. + + or is null. + + + + Invokes the action asynchronously, surfacing the result through an observable sequence. + + Query provider used to construct the data source. + Action to run asynchronously. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + + is null. + + + + The action is called immediately, not during the subscription of the resulting sequence. + + + Multiple subscriptions to the resulting sequence can observe the action's outcome. + + + + + + + Invokes the action asynchronously on the specified scheduler, surfacing the result through an observable sequence. + + Query provider used to construct the data source. + Action to run asynchronously. + Scheduler to run the action on. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + + or is null. + + + + The action is called immediately, not during the subscription of the resulting sequence. + + + Multiple subscriptions to the resulting sequence can observe the action's outcome. + + + + + + + Invokes the specified function asynchronously, surfacing the result through an observable sequence. + + Query provider used to construct the data source. + The type of the result returned by the function. + Function to run asynchronously. + An observable sequence exposing the function's result value, or an exception. + + is null. + + + + The function is called immediately, not during the subscription of the resulting sequence. + + + Multiple subscriptions to the resulting sequence can observe the function's result. + + + + + + + Invokes the specified function asynchronously on the specified scheduler, surfacing the result through an observable sequence + + Query provider used to construct the data source. + The type of the result returned by the function. + Function to run asynchronously. + Scheduler to run the function on. + An observable sequence exposing the function's result value, or an exception. + + or is null. + + + + The function is called immediately, not during the subscription of the resulting sequence. + + + Multiple subscriptions to the resulting sequence can observe the function's result. + + + + + + + Invokes the asynchronous action, surfacing the result through an observable sequence. + + Query provider used to construct the data source. + Asynchronous action to run. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + + is null. + + + + The action is started immediately, not during the subscription of the resulting sequence. + + + Multiple subscriptions to the resulting sequence can observe the action's outcome. + + + + + + + Invokes the asynchronous action, surfacing the result through an observable sequence. + + Query provider used to construct the data source. + Asynchronous action to run. + Scheduler on which to notify observers. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + + is null or is null. + + + + The action is started immediately, not during the subscription of the resulting sequence. + + + Multiple subscriptions to the resulting sequence can observe the action's outcome. + + + + + + + Invokes the asynchronous action, surfacing the result through an observable sequence. + The CancellationToken is shared by all subscriptions on the resulting observable sequence. See the remarks section for more information. + + Query provider used to construct the data source. + Asynchronous action to run. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + + is null. + + + + The action is started immediately, not during the subscription of the resulting sequence. + + + Multiple subscriptions to the resulting sequence can observe the action's outcome. + + + + If any subscription to the resulting sequence is disposed, the CancellationToken is set. The observer associated to the disposed + subscription won't see the TaskCanceledException, but other observers will. You can protect against this using the Catch operator. + Be careful when handing out the resulting sequence because of this behavior. The most common use is to have a single subscription + to the resulting sequence, which controls the CancellationToken state. Alternatively, you can control subscription behavior using + multicast operators. + + + + + + + + Invokes the asynchronous action, surfacing the result through an observable sequence. + The CancellationToken is shared by all subscriptions on the resulting observable sequence. See the remarks section for more information. + + Query provider used to construct the data source. + Asynchronous action to run. + Scheduler on which to notify observers. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + + is null or is null. + + + + The action is started immediately, not during the subscription of the resulting sequence. + + + Multiple subscriptions to the resulting sequence can observe the action's outcome. + + + + If any subscription to the resulting sequence is disposed, the CancellationToken is set. The observer associated to the disposed + subscription won't see the TaskCanceledException, but other observers will. You can protect against this using the Catch operator. + Be careful when handing out the resulting sequence because of this behavior. The most common use is to have a single subscription + to the resulting sequence, which controls the CancellationToken state. Alternatively, you can control subscription behavior using + multicast operators. + + + + + + + + Invokes the asynchronous function, surfacing the result through an observable sequence. + + Query provider used to construct the data source. + The type of the result returned by the asynchronous function. + Asynchronous function to run. + An observable sequence exposing the function's result value, or an exception. + + is null. + + + + The function is started immediately, not during the subscription of the resulting sequence. + + + Multiple subscriptions to the resulting sequence can observe the function's result. + + + + + + + Invokes the asynchronous function, surfacing the result through an observable sequence. + The CancellationToken is shared by all subscriptions on the resulting observable sequence. See the remarks section for more information. + + Query provider used to construct the data source. + The type of the result returned by the asynchronous function. + Asynchronous function to run. + An observable sequence exposing the function's result value, or an exception. + + is null. + + + + The function is started immediately, not during the subscription of the resulting sequence. + + + Multiple subscriptions to the resulting sequence can observe the function's result. + + + + If any subscription to the resulting sequence is disposed, the CancellationToken is set. The observer associated to the disposed + subscription won't see the TaskCanceledException, but other observers will. You can protect against this using the Catch operator. + Be careful when handing out the resulting sequence because of this behavior. The most common use is to have a single subscription + to the resulting sequence, which controls the CancellationToken state. Alternatively, you can control subscription behavior using + multicast operators. + + + + + + + + Invokes the asynchronous function, surfacing the result through an observable sequence. + + Query provider used to construct the data source. + The type of the result returned by the asynchronous function. + Asynchronous function to run. + Scheduler on which to notify observers. + An observable sequence exposing the function's result value, or an exception. + + is null or is null. + + + + The function is started immediately, not during the subscription of the resulting sequence. + + + Multiple subscriptions to the resulting sequence can observe the function's result. + + + + + + + Invokes the asynchronous function, surfacing the result through an observable sequence. + The CancellationToken is shared by all subscriptions on the resulting observable sequence. See the remarks section for more information. + + Query provider used to construct the data source. + The type of the result returned by the asynchronous function. + Asynchronous function to run. + Scheduler on which to notify observers. + An observable sequence exposing the function's result value, or an exception. + + is null or is null. + + + + The function is started immediately, not during the subscription of the resulting sequence. + + + Multiple subscriptions to the resulting sequence can observe the function's result. + + + + If any subscription to the resulting sequence is disposed, the CancellationToken is set. The observer associated to the disposed + subscription won't see the TaskCanceledException, but other observers will. You can protect against this using the Catch operator. + Be careful when handing out the resulting sequence because of this behavior. The most common use is to have a single subscription + to the resulting sequence, which controls the CancellationToken state. Alternatively, you can control subscription behavior using + multicast operators. + + + + + + + + Prepends a sequence of values to an observable sequence. + + The type of the elements in the source sequence. + Source sequence to prepend values to. + Scheduler to emit the prepended values on. + Values to prepend to the specified sequence. + The source sequence prepended with the specified values. + + or or is null. + + + + Prepends a sequence of values to an observable sequence. + + The type of the elements in the source sequence. + Source sequence to prepend values to. + Scheduler to emit the prepended values on. + Values to prepend to the specified sequence. + The source sequence prepended with the specified values. + + or or is null. + + + + Prepends a sequence of values to an observable sequence. + + The type of the elements in the source sequence. + Source sequence to prepend values to. + Values to prepend to the specified sequence. + The source sequence prepended with the specified values. + + or is null. + + + + Prepends a sequence of values to an observable sequence. + + The type of the elements in the source sequence. + Source sequence to prepend values to. + Values to prepend to the specified sequence. + The source sequence prepended with the specified values. + + or is null. + + + + Wraps the source sequence in order to run its subscription and unsubscription logic on the specified synchronization context. This operation is not commonly used; + see the remarks section for more information on the distinction between SubscribeOn and ObserveOn. + + The type of the elements in the source sequence. + Source sequence. + Synchronization context to perform subscription and unsubscription actions on. + The source sequence whose subscriptions and unsubscriptions happen on the specified synchronization context. + + or is null. + + This only performs the side-effects of subscription and unsubscription on the specified synchronization context. In order to invoke observer + callbacks on a synchronization context, use . + + + + + Wraps the source sequence in order to run its subscription and unsubscription logic on the specified scheduler. This operation is not commonly used; + see the remarks section for more information on the distinction between SubscribeOn and ObserveOn. + + The type of the elements in the source sequence. + Source sequence. + Scheduler to perform subscription and unsubscription actions on. + The source sequence whose subscriptions and unsubscriptions happen on the specified scheduler. + + or is null. + + This only performs the side-effects of subscription and unsubscription on the specified scheduler. In order to invoke observer + callbacks on a scheduler, use . + + + + + Computes the sum of a sequence of values. + + A sequence of values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + + is null. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of values. + + A sequence of values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of values. + + A sequence of values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + + is null. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of values. + + A sequence of values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + + is null. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values. + + A sequence of nullable values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + + is null. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values. + + A sequence of nullable values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values. + + A sequence of nullable values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + + is null. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values. + + A sequence of nullable values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + + is null. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values. + + A sequence of nullable values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of values. + + A sequence of values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + + or is null. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + + or is null. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + + or is null. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + + or is null. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + + or is null. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + + or is null. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Transforms an observable sequence of observable sequences into an observable sequence + producing values only from the most recent observable sequence. + Each time a new inner observable sequence is received, unsubscribe from the + previous inner observable sequence. + + The type of the elements in the source sequences. + Observable sequence of inner observable sequences. + The observable sequence that at any point in time produces the elements of the most recent inner observable sequence that has been received. + + is null. + + + + Transforms an observable sequence of tasks into an observable sequence + producing values only from the most recent observable sequence. + Each time a new task is received, the previous task's result is ignored. + + The type of the results produced by the source tasks. + Observable sequence of tasks. + The observable sequence that at any point in time produces the result of the most recent task that has been received. + + is null. + If the tasks support cancellation, consider manual conversion of the tasks using , followed by a switch operation using . + + + + Synchronizes the observable sequence such that observer notifications cannot be delivered concurrently. + This overload is useful to "fix" an observable sequence that exhibits concurrent callbacks on individual observers, which is invalid behavior for the query processor. + + The type of the elements in the source sequence. + Source sequence. + The source sequence whose outgoing calls to observers are synchronized. + + is null. + + It's invalid behavior - according to the observer grammar - for a sequence to exhibit concurrent callbacks on a given observer. + This operator can be used to "fix" a source that doesn't conform to this rule. + + + + + Synchronizes the observable sequence such that observer notifications cannot be delivered concurrently, using the specified gate object. + This overload is useful when writing n-ary query operators, in order to prevent concurrent callbacks from different sources by synchronizing on a common gate object. + + The type of the elements in the source sequence. + Source sequence. + Gate object to synchronize each observer call on. + The source sequence whose outgoing calls to observers are synchronized on the given gate object. + + or is null. + + + + Returns a specified number of contiguous elements from the start of an observable sequence. + + The type of the elements in the source sequence. + The sequence to take elements from. + The number of elements to return. + An observable sequence that contains the specified number of elements from the start of the input sequence. + + is null. + + is less than zero. + + + + Returns a specified number of contiguous elements from the start of an observable sequence, using the specified scheduler for the edge case of Take(0). + + The type of the elements in the source sequence. + The sequence to take elements from. + The number of elements to return. + Scheduler used to produce an OnCompleted message in case count is set to 0. + An observable sequence that contains the specified number of elements from the start of the input sequence. + + or is null. + + is less than zero. + + + + Takes elements for the specified duration from the start of the observable source sequence. + + The type of the elements in the source sequence. + Source sequence to take elements from. + Duration for taking elements from the start of the sequence. + An observable sequence with the elements taken during the specified duration from the start of the source sequence. + + is null. + + is less than TimeSpan.Zero. + + Specifying a TimeSpan.Zero value for doesn't guarantee an empty sequence will be returned. This is a side-effect + of the asynchrony introduced by the scheduler, where the action that stops forwarding callbacks from the source sequence may not execute + immediately, despite the TimeSpan.Zero due time. + + + + + Takes elements for the specified duration from the start of the observable source sequence, using the specified scheduler to run timers. + + The type of the elements in the source sequence. + Source sequence to take elements from. + Duration for taking elements from the start of the sequence. + Scheduler to run the timer on. + An observable sequence with the elements taken during the specified duration from the start of the source sequence. + + or is null. + + is less than TimeSpan.Zero. + + Specifying a TimeSpan.Zero value for doesn't guarantee an empty sequence will be returned. This is a side-effect + of the asynchrony introduced by the scheduler, where the action that stops forwarding callbacks from the source sequence may not execute + immediately, despite the TimeSpan.Zero due time. + + + + + Returns a specified number of contiguous elements from the end of an observable sequence. + + The type of the elements in the source sequence. + Source sequence. + Number of elements to take from the end of the source sequence. + An observable sequence containing the specified number of elements from the end of the source sequence. + + is null. + + is less than zero. + + This operator accumulates a buffer with a length enough to store elements elements. Upon completion of + the source sequence, this buffer is drained on the result sequence. This causes the elements to be delayed. + + + + + Returns a specified number of contiguous elements from the end of an observable sequence, using the specified scheduler to drain the queue. + + The type of the elements in the source sequence. + Source sequence. + Number of elements to take from the end of the source sequence. + Scheduler used to drain the queue upon completion of the source sequence. + An observable sequence containing the specified number of elements from the end of the source sequence. + + or is null. + + is less than zero. + + This operator accumulates a buffer with a length enough to store elements elements. Upon completion of + the source sequence, this buffer is drained on the result sequence. This causes the elements to be delayed. + + + + + Returns elements within the specified duration from the end of the observable source sequence. + + The type of the elements in the source sequence. + Source sequence to take elements from. + Duration for taking elements from the end of the sequence. + An observable sequence with the elements taken during the specified duration from the end of the source sequence. + + is null. + + is less than TimeSpan.Zero. + + This operator accumulates a buffer with a length enough to store elements for any window during the lifetime of + the source sequence. Upon completion of the source sequence, this buffer is drained on the result sequence. This causes the result elements + to be delayed with . + + + + + Returns elements within the specified duration from the end of the observable source sequence, using the specified scheduler to run timers. + + The type of the elements in the source sequence. + Source sequence to take elements from. + Duration for taking elements from the end of the sequence. + Scheduler to run the timer on. + An observable sequence with the elements taken during the specified duration from the end of the source sequence. + + or is null. + + is less than TimeSpan.Zero. + + This operator accumulates a buffer with a length enough to store elements for any window during the lifetime of + the source sequence. Upon completion of the source sequence, this buffer is drained on the result sequence. This causes the result elements + to be delayed with . + + + + + Returns elements within the specified duration from the end of the observable source sequence, using the specified schedulers to run timers and to drain the collected elements. + + The type of the elements in the source sequence. + Source sequence to take elements from. + Duration for taking elements from the end of the sequence. + Scheduler to run the timer on. + Scheduler to drain the collected elements. + An observable sequence with the elements taken during the specified duration from the end of the source sequence. + + or or is null. + + is less than TimeSpan.Zero. + + This operator accumulates a buffer with a length enough to store elements for any window during the lifetime of + the source sequence. Upon completion of the source sequence, this buffer is drained on the result sequence. This causes the result elements + to be delayed with . + + + + + Returns a list with the specified number of contiguous elements from the end of an observable sequence. + + The type of the elements in the source sequence. + Source sequence. + Number of elements to take from the end of the source sequence. + An observable sequence containing a single list with the specified number of elements from the end of the source sequence. + + is null. + + is less than zero. + + This operator accumulates a buffer with a length enough to store elements. Upon completion of the + source sequence, this buffer is produced on the result sequence. + + + + + Returns a list with the elements within the specified duration from the end of the observable source sequence. + + The type of the elements in the source sequence. + Source sequence to take elements from. + Duration for taking elements from the end of the sequence. + An observable sequence containing a single list with the elements taken during the specified duration from the end of the source sequence. + + is null. + + is less than TimeSpan.Zero. + + This operator accumulates a buffer with a length enough to store elements for any window during the lifetime of + the source sequence. Upon completion of the source sequence, this buffer is produced on the result sequence. + + + + + Returns a list with the elements within the specified duration from the end of the observable source sequence, using the specified scheduler to run timers. + + The type of the elements in the source sequence. + Source sequence to take elements from. + Duration for taking elements from the end of the sequence. + Scheduler to run the timer on. + An observable sequence containing a single list with the elements taken during the specified duration from the end of the source sequence. + + or is null. + + is less than TimeSpan.Zero. + + This operator accumulates a buffer with a length enough to store elements for any window during the lifetime of + the source sequence. Upon completion of the source sequence, this buffer is produced on the result sequence. + + + + + Takes elements for the specified duration until the specified end time. + + The type of the elements in the source sequence. + Source sequence to take elements from. + Time to stop taking elements from the source sequence. If this value is less than or equal to DateTimeOffset.UtcNow, the result stream will complete immediately. + An observable sequence with the elements taken until the specified end time. + + is null. + + + + Takes elements for the specified duration until the specified end time, using the specified scheduler to run timers. + + The type of the elements in the source sequence. + Source sequence to take elements from. + Time to stop taking elements from the source sequence. If this value is less than or equal to DateTimeOffset.UtcNow, the result stream will complete immediately. + Scheduler to run the timer on. + An observable sequence with the elements taken until the specified end time. + + or is null. + + + + Returns the elements from the source observable sequence until the other observable sequence produces an element. + + The type of the elements in the source sequence. + The type of the elements in the other sequence that indicates the end of take behavior. + Source sequence to propagate elements for. + Observable sequence that terminates propagation of elements of the source sequence. + An observable sequence containing the elements of the source sequence up to the point the other sequence interrupted further propagation. + + or is null. + + + + Relays elements from the source observable sequence and calls the predicate after an + emission to check if the sequence should stop after that specific item. + + The type of the elements in the source and result sequences. + The source sequence to relay elements of. + Called after each upstream item has been emitted with + that upstream item and should return true to indicate the sequence should + complete. + The observable sequence with the source elements until the stop predicate returns true. + + The following sequence will stop after the value 5 has been encountered: + + Observable.Range(1, 10) + .TakeUntil(item => item == 5) + .Subscribe(Console.WriteLine); + + + If or is null. + + + + Returns elements from an observable sequence as long as a specified condition is true. + + The type of the elements in the source sequence. + A sequence to return elements from. + A function to test each element for a condition. + An observable sequence that contains the elements from the input sequence that occur before the element at which the test no longer passes. + + or is null. + + + + Returns elements from an observable sequence as long as a specified condition is true. + The element's index is used in the logic of the predicate function. + + The type of the elements in the source sequence. + A sequence to return elements from. + A function to test each element for a condition; the second parameter of the function represents the index of the source element. + An observable sequence that contains the elements from the input sequence that occur before the element at which the test no longer passes. + + or is null. + + + + Ignores elements from an observable sequence which are followed by another element within a specified relative time duration. + + The type of the elements in the source sequence. + Source sequence to throttle. + Throttling duration for each element. + The throttled sequence. + + is null. + + is less than TimeSpan.Zero. + + + This operator throttles the source sequence by holding on to each element for the duration specified in . If another + element is produced within this time window, the element is dropped and a new timer is started for the current element, repeating this whole + process. For streams that never have gaps larger than or equal to between elements, the resulting stream won't + produce any elements. In order to reduce the volume of a stream whilst guaranteeing the periodic production of elements, consider using the + Observable.Sample set of operators. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing throttling timers to be scheduled + that are due immediately. However, this doesn't guarantee all elements will be retained in the result sequence. This is a side-effect of the + asynchrony introduced by the scheduler, where the action to forward the current element may not execute immediately, despite the TimeSpan.Zero + due time. In such cases, the next element may arrive before the scheduler gets a chance to run the throttling action. + + + + + + Ignores elements from an observable sequence which are followed by another element within a specified relative time duration, using the specified scheduler to run throttling timers. + + The type of the elements in the source sequence. + Source sequence to throttle. + Throttling duration for each element. + Scheduler to run the throttle timers on. + The throttled sequence. + + or is null. + + is less than TimeSpan.Zero. + + + This operator throttles the source sequence by holding on to each element for the duration specified in . If another + element is produced within this time window, the element is dropped and a new timer is started for the current element, repeating this whole + process. For streams that never have gaps larger than or equal to between elements, the resulting stream won't + produce any elements. In order to reduce the volume of a stream whilst guaranteeing the periodic production of elements, consider using the + Observable.Sample set of operators. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing throttling timers to be scheduled + that are due immediately. However, this doesn't guarantee all elements will be retained in the result sequence. This is a side-effect of the + asynchrony introduced by the scheduler, where the action to forward the current element may not execute immediately, despite the TimeSpan.Zero + due time. In such cases, the next element may arrive before the scheduler gets a chance to run the throttling action. + + + + + + Ignores elements from an observable sequence which are followed by another value within a computed throttle duration. + + The type of the elements in the source sequence. + The type of the elements in the throttle sequences selected for each element in the source sequence. + Source sequence to throttle. + Selector function to retrieve a sequence indicating the throttle duration for each given element. + The throttled sequence. + + or is null. + + This operator throttles the source sequence by holding on to each element for the duration denoted by . + If another element is produced within this time window, the element is dropped and a new timer is started for the current element, repeating this + whole process. For streams where the duration computed by applying the to each element overlaps with + the occurrence of the successor element, the resulting stream won't produce any elements. In order to reduce the volume of a stream whilst + guaranteeing the periodic production of elements, consider using the Observable.Sample set of operators. + + + + + Returns an observable sequence that terminates with an exception. + + Query provider used to construct the data source. + The type used for the type parameter of the resulting sequence. + Exception object used for the sequence's termination. + The observable sequence that terminates exceptionally with the specified exception object. + + is null. + + + + Returns an observable sequence that terminates with an exception, using the specified scheduler to send out the single OnError message. + + Query provider used to construct the data source. + The type used for the type parameter of the resulting sequence. + Exception object used for the sequence's termination. + Scheduler to send the exceptional termination call on. + The observable sequence that terminates exceptionally with the specified exception object. + + or is null. + + + + Returns an observable sequence that terminates with an exception, using the specified scheduler to send out the single OnError message. + + Query provider used to construct the data source. + The type used for the type parameter of the resulting sequence. + Exception object used for the sequence's termination. + Scheduler to send the exceptional termination call on. + Object solely used to infer the type of the type parameter. This parameter is typically used when creating a sequence of anonymously typed elements. + The observable sequence that terminates exceptionally with the specified exception object. + + or is null. + + + + Returns an observable sequence that terminates with an exception. + + Query provider used to construct the data source. + The type used for the type parameter of the resulting sequence. + Exception object used for the sequence's termination. + Object solely used to infer the type of the type parameter. This parameter is typically used when creating a sequence of anonymously typed elements. + The observable sequence that terminates exceptionally with the specified exception object. + + is null. + + + + Records the time interval between consecutive elements in an observable sequence. + + The type of the elements in the source sequence. + Source sequence to record time intervals for. + An observable sequence with time interval information on elements. + + is null. + + + + Records the time interval between consecutive elements in an observable sequence, using the specified scheduler to compute time intervals. + + The type of the elements in the source sequence. + Source sequence to record time intervals for. + Scheduler used to compute time intervals. + An observable sequence with time interval information on elements. + + or is null. + + + + Applies a timeout policy to the observable sequence based on an absolute time. + If the sequence doesn't terminate before the specified absolute due time, a TimeoutException is propagated to the observer. + + The type of the elements in the source sequence. + Source sequence to perform a timeout for. + Time when a timeout occurs. If this value is less than or equal to DateTimeOffset.UtcNow, the timeout occurs immediately. + The source sequence with a TimeoutException in case of a timeout. + + is null. + (Asynchronous) If the sequence hasn't terminated before . + + In case you only want to timeout on the first element, consider using the + operator applied to the source sequence and a delayed sequence. Alternatively, the general-purpose overload + of Timeout, can be used. + + + + + Applies a timeout policy to the observable sequence based on an absolute time. + If the sequence doesn't terminate before the specified absolute due time, the other observable sequence is used to produce future messages from that point on. + + The type of the elements in the source sequence and the other sequence used upon a timeout. + Source sequence to perform a timeout for. + Time when a timeout occurs. If this value is less than or equal to DateTimeOffset.UtcNow, the timeout occurs immediately. + Sequence to return in case of a timeout. + The source sequence switching to the other sequence in case of a timeout. + + or is null. + + In case you only want to timeout on the first element, consider using the + operator applied to the source sequence and a delayed sequence. Alternatively, the general-purpose overload + of Timeout, can be used. + + + + + Applies a timeout policy to the observable sequence based on an absolute time, using the specified scheduler to run timeout timers. + If the sequence doesn't terminate before the specified absolute due time, the other observable sequence is used to produce future messages from that point on. + + The type of the elements in the source sequence and the other sequence used upon a timeout. + Source sequence to perform a timeout for. + Time when a timeout occurs. If this value is less than or equal to DateTimeOffset.UtcNow, the timeout occurs immediately. + Sequence to return in case of a timeout. + Scheduler to run the timeout timers on. + The source sequence switching to the other sequence in case of a timeout. + + or or is null. + + In case you only want to timeout on the first element, consider using the + operator applied to the source sequence and a delayed sequence. Alternatively, the general-purpose overload + of Timeout, can be used. + + + + + Applies a timeout policy to the observable sequence based on an absolute time, using the specified scheduler to run timeout timers. + If the sequence doesn't terminate before the specified absolute due time, a TimeoutException is propagated to the observer. + + The type of the elements in the source sequence. + Source sequence to perform a timeout for. + Time when a timeout occurs. If this value is less than or equal to DateTimeOffset.UtcNow, the timeout occurs immediately. + Scheduler to run the timeout timers on. + The source sequence with a TimeoutException in case of a timeout. + + or is null. + (Asynchronous) If the sequence hasn't terminated before . + + In case you only want to timeout on the first element, consider using the + operator applied to the source sequence and a delayed sequence. Alternatively, the general-purpose overload + of Timeout, can be used. + + + + + Applies a timeout policy for each element in the observable sequence. + If the next element isn't received within the specified timeout duration starting from its predecessor, a TimeoutException is propagated to the observer. + + The type of the elements in the source sequence. + Source sequence to perform a timeout for. + Maximum duration between values before a timeout occurs. + The source sequence with a TimeoutException in case of a timeout. + + is null. + + is less than TimeSpan.Zero. + (Asynchronous) If no element is produced within from the previous element. + + + In case you only want to timeout on the first element, consider using the + operator applied to the source sequence and a delayed sequence. Alternatively, the general-purpose overload + of Timeout, can be used. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing timeout timers to be scheduled that are due + immediately. However, this doesn't guarantee a timeout will occur, even for the first element. This is a side-effect of the asynchrony introduced by the + scheduler, where the action to propagate a timeout may not execute immediately, despite the TimeSpan.Zero due time. In such cases, the next element may + arrive before the scheduler gets a chance to run the timeout action. + + + + + + Applies a timeout policy for each element in the observable sequence. + If the next element isn't received within the specified timeout duration starting from its predecessor, the other observable sequence is used to produce future messages from that point on. + + The type of the elements in the source sequence and the other sequence used upon a timeout. + Source sequence to perform a timeout for. + Maximum duration between values before a timeout occurs. + Sequence to return in case of a timeout. + The source sequence switching to the other sequence in case of a timeout. + + or is null. + + is less than TimeSpan.Zero. + + + In case you only want to timeout on the first element, consider using the + operator applied to the source sequence and a delayed sequence. Alternatively, the general-purpose overload + of Timeout, can be used. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing timeout timers to be scheduled that are due + immediately. However, this doesn't guarantee a timeout will occur, even for the first element. This is a side-effect of the asynchrony introduced by the + scheduler, where the action to propagate a timeout may not execute immediately, despite the TimeSpan.Zero due time. In such cases, the next element may + arrive before the scheduler gets a chance to run the timeout action. + + + + + + Applies a timeout policy for each element in the observable sequence, using the specified scheduler to run timeout timers. + If the next element isn't received within the specified timeout duration starting from its predecessor, the other observable sequence is used to produce future messages from that point on. + + The type of the elements in the source sequence and the other sequence used upon a timeout. + Source sequence to perform a timeout for. + Maximum duration between values before a timeout occurs. + Sequence to return in case of a timeout. + Scheduler to run the timeout timers on. + The source sequence switching to the other sequence in case of a timeout. + + or or is null. + + is less than TimeSpan.Zero. + + + In case you only want to timeout on the first element, consider using the + operator applied to the source sequence and a delayed sequence. Alternatively, the general-purpose overload + of Timeout, can be used. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing timeout timers to be scheduled that are due + immediately. However, this doesn't guarantee a timeout will occur, even for the first element. This is a side-effect of the asynchrony introduced by the + scheduler, where the action to propagate a timeout may not execute immediately, despite the TimeSpan.Zero due time. In such cases, the next element may + arrive before the scheduler gets a chance to run the timeout action. + + + + + + Applies a timeout policy for each element in the observable sequence, using the specified scheduler to run timeout timers. + If the next element isn't received within the specified timeout duration starting from its predecessor, a TimeoutException is propagated to the observer. + + The type of the elements in the source sequence. + Source sequence to perform a timeout for. + Maximum duration between values before a timeout occurs. + Scheduler to run the timeout timers on. + The source sequence with a TimeoutException in case of a timeout. + + or is null. + + is less than TimeSpan.Zero. + (Asynchronous) If no element is produced within from the previous element. + + + In case you only want to timeout on the first element, consider using the + operator applied to the source sequence and a delayed sequence. Alternatively, the general-purpose overload + of Timeout, can be used. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing timeout timers to be scheduled that are due + immediately. However, this doesn't guarantee a timeout will occur, even for the first element. This is a side-effect of the asynchrony introduced by the + scheduler, where the action to propagate a timeout may not execute immediately, despite the TimeSpan.Zero due time. In such cases, the next element may + arrive before the scheduler gets a chance to run the timeout action. + + + + + + Applies a timeout policy to the observable sequence based on an initial timeout duration for the first element, and a timeout duration computed for each subsequent element. + If the next element isn't received within the computed duration starting from its predecessor, a TimeoutException is propagated to the observer. + + The type of the elements in the source sequence. + The type of the elements in the timeout sequences used to indicate the timeout duration for each element in the source sequence. + Source sequence to perform a timeout for. + Observable sequence that represents the timeout for the first element. + Selector to retrieve an observable sequence that represents the timeout between the current element and the next element. + The source sequence with a TimeoutException in case of a timeout. + + or or is null. + + + + Applies a timeout policy to the observable sequence based on an initial timeout duration for the first element, and a timeout duration computed for each subsequent element. + If the next element isn't received within the computed duration starting from its predecessor, the other observable sequence is used to produce future messages from that point on. + + The type of the elements in the source sequence and the other sequence used upon a timeout. + The type of the elements in the timeout sequences used to indicate the timeout duration for each element in the source sequence. + Source sequence to perform a timeout for. + Observable sequence that represents the timeout for the first element. + Selector to retrieve an observable sequence that represents the timeout between the current element and the next element. + Sequence to return in case of a timeout. + The source sequence switching to the other sequence in case of a timeout. + + or or or is null. + + + + Applies a timeout policy to the observable sequence based on a timeout duration computed for each element. + If the next element isn't received within the computed duration starting from its predecessor, a TimeoutException is propagated to the observer. + + The type of the elements in the source sequence. + The type of the elements in the timeout sequences used to indicate the timeout duration for each element in the source sequence. + Source sequence to perform a timeout for. + Selector to retrieve an observable sequence that represents the timeout between the current element and the next element. + The source sequence with a TimeoutException in case of a timeout. + + or is null. + + + + Applies a timeout policy to the observable sequence based on a timeout duration computed for each element. + If the next element isn't received within the computed duration starting from its predecessor, the other observable sequence is used to produce future messages from that point on. + + The type of the elements in the source sequence and the other sequence used upon a timeout. + The type of the elements in the timeout sequences used to indicate the timeout duration for each element in the source sequence. + Source sequence to perform a timeout for. + Selector to retrieve an observable sequence that represents the timeout between the current element and the next element. + Sequence to return in case of a timeout. + The source sequence switching to the other sequence in case of a timeout. + + or or is null. + + + + Returns an observable sequence that produces a single value at the specified absolute due time. + + Query provider used to construct the data source. + Absolute time at which to produce the value. If this value is less than or equal to DateTimeOffset.UtcNow, the timer will fire as soon as possible. + An observable sequence that produces a value at due time. + + + + Returns an observable sequence that periodically produces a value starting at the specified initial absolute due time. + + Query provider used to construct the data source. + Absolute time at which to produce the first value. If this value is less than or equal to DateTimeOffset.UtcNow, the timer will fire as soon as possible. + Period to produce subsequent values. If this value is equal to TimeSpan.Zero, the timer will recur as fast as possible. + An observable sequence that produces a value at due time and then after each period. + + is less than TimeSpan.Zero. + + + + Returns an observable sequence that periodically produces a value starting at the specified initial absolute due time, using the specified scheduler to run timers. + + Query provider used to construct the data source. + Absolute time at which to produce the first value. If this value is less than or equal to DateTimeOffset.UtcNow, the timer will fire as soon as possible. + Period to produce subsequent values. If this value is equal to TimeSpan.Zero, the timer will recur as fast as possible. + Scheduler to run timers on. + An observable sequence that produces a value at due time and then after each period. + + is less than TimeSpan.Zero. + + is null. + + + + Returns an observable sequence that produces a single value at the specified absolute due time, using the specified scheduler to run the timer. + + Query provider used to construct the data source. + Absolute time at which to produce the value. If this value is less than or equal to DateTimeOffset.UtcNow, the timer will fire as soon as possible. + Scheduler to run the timer on. + An observable sequence that produces a value at due time. + + is null. + + + + Returns an observable sequence that produces a single value after the specified relative due time has elapsed. + + Query provider used to construct the data source. + Relative time at which to produce the value. If this value is less than or equal to TimeSpan.Zero, the timer will fire as soon as possible. + An observable sequence that produces a value after the due time has elapsed. + + + + Returns an observable sequence that periodically produces a value after the specified initial relative due time has elapsed. + + Query provider used to construct the data source. + Relative time at which to produce the first value. If this value is less than or equal to TimeSpan.Zero, the timer will fire as soon as possible. + Period to produce subsequent values. If this value is equal to TimeSpan.Zero, the timer will recur as fast as possible. + An observable sequence that produces a value after due time has elapsed and then after each period. + + is less than TimeSpan.Zero. + + + + Returns an observable sequence that periodically produces a value after the specified initial relative due time has elapsed, using the specified scheduler to run timers. + + Query provider used to construct the data source. + Relative time at which to produce the first value. If this value is less than or equal to TimeSpan.Zero, the timer will fire as soon as possible. + Period to produce subsequent values. If this value is equal to TimeSpan.Zero, the timer will recur as fast as possible. + Scheduler to run timers on. + An observable sequence that produces a value after due time has elapsed and then each period. + + is less than TimeSpan.Zero. + + is null. + + + + Returns an observable sequence that produces a single value after the specified relative due time has elapsed, using the specified scheduler to run the timer. + + Query provider used to construct the data source. + Relative time at which to produce the value. If this value is less than or equal to TimeSpan.Zero, the timer will fire as soon as possible. + Scheduler to run the timer on. + An observable sequence that produces a value after the due time has elapsed. + + is null. + + + + Timestamps each element in an observable sequence using the local system clock. + + The type of the elements in the source sequence. + Source sequence to timestamp elements for. + An observable sequence with timestamp information on elements. + + is null. + + + + Timestamp each element in an observable sequence using the clock of the specified scheduler. + + The type of the elements in the source sequence. + Source sequence to timestamp elements for. + Scheduler used to compute timestamps. + An observable sequence with timestamp information on elements. + + or is null. + + + + Creates an array from an observable sequence. + + The type of the elements in the source sequence. + The source observable sequence to get an array of elements for. + An observable sequence containing a single element with an array containing all the elements of the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates a dictionary from an observable sequence according to a specified key selector function. + + The type of the elements in the source sequence. + The type of the dictionary key computed for each element in the source sequence. + An observable sequence to create a dictionary for. + A function to extract a key from each element. + An observable sequence containing a single element with a dictionary mapping unique key values onto the corresponding source sequence's element. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates a dictionary from an observable sequence according to a specified key selector function, and a comparer. + + The type of the elements in the source sequence. + The type of the dictionary key computed for each element in the source sequence. + An observable sequence to create a dictionary for. + A function to extract a key from each element. + An equality comparer to compare keys. + An observable sequence containing a single element with a dictionary mapping unique key values onto the corresponding source sequence's element. + + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates a dictionary from an observable sequence according to a specified key selector function, and an element selector function. + + The type of the elements in the source sequence. + The type of the dictionary key computed for each element in the source sequence. + The type of the dictionary value computed for each element in the source sequence. + An observable sequence to create a dictionary for. + A function to extract a key from each element. + A transform function to produce a result element value from each element. + An observable sequence containing a single element with a dictionary mapping unique key values onto the corresponding source sequence's element. + + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates a dictionary from an observable sequence according to a specified key selector function, a comparer, and an element selector function. + + The type of the elements in the source sequence. + The type of the dictionary key computed for each element in the source sequence. + The type of the dictionary value computed for each element in the source sequence. + An observable sequence to create a dictionary for. + A function to extract a key from each element. + A transform function to produce a result element value from each element. + An equality comparer to compare keys. + An observable sequence containing a single element with a dictionary mapping unique key values onto the corresponding source sequence's element. + + or or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Converts an observable sequence to an enumerable sequence. + + The type of the elements in the source sequence. + An observable sequence to convert to an enumerable sequence. + The enumerable sequence containing the elements in the observable sequence. + + is null. + This operator requires the source's object (see ) to implement . + + + + Creates a list from an observable sequence. + + The type of the elements in the source sequence. + The source observable sequence to get a list of elements for. + An observable sequence containing a single element with a list containing all the elements of the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates a lookup from an observable sequence according to a specified key selector function. + + The type of the elements in the source sequence. + The type of the lookup key computed for each element in the source sequence. + An observable sequence to create a lookup for. + A function to extract a key from each element. + An observable sequence containing a single element with a lookup mapping unique key values onto the corresponding source sequence's elements. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates a lookup from an observable sequence according to a specified key selector function, and a comparer. + + The type of the elements in the source sequence. + The type of the lookup key computed for each element in the source sequence. + An observable sequence to create a lookup for. + A function to extract a key from each element. + An equality comparer to compare keys. + An observable sequence containing a single element with a lookup mapping unique key values onto the corresponding source sequence's elements. + + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates a lookup from an observable sequence according to a specified key selector function, and an element selector function. + + The type of the elements in the source sequence. + The type of the lookup key computed for each element in the source sequence. + The type of the lookup value computed for each element in the source sequence. + An observable sequence to create a lookup for. + A function to extract a key from each element. + A transform function to produce a result element value from each element. + An observable sequence containing a single element with a lookup mapping unique key values onto the corresponding source sequence's elements. + + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates a lookup from an observable sequence according to a specified key selector function, a comparer, and an element selector function. + + The type of the elements in the source sequence. + The type of the lookup key computed for each element in the source sequence. + The type of the lookup value computed for each element in the source sequence. + An observable sequence to create a lookup for. + A function to extract a key from each element. + A transform function to produce a result element value from each element. + An equality comparer to compare keys. + An observable sequence containing a single element with a lookup mapping unique key values onto the corresponding source sequence's elements. + + or or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Converts an enumerable sequence to an observable sequence. + + Query provider used to construct the data source. + The type of the elements in the source sequence. + Enumerable sequence to convert to an observable sequence. + The observable sequence whose elements are pulled from the given enumerable sequence. + + is null. + + + + Converts an enumerable sequence to an observable sequence, using the specified scheduler to run the enumeration loop. + + Query provider used to construct the data source. + The type of the elements in the source sequence. + Enumerable sequence to convert to an observable sequence. + Scheduler to run the enumeration of the input sequence on. + The observable sequence whose elements are pulled from the given enumerable sequence. + + or is null. + + + + Constructs an observable sequence that depends on a resource object, whose lifetime is tied to the resulting observable sequence's lifetime. + + Query provider used to construct the data source. + The type of the elements in the produced sequence. + The type of the resource used during the generation of the resulting sequence. Needs to implement . + Factory function to obtain a resource object. + Factory function to obtain an observable sequence that depends on the obtained resource. + An observable sequence whose lifetime controls the lifetime of the dependent resource object. + + or is null. + + + + Constructs an observable sequence that depends on a resource object, whose lifetime is tied to the resulting observable sequence's lifetime. The resource is obtained and used through asynchronous methods. + The CancellationToken passed to the asynchronous methods is tied to the returned disposable subscription, allowing best-effort cancellation at any stage of the resource acquisition or usage. + + Query provider used to construct the data source. + The type of the elements in the produced sequence. + The type of the resource used during the generation of the resulting sequence. Needs to implement . + Asynchronous factory function to obtain a resource object. + Asynchronous factory function to obtain an observable sequence that depends on the obtained resource. + An observable sequence whose lifetime controls the lifetime of the dependent resource object. + + or is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + When a subscription to the resulting sequence is disposed, the CancellationToken that was fed to the asynchronous resource factory and observable factory functions will be signaled. + + + + Filters the elements of an observable sequence based on a predicate. + + The type of the elements in the source sequence. + An observable sequence whose elements to filter. + A function to test each source element for a condition. + An observable sequence that contains elements from the input sequence that satisfy the condition. + + or is null. + + + + Filters the elements of an observable sequence based on a predicate by incorporating the element's index. + + The type of the elements in the source sequence. + An observable sequence whose elements to filter. + A function to test each source element for a condition; the second parameter of the function represents the index of the source element. + An observable sequence that contains elements from the input sequence that satisfy the condition. + + or is null. + + + + Repeats the given as long as the specified holds, where the is evaluated before each repeated is subscribed to. + + Query provider used to construct the data source. + The type of the elements in the source sequence. + Source to repeat as long as the function evaluates to true. + Condition that will be evaluated before subscription to the , to determine whether repetition of the source is required. + The observable sequence obtained by concatenating the sequence as long as the holds. + + or is null. + + + + Projects each element of an observable sequence into consecutive non-overlapping windows which are produced based on element count information. + + The type of the elements in the source sequence, and in the windows in the result sequence. + Source sequence to produce windows over. + Length of each window. + An observable sequence of windows. + + is null. + + is less than or equal to zero. + + + + Projects each element of an observable sequence into zero or more windows which are produced based on element count information. + + The type of the elements in the source sequence, and in the windows in the result sequence. + Source sequence to produce windows over. + Length of each window. + Number of elements to skip between creation of consecutive windows. + An observable sequence of windows. + + is null. + + or is less than or equal to zero. + + + + Projects each element of an observable sequence into consecutive non-overlapping windows which are produced based on timing information. + + The type of the elements in the source sequence, and in the windows in the result sequence. + Source sequence to produce windows over. + Length of each window. + The sequence of windows. + + is null. + + is less than TimeSpan.Zero. + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create windows as fast as it can. + Because all source sequence elements end up in one of the windows, some windows won't have a zero time span. This is a side-effect of the asynchrony introduced + by the scheduler, where the action to close the current window and to create a new window may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Projects each element of an observable sequence into a window that is completed when either it's full or a given amount of time has elapsed. + A useful real-world analogy of this overload is the behavior of a ferry leaving the dock when all seats are taken, or at the scheduled time of departure, whichever event occurs first. + + The type of the elements in the source sequence, and in the windows in the result sequence. + Source sequence to produce windows over. + Maximum time length of a window. + Maximum element count of a window. + An observable sequence of windows. + + is null. + + is less than TimeSpan.Zero. -or- is less than or equal to zero. + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create windows as fast as it can. + Because all source sequence elements end up in one of the windows, some windows won't have a zero time span. This is a side-effect of the asynchrony introduced + by the scheduler, where the action to close the current window and to create a new window may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Projects each element of an observable sequence into a window that is completed when either it's full or a given amount of time has elapsed, using the specified scheduler to run timers. + A useful real-world analogy of this overload is the behavior of a ferry leaving the dock when all seats are taken, or at the scheduled time of departure, whichever event occurs first. + + The type of the elements in the source sequence, and in the windows in the result sequence. + Source sequence to produce windows over. + Maximum time length of a window. + Maximum element count of a window. + Scheduler to run windowing timers on. + An observable sequence of windows. + + or is null. + + is less than TimeSpan.Zero. -or- is less than or equal to zero. + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create windows as fast as it can. + Because all source sequence elements end up in one of the windows, some windows won't have a zero time span. This is a side-effect of the asynchrony introduced + by the scheduler, where the action to close the current window and to create a new window may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Projects each element of an observable sequence into consecutive non-overlapping windows which are produced based on timing information, using the specified scheduler to run timers. + + The type of the elements in the source sequence, and in the windows in the result sequence. + Source sequence to produce windows over. + Length of each window. + Scheduler to run windowing timers on. + An observable sequence of windows. + + or is null. + + is less than TimeSpan.Zero. + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create windows as fast as it can. + Because all source sequence elements end up in one of the windows, some windows won't have a zero time span. This is a side-effect of the asynchrony introduced + by the scheduler, where the action to close the current window and to create a new window may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Projects each element of an observable sequence into zero or more windows which are produced based on timing information. + + The type of the elements in the source sequence, and in the windows in the result sequence. + Source sequence to produce windows over. + Length of each window. + Interval between creation of consecutive windows. + An observable sequence of windows. + + is null. + + or is less than TimeSpan.Zero. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create windows with minimum duration + length. However, some windows won't have a zero time span. This is a side-effect of the asynchrony introduced by the scheduler, where the action to close the + current window may not execute immediately, despite the TimeSpan.Zero due time. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create windows as fast as it can. + However, this doesn't mean all windows will start at the beginning of the source sequence. This is a side-effect of the asynchrony introduced by the scheduler, + where the action to create a new window may not execute immediately, despite the TimeSpan.Zero due time. + + + + + + Projects each element of an observable sequence into zero or more windows which are produced based on timing information, using the specified scheduler to run timers. + + The type of the elements in the source sequence, and in the windows in the result sequence. + Source sequence to produce windows over. + Length of each window. + Interval between creation of consecutive windows. + Scheduler to run windowing timers on. + An observable sequence of windows. + + or is null. + + or is less than TimeSpan.Zero. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create windows with minimum duration + length. However, some windows won't have a zero time span. This is a side-effect of the asynchrony introduced by the scheduler, where the action to close the + current window may not execute immediately, despite the TimeSpan.Zero due time. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create windows as fast as it can. + However, this doesn't mean all windows will start at the beginning of the source sequence. This is a side-effect of the asynchrony introduced by the scheduler, + where the action to create a new window may not execute immediately, despite the TimeSpan.Zero due time. + + + + + + Projects each element of an observable sequence into consecutive non-overlapping windows. + + The type of the elements in the source sequence, and in the windows in the result sequence. + The type of the elements in the sequences indicating window boundary events. + Source sequence to produce windows over. + Sequence of window boundary markers. The current window is closed and a new window is opened upon receiving a boundary marker. + An observable sequence of windows. + + or is null. + + + + Projects each element of an observable sequence into consecutive non-overlapping windows. + + The type of the elements in the source sequence, and in the windows in the result sequence. + The type of the elements in the sequences indicating window closing events. + Source sequence to produce windows over. + A function invoked to define the boundaries of the produced windows. A new window is started when the previous one is closed. + An observable sequence of windows. + + or is null. + + + + Projects each element of an observable sequence into zero or more windows. + + The type of the elements in the source sequence, and in the windows in the result sequence. + The type of the elements in the sequence indicating window opening events, also passed to the closing selector to obtain a sequence of window closing events. + The type of the elements in the sequences indicating window closing events. + Source sequence to produce windows over. + Observable sequence whose elements denote the creation of new windows. + A function invoked to define the closing of each produced window. + An observable sequence of windows. + + or or is null. + + + + Merges two observable sequences into one observable sequence by combining each element from the first source with the latest element from the second source, if any. + Starting from Rx.NET 4.0, this will subscribe to before subscribing to to have a latest element readily available + in case emits an element right away. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Function to invoke for each element from the first source combined with the latest element from the second source, if any. + An observable sequence containing the result of combining each element of the first source with the latest element from the second source, if any, using the specified result selector function. + + or or is null. + + + + Merges the specified observable sequences into one observable sequence by emitting a list with the elements of the observable sequences at corresponding indexes. + + Query provider used to construct the data source. + The type of the elements in the source sequences, and in the lists in the result sequence. + Observable sources. + An observable sequence containing lists of elements at corresponding indexes. + + is null. + + + + Merges the specified observable sequences into one observable sequence by emitting a list with the elements of the observable sequences at corresponding indexes. + + Query provider used to construct the data source. + The type of the elements in the source sequences, and in the lists in the result sequence. + Observable sources. + An observable sequence containing lists of elements at corresponding indexes. + + is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + Query provider used to construct the data source. + The type of the elements in the source sequences. + The type of the elements in the result sequence, returned by the selector function. + Observable sources. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or is null. + + + + Merges two observable sequences into one observable sequence by combining their elements in a pairwise fashion. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Function to invoke for each consecutive pair of elements from the first and second source. + An observable sequence containing the result of pairwise combining the elements of the first and second source using the specified result selector function. + + or or is null. + + + + Merges an observable sequence and an enumerable sequence into one observable sequence by using the selector function. + + The type of the elements in the first observable source sequence. + The type of the elements in the second enumerable source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second enumerable source. + Function to invoke for each consecutive pair of elements from the first and second source. + An observable sequence containing the result of pairwise combining the elements of the first and second source using the specified result selector function. + + or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Fourteenth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the fifteenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Fourteenth observable source. + Fifteenth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the fifteenth source sequence. + The type of the elements in the sixteenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Fourteenth observable source. + Fifteenth observable source. + Sixteenth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or or or or or or or or or or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Query provider used to construct the data source. + Action to convert to an asynchronous action. + Asynchronous action. + + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Query provider used to construct the data source. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + The type of the thirteenth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + The type of the thirteenth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + The type of the thirteenth argument passed to the action. + The type of the fourteenth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + The type of the thirteenth argument passed to the action. + The type of the fourteenth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + The type of the thirteenth argument passed to the action. + The type of the fourteenth argument passed to the action. + The type of the fifteenth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + The type of the thirteenth argument passed to the action. + The type of the fourteenth argument passed to the action. + The type of the fifteenth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + The type of the thirteenth argument passed to the action. + The type of the fourteenth argument passed to the action. + The type of the fifteenth argument passed to the action. + The type of the sixteenth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + The type of the thirteenth argument passed to the action. + The type of the fourteenth argument passed to the action. + The type of the fifteenth argument passed to the action. + The type of the sixteenth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + Query provider used to construct the data source. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + Query provider used to construct the data source. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the thirteenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the thirteenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the thirteenth argument passed to the function. + The type of the fourteenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the thirteenth argument passed to the function. + The type of the fourteenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the thirteenth argument passed to the function. + The type of the fourteenth argument passed to the function. + The type of the fifteenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the thirteenth argument passed to the function. + The type of the fourteenth argument passed to the function. + The type of the fifteenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the thirteenth argument passed to the function. + The type of the fourteenth argument passed to the function. + The type of the fifteenth argument passed to the function. + The type of the sixteenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the thirteenth argument passed to the function. + The type of the fourteenth argument passed to the function. + The type of the fifteenth argument passed to the function. + The type of the sixteenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + + or is null. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The type of the eleventh argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The type of the eleventh argument passed to the begin delegate. + The type of the twelfth argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The type of the eleventh argument passed to the begin delegate. + The type of the twelfth argument passed to the begin delegate. + The type of the thirteenth argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The type of the eleventh argument passed to the begin delegate. + The type of the twelfth argument passed to the begin delegate. + The type of the thirteenth argument passed to the begin delegate. + The type of the fourteenth argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The type of the eleventh argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The type of the eleventh argument passed to the begin delegate. + The type of the twelfth argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The type of the eleventh argument passed to the begin delegate. + The type of the twelfth argument passed to the begin delegate. + The type of the thirteenth argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The type of the eleventh argument passed to the begin delegate. + The type of the twelfth argument passed to the begin delegate. + The type of the thirteenth argument passed to the begin delegate. + The type of the fourteenth argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Creates a pattern that matches when both observable sequences have an available element. + + The type of the elements in the left sequence. + The type of the elements in the right sequence. + Observable sequence to match with the right sequence. + Observable sequence to match with the left sequence. + Pattern object that matches when both observable sequences have an available element. + or is null. + + + + Matches when the observable sequence has an available element and projects the element by invoking the selector function. + + The type of the elements in the source sequence. + The type of the elements in the result sequence, returned by the selector function. + Observable sequence to apply the selector on. + Selector that will be invoked for elements in the source sequence. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + or is null. + + + + Joins together the results from several patterns. + + The type of the elements in the result sequence, obtained from the specified patterns. + Query provider used to construct the data source. + A series of plans created by use of the Then operator on patterns. + An observable sequence with the results from matching several patterns. + or is null. + + + + Joins together the results from several patterns. + + The type of the elements in the result sequence, obtained from the specified patterns. + Query provider used to construct the data source. + A series of plans created by use of the Then operator on patterns. + An observable sequence with the results form matching several patterns. + or is null. + + + + Try winning the race for the right of emission. + + If true, the contender is the left source. + True if the contender has won the race. + + + + If true, this observer won the race and now can emit + on a fast path. + + + + + Automatically connect the upstream IConnectableObservable once the + specified number of IObservers have subscribed to this IObservable. + + The upstream value type. + + + + The only instance for a TResult type: this source + is completely stateless and has a constant behavior. + + + + + No need for instantiating this more than once per TResult. + + + + + Contains the current active connection's state or null + if no connection is active at the moment. + Should be manipulated while holding the lock. + + + + + Contains the connection reference the downstream observer + has subscribed to. Its purpose is to + avoid subscribing, connecting and disconnecting + while holding a lock. + + + + + Holds an individual connection state: the observer count and + the connection's IDisposable. + + + + + Relays items to the downstream until the predicate returns true. + + The element type of the sequence + + + + Provides a set of static methods for writing queries over observable sequences, allowing translation to a target query language. + + + + + Subscribes to each observable sequence returned by the iteratorMethod in sequence and produces a Unit value on the resulting sequence for each step of the iteration. + + Query provider used to construct the data source. + Iterator method that drives the resulting observable sequence. + An observable sequence obtained by running the iterator and returning Unit values for each iteration step. + + is null. + + + + Subscribes to each observable sequence returned by the iteratorMethod in sequence and returns the observable sequence of values sent to the observer given to the iteratorMethod. + + Query provider used to construct the data source. + The type of the elements in the produced sequence. + Iterator method that produces elements in the resulting sequence by calling the given observer. + An observable sequence obtained by running the iterator and returning the elements that were sent to the observer. + + is null. + + + + Expands an observable sequence by recursively invoking selector. + + The type of the elements in the source sequence and each of the recursively expanded sources obtained by running the selector function. + Source sequence with the initial elements. + Selector function to invoke for each produced element, resulting in another sequence to which the selector will be invoked recursively again. + An observable sequence containing all the elements produced by the recursive expansion. + + or is null. + + + + Expands an observable sequence by recursively invoking selector, using the specified scheduler to enumerate the queue of obtained sequences. + + The type of the elements in the source sequence and each of the recursively expanded sources obtained by running the selector function. + Source sequence with the initial elements. + Selector function to invoke for each produced element, resulting in another sequence to which the selector will be invoked recursively again. + Scheduler on which to perform the expansion by enumerating the internal queue of obtained sequences. + An observable sequence containing all the elements produced by the recursive expansion. + + or or is null. + + + + Runs all specified observable sequences in parallel and collects their last elements. + + Query provider used to construct the data source. + The type of the elements in the source sequences. + Observable sequence to collect the last elements for. + An observable sequence with an array collecting the last elements of all the input sequences. + + is null. + + + + Runs all observable sequences in the enumerable sources sequence in parallel and collect their last elements. + + Query provider used to construct the data source. + The type of the elements in the source sequences. + Observable sequence to collect the last elements for. + An observable sequence with an array collecting the last elements of all the input sequences. + + is null. + + + + Runs two observable sequences in parallel and combines their last elements. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable sequence. + Second observable sequence. + Result selector function to invoke with the last elements of both sequences. + An observable sequence with the result of calling the selector function with the last elements of both input sequences. + + or or is null. + + + + Returns an observable sequence that is the result of invoking the selector on the source sequence, without sharing subscriptions. + This operator allows for a fluent style of writing queries that use the same sequence multiple times. + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence that will be shared in the selector function. + Selector function which can use the source sequence as many times as needed, without sharing subscriptions to the source sequence. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + + or is null. + + + + Comonadic bind operator. + + + + + Comonadic bind operator. + + + + + Merges two observable sequences into one observable sequence by combining each element from the first source with the latest element from the second source, if any. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + First observable source. + Second observable source. + An observable sequence containing the result of combining each element of the first source with the latest element from the second source, if any, as a tuple value. + or is null. + + + + Merges an observable sequence and an enumerable sequence into one observable sequence of tuple values. + + The type of the elements in the first observable source sequence. + The type of the elements in the second enumerable source sequence. + First observable source. + Second enumerable source. + An observable sequence containing the result of pairwise combining the elements of the first and second source as a tuple value. + or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + First observable source. + Second observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + First observable source. + Second observable source. + Third observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Fourteenth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the fifteenth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Fourteenth observable source. + Fifteenth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the fifteenth source sequence. + The type of the elements in the sixteenth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Fourteenth observable source. + Fifteenth observable source. + Sixteenth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + First observable source. + Second observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + First observable source. + Second observable source. + Third observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Fourteenth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the fifteenth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Fourteenth observable source. + Fifteenth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the fifteenth source sequence. + The type of the elements in the sixteenth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Fourteenth observable source. + Fifteenth observable source. + Sixteenth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or or or or or or or or or is null. + + + + (Infrastructure) Implement query debugger services. + + + + + The System.Reactive.Linq namespace contains interfaces and classes that support expressing queries over observable sequences, using Language Integrated Query (LINQ). + Query operators are made available as extension methods for and defined on the Observable and Qbservable classes, respectively. + + + + + Provides a set of static methods for subscribing to IObservables using Windows Forms controls. + + + + + Wraps the source sequence in order to run its subscription and unsubscription logic on the Windows Forms message loop associated with the specified control. + + The type of the elements in the source sequence. + Source sequence. + Windows Forms control whose associated message loop is used to perform subscription and unsubscription actions on. + The source sequence whose subscriptions and unsubscriptions happen on the Windows Forms message loop associated with the specified control. + or is null. + + Only the side-effects of subscribing to the source sequence and disposing subscriptions to the source sequence are run on the specified control. + In order to invoke observer callbacks on the specified control, e.g. to render results in a control, use . + + + + + Wraps the source sequence in order to run its observer callbacks on the Windows Forms message loop associated with the specified control. + + The type of the elements in the source sequence. + Source sequence. + Windows Forms control whose associated message loop is used to notify observers on. + The source sequence whose observations happen on the Windows Forms message loop associated with the specified control. + or is null. + + + + Provides a set of extension methods for scheduling actions performed through observable sequences on UI dispatchers. + + + + + Wraps the source sequence in order to run its observer callbacks on the specified dispatcher. + + The type of the elements in the source sequence. + Source sequence. + Dispatcher whose associated message loop is used to notify observers on. + The source sequence whose observations happen on the specified dispatcher. + or is null. + + + + Wraps the source sequence in order to run its observer callbacks on the specified dispatcher. + + The type of the elements in the source sequence. + Source sequence. + Dispatcher whose associated message loop is used to notify observers on. + Priority to schedule work items at. + The source sequence whose observations happen on the specified dispatcher. + or is null. + + + + Wraps the source sequence in order to run its observer callbacks on the specified dispatcher scheduler. + + The type of the elements in the source sequence. + Source sequence. + Dispatcher scheduler to notify observers on. + The source sequence whose observations happen on the specified dispatcher scheduler. + or is null. + + + + Wraps the source sequence in order to run its observer callbacks on the dispatcher associated with the specified object. + + The type of the elements in the source sequence. + Source sequence. + Object to get the dispatcher from. + The source sequence whose observations happen on the specified object's dispatcher. + or is null. + + + + Wraps the source sequence in order to run its observer callbacks on the dispatcher associated with the specified object. + + The type of the elements in the source sequence. + Source sequence. + Object to get the dispatcher from. + Priority to schedule work items at. + The source sequence whose observations happen on the specified object's dispatcher. + or is null. + + + + Wraps the source sequence in order to run its observer callbacks on the dispatcher associated with the current thread. + + The type of the elements in the source sequence. + Source sequence. + The source sequence whose observations happen on the current thread's dispatcher. + is null. + + + + Wraps the source sequence in order to run its observer callbacks on the dispatcher associated with the current thread. + + The type of the elements in the source sequence. + Source sequence. + Priority to schedule work items at. + The source sequence whose observations happen on the current thread's dispatcher. + is null. + + + + Wraps the source sequence in order to run its subscription and unsubscription logic on the specified dispatcher. + + The type of the elements in the source sequence. + Source sequence. + Dispatcher whose associated message loop is used to perform subscription and unsubscription actions on. + The source sequence whose subscriptions and unsubscriptions happen on the specified dispatcher. + or is null. + + Only the side-effects of subscribing to the source sequence and disposing subscriptions to the source sequence are run on the specified dispatcher. + In order to invoke observer callbacks on the specified dispatcher, e.g. to render results in a control, use . + + + + + Wraps the source sequence in order to run its subscription and unsubscription logic on the specified dispatcher. + + The type of the elements in the source sequence. + Source sequence. + Dispatcher whose associated message loop is used to to perform subscription and unsubscription actions on. + Priority to schedule work items at. + The source sequence whose subscriptions and unsubscriptions happen on the specified dispatcher. + or is null. + + Only the side-effects of subscribing to the source sequence and disposing subscriptions to the source sequence are run on the specified dispatcher. + In order to invoke observer callbacks on the specified dispatcher, e.g. to render results in a control, use . + + + + + Wraps the source sequence in order to run its subscription and unsubscription logic on the specified dispatcher scheduler. + + The type of the elements in the source sequence. + Source sequence. + Dispatcher scheduler to perform subscription and unsubscription actions on. + The source sequence whose subscriptions and unsubscriptions happen on the specified dispatcher scheduler. + or is null. + + Only the side-effects of subscribing to the source sequence and disposing subscriptions to the source sequence are run on the specified scheduler. + In order to invoke observer callbacks on the specified scheduler, e.g. to render results in a control, use . + + + + + Wraps the source sequence in order to run its subscription and unsubscription logic on the dispatcher associated with the specified object. + + The type of the elements in the source sequence. + Source sequence. + Object to get the dispatcher from. + The source sequence whose subscriptions and unsubscriptions happen on the specified object's dispatcher. + or is null. + + Only the side-effects of subscribing to the source sequence and disposing subscriptions to the source sequence are run on the dispatcher associated with the specified object. + In order to invoke observer callbacks on the dispatcher associated with the specified object, e.g. to render results in a control, use . + + + + + Wraps the source sequence in order to run its subscription and unsubscription logic on the dispatcher associated with the specified object. + + The type of the elements in the source sequence. + Source sequence. + Object to get the dispatcher from. + Priority to schedule work items at. + The source sequence whose subscriptions and unsubscriptions happen on the specified object's dispatcher. + or is null. + + Only the side-effects of subscribing to the source sequence and disposing subscriptions to the source sequence are run on the dispatcher associated with the specified object. + In order to invoke observer callbacks on the dispatcher associated with the specified object, e.g. to render results in a control, use . + + + + + Wraps the source sequence in order to run its subscription and unsubscription logic on the dispatcher associated with the current thread. + + The type of the elements in the source sequence. + Source sequence. + The source sequence whose subscriptions and unsubscriptions happen on the current thread's dispatcher. + is null. + + Only the side-effects of subscribing to the source sequence and disposing subscriptions to the source sequence are run on the dispatcher associated with the current thread. + In order to invoke observer callbacks on the dispatcher associated with the current thread, e.g. to render results in a control, use . + + + + + Wraps the source sequence in order to run its subscription and unsubscription logic on the dispatcher associated with the current thread. + + The type of the elements in the source sequence. + Source sequence. + Priority to schedule work items at. + The source sequence whose observations happen on the current thread's dispatcher. + is null. + + Only the side-effects of subscribing to the source sequence and disposing subscriptions to the source sequence are run on the dispatcher associated with the current thread. + In order to invoke observer callbacks on the dispatcher associated with the current thread, e.g. to render results in a control, use . + + + + + An ObserveOn operator implementation that uses lock-free + techniques to signal events to the downstream. + + The element type of the sequence. + + + + The current task representing a running drain operation. + + + + + Indicates the work-in-progress state of this operator, + zero means no work is currently being done. + + + + + If true, the upstream has issued OnCompleted. + + + + + If is true and this is non-null, the upstream + failed with an OnError. + + + + + Indicates a dispose has been requested. + + + + + Remove remaining elements from the queue upon + cancellation or failure. + + The queue to use. The argument ensures that the + _queue field is not re-read from memory unnecessarily + due to the memory barriers inside TryDequeue mandating it + despite the field is read-only. + + + + Submit the drain task via the appropriate scheduler if + there is no drain currently running (wip > 0). + + + + + The static action to be scheduled on a simple scheduler. + Avoids creating a delegate that captures this + whenever the signals have to be drained. + + + + + Emits at most one signal per run on a scheduler that doesn't like + long running tasks. + + The scheduler to use for scheduling the next signal emission if necessary. + The IDisposable of the recursively scheduled task or an empty disposable. + + + + Executes a drain step by checking the disposed state, + checking for the terminated state and for an + empty queue, issuing the appropriate signals to the + given downstream. + + The queue to use. The argument ensures that the + _queue field is not re-read from memory due to the memory barriers + inside TryDequeue mandating it despite the field is read-only. + In addition, the DrainStep is invoked from the DrainLongRunning's loop + so reading _queue inside this method would still incur the same barrier + overhead otherwise. + + + + Signals events on a ISchedulerLongRunning by blocking the emission thread while waiting + for them from the upstream. + + The element type of the sequence. + + + + This will run a suspending drain task, hogging the backing thread + until the sequence terminates or gets disposed. + + + + + The queue for holding the OnNext items, terminal signals have their own fields. + + + + + Protects the suspension and resumption of the long running drain task. + + + + + The work-in-progress counter. If it jumps from 0 to 1, the drain task is resumed, + if it reaches 0 again, the drain task is suspended. + + + + + Set to true if the upstream terminated. + + + + + Set to a non-null Exception if the upstream terminated with OnError. + + + + + Indicates the sequence has been disposed and the drain task should quit. + + + + + Makes sure the drain task is scheduled only once, when the first signal + from upstream arrives. + + + + + The disposable tracking the drain task. + + + + + Static reference to the Drain method, saves allocation. + + + + + Override this method to dispose additional resources. + The method is guaranteed to be called at most once. + + If true, the method was called from . + + + + Base class for implementation of query operators, providing a lightweight sink that can be disposed to mute the outgoing observer. + + Type of the resulting sequence's elements. + + Implementations of sinks are responsible to enforce the message grammar on the associated observer. Upon sending a terminal message, a pairing Dispose call should be made to trigger cancellation of related resources and to mute the outgoing observer. + + + + Holds onto a singleton IDisposable indicating a ready state. + + + + + This indicates the operation has been prepared and ready for + the next step. + + + + + Provides a mechanism for receiving push-based notifications and returning a response. + + + The type of the elements received by the observer. + This type parameter is contravariant. That is, you can use either the type you specified or any type that is less derived. For more information about covariance and contravariance, see Covariance and Contravariance in Generics. + + + The type of the result returned from the observer's notification handlers. + This type parameter is covariant. That is, you can use either the type you specified or any type that is more derived. For more information about covariance and contravariance, see Covariance and Contravariance in Generics. + + + + + Notifies the observer of a new element in the sequence. + + The new element in the sequence. + Result returned upon observation of a new element. + + + + Notifies the observer that an exception has occurred. + + The exception that occurred. + Result returned upon observation of an error. + + + + Notifies the observer of the end of the sequence. + + Result returned upon observation of the sequence completion. + + + + Abstract base class for join patterns. + + + + + Represents a join pattern over one observable sequence. + + The type of the elements in the first source sequence. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over two observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + + + + Creates a pattern that matches when all three observable sequences have an available element. + + The type of the elements in the third observable sequence. + Observable sequence to match with the two previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over three observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + + + + Creates a pattern that matches when all four observable sequences have an available element. + + The type of the elements in the fourth observable sequence. + Observable sequence to match with the three previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over four observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + + + + Creates a pattern that matches when all five observable sequences have an available element. + + The type of the elements in the fifth observable sequence. + Observable sequence to match with the four previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over five observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + + + + Creates a pattern that matches when all six observable sequences have an available element. + + The type of the elements in the sixth observable sequence. + Observable sequence to match with the five previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over six observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + + + + Creates a pattern that matches when all seven observable sequences have an available element. + + The type of the elements in the seventh observable sequence. + Observable sequence to match with the six previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over seven observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + + + + Creates a pattern that matches when all eight observable sequences have an available element. + + The type of the elements in the eighth observable sequence. + Observable sequence to match with the seven previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over eight observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + + + + Creates a pattern that matches when all nine observable sequences have an available element. + + The type of the elements in the ninth observable sequence. + Observable sequence to match with the eight previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over nine observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + + + + Creates a pattern that matches when all ten observable sequences have an available element. + + The type of the elements in the tenth observable sequence. + Observable sequence to match with the nine previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over ten observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + + + + Creates a pattern that matches when all eleven observable sequences have an available element. + + The type of the elements in the eleventh observable sequence. + Observable sequence to match with the ten previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over eleven observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + + + + Creates a pattern that matches when all twelve observable sequences have an available element. + + The type of the elements in the twelfth observable sequence. + Observable sequence to match with the eleven previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over twelve observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + + + + Creates a pattern that matches when all thirteen observable sequences have an available element. + + The type of the elements in the thirteenth observable sequence. + Observable sequence to match with the twelve previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over thirteen observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + + + + Creates a pattern that matches when all fourteen observable sequences have an available element. + + The type of the elements in the fourteenth observable sequence. + Observable sequence to match with the thirteen previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over fourteen observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + + + + Creates a pattern that matches when all fifteen observable sequences have an available element. + + The type of the elements in the fifteenth observable sequence. + Observable sequence to match with the fourteen previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over fifteen observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the fifteenth source sequence. + + + + Creates a pattern that matches when all sixteen observable sequences have an available element. + + The type of the elements in the sixteenth observable sequence. + Observable sequence to match with the fifteen previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over sixteen observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the fifteenth source sequence. + The type of the elements in the sixteenth source sequence. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents an execution plan for join patterns. + + The type of the results produced by the plan. + + + + Abstract base class for join patterns represented by an expression tree. + + + + + Creates a new join pattern object using the specified expression tree representation. + + Expression tree representing the join pattern. + + + + Gets the expression tree representing the join pattern. + + + + + Represents a join pattern over two observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + + + + Creates a pattern that matches when all three observable sequences have an available element. + + The type of the elements in the third observable sequence. + Observable sequence to match with the two previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over three observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + + + + Creates a pattern that matches when all four observable sequences have an available element. + + The type of the elements in the fourth observable sequence. + Observable sequence to match with the three previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over four observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + + + + Creates a pattern that matches when all five observable sequences have an available element. + + The type of the elements in the fifth observable sequence. + Observable sequence to match with the four previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over five observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + + + + Creates a pattern that matches when all six observable sequences have an available element. + + The type of the elements in the sixth observable sequence. + Observable sequence to match with the five previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over six observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + + + + Creates a pattern that matches when all seven observable sequences have an available element. + + The type of the elements in the seventh observable sequence. + Observable sequence to match with the six previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over seven observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + + + + Creates a pattern that matches when all eight observable sequences have an available element. + + The type of the elements in the eighth observable sequence. + Observable sequence to match with the seven previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over eight observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + + + + Creates a pattern that matches when all nine observable sequences have an available element. + + The type of the elements in the ninth observable sequence. + Observable sequence to match with the eight previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over nine observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + + + + Creates a pattern that matches when all ten observable sequences have an available element. + + The type of the elements in the tenth observable sequence. + Observable sequence to match with the nine previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over ten observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + + + + Creates a pattern that matches when all eleven observable sequences have an available element. + + The type of the elements in the eleventh observable sequence. + Observable sequence to match with the ten previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over eleven observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + + + + Creates a pattern that matches when all twelve observable sequences have an available element. + + The type of the elements in the twelfth observable sequence. + Observable sequence to match with the eleven previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over twelve observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + + + + Creates a pattern that matches when all thirteen observable sequences have an available element. + + The type of the elements in the thirteenth observable sequence. + Observable sequence to match with the twelve previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over thirteen observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + + + + Creates a pattern that matches when all fourteen observable sequences have an available element. + + The type of the elements in the fourteenth observable sequence. + Observable sequence to match with the thirteen previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over fourteen observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + + + + Creates a pattern that matches when all fifteen observable sequences have an available element. + + The type of the elements in the fifteenth observable sequence. + Observable sequence to match with the fourteen previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over fifteen observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the fifteenth source sequence. + + + + Creates a pattern that matches when all sixteen observable sequences have an available element. + + The type of the elements in the sixteenth observable sequence. + Observable sequence to match with the fifteen previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over sixteen observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the fifteenth source sequence. + The type of the elements in the sixteenth source sequence. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents an execution plan for join patterns represented by an expression tree. + + The type of the results produced by the plan. + + + + Gets the expression tree representing the join pattern execution plan. + + + + + The System.Reactive.Joins namespace contains classes used to express join patterns over observable sequences using fluent method syntax. + + + + + Represents an object that retains the elements of the observable sequence and signals the end of the sequence. + + The type of elements received from the source sequence. + + + + Constructs an object that retains the values of source and signals the end of the sequence. + + The observable sequence whose elements will be retained in the list. + is null. + + + + Returns the last value of the observable sequence. + + + + + Determines the index of a specific item in the ListObservable. + + The element to determine the index for. + The index of the specified item in the list; -1 if not found. + + + + Inserts an item to the ListObservable at the specified index. + + The index to insert the item at. + The item to insert in the list. + + + + Removes the ListObservable item at the specified index. + + The index of the item to remove. + + + + Gets or sets the element at the specified index. + + The index of the item to retrieve or set. + + + + Adds an item to the ListObservable. + + The item to add to the list. + + + + Removes all items from the ListObservable. + + + + + Determines whether the ListObservable contains a specific value. + + The item to search for in the list. + true if found; false otherwise. + + + + Copies the elements of the ListObservable to an System.Array, starting at a particular System.Array index. + + The array to copy elements to. + The start index in the array to start copying elements to. + + + + Gets the number of elements contained in the ListObservable. + + + + + Gets a value that indicates whether the ListObservable is read-only. + + + + + Removes the first occurrence of a specific object from the ListObservable. + + The item to remove from the list. + true if the item was found; false otherwise. + + + + Returns an enumerator that iterates through the collection. + + Enumerator over the list. + + + + Subscribes an observer to the ListObservable which will be notified upon completion. + + The observer to send completion or error messages to. + The disposable resource that can be used to unsubscribe. + is null. + + + + The System.Reactive namespace contains interfaces and classes used throughout the Reactive Extensions library. + + + + + The System.Reactive.Subjects namespace contains interfaces and classes to represent subjects, which are objects implementing both and . + Subjects are often used as sources of events, allowing one party to raise events and allowing another party to write queries over the event stream. Because of their ability to + have multiple registered observers, subjects are also used as a facility to provide multicast behavior for event streams in queries. + + + + + Represents the result of an asynchronous operation. + The last value before the OnCompleted notification, or the error received through OnError, is sent to all subscribed observers. + + The type of the elements processed by the subject. + + + + A pre-allocated empty array indicating the AsyncSubject has terminated. + + + + + A pre-allocated empty array indicating the AsyncSubject has been disposed. + + + + + Creates a subject that can only receive one value and that value is cached for all future observations. + + + + + Indicates whether the subject has observers subscribed to it. + + + + + Indicates whether the subject has been disposed. + + + + + Notifies all subscribed observers about the end of the sequence, also causing the last received value to be sent out (if any). + + + + + Notifies all subscribed observers about the exception. + + The exception to send to all observers. + is null. + + + + Sends a value to the subject. The last value received before successful termination will be sent to all subscribed and future observers. + + The value to store in the subject. + + + + Subscribes an observer to the subject. + + Observer to subscribe to the subject. + Disposable object that can be used to unsubscribe the observer from the subject. + is null. + + + + A disposable connecting the AsyncSubject and an IObserver. + + + + + Unsubscribe all observers and release resources. + + + + + Gets an awaitable object for the current AsyncSubject. + + Object that can be awaited. + + + + Specifies a callback action that will be invoked when the subject completes. + + Callback action that will be invoked when the subject completes. + is null. + + + + Gets whether the AsyncSubject has completed. + + + + + Gets the last element of the subject, potentially blocking until the subject completes successfully or exceptionally. + + The last element of the subject. Throws an InvalidOperationException if no element was received. + The source sequence is empty. + + + + Represents a value that changes over time. + Observers can subscribe to the subject to receive the last (or initial) value and all subsequent notifications. + + The type of the elements processed by the subject. + + + + Initializes a new instance of the class which creates a subject that caches its last value and starts with the specified value. + + Initial value sent to observers when no other value has been received by the subject yet. + + + + Indicates whether the subject has observers subscribed to it. + + + + + Indicates whether the subject has been disposed. + + + + + Gets the current value or throws an exception. + + The initial value passed to the constructor until is called; after which, the last value passed to . + + is frozen after is called. + After is called, always throws the specified exception. + An exception is always thrown after is called. + + Reading is a thread-safe operation, though there's a potential race condition when or are being invoked concurrently. + In some cases, it may be necessary for a caller to use external synchronization to avoid race conditions. + + + Dispose was called. + + + + Tries to get the current value or throws an exception. + + The initial value passed to the constructor until is called; after which, the last value passed to . + true if a value is available; false if the subject was disposed. + + The value returned from is frozen after is called. + After is called, always throws the specified exception. + + Calling is a thread-safe operation, though there's a potential race condition when or are being invoked concurrently. + In some cases, it may be necessary for a caller to use external synchronization to avoid race conditions. + + + + + + Notifies all subscribed observers about the end of the sequence. + + + + + Notifies all subscribed observers about the exception. + + The exception to send to all observers. + is null. + + + + Notifies all subscribed observers about the arrival of the specified element in the sequence. + + The value to send to all observers. + + + + Subscribes an observer to the subject. + + Observer to subscribe to the subject. + Disposable object that can be used to unsubscribe the observer from the subject. + is null. + + + + Unsubscribe all observers and release resources. + + + + + Represents an observable wrapper that can be connected and disconnected from its underlying observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the resulting sequence, after transformation through the subject. + + + + Creates an observable that can be connected and disconnected from its source. + + Underlying observable source sequence that can be connected and disconnected from the wrapper. + Subject exposed by the connectable observable, receiving data from the underlying source sequence upon connection. + + + + Connects the observable wrapper to its source. All subscribed observers will receive values from the underlying observable sequence as long as the connection is established. + + Disposable object used to disconnect the observable wrapper from its source, causing subscribed observer to stop receiving values from the underlying observable sequence. + + + + Subscribes an observer to the observable sequence. No values from the underlying observable source will be received unless a connection was established through the Connect method. + + Observer that will receive values from the underlying observable source when the current ConnectableObservable instance is connected through a call to Connect. + Disposable used to unsubscribe from the observable sequence. + + + + Represents an observable wrapper that can be connected and disconnected from its underlying observable sequence. + + + The type of the elements in the sequence. + This type parameter is covariant. That is, you can use either the type you specified or any type that is more derived. For more information about covariance and contravariance, see Covariance and Contravariance in Generics. + + + + + Connects the observable wrapper to its source. All subscribed observers will receive values from the underlying observable sequence as long as the connection is established. + + Disposable used to disconnect the observable wrapper from its source, causing subscribed observer to stop receiving values from the underlying observable sequence. + + + + Represents an object that is both an observable sequence as well as an observer. + + The type of the elements processed by the subject. + + + + Represents an object that is both an observable sequence as well as an observer. + + + The type of the elements received by the subject. + This type parameter is contravariant. That is, you can use either the type you specified or any type that is less derived. For more information about covariance and contravariance, see Covariance and Contravariance in Generics. + + + The type of the elements produced by the subject. + This type parameter is covariant. That is, you can use either the type you specified or any type that is more derived. For more information about covariance and contravariance, see Covariance and Contravariance in Generics. + + + + + Represents an object that is both an observable sequence as well as an observer. + Each notification is broadcasted to all subscribed and future observers, subject to buffer trimming policies. + + The type of the elements processed by the subject. + + + + Underlying optimized implementation of the replay subject. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified scheduler. + + Scheduler the observers are invoked on. + is null. + + + + Initializes a new instance of the class with the specified buffer size. + + Maximum element count of the replay buffer. + is less than zero. + + + + Initializes a new instance of the class with the specified buffer size and scheduler. + + Maximum element count of the replay buffer. + Scheduler the observers are invoked on. + is null. + is less than zero. + + + + Initializes a new instance of the class with the specified window. + + Maximum time length of the replay buffer. + is less than . + + + + Initializes a new instance of the class with the specified window and scheduler. + + Maximum time length of the replay buffer. + Scheduler the observers are invoked on. + is null. + is less than . + + + + Initializes a new instance of the class with the specified buffer size and window. + + Maximum element count of the replay buffer. + Maximum time length of the replay buffer. + is less than zero. -or- is less than . + + + + Initializes a new instance of the class with the specified buffer size, window and scheduler. + + Maximum element count of the replay buffer. + Maximum time length of the replay buffer. + Scheduler the observers are invoked on. + is less than zero. -or- is less than . + is null. + + + + Indicates whether the subject has observers subscribed to it. + + + + + Indicates whether the subject has been disposed. + + + + + Notifies all subscribed and future observers about the arrival of the specified element in the sequence. + + The value to send to all observers. + + + + Notifies all subscribed and future observers about the specified exception. + + The exception to send to all observers. + is null. + + + + Notifies all subscribed and future observers about the end of the sequence. + + + + + Subscribes an observer to the subject. + + Observer to subscribe to the subject. + Disposable object that can be used to unsubscribe the observer from the subject. + is null. + + + + Releases all resources used by the current instance of the class and unsubscribe all observers. + + + + + Original implementation of the ReplaySubject with time based operations (Scheduling, Stopwatch, buffer-by-time). + + + + + Specialized scheduled observer similar to a scheduled observer for the immediate scheduler. + + Type of the elements processed by the observer. + + + + Gate to control ownership transfer and protect data structures. + + + + + Observer to forward notifications to. + + + + + Queue to enqueue OnNext notifications into. + + + + + Standby queue to swap out for _queue when transferring ownership. This allows to reuse + queues in case of busy subjects where the initial replay doesn't suffice to catch up. + + + + + Exception passed to an OnError notification, if any. + + + + + Indicates whether an OnCompleted notification was received. + + + + + Indicates whether the observer is busy, i.e. some thread is actively draining the + notifications that were queued up. + + + + + Indicates whether a failure occurred when the owner was draining the queue. This will + prevent future work to be processed. + + + + + Creates a new scheduled observer that proxies to the specified observer. + + Observer to forward notifications to. + + + + Disposes the observer. + + + + + Notifies the observer of pending work. This will either cause the current owner to + process the newly enqueued notifications, or it will cause the calling thread to + become the owner and start processing the notification queue. + + + + + Notifies the observer of pending work. This will either cause the current owner to + process the newly enqueued notifications, or it will cause the calling thread to + become the owner and start processing the notification queue. + + The number of enqueued notifications to process (ignored). + + + + Enqueues an OnCompleted notification. + + + + + Enqueues an OnError notification. + + Error of the notification. + + + + Enqueues an OnNext notification. + + Value of the notification. + + + + Terminates the observer upon receiving terminal notifications, thus preventing + future notifications to go out. + + Observer to send terminal notifications to. + + + + Represents an object that is both an observable sequence as well as an observer. + Each notification is broadcasted to all subscribed observers. + + The type of the elements processed by the subject. + + + + Creates a subject. + + + + + Indicates whether the subject has observers subscribed to it. + + + + + Indicates whether the subject has been disposed. + + + + + Notifies all subscribed observers about the end of the sequence. + + + + + Notifies all subscribed observers about the specified exception. + + The exception to send to all currently subscribed observers. + is null. + + + + Notifies all subscribed observers about the arrival of the specified element in the sequence. + + The value to send to all currently subscribed observers. + + + + Subscribes an observer to the subject. + + Observer to subscribe to the subject. + Disposable object that can be used to unsubscribe the observer from the subject. + is null. + + + + Releases all resources used by the current instance of the class and unsubscribes all observers. + + + + + Provides a set of static methods for creating subjects. + + + + + Creates a subject from the specified observer and observable. + + The type of the elements received by the observer. + The type of the elements produced by the observable sequence. + The observer used to send messages to the subject. + The observable used to subscribe to messages sent from the subject. + Subject implemented using the given observer and observable. + or is null. + + + + Creates a subject from the specified observer and observable. + + The type of the elements received by the observer and produced by the observable sequence. + The observer used to send messages to the subject. + The observable used to subscribe to messages sent from the subject. + Subject implemented using the given observer and observable. + or is null. + + + + Synchronizes the messages sent to the subject. + + The type of the elements received by the subject. + The type of the elements produced by the subject. + The subject to synchronize. + Subject whose messages are synchronized. + is null. + + + + Synchronizes the messages sent to the subject. + + The type of the elements received and produced by the subject. + The subject to synchronize. + Subject whose messages are synchronized. + is null. + + + + Synchronizes the messages sent to the subject and notifies observers on the specified scheduler. + + The type of the elements received by the subject. + The type of the elements produced by the subject. + The subject to synchronize. + Scheduler to notify observers on. + Subject whose messages are synchronized and whose observers are notified on the given scheduler. + or is null. + + + + Synchronizes the messages sent to the subject and notifies observers on the specified scheduler. + + The type of the elements received and produced by the subject. + The subject to synchronize. + Scheduler to notify observers on. + Subject whose messages are synchronized and whose observers are notified on the given scheduler. + or is null. + + + + Base class for objects that are both an observable sequence as well as an observer. + + The type of the elements processed by the subject. + + + + Indicates whether the subject has observers subscribed to it. + + + + + Indicates whether the subject has been disposed. + + + + + Releases all resources used by the current instance of the subject and unsubscribes all observers. + + + + + Notifies all subscribed observers about the end of the sequence. + + + + + Notifies all subscribed observers about the specified exception. + + The exception to send to all currently subscribed observers. + is null. + + + + Notifies all subscribed observers about the arrival of the specified element in the sequence. + + The value to send to all currently subscribed observers. + + + + Subscribes an observer to the subject. + + Observer to subscribe to the subject. + Disposable object that can be used to unsubscribe the observer from the subject. + is null. + + + + Indicates the type of a notification. + + + + + Represents an OnNext notification. + + + + + Represents an OnError notification. + + + + + Represents an OnCompleted notification. + + + + + Represents a notification to an observer. + + The type of the elements received by the observer. + + + + Default constructor used by derived types. + + + + + Returns the value of an OnNext notification or throws an exception. + + + + + Returns a value that indicates whether the notification has a value. + + + + + Returns the exception of an OnError notification or returns null. + + + + + Gets the kind of notification that is represented. + + + + + Represents an OnNext notification to an observer. + + + + + Constructs a notification of a new value. + + + + + Returns the value of an OnNext notification. + + + + + Returns null. + + + + + Returns true. + + + + + Returns . + + + + + Returns the hash code for this instance. + + + + + Indicates whether this instance and a specified object are equal. + + + + + Returns a string representation of this instance. + + + + + Invokes the observer's method corresponding to the notification. + + Observer to invoke the notification on. + + + + Invokes the observer's method corresponding to the notification and returns the produced result. + + Observer to invoke the notification on. + Result produced by the observation. + + + + Invokes the delegate corresponding to the notification. + + Delegate to invoke for an OnNext notification. + Delegate to invoke for an OnError notification. + Delegate to invoke for an OnCompleted notification. + + + + Invokes the delegate corresponding to the notification and returns the produced result. + + Delegate to invoke for an OnNext notification. + Delegate to invoke for an OnError notification. + Delegate to invoke for an OnCompleted notification. + Result produced by the observation. + + + + Represents an OnError notification to an observer. + + + + + Constructs a notification of an exception. + + + + + Throws the exception. + + + + + Returns the exception. + + + + + Returns false. + + + + + Returns . + + + + + Returns the hash code for this instance. + + + + + Indicates whether this instance and other are equal. + + + + + Returns a string representation of this instance. + + + + + Invokes the observer's method corresponding to the notification. + + Observer to invoke the notification on. + + + + Invokes the observer's method corresponding to the notification and returns the produced result. + + Observer to invoke the notification on. + Result produced by the observation. + + + + Invokes the delegate corresponding to the notification. + + Delegate to invoke for an OnNext notification. + Delegate to invoke for an OnError notification. + Delegate to invoke for an OnCompleted notification. + + + + Invokes the delegate corresponding to the notification and returns the produced result. + + Delegate to invoke for an OnNext notification. + Delegate to invoke for an OnError notification. + Delegate to invoke for an OnCompleted notification. + Result produced by the observation. + + + + Represents an OnCompleted notification to an observer. + + + + + Complete notifications are stateless thus only one instance + can ever exist per type. + + + + + Constructs a notification of the end of a sequence. + + + + + Throws an . + + + + + Returns null. + + + + + Returns false. + + + + + Returns . + + + + + Returns the hash code for this instance. + + + + + Indicates whether this instance and other are equal. + + + + + Returns a string representation of this instance. + + + + + Invokes the observer's method corresponding to the notification. + + Observer to invoke the notification on. + + + + Invokes the observer's method corresponding to the notification and returns the produced result. + + Observer to invoke the notification on. + Result produced by the observation. + + + + Invokes the delegate corresponding to the notification. + + Delegate to invoke for an OnNext notification. + Delegate to invoke for an OnError notification. + Delegate to invoke for an OnCompleted notification. + + + + Invokes the delegate corresponding to the notification and returns the produced result. + + Delegate to invoke for an OnNext notification. + Delegate to invoke for an OnError notification. + Delegate to invoke for an OnCompleted notification. + Result produced by the observation. + + + + Determines whether the current object has the same observer message payload as a specified value. + + An object to compare to the current object. + true if both objects have the same observer message payload; otherwise, false. + + Equality of objects is based on the equality of the observer message payload they represent, including the notification Kind and the Value or Exception (if any). + This means two objects can be equal even though they don't represent the same observer method call, but have the same Kind and have equal parameters passed to the observer method. + In case one wants to determine whether two objects represent the same observer method call, use Object.ReferenceEquals identity equality instead. + + + + + Determines whether the two specified objects have the same observer message payload. + + The first to compare, or null. + The second to compare, or null. + true if the first value has the same observer message payload as the second value; otherwise, false. + + Equality of objects is based on the equality of the observer message payload they represent, including the notification Kind and the Value or Exception (if any). + This means two objects can be equal even though they don't represent the same observer method call, but have the same Kind and have equal parameters passed to the observer method. + In case one wants to determine whether two objects represent the same observer method call, use Object.ReferenceEquals identity equality instead. + + + + + Determines whether the two specified objects have a different observer message payload. + + The first to compare, or null. + The second to compare, or null. + true if the first value has a different observer message payload as the second value; otherwise, false. + + Equality of objects is based on the equality of the observer message payload they represent, including the notification Kind and the Value or Exception (if any). + This means two objects can be equal even though they don't represent the same observer method call, but have the same Kind and have equal parameters passed to the observer method. + In case one wants to determine whether two objects represent a different observer method call, use Object.ReferenceEquals identity equality instead. + + + + + Determines whether the specified System.Object is equal to the current . + + The System.Object to compare with the current . + true if the specified System.Object is equal to the current ; otherwise, false. + + Equality of objects is based on the equality of the observer message payload they represent, including the notification Kind and the Value or Exception (if any). + This means two objects can be equal even though they don't represent the same observer method call, but have the same Kind and have equal parameters passed to the observer method. + In case one wants to determine whether two objects represent the same observer method call, use Object.ReferenceEquals identity equality instead. + + + + + Invokes the observer's method corresponding to the notification. + + Observer to invoke the notification on. + + + + Invokes the observer's method corresponding to the notification and returns the produced result. + + The type of the result returned from the observer's notification handlers. + Observer to invoke the notification on. + Result produced by the observation. + + + + Invokes the delegate corresponding to the notification. + + Delegate to invoke for an OnNext notification. + Delegate to invoke for an OnError notification. + Delegate to invoke for an OnCompleted notification. + + + + Invokes the delegate corresponding to the notification and returns the produced result. + + The type of the result returned from the notification handler delegates. + Delegate to invoke for an OnNext notification. + Delegate to invoke for an OnError notification. + Delegate to invoke for an OnCompleted notification. + Result produced by the observation. + + + + Returns an observable sequence with a single notification, using the immediate scheduler. + + The observable sequence that surfaces the behavior of the notification upon subscription. + + + + Returns an observable sequence with a single notification. + + Scheduler to send out the notification calls on. + The observable sequence that surfaces the behavior of the notification upon subscription. + + + + Provides a set of static methods for constructing notifications. + + + + + Creates an object that represents an OnNext notification to an observer. + + The type of the elements received by the observer. Upon dematerialization of the notifications into an observable sequence, this type is used as the element type for the sequence. + The value contained in the notification. + The OnNext notification containing the value. + + + + Creates an object that represents an OnError notification to an observer. + + The type of the elements received by the observer. Upon dematerialization of the notifications into an observable sequence, this type is used as the element type for the sequence. + The exception contained in the notification. + The OnError notification containing the exception. + is null. + + + + Creates an object that represents an OnCompleted notification to an observer. + + The type of the elements received by the observer. Upon dematerialization of the notifications into an observable sequence, this type is used as the element type for the sequence. + The OnCompleted notification. + + + + Abstract base class for implementations of the interface. + + + If you don't need a named type to create an observable sequence (i.e. you rather need + an instance rather than a reusable type), use the Observable.Create method to create + an observable sequence with specified subscription behavior. + + The type of the elements in the sequence. + + + + Subscribes the given observer to the observable sequence. + + Observer that will receive notifications from the observable sequence. + Disposable object representing an observer's subscription to the observable sequence. + is null. + + + + Implement this method with the core subscription logic for the observable sequence. + + Observer to send notifications to. + Disposable object representing an observer's subscription to the observable sequence. + + + + Provides a set of static methods for creating observers. + + + + + Creates an observer from a notification callback. + + The type of the elements received by the observer. + Action that handles a notification. + The observer object that invokes the specified handler using a notification corresponding to each message it receives. + is null. + + + + Creates a notification callback from an observer. + + The type of the elements received by the observer. + Observer object. + The action that forwards its input notification to the underlying observer. + is null. + + + + Creates an observer from the specified OnNext action. + + The type of the elements received by the observer. + Observer's OnNext action implementation. + The observer object implemented using the given actions. + is null. + + + + Creates an observer from the specified OnNext and OnError actions. + + The type of the elements received by the observer. + Observer's OnNext action implementation. + Observer's OnError action implementation. + The observer object implemented using the given actions. + or is null. + + + + Creates an observer from the specified OnNext and OnCompleted actions. + + The type of the elements received by the observer. + Observer's OnNext action implementation. + Observer's OnCompleted action implementation. + The observer object implemented using the given actions. + or is null. + + + + Creates an observer from the specified OnNext, OnError, and OnCompleted actions. + + The type of the elements received by the observer. + Observer's OnNext action implementation. + Observer's OnError action implementation. + Observer's OnCompleted action implementation. + The observer object implemented using the given actions. + or or is null. + + + + Hides the identity of an observer. + + The type of the elements received by the source observer. + An observer whose identity to hide. + An observer that hides the identity of the specified observer. + is null. + + + + Checks access to the observer for grammar violations. This includes checking for multiple OnError or OnCompleted calls, as well as reentrancy in any of the observer methods. + If a violation is detected, an InvalidOperationException is thrown from the offending observer method call. + + The type of the elements received by the source observer. + The observer whose callback invocations should be checked for grammar violations. + An observer that checks callbacks invocations against the observer grammar and, if the checks pass, forwards those to the specified observer. + is null. + + + + Synchronizes access to the observer such that its callback methods cannot be called concurrently from multiple threads. This overload is useful when coordinating access to an observer. + Notice reentrant observer callbacks on the same thread are still possible. + + The type of the elements received by the source observer. + The observer whose callbacks should be synchronized. + An observer that delivers callbacks to the specified observer in a synchronized manner. + is null. + + Because a Monitor is used to perform the synchronization, there's no protection against reentrancy from the same thread. + Hence, overlapped observer callbacks are still possible, which is invalid behavior according to the observer grammar. In order to protect against this behavior as + well, use the overload, passing true for the second parameter. + + + + + Synchronizes access to the observer such that its callback methods cannot be called concurrently. This overload is useful when coordinating access to an observer. + The parameter configures the type of lock used for synchronization. + + The type of the elements received by the source observer. + The observer whose callbacks should be synchronized. + If set to true, reentrant observer callbacks will be queued up and get delivered to the observer in a sequential manner. + An observer that delivers callbacks to the specified observer in a synchronized manner. + is null. + + When the parameter is set to false, behavior is identical to the overload which uses + a Monitor for synchronization. When the parameter is set to true, an + is used to queue up callbacks to the specified observer if a reentrant call is made. + + + + + Synchronizes access to the observer such that its callback methods cannot be called concurrently by multiple threads, using the specified gate object for use by a Monitor-based lock. + This overload is useful when coordinating multiple observers that access shared state by synchronizing on a common gate object. + Notice reentrant observer callbacks on the same thread are still possible. + + The type of the elements received by the source observer. + The observer whose callbacks should be synchronized. + Gate object to synchronize each observer call on. + An observer that delivers callbacks to the specified observer in a synchronized manner. + or is null. + + Because a Monitor is used to perform the synchronization, there's no protection against reentrancy from the same thread. + Hence, overlapped observer callbacks are still possible, which is invalid behavior according to the observer grammar. In order to protect against this behavior as + well, use the overload. + + + + + Synchronizes access to the observer such that its callback methods cannot be called concurrently, using the specified asynchronous lock to protect against concurrent and reentrant access. + This overload is useful when coordinating multiple observers that access shared state by synchronizing on a common asynchronous lock. + + The type of the elements received by the source observer. + The observer whose callbacks should be synchronized. + Gate object to synchronize each observer call on. + An observer that delivers callbacks to the specified observer in a synchronized manner. + or is null. + + + + Schedules the invocation of observer methods on the given scheduler. + + The type of the elements received by the source observer. + The observer to schedule messages for. + Scheduler to schedule observer messages on. + Observer whose messages are scheduled on the given scheduler. + or is null. + + + + Schedules the invocation of observer methods on the given synchronization context. + + The type of the elements received by the source observer. + The observer to schedule messages for. + Synchronization context to schedule observer messages on. + Observer whose messages are scheduled on the given synchronization context. + or is null. + + + + Converts an observer to a progress object. + + The type of the progress objects received by the source observer. + The observer to convert. + Progress object whose Report messages correspond to the observer's OnNext messages. + is null. + + + + Converts an observer to a progress object, using the specified scheduler to invoke the progress reporting method. + + The type of the progress objects received by the source observer. + The observer to convert. + Scheduler to report progress on. + Progress object whose Report messages correspond to the observer's OnNext messages. + or is null. + + + + Converts a progress object to an observer. + + The type of the progress objects received by the progress reporter. + The progress object to convert. + Observer whose OnNext messages correspond to the progress object's Report messages. + is null. + + + + Abstract base class for implementations of the interface. + + This base class enforces the grammar of observers where and are terminal messages. + The type of the elements in the sequence. + + + + Creates a new observer in a non-stopped state. + + + + + Notifies the observer of a new element in the sequence. + + Next element in the sequence. + + + + Implement this method to react to the receival of a new element in the sequence. + + Next element in the sequence. + This method only gets called when the observer hasn't stopped yet. + + + + Notifies the observer that an exception has occurred. + + The error that has occurred. + is null. + + + + Implement this method to react to the occurrence of an exception. + + The error that has occurred. + This method only gets called when the observer hasn't stopped yet, and causes the observer to stop. + + + + Notifies the observer of the end of the sequence. + + + + + Implement this method to react to the end of the sequence. + + This method only gets called when the observer hasn't stopped yet, and causes the observer to stop. + + + + Disposes the observer, causing it to transition to the stopped state. + + + + + Core implementation of . + + true if the Dispose call was triggered by the method; false if it was triggered by the finalizer. + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to Using the Scheduler.{0} property is no longer supported due to refactoring of the API surface and elimination of platform-specific dependencies. Please include System.Reactive.PlatformServices for your target platform and use the {0}Scheduler type instead. If you're building a Windows Store app, notice some schedulers are no longer supported. Consider using Scheduler.Default instead.. + + + + + Looks up a localized string similar to OnCompleted notification doesn't have a value.. + + + + + Looks up a localized string similar to Disposable has already been assigned.. + + + + + Looks up a localized string similar to Disposables collection can not contain null values.. + + + + + Looks up a localized string similar to Failed to start monitoring system clock changes.. + + + + + Looks up a localized string similar to Heap is empty.. + + + + + Looks up a localized string similar to Observer has already terminated.. + + + + + Looks up a localized string similar to Reentrancy has been detected.. + + + + + Looks up a localized string similar to This scheduler operation has already been awaited.. + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to {0} cannot be called when the scheduler is already running. Try using Sleep instead.. + + + + + Looks up a localized string similar to Could not find event '{0}' on object of type '{1}'.. + + + + + Looks up a localized string similar to Could not find event '{0}' on type '{1}'.. + + + + + Looks up a localized string similar to Add method should take 1 parameter.. + + + + + Looks up a localized string similar to The second parameter of the event delegate must be assignable to '{0}'.. + + + + + Looks up a localized string similar to Event is missing the add method.. + + + + + Looks up a localized string similar to Event is missing the remove method.. + + + + + Looks up a localized string similar to The event delegate must have a void return type.. + + + + + Looks up a localized string similar to The event delegate must have exactly two parameters.. + + + + + Looks up a localized string similar to Remove method should take 1 parameter.. + + + + + Looks up a localized string similar to The first parameter of the event delegate must be assignable to '{0}'.. + + + + + Looks up a localized string similar to Remove method of a WinRT event should take an EventRegistrationToken.. + + + + + Looks up a localized string similar to Sequence contains more than one element.. + + + + + Looks up a localized string similar to Sequence contains more than one matching element.. + + + + + Looks up a localized string similar to Sequence contains no elements.. + + + + + Looks up a localized string similar to Sequence contains no matching element.. + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to The WinRT thread pool doesn't support creating periodic timers with a period below 1 millisecond.. + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to Expected Qbservable.ToQueryable.. + + + + + Looks up a localized string similar to Invalid expression tree type.. + + + + + Looks up a localized string similar to There is no method '{0}' on type '{1}' that matches the specified arguments.. + + + + + Extension of the interface compatible with async method return types. + + + This class implements a "task-like" type that can be used as the return type of an asynchronous + method in C# 7.0 and beyond. For example: + + async ITaskObservable<int> RxAsync() + { + var res = await Observable.Return(21).Delay(TimeSpan.FromSeconds(1)); + return res * 2; + } + + + The type of the elements in the sequence. + + + + Gets an awaiter that can be used to await the eventual completion of the observable sequence. + + An awaiter that can be used to await the eventual completion of the observable sequence. + + + + Interface representing an awaiter for an . + + The type of the elements in the sequence. + + + + Gets a Boolean indicating whether the observable sequence has completed. + + + + + Gets the result produced by the observable sequence. + + The result produced by the observable sequence. + + + + The System.Reactive.Threading.Tasks namespace contains helpers for the conversion between tasks and observable sequences. + + + + + Provides a set of static methods for converting tasks to observable sequences. + + + + + Returns an observable sequence that signals when the task completes. + + Task to convert to an observable sequence. + An observable sequence that produces a unit value when the task completes, or propagates the exception produced by the task. + is null. + If the specified task object supports cancellation, consider using instead. + + + + Returns an observable sequence that signals when the task completes. + + Task to convert to an observable sequence. + Scheduler on which to notify observers about completion, cancellation or failure. + An observable sequence that produces a unit value when the task completes, or propagates the exception produced by the task. + is null or is null. + If the specified task object supports cancellation, consider using instead. + + + + Returns an observable sequence that propagates the result of the task. + + The type of the result produced by the task. + Task to convert to an observable sequence. + An observable sequence that produces the task's result, or propagates the exception produced by the task. + is null. + If the specified task object supports cancellation, consider using instead. + + + + Returns an observable sequence that propagates the result of the task. + + The type of the result produced by the task. + Task to convert to an observable sequence. + Scheduler on which to notify observers about completion, cancellation or failure. + An observable sequence that produces the task's result, or propagates the exception produced by the task. + is null or is null. + If the specified task object supports cancellation, consider using instead. + + + + Returns a task that will receive the last value or the exception produced by the observable sequence. + + The type of the elements in the source sequence. + Observable sequence to convert to a task. + A task that will receive the last element or the exception produced by the observable sequence. + is null. + + + + Returns a task that will receive the last value or the exception produced by the observable sequence. + + The type of the elements in the source sequence. + Observable sequence to convert to a task. + The scheduler used for overriding where the task completion signals will be issued. + A task that will receive the last element or the exception produced by the observable sequence. + or is null. + + + + Returns a task that will receive the last value or the exception produced by the observable sequence. + + The type of the elements in the source sequence. + Observable sequence to convert to a task. + The state to use as the underlying task's AsyncState. + A task that will receive the last element or the exception produced by the observable sequence. + is null. + + + + Returns a task that will receive the last value or the exception produced by the observable sequence. + + The type of the elements in the source sequence. + Observable sequence to convert to a task. + The state to use as the underlying task's AsyncState. + The scheduler used for overriding where the task completion signals will be issued. + A task that will receive the last element or the exception produced by the observable sequence. + or is null. + + + + Returns a task that will receive the last value or the exception produced by the observable sequence. + + The type of the elements in the source sequence. + Observable sequence to convert to a task. + Cancellation token that can be used to cancel the task, causing unsubscription from the observable sequence. + A task that will receive the last element or the exception produced by the observable sequence. + is null. + + + + Returns a task that will receive the last value or the exception produced by the observable sequence. + + The type of the elements in the source sequence. + Observable sequence to convert to a task. + Cancellation token that can be used to cancel the task, causing unsubscription from the observable sequence. + The scheduler used for overriding where the task completion signals will be issued. + A task that will receive the last element or the exception produced by the observable sequence. + or is null. + + + + Returns a task that will receive the last value or the exception produced by the observable sequence. + + The type of the elements in the source sequence. + Observable sequence to convert to a task. + Cancellation token that can be used to cancel the task, causing unsubscription from the observable sequence. + The state to use as the underlying task's . + A task that will receive the last element or the exception produced by the observable sequence. + is null. + + + + Returns a task that will receive the last value or the exception produced by the observable sequence. + + The type of the elements in the source sequence. + Observable sequence to convert to a task. + Cancellation token that can be used to cancel the task, causing unsubscription from the observable sequence. + The state to use as the underlying task's . + The scheduler used for overriding where the task completion signals will be issued. + A task that will receive the last element or the exception produced by the observable sequence. + or is null. + + + + Represents a value associated with time interval information. + The time interval can represent the time it took to produce the value, the interval relative to a previous value, the value's delivery time relative to a base, etc. + + The type of the value being annotated with time interval information. + + + + Constructs a time interval value. + + The value to be annotated with a time interval. + Time interval associated with the value. + + + + Gets the value. + + + + + Gets the interval. + + + + + Deconstructs the time interval value into a value and a time interval. + + The value. + Time interval associated with the value. + + + + Determines whether the current value has the same and as a specified value. + + An object to compare to the current value. + true if both values have the same and ; otherwise, false. + + + + Determines whether the two specified values have the same and . + + The first value to compare. + The second value to compare. + true if the first value has the same and as the second value; otherwise, false. + + + + Determines whether the two specified values don't have the same and . + + The first value to compare. + The second value to compare. + true if the first value has a different or as the second value; otherwise, false. + + + + Determines whether the specified System.Object is equal to the current . + + The System.Object to compare with the current . + true if the specified System.Object is equal to the current ; otherwise, false. + + + + Returns the hash code for the current value. + + A hash code for the current value. + + + + Returns a string representation of the current value. + + String representation of the current value. + + + + Represents value with a timestamp on it. + The timestamp typically represents the time the value was received, using an IScheduler's clock to obtain the current time. + + The type of the value being timestamped. + + + + Constructs a timestamped value. + + The value to be annotated with a timestamp. + Timestamp associated with the value. + + + + Gets the value. + + + + + Gets the timestamp. + + + + + Deconstructs the timestamped value into a value and a timestamp. + + The value. + Timestamp associated with the value. + + + + Determines whether the current value has the same and as a specified value. + + An object to compare to the current value. + true if both values have the same and ; otherwise, false. + + + + Determines whether the two specified values have the same and . + + The first value to compare. + The second value to compare. + true if the first value has the same and as the second value; otherwise, false. + + + + Determines whether the two specified values don't have the same and . + + The first value to compare. + The second value to compare. + true if the first value has a different or as the second value; otherwise, false. + + + + Determines whether the specified System.Object is equal to the current . + + The System.Object to compare with the current . + true if the specified System.Object is equal to the current ; otherwise, false. + + + + Returns the hash code for the current value. + + A hash code for the current value. + + + + Returns a string representation of the current value. + + String representation of the current value. + + + + A helper class with a factory method for creating instances. + + + + + Creates an instance of a . This is syntactic sugar that uses type inference + to avoid specifying a type in a constructor call, which is very useful when using anonymous types. + + The value to be annotated with a timestamp. + Timestamp associated with the value. + Creates a new timestamped value. + + + + Represents a type with a single value. This type is often used to denote the successful completion of a void-returning method (C#) or a Sub procedure (Visual Basic). + + + + + Determines whether the specified value is equal to the current . Because has a single value, this always returns true. + + An object to compare to the current value. + Because has a single value, this always returns true. + + + + Determines whether the specified System.Object is equal to the current . + + The System.Object to compare with the current . + true if the specified System.Object is a value; otherwise, false. + + + + Returns the hash code for the current value. + + A hash code for the current value. + + + + Returns a string representation of the current value. + + String representation of the current value. + + + + Determines whether the two specified values are equal. Because has a single value, this always returns true. + + The first value to compare. + The second value to compare. + Because has a single value, this always returns true. + + + + Determines whether the two specified values are not equal. Because has a single value, this always returns false. + + The first value to compare. + The second value to compare. + Because has a single value, this always returns false. + + + + Gets the single value. + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to The current thread has no Dispatcher associated with it.. + + + + + Looks up a localized string similar to No current Window object found to obtain a CoreDispatcher from.. + + + + + Provides a set of static methods for subscribing delegates to observables. + + + + + Subscribes to the observable sequence without specifying any handlers. + This method can be used to evaluate the observable sequence for its side-effects only. + + The type of the elements in the source sequence. + Observable sequence to subscribe to. + object used to unsubscribe from the observable sequence. + is null. + + + + Subscribes an element handler to an observable sequence. + + The type of the elements in the source sequence. + Observable sequence to subscribe to. + Action to invoke for each element in the observable sequence. + object used to unsubscribe from the observable sequence. + or is null. + + + + Subscribes an element handler and an exception handler to an observable sequence. + + The type of the elements in the source sequence. + Observable sequence to subscribe to. + Action to invoke for each element in the observable sequence. + Action to invoke upon exceptional termination of the observable sequence. + object used to unsubscribe from the observable sequence. + or or is null. + + + + Subscribes an element handler and a completion handler to an observable sequence. + + The type of the elements in the source sequence. + Observable sequence to subscribe to. + Action to invoke for each element in the observable sequence. + Action to invoke upon graceful termination of the observable sequence. + object used to unsubscribe from the observable sequence. + or or is null. + + + + Subscribes an element handler, an exception handler, and a completion handler to an observable sequence. + + The type of the elements in the source sequence. + Observable sequence to subscribe to. + Action to invoke for each element in the observable sequence. + Action to invoke upon exceptional termination of the observable sequence. + Action to invoke upon graceful termination of the observable sequence. + object used to unsubscribe from the observable sequence. + or or or is null. + + + + Subscribes an observer to an observable sequence, using a to support unsubscription. + + The type of the elements in the source sequence. + Observable sequence to subscribe to. + Observer to subscribe to the sequence. + CancellationToken that can be signaled to unsubscribe from the source sequence. + or is null. + + + + Subscribes to the observable sequence without specifying any handlers, using a to support unsubscription. + This method can be used to evaluate the observable sequence for its side-effects only. + + The type of the elements in the source sequence. + Observable sequence to subscribe to. + CancellationToken that can be signaled to unsubscribe from the source sequence. + is null. + + + + Subscribes an element handler to an observable sequence, using a to support unsubscription. + + The type of the elements in the source sequence. + Observable sequence to subscribe to. + Action to invoke for each element in the observable sequence. + CancellationToken that can be signaled to unsubscribe from the source sequence. + or is null. + + + + Subscribes an element handler and an exception handler to an observable sequence, using a to support unsubscription. + + The type of the elements in the source sequence. + Observable sequence to subscribe to. + Action to invoke for each element in the observable sequence. + Action to invoke upon exceptional termination of the observable sequence. + CancellationToken that can be signaled to unsubscribe from the source sequence. + or or is null. + + + + Subscribes an element handler and a completion handler to an observable sequence, using a to support unsubscription. + + The type of the elements in the source sequence. + Observable sequence to subscribe to. + Action to invoke for each element in the observable sequence. + Action to invoke upon graceful termination of the observable sequence. + CancellationToken that can be signaled to unsubscribe from the source sequence. + or or is null. + + + + Subscribes an element handler, an exception handler, and a completion handler to an observable sequence, using a to support unsubscription. + + The type of the elements in the source sequence. + Observable sequence to subscribe to. + Action to invoke for each element in the observable sequence. + Action to invoke upon exceptional termination of the observable sequence. + Action to invoke upon graceful termination of the observable sequence. + CancellationToken that can be signaled to unsubscribe from the source sequence. + or or or is null. + + + + Subscribes to the specified source, re-routing synchronous exceptions during invocation of the method to the observer's channel. + This method is typically used when writing query operators. + + The type of the elements in the source sequence. + Observable sequence to subscribe to. + Observer that will be passed to the observable sequence, and that will be used for exception propagation. + object used to unsubscribe from the observable sequence. + or is null. + + + + Represents a builder for asynchronous methods that return a task-like . + + The type of the elements in the sequence. + + + + The compiler-generated asynchronous state machine representing the execution flow of the asynchronous + method whose return type is a task-like . + + + + + The underlying observable sequence representing the result produced by the asynchronous method. + + + + + Creates an instance of the struct. + + A new instance of the struct. + + + + Begins running the builder with the associated state machine. + + The type of the state machine. + The state machine instance, passed by reference. + is null. + + + + Associates the builder with the specified state machine. + + The state machine instance to associate with the builder. + is null. + The state machine was previously set. + + + + Marks the observable as successfully completed. + + The result to use to complete the observable sequence. + The observable has already completed. + + + + Marks the observable as failed and binds the specified exception to the observable sequence. + + The exception to bind to the observable sequence. + is null. + The observable has already completed. + + + + Gets the observable sequence for this builder. + + + + + Schedules the state machine to proceed to the next action when the specified awaiter completes. + + The type of the awaiter. + The type of the state machine. + The awaiter. + The state machine. + + + + Schedules the state machine to proceed to the next action when the specified awaiter completes. + + The type of the awaiter. + The type of the state machine. + The awaiter. + The state machine. + + + + Rethrows an exception that was thrown from an awaiter's OnCompleted methods. + + The exception to rethrow. + + + + Implementation of the IObservable<T> interface compatible with async method return types. + + + This class implements a "task-like" type that can be used as the return type of an asynchronous + method in C# 7.0 and beyond. For example: + + async Observable<int> RxAsync() + { + var res = await Observable.Return(21).Delay(TimeSpan.FromSeconds(1)); + return res * 2; + } + + + + + + The underlying observable sequence to subscribe to in case the asynchronous method did not + finish synchronously. + + + + + The result returned by the asynchronous method in case the method finished synchronously. + + + + + The exception thrown by the asynchronous method in case the method finished synchronously. + + + + + Creates a new for an asynchronous method that has not finished yet. + + + + + Creates a new for an asynchronous method that synchronously returned + the specified value. + + The result returned by the asynchronous method. + + + + Creates a new for an asynchronous method that synchronously threw + the specified . + + The exception thrown by the asynchronous method. + + + + Marks the observable as successfully completed. + + The result to use to complete the observable sequence. + The observable has already completed. + + + + Marks the observable as failed and binds the specified exception to the observable sequence. + + The exception to bind to the observable sequence. + is null. + The observable has already completed. + + + + Subscribes the given observer to the observable sequence. + + Observer that will receive notifications from the observable sequence. + Disposable object representing an observer's subscription to the observable sequence. + is null. + + + + Gets an awaiter that can be used to await the eventual completion of the observable sequence. + + An awaiter that can be used to await the eventual completion of the observable sequence. + + + + Gets a Boolean indicating whether the observable sequence has completed. + + + + + Gets the result produced by the observable sequence. + + The result produced by the observable sequence. + + + + Attaches the specified to the observable sequence. + + The continuation to attach. + + + diff --git a/Game/Assets/Supabase/System.Reactive.5.0.0/build/netcoreapp3.1/System.Reactive.xml.meta b/Game/Assets/Supabase/System.Reactive.5.0.0/build/netcoreapp3.1/System.Reactive.xml.meta new file mode 100644 index 0000000..20b4281 --- /dev/null +++ b/Game/Assets/Supabase/System.Reactive.5.0.0/build/netcoreapp3.1/System.Reactive.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: f239285d5960d4b42925fe33dd1c4d4a +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Reactive.5.0.0/buildTransitive.meta b/Game/Assets/Supabase/System.Reactive.5.0.0/buildTransitive.meta new file mode 100644 index 0000000..143779f --- /dev/null +++ b/Game/Assets/Supabase/System.Reactive.5.0.0/buildTransitive.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 92ef9463a877ec94390d7ff27546d86a +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Reactive.5.0.0/buildTransitive/net5.0.meta b/Game/Assets/Supabase/System.Reactive.5.0.0/buildTransitive/net5.0.meta new file mode 100644 index 0000000..9cdb850 --- /dev/null +++ b/Game/Assets/Supabase/System.Reactive.5.0.0/buildTransitive/net5.0.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 67a8358e748fe0948ad0e48e721a29dc +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Reactive.5.0.0/buildTransitive/net5.0/_._ b/Game/Assets/Supabase/System.Reactive.5.0.0/buildTransitive/net5.0/_._ new file mode 100644 index 0000000..e69de29 diff --git a/Game/Assets/Supabase/System.Reactive.5.0.0/buildTransitive/net5.0/_._.meta b/Game/Assets/Supabase/System.Reactive.5.0.0/buildTransitive/net5.0/_._.meta new file mode 100644 index 0000000..76dfed6 --- /dev/null +++ b/Game/Assets/Supabase/System.Reactive.5.0.0/buildTransitive/net5.0/_._.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: e77416d0f30af8a4ba901a458313676f +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Reactive.5.0.0/buildTransitive/netcoreapp3.1.meta b/Game/Assets/Supabase/System.Reactive.5.0.0/buildTransitive/netcoreapp3.1.meta new file mode 100644 index 0000000..709aa64 --- /dev/null +++ b/Game/Assets/Supabase/System.Reactive.5.0.0/buildTransitive/netcoreapp3.1.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 6b445ecba4760074591278aab13586d2 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Reactive.5.0.0/buildTransitive/netcoreapp3.1/System.Reactive.targets b/Game/Assets/Supabase/System.Reactive.5.0.0/buildTransitive/netcoreapp3.1/System.Reactive.targets new file mode 100644 index 0000000..2452a8e --- /dev/null +++ b/Game/Assets/Supabase/System.Reactive.5.0.0/buildTransitive/netcoreapp3.1/System.Reactive.targets @@ -0,0 +1,12 @@ + + + true + false + + + + + + + + diff --git a/Game/Assets/Supabase/System.Reactive.5.0.0/buildTransitive/netcoreapp3.1/System.Reactive.targets.meta b/Game/Assets/Supabase/System.Reactive.5.0.0/buildTransitive/netcoreapp3.1/System.Reactive.targets.meta new file mode 100644 index 0000000..7998930 --- /dev/null +++ b/Game/Assets/Supabase/System.Reactive.5.0.0/buildTransitive/netcoreapp3.1/System.Reactive.targets.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: f29c732f472ad5d498845475582f928a +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Reactive.5.0.0/lib.meta b/Game/Assets/Supabase/System.Reactive.5.0.0/lib.meta new file mode 100644 index 0000000..a58a3a4 --- /dev/null +++ b/Game/Assets/Supabase/System.Reactive.5.0.0/lib.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8fefe15c4c15008438f1bf78267e2890 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Reactive.5.0.0/lib/net472.meta b/Game/Assets/Supabase/System.Reactive.5.0.0/lib/net472.meta new file mode 100644 index 0000000..03be244 --- /dev/null +++ b/Game/Assets/Supabase/System.Reactive.5.0.0/lib/net472.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: eeddb04fbd5b39f49a0974f00bb01184 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Reactive.5.0.0/lib/net472/System.Reactive.dll b/Game/Assets/Supabase/System.Reactive.5.0.0/lib/net472/System.Reactive.dll new file mode 100644 index 0000000..a8e81e3 --- /dev/null +++ b/Game/Assets/Supabase/System.Reactive.5.0.0/lib/net472/System.Reactive.dll @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ea69ae3af1cffd5e895c79e8fbed7ab0885911df63f187ff2069c6b8e2236fce +size 1470416 diff --git a/Game/Assets/Supabase/System.Reactive.5.0.0/lib/net472/System.Reactive.dll.meta b/Game/Assets/Supabase/System.Reactive.5.0.0/lib/net472/System.Reactive.dll.meta new file mode 100644 index 0000000..7ba482a --- /dev/null +++ b/Game/Assets/Supabase/System.Reactive.5.0.0/lib/net472/System.Reactive.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: 6b15988ec97fe2b4f92a4d0efb4e81ab +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Reactive.5.0.0/lib/net472/System.Reactive.xml b/Game/Assets/Supabase/System.Reactive.5.0.0/lib/net472/System.Reactive.xml new file mode 100644 index 0000000..1775c73 --- /dev/null +++ b/Game/Assets/Supabase/System.Reactive.5.0.0/lib/net472/System.Reactive.xml @@ -0,0 +1,28230 @@ + + + + System.Reactive + + + + + Class to create an instance from a delegate-based implementation of the method. + + The type of the elements in the sequence. + + + + Creates an observable sequence object from the specified subscription function. + + method implementation. + is null. + + + + Calls the subscription function that was supplied to the constructor. + + Observer to send notifications to. + Disposable object representing an observer's subscription to the observable sequence. + + + + Class to create an instance from delegate-based implementations of the On* methods. + + The type of the elements in the sequence. + + + + Creates an observer from the specified , , and actions. + + Observer's action implementation. + Observer's action implementation. + Observer's action implementation. + or or is null. + + + + Creates an observer from the specified action. + + Observer's action implementation. + is null. + + + + Creates an observer from the specified and actions. + + Observer's action implementation. + Observer's action implementation. + or is null. + + + + Creates an observer from the specified and actions. + + Observer's action implementation. + Observer's action implementation. + or is null. + + + + Calls the action implementing . + + Next element in the sequence. + + + + Calls the action implementing . + + The error that has occurred. + + + + Calls the action implementing . + + + + + This class fuses logic from ObserverBase, AnonymousObserver, and SafeObserver into one class. When an observer + needs to be safeguarded, an instance of this type can be created by SafeObserver.Create when it detects its + input is an AnonymousObserver, which is commonly used by end users when using the Subscribe extension methods + that accept delegates for the On* handlers. By doing the fusion, we make the call stack depth shorter which + helps debugging and some performance. + + + + + Asynchronous lock. + + + + + Queues the action for execution. If the caller acquires the lock and becomes the owner, + the queue is processed. If the lock is already owned, the action is queued and will get + processed by the owner. + + Action to queue for execution. + is null. + + + + Queues the action for execution. If the caller acquires the lock and becomes the owner, + the queue is processed. If the lock is already owned, the action is queued and will get + processed by the owner. + + Action to queue for execution. + The state to pass to the action when it gets invoked under the lock. + is null. + In case TState is a value type, this operation will involve boxing of . + However, this is often an improvement over the allocation of a closure object and a delegate. + + + + Clears the work items in the queue and drops further work being queued. + + + + + (Infrastructure) Concurrency abstraction layer. + + + + + Gets the current CAL. If no CAL has been set yet, it will be initialized to the default. + + + + + (Infrastructure) Concurrency abstraction layer interface. + + + This type is used by the Rx infrastructure and not meant for public consumption or implementation. + No guarantees are made about forward compatibility of the type's functionality and its usage. + + + + + Queues a method for execution at the specified relative time. + + Method to execute. + State to pass to the method. + Time to execute the method on. + Disposable object that can be used to stop the timer. + + + + Queues a method for periodic execution based on the specified period. + + Method to execute; should be safe for reentrancy. + Period for running the method periodically. + Disposable object that can be used to stop the timer. + + + + Queues a method for execution. + + Method to execute. + State to pass to the method. + Disposable object that can be used to cancel the queued method. + + + + Blocking sleep operation. + + Time to sleep. + + + + Starts a new stopwatch object. + + New stopwatch object; started at the time of the request. + + + + Gets whether long-running scheduling is supported. + + + + + Starts a new long-running thread. + + Method to execute. + State to pass to the method. + + + + Represents an object that schedules units of work on the current thread. + + Singleton instance of this type exposed through this static property. + + + + Gets the singleton instance of the current thread scheduler. + + + + + Gets a value that indicates whether the caller must call a Schedule method. + + + + + Gets a value that indicates whether the caller must call a Schedule method. + + + + + Schedules an action to be executed after dueTime. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + Relative time after which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Represents an object that schedules units of work on the platform's default scheduler. + + Singleton instance of this type exposed through this static property. + + + + Gets the singleton instance of the default scheduler. + + + + + Schedules an action to be executed. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Schedules an action to be executed after dueTime, using a System.Threading.Timer object. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + Relative time after which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Schedules a periodic piece of work, using a System.Threading.Timer object. + + The type of the state passed to the scheduled action. + Initial state passed to the action upon the first iteration. + Period for running the work periodically. + Action to be executed, potentially updating the state. + The disposable object used to cancel the scheduled recurring action (best effort). + is less than . + is null. + + + + Discovers scheduler services by interface type. + + Scheduler service interface type to discover. + Object implementing the requested service, if available; null otherwise. + + + + Represents an object that schedules units of work on a designated thread. + + + + + Counter for diagnostic purposes, to name the threads. + + + + + Thread factory function. + + + + + Stopwatch for timing free of absolute time dependencies. + + + + + Thread used by the event loop to run work items on. No work should be run on any other thread. + If ExitIfEmpty is set, the thread can quit and a new thread will be created when new work is scheduled. + + + + + Gate to protect data structures, including the work queue and the ready list. + + + + + Semaphore to count requests to re-evaluate the queue, from either Schedule requests or when a timer + expires and moves on to the next item in the queue. + + + + + Queue holding work items. Protected by the gate. + + + + + Queue holding items that are ready to be run as soon as possible. Protected by the gate. + + + + + Work item that will be scheduled next. Used upon reevaluation of the queue to check whether the next + item is still the same. If not, a new timer needs to be started (see below). + + + + + Disposable that always holds the timer to dispatch the first element in the queue. + + + + + Flag indicating whether the event loop should quit. When set, the event should be signaled as well to + wake up the event loop thread, which will subsequently abandon all work. + + + + + Creates an object that schedules units of work on a designated thread. + + + + + Creates an object that schedules units of work on a designated thread, using the specified factory to control thread creation options. + + Factory function for thread creation. + is null. + + + + Indicates whether the event loop thread is allowed to quit when no work is left. If new work + is scheduled afterwards, a new event loop thread is created. This property is used by the + NewThreadScheduler which uses an event loop for its recursive invocations. + + + + + Schedules an action to be executed after dueTime. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + Relative time after which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + is null. + The scheduler has been disposed and doesn't accept new work. + + + + Schedules a periodic piece of work on the designated thread. + + The type of the state passed to the scheduled action. + Initial state passed to the action upon the first iteration. + Period for running the work periodically. + Action to be executed, potentially updating the state. + The disposable object used to cancel the scheduled recurring action (best effort). + is null. + is less than . + The scheduler has been disposed and doesn't accept new work. + + + + Starts a new stopwatch object. + + New stopwatch object; started at the time of the request. + + + + Ends the thread associated with this scheduler. All remaining work in the scheduler queue is abandoned. + + + + + Ensures there is an event loop thread running. Should be called under the gate. + + + + + Event loop scheduled on the designated event loop thread. The loop is suspended/resumed using the event + which gets set by calls to Schedule, the next item timer, or calls to Dispose. + + + + + Base class for historical schedulers, which are virtual time schedulers that use for absolute time and for relative time. + + + + + Creates a new historical scheduler with the minimum value of as the initial clock value. + + + + + Creates a new historical scheduler with the specified initial clock value. + + Initial clock value. + + + + Creates a new historical scheduler with the specified initial clock value and absolute time comparer. + + Initial value for the clock. + Comparer to determine causality of events based on absolute time. + + + + Adds a relative time value to an absolute time value. + + Absolute time value. + Relative time value to add. + The resulting absolute time sum value. + + + + Converts the absolute time value to a value. + + Absolute time value to convert. + The corresponding value. + + + + Converts the value to a relative time value. + + value to convert. + The corresponding relative time value. + + + + Provides a virtual time scheduler that uses for absolute time and for relative time. + + + + + Creates a new historical scheduler with the minimum value of as the initial clock value. + + + + + Creates a new historical scheduler with the specified initial clock value. + + Initial value for the clock. + + + + Creates a new historical scheduler with the specified initial clock value. + + Initial value for the clock. + Comparer to determine causality of events based on absolute time. + is null. + + + + Gets the next scheduled item to be executed. + + The next scheduled item. + + + + Schedules an action to be executed at . + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + Absolute time at which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Represents an object that schedules units of work to run immediately on the current thread. + + Singleton instance of this type exposed through this static property. + + + + Gets the singleton instance of the immediate scheduler. + + + + + Schedules an action to be executed. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Schedules an action to be executed after dueTime. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + Relative time after which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Represents a work item that has been scheduled. + + Absolute time representation type. + + + + Gets the absolute time at which the item is due for invocation. + + + + + Invokes the work item. + + + + + Represents an object that schedules units of work. + + + + + Gets the scheduler's notion of current time. + + + + + Schedules an action to be executed. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + + + + Schedules an action to be executed after dueTime. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + Relative time after which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + + + + Schedules an action to be executed at dueTime. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + Absolute time at which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + + + + Scheduler with support for starting long-running tasks. + This type of scheduler can be used to run loops more efficiently instead of using recursive scheduling. + + + + + Schedules a long-running piece of work. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + + Notes to implementers + The returned disposable object should not prevent the work from starting, but only set the cancellation flag passed to the specified action. + + + + + Scheduler with support for running periodic tasks. + This type of scheduler can be used to run timers more efficiently instead of using recursive scheduling. + + + + + Schedules a periodic piece of work. + + The type of the state passed to the scheduled action. + Initial state passed to the action upon the first iteration. + Period for running the work periodically. + Action to be executed, potentially updating the state. + The disposable object used to cancel the scheduled recurring action (best effort). + + + + Abstraction for a stopwatch to compute time relative to a starting point. + + + + + Gets the time elapsed since the stopwatch object was obtained. + + + + + Provider for objects. + + + + + Starts a new stopwatch object. + + New stopwatch object; started at the time of the request. + + + + Abstract base class for machine-local schedulers, using the local system clock for time-based operations. + + + + + Gets the scheduler's notion of current time. + + + + + Schedules an action to be executed. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Schedules an action to be executed after dueTime. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + Relative time after which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + + + + Schedules an action to be executed at dueTime. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + Absolute time at which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Starts a new stopwatch object. + + New stopwatch object; started at the time of the request. + + Platform-specific scheduler implementations should reimplement + to provide a more efficient implementation (if available). + + + + + Discovers scheduler services by interface type. The base class implementation returns + requested services for each scheduler interface implemented by the derived class. For + more control over service discovery, derived types can override this method. + + Scheduler service interface type to discover. + Object implementing the requested service, if available; null otherwise. + + + + Gate to protect local scheduler queues. + + + + + Gate to protect queues and to synchronize scheduling decisions and system clock + change management. + + + + + Long term work queue. Contains work that's due beyond SHORTTERM, computed at the + time of enqueueing. + + + + + Disposable resource for the long term timer that will reevaluate and dispatch the + first item in the long term queue. A serial disposable is used to make "dispose + current and assign new" logic easier. The disposable itself is never disposed. + + + + + Item at the head of the long term queue for which the current long term timer is + running. Used to detect changes in the queue and decide whether we should replace + or can continue using the current timer (because no earlier long term work was + added to the queue). + + + + + Short term work queue. Contains work that's due soon, computed at the time of + enqueueing or upon reevaluation of the long term queue causing migration of work + items. This queue is kept in order to be able to relocate short term items back + to the long term queue in case a system clock change occurs. + + + + + Set of disposable handles to all of the current short term work Schedule calls, + allowing those to be cancelled upon a system clock change. + + + + + Threshold where an item is considered to be short term work or gets moved from + long term to short term. + + + + + Maximum error ratio for timer drift. We've seen machines with 10s drift on a + daily basis, which is in the order 10E-4, so we allow for extra margin here. + This value is used to calculate early arrival for the long term queue timer + that will reevaluate work for the short term queue. + + Example: -------------------------------...---------------------*-----$ + ^ ^ + | | + early due + 0.999 1.0 + + We also make the gap between early and due at least LONGTOSHORT so we have + enough time to transition work to short term and as a courtesy to the + destination scheduler to manage its queues etc. + + + + + Minimum threshold for the long term timer to fire before the queue is reevaluated + for short term work. This value is chosen to be less than SHORTTERM in order to + ensure the timer fires and has work to transition to the short term queue. + + + + + Threshold used to determine when a short term timer has fired too early compared + to the absolute due time. This provides a last chance protection against early + completion of scheduled work, which can happen in case of time adjustment in the + operating system (cf. GetSystemTimeAdjustment). + + + + + Longest interval supported by timers in the BCL. + + + + + Creates a new local scheduler. + + + + + Enqueues absolute time scheduled work in the timer queue or the short term work list. + + State to pass to the action. + Absolute time to run the work on. The timer queue is responsible to execute the work close to the specified time, also accounting for system clock changes. + Action to run, potentially recursing into the scheduler. + Disposable object to prevent the work from running. + + + + Schedule work that's due in the short term. This leads to relative scheduling calls to the + underlying scheduler for short TimeSpan values. If the system clock changes in the meantime, + the short term work is attempted to be cancelled and reevaluated. + + Work item to schedule in the short term. The caller is responsible to determine the work is indeed short term. + + + + Callback to process the next short term work item. + + Recursive scheduler supplied by the underlying scheduler. + Disposable used to identify the work the timer was triggered for (see code for usage). + Empty disposable. Recursive work cancellation is wired through the original WorkItem. + + + + Schedule work that's due on the long term. This leads to the work being queued up for + eventual transitioning to the short term work list. + + Work item to schedule on the long term. The caller is responsible to determine the work is indeed long term. + + + + Updates the long term timer which is responsible to transition work from the head of the + long term queue to the short term work list. + + Should be called under the scheduler lock. + + + + Evaluates the long term queue, transitioning short term work to the short term list, + and adjusting the new long term processing timer accordingly. + + + + + Callback invoked when a system clock change is observed in order to adjust and reevaluate + the internal scheduling queues. + + Currently not used. + Currently not used. + + + + Represents a work item in the absolute time scheduler. + + + This type is very similar to ScheduledItem, but we need a different Invoke signature to allow customization + of the target scheduler (e.g. when called in a recursive scheduling context, see ExecuteNextShortTermWorkItem). + + + + + Represents a work item that closes over scheduler invocation state. Subtyping is + used to have a common type for the scheduler queues. + + + + + Represents an object that schedules each unit of work on a separate thread. + + + + + Creates an object that schedules each unit of work on a separate thread. + + + + + Gets an instance of this scheduler that uses the default Thread constructor. + + + + + Creates an object that schedules each unit of work on a separate thread. + + Factory function for thread creation. + is null. + + + + Schedules an action to be executed after dueTime. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + Relative time after which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Schedules a long-running task by creating a new thread. Cancellation happens through polling. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Schedules a periodic piece of work by creating a new thread that goes to sleep when work has been dispatched and wakes up again at the next periodic due time. + + The type of the state passed to the scheduled action. + Initial state passed to the action upon the first iteration. + Period for running the work periodically. + Action to be executed, potentially updating the state. + The disposable object used to cancel the scheduled recurring action (best effort). + is null. + is less than . + + + + Starts a new stopwatch object. + + New stopwatch object; started at the time of the request. + + + + Abstract base class for scheduled work items. + + Absolute time representation type. + + + + Creates a new scheduled work item to run at the specified time. + + Absolute time at which the work item has to be executed. + Comparer used to compare work items based on their scheduled time. + is null. + + + + Gets the absolute time at which the item is due for invocation. + + + + + Invokes the work item. + + + + + Implement this method to perform the work item invocation, returning a disposable object for deep cancellation. + + Disposable object used to cancel the work item and/or derived work items. + + + + Compares the work item with another work item based on absolute time values. + + Work item to compare the current work item to. + Relative ordering between this and the specified work item. + The inequality operators are overloaded to provide results consistent with the implementation. Equality operators implement traditional reference equality semantics. + + + + Determines whether one specified object is due before a second specified object. + + The first object to compare. + The second object to compare. + true if the value of left is earlier than the value of right; otherwise, false. + This operator provides results consistent with the implementation. + + + + Determines whether one specified object is due before or at the same of a second specified object. + + The first object to compare. + The second object to compare. + true if the value of left is earlier than or simultaneous with the value of right; otherwise, false. + This operator provides results consistent with the implementation. + + + + Determines whether one specified object is due after a second specified object. + + The first object to compare. + The second object to compare. + true if the value of left is later than the value of right; otherwise, false. + This operator provides results consistent with the implementation. + + + + Determines whether one specified object is due after or at the same time of a second specified object. + + The first object to compare. + The second object to compare. + true if the value of left is later than or simultaneous with the value of right; otherwise, false. + This operator provides results consistent with the implementation. + + + + Determines whether two specified objects are equal. + + The first object to compare. + The second object to compare. + true if both are equal; otherwise, false. + This operator does not provide results consistent with the IComparable implementation. Instead, it implements reference equality. + + + + Determines whether two specified objects are inequal. + + The first object to compare. + The second object to compare. + true if both are inequal; otherwise, false. + This operator does not provide results consistent with the IComparable implementation. Instead, it implements reference equality. + + + + Determines whether a object is equal to the specified object. + + The object to compare to the current object. + true if the obj parameter is a object and is equal to the current object; otherwise, false. + + + + Returns the hash code for the current object. + + A 32-bit signed integer hash code. + + + + Cancels the work item by disposing the resource returned by as soon as possible. + + + + + Gets whether the work item has received a cancellation request. + + + + + Represents a scheduled work item based on the materialization of an IScheduler.Schedule method call. + + Absolute time representation type. + Type of the state passed to the scheduled action. + + + + Creates a materialized work item. + + Recursive scheduler to invoke the scheduled action with. + State to pass to the scheduled action. + Scheduled action. + Time at which to run the scheduled action. + Comparer used to compare work items based on their scheduled time. + or or is null. + + + + Creates a materialized work item. + + Recursive scheduler to invoke the scheduled action with. + State to pass to the scheduled action. + Scheduled action. + Time at which to run the scheduled action. + or is null. + + + + Invokes the scheduled action with the supplied recursive scheduler and state. + + Cancellation resource returned by the scheduled action. + + + + Provides a set of static properties to access commonly used schedulers. + + + + + Yields execution of the current work item on the scheduler to another work item on the scheduler. + The caller should await the result of calling Yield to schedule the remainder of the current work item (known as the continuation). + + Scheduler to yield work on. + Scheduler operation object to await in order to schedule the continuation. + is null. + + + + Yields execution of the current work item on the scheduler to another work item on the scheduler. + The caller should await the result of calling Yield to schedule the remainder of the current work item (known as the continuation). + + Scheduler to yield work on. + Cancellation token to cancel the continuation to run. + Scheduler operation object to await in order to schedule the continuation. + is null. + + + + Suspends execution of the current work item on the scheduler for the specified duration. + The caller should await the result of calling Sleep to schedule the remainder of the current work item (known as the continuation) after the specified duration. + + Scheduler to yield work on. + Time when the continuation should run. + Scheduler operation object to await in order to schedule the continuation. + is null. + + + + Suspends execution of the current work item on the scheduler for the specified duration. + The caller should await the result of calling Sleep to schedule the remainder of the current work item (known as the continuation) after the specified duration. + + Scheduler to yield work on. + Time when the continuation should run. + Cancellation token to cancel the continuation to run. + Scheduler operation object to await in order to schedule the continuation. + is null. + + + + Suspends execution of the current work item on the scheduler until the specified due time. + The caller should await the result of calling Sleep to schedule the remainder of the current work item (known as the continuation) at the specified due time. + + Scheduler to yield work on. + Time when the continuation should run. + Scheduler operation object to await in order to schedule the continuation. + is null. + + + + Suspends execution of the current work item on the scheduler until the specified due time. + The caller should await the result of calling Sleep to schedule the remainder of the current work item (known as the continuation) at the specified due time. + + Scheduler to yield work on. + Time when the continuation should run. + Cancellation token to cancel the continuation to run. + Scheduler operation object to await in order to schedule the continuation. + is null. + + + + Schedules work using an asynchronous method, allowing for cooperative scheduling in an imperative coding style. + + The type of the state passed to the scheduled action. + Scheduler to schedule work on. + State to pass to the asynchronous method. + Asynchronous method to run the work, using Yield and Sleep operations for cooperative scheduling and injection of cancellation points. + Disposable object that allows to cancel outstanding work on cooperative cancellation points or through the cancellation token passed to the asynchronous method. + or is null. + + + + Schedules work using an asynchronous method, allowing for cooperative scheduling in an imperative coding style. + + The type of the state passed to the scheduled action. + Scheduler to schedule work on. + State to pass to the asynchronous method. + Asynchronous method to run the work, using Yield and Sleep operations for cooperative scheduling and injection of cancellation points. + Disposable object that allows to cancel outstanding work on cooperative cancellation points or through the cancellation token passed to the asynchronous method. + or is null. + + + + Schedules work using an asynchronous method, allowing for cooperative scheduling in an imperative coding style. + + Scheduler to schedule work on. + Asynchronous method to run the work, using Yield and Sleep operations for cooperative scheduling and injection of cancellation points. + Disposable object that allows to cancel outstanding work on cooperative cancellation points or through the cancellation token passed to the asynchronous method. + or is null. + + + + Schedules work using an asynchronous method, allowing for cooperative scheduling in an imperative coding style. + + Scheduler to schedule work on. + Asynchronous method to run the work, using Yield and Sleep operations for cooperative scheduling and injection of cancellation points. + Disposable object that allows to cancel outstanding work on cooperative cancellation points or through the cancellation token passed to the asynchronous method. + or is null. + + + + Schedules work using an asynchronous method, allowing for cooperative scheduling in an imperative coding style. + + The type of the state passed to the scheduled action. + Scheduler to schedule work on. + State to pass to the asynchronous method. + Relative time after which to execute the action. + Asynchronous method to run the work, using Yield and Sleep operations for cooperative scheduling and injection of cancellation points. + Disposable object that allows to cancel outstanding work on cooperative cancellation points or through the cancellation token passed to the asynchronous method. + or is null. + + + + Schedules work using an asynchronous method, allowing for cooperative scheduling in an imperative coding style. + + The type of the state passed to the scheduled action. + Scheduler to schedule work on. + State to pass to the asynchronous method. + Relative time after which to execute the action. + Asynchronous method to run the work, using Yield and Sleep operations for cooperative scheduling and injection of cancellation points. + Disposable object that allows to cancel outstanding work on cooperative cancellation points or through the cancellation token passed to the asynchronous method. + or is null. + + + + Schedules work using an asynchronous method, allowing for cooperative scheduling in an imperative coding style. + + Scheduler to schedule work on. + Relative time after which to execute the action. + Asynchronous method to run the work, using Yield and Sleep operations for cooperative scheduling and injection of cancellation points. + Disposable object that allows to cancel outstanding work on cooperative cancellation points or through the cancellation token passed to the asynchronous method. + or is null. + + + + Schedules work using an asynchronous method, allowing for cooperative scheduling in an imperative coding style. + + Scheduler to schedule work on. + Relative time after which to execute the action. + Asynchronous method to run the work, using Yield and Sleep operations for cooperative scheduling and injection of cancellation points. + Disposable object that allows to cancel outstanding work on cooperative cancellation points or through the cancellation token passed to the asynchronous method. + or is null. + + + + Schedules work using an asynchronous method, allowing for cooperative scheduling in an imperative coding style. + + The type of the state passed to the scheduled action. + Scheduler to schedule work on. + State to pass to the asynchronous method. + Absolute time at which to execute the action. + Asynchronous method to run the work, using Yield and Sleep operations for cooperative scheduling and injection of cancellation points. + Disposable object that allows to cancel outstanding work on cooperative cancellation points or through the cancellation token passed to the asynchronous method. + or is null. + + + + Schedules work using an asynchronous method, allowing for cooperative scheduling in an imperative coding style. + + The type of the state passed to the scheduled action. + Scheduler to schedule work on. + State to pass to the asynchronous method. + Absolute time at which to execute the action. + Asynchronous method to run the work, using Yield and Sleep operations for cooperative scheduling and injection of cancellation points. + Disposable object that allows to cancel outstanding work on cooperative cancellation points or through the cancellation token passed to the asynchronous method. + or is null. + + + + Schedules work using an asynchronous method, allowing for cooperative scheduling in an imperative coding style. + + Scheduler to schedule work on. + Absolute time at which to execute the action. + Asynchronous method to run the work, using Yield and Sleep operations for cooperative scheduling and injection of cancellation points. + Disposable object that allows to cancel outstanding work on cooperative cancellation points or through the cancellation token passed to the asynchronous method. + or is null. + + + + Schedules work using an asynchronous method, allowing for cooperative scheduling in an imperative coding style. + + Scheduler to schedule work on. + Absolute time at which to execute the action. + Asynchronous method to run the work, using Yield and Sleep operations for cooperative scheduling and injection of cancellation points. + Disposable object that allows to cancel outstanding work on cooperative cancellation points or through the cancellation token passed to the asynchronous method. + or is null. + + + + Gets the current time according to the local machine's system clock. + + + + + Normalizes the specified value to a positive value. + + The value to normalize. + The specified TimeSpan value if it is zero or positive; otherwise, . + + + + Gets a scheduler that schedules work immediately on the current thread. + + + + + Gets a scheduler that schedules work as soon as possible on the current thread. + + + + + Gets a scheduler that schedules work on the platform's default scheduler. + + + + + Gets a scheduler that schedules work on the thread pool. + + + + + Gets a scheduler that schedules work on a new thread using default thread creation options. + + + + + Gets a scheduler that schedules work on Task Parallel Library (TPL) task pool using the default TaskScheduler. + + + + + Schedules an action to be executed recursively. + + Scheduler to execute the recursive action on. + Action to execute recursively. The parameter passed to the action is used to trigger recursive scheduling of the action. + The disposable object used to cancel the scheduled action (best effort). + or is null. + + + + Schedules an action to be executed recursively. + + The type of the state passed to the scheduled action. + Scheduler to execute the recursive action on. + State passed to the action to be executed. + Action to execute recursively. The last parameter passed to the action is used to trigger recursive scheduling of the action, passing in recursive invocation state. + The disposable object used to cancel the scheduled action (best effort). + or is null. + + + + Schedules an action to be executed recursively after a specified relative due time. + + Scheduler to execute the recursive action on. + Action to execute recursively. The parameter passed to the action is used to trigger recursive scheduling of the action at the specified relative time. + Relative time after which to execute the action for the first time. + The disposable object used to cancel the scheduled action (best effort). + or is null. + + + + Schedules an action to be executed recursively after a specified relative due time. + + The type of the state passed to the scheduled action. + Scheduler to execute the recursive action on. + State passed to the action to be executed. + Action to execute recursively. The last parameter passed to the action is used to trigger recursive scheduling of the action, passing in the recursive due time and invocation state. + Relative time after which to execute the action for the first time. + The disposable object used to cancel the scheduled action (best effort). + or is null. + + + + Schedules an action to be executed recursively at a specified absolute due time. + + Scheduler to execute the recursive action on. + Action to execute recursively. The parameter passed to the action is used to trigger recursive scheduling of the action at the specified absolute time. + Absolute time at which to execute the action for the first time. + The disposable object used to cancel the scheduled action (best effort). + or is null. + + + + Schedules an action to be executed recursively at a specified absolute due time. + + The type of the state passed to the scheduled action. + Scheduler to execute the recursive action on. + State passed to the action to be executed. + Action to execute recursively. The last parameter passed to the action is used to trigger recursive scheduling of the action, passing in the recursive due time and invocation state. + Absolute time at which to execute the action for the first time. + The disposable object used to cancel the scheduled action (best effort). + or is null. + + + + Returns the implementation of the specified scheduler, or null if no such implementation is available. + + Scheduler to get the implementation for. + The scheduler's implementation if available; null otherwise. + + This helper method is made available for query operator authors in order to discover scheduler services by using the required + IServiceProvider pattern, which allows for interception or redefinition of scheduler services. + + + + + Returns the implementation of the specified scheduler, or null if no such implementation is available. + + Scheduler to get the implementation for. + The scheduler's implementation if available; null otherwise. + + + This helper method is made available for query operator authors in order to discover scheduler services by using the required + IServiceProvider pattern, which allows for interception or redefinition of scheduler services. + + + Consider using in case a stopwatch is required, but use of emulation stopwatch based + on the scheduler's clock is acceptable. Use of this method is recommended for best-effort use of the stopwatch provider + scheduler service, where the caller falls back to not using stopwatches if this facility wasn't found. + + + + + + Returns the implementation of the specified scheduler, or null if no such implementation is available. + + Scheduler to get the implementation for. + The scheduler's implementation if available; null otherwise. + + + This helper method is made available for query operator authors in order to discover scheduler services by using the required + IServiceProvider pattern, which allows for interception or redefinition of scheduler services. + + + Consider using the extension methods for in case periodic scheduling + is required and emulation of periodic behavior using other scheduler services is desirable. Use of this method is recommended + for best-effort use of the periodic scheduling service, where the caller falls back to not using periodic scheduling if this + facility wasn't found. + + + + + + Schedules a periodic piece of work by dynamically discovering the scheduler's capabilities. + If the scheduler supports periodic scheduling, the request will be forwarded to the periodic scheduling implementation. + If the scheduler provides stopwatch functionality, the periodic task will be emulated using recursive scheduling with a stopwatch to correct for time slippage. + Otherwise, the periodic task will be emulated using recursive scheduling. + + The type of the state passed to the scheduled action. + The scheduler to run periodic work on. + Initial state passed to the action upon the first iteration. + Period for running the work periodically. + Action to be executed, potentially updating the state. + The disposable object used to cancel the scheduled recurring action (best effort). + or is null. + is less than . + + + + Schedules a periodic piece of work by dynamically discovering the scheduler's capabilities. + If the scheduler supports periodic scheduling, the request will be forwarded to the periodic scheduling implementation. + If the scheduler provides stopwatch functionality, the periodic task will be emulated using recursive scheduling with a stopwatch to correct for time slippage. + Otherwise, the periodic task will be emulated using recursive scheduling. + + The type of the state passed to the scheduled action. + Scheduler to execute the action on. + State passed to the action to be executed. + Period for running the work periodically. + Action to be executed. + The disposable object used to cancel the scheduled recurring action (best effort). + or is null. + is less than . + + + + Schedules a periodic piece of work by dynamically discovering the scheduler's capabilities. + If the scheduler supports periodic scheduling, the request will be forwarded to the periodic scheduling implementation. + If the scheduler provides stopwatch functionality, the periodic task will be emulated using recursive scheduling with a stopwatch to correct for time slippage. + Otherwise, the periodic task will be emulated using recursive scheduling. + + Scheduler to execute the action on. + Period for running the work periodically. + Action to be executed. + The disposable object used to cancel the scheduled recurring action (best effort). + or is null. + is less than . + + + + Starts a new stopwatch object by dynamically discovering the scheduler's capabilities. + If the scheduler provides stopwatch functionality, the request will be forwarded to the stopwatch provider implementation. + Otherwise, the stopwatch will be emulated using the scheduler's notion of absolute time. + + Scheduler to obtain a stopwatch for. + New stopwatch object; started at the time of the request. + is null. + The resulting stopwatch object can have non-monotonic behavior. + + + + Schedules an action to be executed. + + Scheduler to execute the action on. + Action to execute. + The disposable object used to cancel the scheduled action (best effort). + or is null. + + + + Schedules an action to be executed. + + Scheduler to execute the action on. + A state object to be passed to . + Action to execute. + The disposable object used to cancel the scheduled action (best effort). + or is null. + + + + Schedules an action to be executed. + + Scheduler to execute the action on. + A state object to be passed to . + Action to execute. + The disposable object used to cancel the scheduled action (best effort). + or is null. + + + + Schedules an action to be executed after the specified relative due time. + + Scheduler to execute the action on. + Action to execute. + Relative time after which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + or is null. + + + + Schedules an action to be executed after the specified relative due time. + + Scheduler to execute the action on. + Action to execute. + A state object to be passed to . + Relative time after which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + or is null. + + + + Schedules an action to be executed after the specified relative due time. + + Scheduler to execute the action on. + Action to execute. + A state object to be passed to . + Relative time after which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + or is null. + + + + Schedules an action to be executed at the specified absolute due time. + + Scheduler to execute the action on. + Action to execute. + Absolute time at which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + or is null. + + + + Schedules an action to be executed after the specified relative due time. + + Scheduler to execute the action on. + Action to execute. + A state object to be passed to . + Relative time after which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + or is null. + + + + Schedules an action to be executed after the specified relative due time. + + Scheduler to execute the action on. + Action to execute. + A state object to be passed to . + Relative time after which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + or is null. + + + + Schedules an action to be executed. + + Scheduler to execute the action on. + Action to execute. + The disposable object used to cancel the scheduled action (best effort). + or is null. + + + + Returns a scheduler that represents the original scheduler, without any of its interface-based optimizations (e.g. long running scheduling). + + Scheduler to disable all optimizations for. + Proxy to the original scheduler but without any optimizations enabled. + is null. + + + + Returns a scheduler that represents the original scheduler, without the specified set of interface-based optimizations (e.g. long running scheduling). + + Scheduler to disable the specified optimizations for. + Types of the optimization interfaces that have to be disabled. + Proxy to the original scheduler but without the specified optimizations enabled. + or is null. + + + + Returns a scheduler that wraps the original scheduler, adding exception handling for scheduled actions. + + Type of the exception to check for. + Scheduler to apply an exception filter for. + Handler that's run if an exception is caught. The exception will be rethrown if the handler returns false. + Wrapper around the original scheduler, enforcing exception handling. + or is null. + + + + Represents an awaitable scheduler operation. Awaiting the object causes the continuation to be posted back to the originating scheduler's work queue. + + + + + Controls whether the continuation is run on the originating synchronization context (false by default). + + true to run the continuation on the captured synchronization context; false otherwise (default). + Scheduler operation object with configured await behavior. + + + + Gets an awaiter for the scheduler operation, used to post back the continuation. + + Awaiter for the scheduler operation. + + + + (Infrastructure) Scheduler operation awaiter type used by the code generated for C# await and Visual Basic Await expressions. + + + + + Indicates whether the scheduler operation has completed. Returns false unless cancellation was already requested. + + + + + Completes the scheduler operation, throwing an OperationCanceledException in case cancellation was requested. + + + + + Registers the continuation with the scheduler operation. + + Continuation to be run on the originating scheduler. + + + + Efficient scheduler queue that maintains scheduled items sorted by absolute time. + + Absolute time representation type. + This type is not thread safe; users should ensure proper synchronization. + + + + Creates a new scheduler queue with a default initial capacity. + + + + + Creates a new scheduler queue with the specified initial capacity. + + Initial capacity of the scheduler queue. + is less than zero. + + + + Gets the number of scheduled items in the scheduler queue. + + + + + Enqueues the specified work item to be scheduled. + + Work item to be scheduled. + + + + Removes the specified work item from the scheduler queue. + + Work item to be removed from the scheduler queue. + true if the item was found; false otherwise. + + + + Dequeues the next work item from the scheduler queue. + + Next work item in the scheduler queue (removed). + + + + Peeks the next work item in the scheduler queue. + + Next work item in the scheduler queue (not removed). + + + + Provides basic synchronization and scheduling services for observable sequences. + + + + + Wraps the source sequence in order to run its subscription and unsubscription logic on the specified scheduler. + + The type of the elements in the source sequence. + Source sequence. + Scheduler to perform subscription and unsubscription actions on. + The source sequence whose subscriptions and unsubscriptions happen on the specified scheduler. + or is null. + + Only the side-effects of subscribing to the source sequence and disposing subscriptions to the source sequence are run on the specified scheduler. + In order to invoke observer callbacks on the specified scheduler, e.g. to offload callback processing to a dedicated thread, use . + + + + + Wraps the source sequence in order to run its subscription and unsubscription logic on the specified synchronization context. + + The type of the elements in the source sequence. + Source sequence. + Synchronization context to perform subscription and unsubscription actions on. + The source sequence whose subscriptions and unsubscriptions happen on the specified synchronization context. + or is null. + + Only the side-effects of subscribing to the source sequence and disposing subscriptions to the source sequence are run on the specified synchronization context. + In order to invoke observer callbacks on the specified synchronization context, e.g. to post callbacks to a UI thread represented by the synchronization context, use . + + + + + Wraps the source sequence in order to run its observer callbacks on the specified scheduler. + + The type of the elements in the source sequence. + Source sequence. + Scheduler to notify observers on. + The source sequence whose observations happen on the specified scheduler. + or is null. + + + + Wraps the source sequence in order to run its observer callbacks on the specified synchronization context. + + The type of the elements in the source sequence. + Source sequence. + Synchronization context to notify observers on. + The source sequence whose observations happen on the specified synchronization context. + or is null. + + + + Wraps the source sequence in order to ensure observer callbacks are properly serialized. + + The type of the elements in the source sequence. + Source sequence. + The source sequence whose outgoing calls to observers are synchronized. + is null. + + + + Wraps the source sequence in order to ensure observer callbacks are synchronized using the specified gate object. + + The type of the elements in the source sequence. + Source sequence. + Gate object to synchronize each observer call on. + The source sequence whose outgoing calls to observers are synchronized on the given gate object. + or is null. + + + + The new ObserveOn operator run with an IScheduler in a lock-free manner. + + + + + The new ObserveOn operator run with an ISchedulerLongRunning in a mostly lock-free manner. + + + + + Represents an object that schedules units of work on a provided . + + + + + Creates an object that schedules units of work on the provided . + + Synchronization context to schedule units of work on. + is null. + + + + Creates an object that schedules units of work on the provided . + + Synchronization context to schedule units of work on. + Configures whether scheduling always posts to the synchronization context, regardless whether the caller is on the same synchronization context. + is null. + + + + Schedules an action to be executed. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Schedules an action to be executed after dueTime. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + Relative time after which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Represents an object that schedules units of work on the Task Parallel Library (TPL) task pool. + + Instance of this type using the default TaskScheduler to schedule work on the TPL task pool. + + + + Creates an object that schedules units of work using the provided . + + Task factory used to create tasks to run units of work. + is null. + + + + Gets an instance of this scheduler that uses the default . + + + + + Schedules an action to be executed. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Schedules an action to be executed after dueTime. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + Relative time after which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Schedules a long-running task by creating a new task using TaskCreationOptions.LongRunning. Cancellation happens through polling. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Gets a new stopwatch object. + + New stopwatch object; started at the time of the request. + + + + Schedules a periodic piece of work by running a platform-specific timer to create tasks periodically. + + The type of the state passed to the scheduled action. + Initial state passed to the action upon the first iteration. + Period for running the work periodically. + Action to be executed, potentially updating the state. + The disposable object used to cancel the scheduled recurring action (best effort). + is null. + is less than . + + + + Represents an object that schedules units of work on the CLR thread pool. + + Singleton instance of this type exposed through this static property. + + + + Gets the singleton instance of the CLR thread pool scheduler. + + + + + Schedules an action to be executed. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Schedules an action to be executed after dueTime, using a System.Threading.Timer object. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + Relative time after which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Schedules a long-running task by creating a new thread. Cancellation happens through polling. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Starts a new stopwatch object. + + New stopwatch object; started at the time of the request. + + + + Schedules a periodic piece of work, using a System.Threading.Timer object. + + The type of the state passed to the scheduled action. + Initial state passed to the action upon the first iteration. + Period for running the work periodically. + Action to be executed, potentially updating the state. + The disposable object used to cancel the scheduled recurring action (best effort). + is null. + is less than zero. + + + + Base class for virtual time schedulers. + + Absolute time representation type. + Relative time representation type. + + + + Creates a new virtual time scheduler with the default value of TAbsolute as the initial clock value. + + + + + Creates a new virtual time scheduler with the specified initial clock value and absolute time comparer. + + Initial value for the clock. + Comparer to determine causality of events based on absolute time. + is null. + + + + Adds a relative time value to an absolute time value. + + Absolute time value. + Relative time value to add. + The resulting absolute time sum value. + + + + Converts the absolute time value to a DateTimeOffset value. + + Absolute time value to convert. + The corresponding DateTimeOffset value. + + + + Converts the TimeSpan value to a relative time value. + + TimeSpan value to convert. + The corresponding relative time value. + + + + Gets whether the scheduler is enabled to run work. + + + + + Gets the comparer used to compare absolute time values. + + + + + Schedules an action to be executed at dueTime. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Absolute time at which to execute the action. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + + + + Schedules an action to be executed at dueTime. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Relative time after which to execute the action. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + + + + Schedules an action to be executed. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Schedules an action to be executed after dueTime. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Relative time after which to execute the action. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Schedules an action to be executed at dueTime. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Absolute time at which to execute the action. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Starts the virtual time scheduler. + + + + + Stops the virtual time scheduler. + + + + + Advances the scheduler's clock to the specified time, running all work till that point. + + Absolute time to advance the scheduler's clock to. + is in the past. + The scheduler is already running. VirtualTimeScheduler doesn't support running nested work dispatch loops. To simulate time slippage while running work on the scheduler, use . + + + + Advances the scheduler's clock by the specified relative time, running all work scheduled for that timespan. + + Relative time to advance the scheduler's clock by. + is negative. + The scheduler is already running. VirtualTimeScheduler doesn't support running nested work dispatch loops. To simulate time slippage while running work on the scheduler, use . + + + + Advances the scheduler's clock by the specified relative time. + + Relative time to advance the scheduler's clock by. + is negative. + + + + Gets the scheduler's absolute time clock value. + + + + + Gets the scheduler's notion of current time. + + + + + Gets the next scheduled item to be executed. + + The next scheduled item. + + + + Discovers scheduler services by interface type. The base class implementation supports + only the IStopwatchProvider service. To influence service discovery - such as adding + support for other scheduler services - derived types can override this method. + + Scheduler service interface type to discover. + Object implementing the requested service, if available; null otherwise. + + + + Starts a new stopwatch object. + + New stopwatch object; started at the time of the request. + + + + Base class for virtual time schedulers using a priority queue for scheduled items. + + Absolute time representation type. + Relative time representation type. + + + + Creates a new virtual time scheduler with the default value of TAbsolute as the initial clock value. + + + + + Creates a new virtual time scheduler. + + Initial value for the clock. + Comparer to determine causality of events based on absolute time. + is null. + + + + Gets the next scheduled item to be executed. + + The next scheduled item. + + + + Schedules an action to be executed at dueTime. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + Absolute time at which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Provides a set of extension methods for virtual time scheduling. + + + + + Schedules an action to be executed at . + + Absolute time representation type. + Relative time representation type. + Scheduler to execute the action on. + Relative time after which to execute the action. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + or is null. + + + + Schedules an action to be executed at . + + Absolute time representation type. + Relative time representation type. + Scheduler to execute the action on. + Absolute time at which to execute the action. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + or is null. + + + + The System.Reactive.Concurrency namespace contains interfaces and classes that provide the scheduler infrastructure used by Reactive Extensions to construct and + process event streams. Schedulers are used to parameterize the concurrency introduced by query operators, provide means to virtualize time, to process historical data, + and to write unit tests for functionality built using Reactive Extensions constructs. + + + + + Represents an object that schedules units of work on the message loop associated with a Windows Forms control. + + + + + Constructs a ControlScheduler that schedules units of work on the message loop associated with the specified Windows Forms control. + + Windows Forms control to get the message loop from. + is null. + + This scheduler type is typically used indirectly through the and method overloads that take a Windows Forms control. + + + + + Gets the control associated with the ControlScheduler. + + + + + Schedules an action to be executed on the message loop associated with the control. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Schedules an action to be executed after dueTime on the message loop associated with the control, using a Windows Forms Timer object. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + Relative time after which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Schedules a periodic piece of work on the message loop associated with the control, using a Windows Forms Timer object. + + The type of the state passed to the scheduled action. + Initial state passed to the action upon the first iteration. + Period for running the work periodically. + Action to be executed, potentially updating the state. + The disposable object used to cancel the scheduled recurring action (best effort). + is null. + is less than one millisecond. + + + + Represents an object that schedules units of work on a . + + + This scheduler type is typically used indirectly through the and methods that use the Dispatcher on the calling thread. + + + + + Gets the scheduler that schedules work on the current . + + + + + Gets the scheduler that schedules work on the for the current thread. + + + + + Constructs a that schedules units of work on the given . + + to schedule work on. + is null. + + + + Constructs a that schedules units of work on the given at the given priority. + + to schedule work on. + Priority at which units of work are scheduled. + is null. + + + + Gets the associated with the . + + + + + Gets the priority at which work items will be dispatched. + + + + + Schedules an action to be executed on the dispatcher. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Schedules an action to be executed after on the dispatcher, using a object. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + Relative time after which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Schedules a periodic piece of work on the dispatcher, using a object. + + The type of the state passed to the scheduled action. + Initial state passed to the action upon the first iteration. + Period for running the work periodically. + Action to be executed, potentially updating the state. + The disposable object used to cancel the scheduled recurring action (best effort). + is null. + is less than . + + + + Represents an Action-based disposable. + + + + + Constructs a new disposable with the given action used for disposal. + + Disposal action which will be run upon calling Dispose. + + + + Gets a value that indicates whether the object is disposed. + + + + + Calls the disposal action if and only if the current instance hasn't been disposed yet. + + + + + Represents a Action-based disposable that can hold onto some state. + + + + + Constructs a new disposable with the given action used for disposal. + + The state to be passed to the disposal action. + Disposal action which will be run upon calling Dispose. + + + + Gets a value that indicates whether the object is disposed. + + + + + Calls the disposal action if and only if the current instance hasn't been disposed yet. + + + + + Represents a disposable resource that can be checked for disposal status. + + + + + Initializes a new instance of the class. + + + + + Gets a value that indicates whether the object is disposed. + + + + + Sets the status to disposed, which can be observer through the property. + + + + + Represents a disposable resource that has an associated that will be set to the cancellation requested state upon disposal. + + + + + Initializes a new instance of the class that uses an existing . + + used for cancellation. + is null. + + + + Initializes a new instance of the class that uses a new . + + + + + Gets the used by this . + + + + + Cancels the underlying . + + + + + Gets a value that indicates whether the object is disposed. + + + + + Represents a group of disposable resources that are disposed together. + + + + + Initializes a new instance of the class with no disposables contained by it initially. + + + + + Initializes a new instance of the class with the specified number of disposables. + + The number of disposables that the new CompositeDisposable can initially store. + is less than zero. + + + + Initializes a new instance of the class from a group of disposables. + + Disposables that will be disposed together. + is null. + Any of the disposables in the collection is null. + + + + Initializes a new instance of the class from a group of disposables. + + Disposables that will be disposed together. + is null. + Any of the disposables in the collection is null. + + + + Gets the number of disposables contained in the . + + + + + Adds a disposable to the or disposes the disposable if the is disposed. + + Disposable to add. + is null. + + + + Removes and disposes the first occurrence of a disposable from the . + + Disposable to remove. + true if found; false otherwise. + is null. + + + + Disposes all disposables in the group and removes them from the group. + + + + + Removes and disposes all disposables from the , but does not dispose the . + + + + + Determines whether the contains a specific disposable. + + Disposable to search for. + true if the disposable was found; otherwise, false. + is null. + + + + Copies the disposables contained in the to an array, starting at a particular array index. + + Array to copy the contained disposables to. + Target index at which to copy the first disposable of the group. + is null. + is less than zero. -or - is larger than or equal to the array length. + + + + Always returns false. + + + + + Returns an enumerator that iterates through the . + + An enumerator to iterate over the disposables. + + + + Returns an enumerator that iterates through the . + + An enumerator to iterate over the disposables. + + + + Gets a value that indicates whether the object is disposed. + + + + + An empty enumerator for the + method to avoid allocation on disposed or empty composites. + + + + + An enumerator for an array of disposables. + + + + + Represents a disposable resource whose disposal invocation will be posted to the specified . + + + + + Initializes a new instance of the class that uses the specified on which to dispose the specified disposable resource. + + Context to perform disposal on. + Disposable whose Dispose operation to run on the given synchronization context. + or is null. + + + + Gets the provided . + + + + + Gets a value that indicates whether the object is disposed. + + + + + Disposes the underlying disposable on the provided . + + + + + Provides a set of static methods for creating objects. + + + + + Represents a disposable that does nothing on disposal. + + + + + Singleton default disposable. + + + + + Does nothing. + + + + + Gets the disposable that does nothing when disposed. + + + + + Creates a disposable object that invokes the specified action when disposed. + + Action to run during the first call to . The action is guaranteed to be run at most once. + The disposable object that runs the given action upon disposal. + is null. + + + + Creates a disposable object that invokes the specified action when disposed. + + The state to be passed to the action. + Action to run during the first call to . The action is guaranteed to be run at most once. + The disposable object that runs the given action upon disposal. + is null. + + + + Gets the value stored in or a null if + was already disposed. + + + + + Gets the value stored in or a no-op-Disposable if + was already disposed. + + + + + Tries to assign to . + + A value indicating the outcome of the operation. + + + + Tries to assign to . If + is not disposed and is assigned a different value, it will not be disposed. + + true if was successfully assigned to . + false has been disposed. + + + + Tries to assign to . If + is not disposed and is assigned a different value, it will be disposed. + + true if was successfully assigned to . + false has been disposed. + + + + Disposes . + + + + + Disposable resource with disposal state tracking. + + + + + Gets a value that indicates whether the object is disposed. + + + + + Represents a disposable resource whose underlying disposable resource can be swapped for another disposable resource. + + + + + Initializes a new instance of the class with no current underlying disposable. + + + + + Gets a value that indicates whether the object is disposed. + + + + + Gets or sets the underlying disposable. After disposal, the result of getting this property is undefined. + + If the has already been disposed, assignment to this property causes immediate disposal of the given disposable object. + + + + Disposes the underlying disposable as well as all future replacements. + + + + + Represents a disposable resource whose underlying disposable resource can be swapped for another disposable resource. + + + + + Gets a value that indicates whether the object is disposed. + + + + + Gets or sets the underlying disposable. After disposal, the result of getting this property is undefined. + + If the has already been disposed, assignment to this property causes immediate disposal of the given disposable object. + + + + Disposes the underlying disposable as well as all future replacements. + + + + + Represents a disposable resource that only disposes its underlying disposable resource when all dependent disposable objects have been disposed. + + + + + Holds the number of active child disposables and the + indicator bit (31) if the main _disposable has been marked + for disposition. + + + + + Initializes a new instance of the class with the specified disposable. + + Underlying disposable. + is null. + + + + Initializes a new instance of the class with the specified disposable. + + Underlying disposable. + Indicates whether subsequent calls to should throw when this instance is disposed. + is null. + + + + Gets a value that indicates whether the object is disposed. + + + + + Returns a dependent disposable that when disposed decreases the refcount on the underlying disposable. + + A dependent disposable contributing to the reference count that manages the underlying disposable's lifetime. + This instance has been disposed and is configured to throw in this case by . + + + + Disposes the underlying disposable only when all dependent disposables have been disposed. + + + + + Represents a disposable resource whose disposal invocation will be scheduled on the specified . + + + + + Initializes a new instance of the class that uses an on which to dispose the disposable. + + Scheduler where the disposable resource will be disposed on. + Disposable resource to dispose on the given scheduler. + or is null. + + + + Gets the scheduler where the disposable resource will be disposed on. + + + + + Gets the underlying disposable. After disposal, the result is undefined. + + + + + Gets a value that indicates whether the object is disposed. + + + + + Disposes the wrapped disposable on the provided scheduler. + + + + + Represents a disposable resource whose underlying disposable resource can be replaced by another disposable resource, causing automatic disposal of the previous underlying disposable resource. + + + + + Initializes a new instance of the class. + + + + + Gets a value that indicates whether the object is disposed. + + + + + Gets or sets the underlying disposable. + + If the SerialDisposable has already been disposed, assignment to this property causes immediate disposal of the given disposable object. Assigning this property disposes the previous disposable object. + + + + Disposes the underlying disposable as well as all future replacements. + + + + + Represents a disposable resource whose underlying disposable resource can be replaced by another disposable resource, causing automatic disposal of the previous underlying disposable resource. + + + + + Gets a value that indicates whether the object is disposed. + + + + + Gets or sets the underlying disposable. + + If the SerialDisposable has already been disposed, assignment to this property causes immediate disposal of the given disposable object. Assigning this property disposes the previous disposable object. + + + + Disposes the underlying disposable as well as all future replacements. + + + + + Represents a disposable resource which only allows a single assignment of its underlying disposable resource. + If an underlying disposable resource has already been set, future attempts to set the underlying disposable resource will throw an . + + + + + Initializes a new instance of the class. + + + + + Gets a value that indicates whether the object is disposed. + + + + + Gets or sets the underlying disposable. After disposal, the result of getting this property is undefined. + + Thrown if the has already been assigned to. + + + + Disposes the underlying disposable. + + + + + Represents a disposable resource which only allows a single assignment of its underlying disposable resource. + If an underlying disposable resource has already been set, future attempts to set the underlying disposable resource will throw an . + + + + + Gets a value that indicates whether the object is disposed. + + + + + Gets or sets the underlying disposable. After disposal, the result of getting this property is undefined. + + Thrown if the has already been assigned to. + + + + Disposes the underlying disposable. + + + + + Represents a group of disposable resources that are disposed together. + + + + + Creates a new group containing two disposable resources that are disposed together. + + The first disposable resource to add to the group. + The second disposable resource to add to the group. + Group of disposable resources that are disposed together. + + + + Creates a new group of disposable resources that are disposed together. + + Disposable resources to add to the group. + Group of disposable resources that are disposed together. + + + + Creates a group of disposable resources that are disposed together + and without copying or checking for nulls inside the group. + + The array of disposables that is trusted + to not contain nulls and gives no need to defensively copy it. + Group of disposable resources that are disposed together. + + + + Creates a new group of disposable resources that are disposed together. + + Disposable resources to add to the group. + Group of disposable resources that are disposed together. + + + + Disposes all disposables in the group. + + + + + Gets a value that indicates whether the object is disposed. + + + + + A stable composite that doesn't do defensive copy of + the input disposable array nor checks it for null. + + + + + The System.Reactive.Disposables namespace contains interfaces and classes that provide a compositional set of constructs used to deal with resource and subscription + management in Reactive Extensions. Those types are used extensively within the implementation of Reactive Extensions and are useful when writing custom query operators or + schedulers. + + + + + Provides access to the platform enlightenments used by other Rx libraries to improve system performance and + runtime efficiency. While Rx can run without platform enlightenments loaded, it's recommended to deploy the + System.Reactive.PlatformServices assembly with your application and call during + application startup to ensure enlightenments are properly loaded. + + + + + Ensures that the calling assembly has a reference to the System.Reactive.PlatformServices assembly with + platform enlightenments. If no reference is made from the user code, it's possible for the build process + to drop the deployment of System.Reactive.PlatformServices, preventing its runtime discovery. + + + true if the loaded enlightenment provider matches the provided defined in the current assembly; false + otherwise. When a custom enlightenment provider is installed by the host, false will be returned. + + + + + (Infrastructure) Provider for platform-specific framework enlightenments. + + + + + (Infrastructure) Tries to gets the specified service. + + Service type. + Optional set of arguments. + Service instance or null if not found. + + + + (Infrastructure) Services to rethrow exceptions. + + + This type is used by the Rx infrastructure and not meant for public consumption or implementation. + No guarantees are made about forward compatibility of the type's functionality and its usage. + + + + + Rethrows the specified exception. + + Exception to rethrow. + + + + (Infrastructure) Provides access to the host's lifecycle management services. + + + + + Event that gets raised when the host suspends the application. + + + + + Event that gets raised when the host resumes the application. + + + + + Adds a reference to the host lifecycle manager, causing it to be sending notifications. + + + + + Removes a reference to the host lifecycle manager, causing it to stop sending notifications + if the removed reference was the last one. + + + + + (Infrastructure) Provides notifications about the host's lifecycle events. + + + + + Event that gets raised when the host suspends. + + + + + Event that gets raised when the host resumes. + + + + + (Infrastructure) Event arguments for host suspension events. + + + + + (Infrastructure) Event arguments for host resumption events. + + + + + (Infrastructure) Interface for enlightenment providers. + + + This type is used by the Rx infrastructure and not meant for public consumption or implementation. + No guarantees are made about forward compatibility of the type's functionality and its usage. + + + + + (Infrastructure) Tries to gets the specified service. + + Service type. + Optional set of arguments. + Service instance or null if not found. + + + + (Infrastructure) Provider for platform-specific framework enlightenments. + + + This type is used by the Rx infrastructure and not meant for public consumption or implementation. + + + + + (Infrastructure) Gets the current enlightenment provider. If none is loaded yet, accessing this property triggers provider resolution. + + + This member is used by the Rx infrastructure and not meant for public consumption or implementation. + + + + + (Infrastructure) Provides access to local system clock services. + + + This type is used by the Rx infrastructure and not meant for public consumption or implementation. + No guarantees are made about forward compatibility of the type's functionality and its usage. + + + + + Gets the local system clock time. + + + + + Adds a reference to the system clock monitor, causing it to be sending notifications. + + Thrown when the system doesn't support sending clock change notifications. + + + + Removes a reference to the system clock monitor, causing it to stop sending notifications + if the removed reference was the last one. + + + + + (Infrastructure) Provides access to the local system clock. + + + This type is used by the Rx infrastructure and not meant for public consumption or implementation. + No guarantees are made about forward compatibility of the type's functionality and its usage. + + + + + Gets the current time. + + + + + (Infrastructure) Provides a mechanism to notify local schedulers about system clock changes. + + + This type is used by the Rx infrastructure and not meant for public consumption or implementation. + No guarantees are made about forward compatibility of the type's functionality and its usage. + + + + + Event that gets raised when a system clock change is detected. + + + + + (Infrastructure) Event arguments for system clock change notifications. + + + This type is used by the Rx infrastructure and not meant for public consumption or implementation. + No guarantees are made about forward compatibility of the type's functionality and its usage. + + + + + Creates a new system clock notification object with unknown old and new times. + + + + + Creates a new system clock notification object with the specified old and new times. + + Time before the system clock changed, or DateTimeOffset.MinValue if not known. + Time after the system clock changed, or DateTimeOffset.MaxValue if not known. + + + + Gets the time before the system clock changed, or DateTimeOffset.MinValue if not known. + + + + + Gets the time after the system clock changed, or DateTimeOffset.MaxValue if not known. + + + + + (Infrastructure) Provides access to the local system clock. + + + + + Gets the current time. + + + + + (Infrastructure) Monitors for system clock changes based on a periodic timer. + + + + + Use the Unix milliseconds for the current time + so it can be atomically read/written without locking. + + + + + Creates a new monitor for system clock changes with the specified polling frequency. + + Polling frequency for system clock changes. + + + + Event that gets raised when a system clock change is detected. + + + + + The System.Reactive.PlatformServices namespace contains interfaces and classes used by the runtime infrastructure of Reactive Extensions. + Those are not intended to be used directly from user code and are subject to change in future releases of the product. + + + + + Represents a .NET event invocation consisting of the weakly typed object that raised the event and the data that was generated by the event. + + The type of the event data generated by the event. + + + + Creates a new data representation instance of a .NET event invocation with the given sender and event data. + + The sender object that raised the event. + The event data that was generated by the event. + + + + Represents a .NET event invocation consisting of the strongly typed object that raised the event and the data that was generated by the event. + + The type of the sender that raised the event. + The type of the event data generated by the event. + + + + Creates a new data representation instance of a .NET event invocation with the given sender and event data. + + The sender object that raised the event. + The event data that was generated by the event. + + + + Gets the sender object that raised the event. + + + + + Gets the event data that was generated by the event. + + + + + Deconstructs the event pattern value into a sender and event data. + + The sender object that raised the event. + The event data that was generated by the event. + + + + Determines whether the current object represents the same event as a specified object. + + An object to compare to the current object. + true if both objects represent the same event; otherwise, false. + + + + Determines whether the specified System.Object is equal to the current . + + The System.Object to compare with the current . + true if the specified System.Object is equal to the current ; otherwise, false. + + + + Returns the hash code for the current instance. + + A hash code for the current instance. + + + + Determines whether two specified objects represent the same event. + + The first to compare, or null. + The second to compare, or null. + true if both objects represent the same event; otherwise, false. + + + + Determines whether two specified objects represent a different event. + + The first to compare, or null. + The second to compare, or null. + true if both objects don't represent the same event; otherwise, false. + + + + Base class for classes that expose an observable sequence as a well-known event pattern (sender, event arguments). + Contains functionality to maintain a map of event handler delegates to observable sequence subscriptions. Subclasses + should only add an event with custom add and remove methods calling into the base class's operations. + + The type of the sender that raises the event. + The type of the event data generated by the event. + + + + Creates a new event pattern source. + + Source sequence to expose as an event. + Delegate used to invoke the event for each element of the sequence. + or is null. + + + + Adds the specified event handler, causing a subscription to the underlying source. + + Event handler to add. The same delegate should be passed to the operation in order to remove the event handler. + Invocation delegate to raise the event in the derived class. + or is null. + + + + Removes the specified event handler, causing a disposal of the corresponding subscription to the underlying source that was created during the operation. + + Event handler to remove. This should be the same delegate as one that was passed to the operation. + is null. + + + + Marks the program elements that are experimental. This class cannot be inherited. + + + + + Represents a .NET event invocation consisting of the strongly typed object that raised the event and the data that was generated by the event. + + + The type of the sender that raised the event. + This type parameter is covariant. That is, you can use either the type you specified or any type that is more derived. For more information about covariance and contravariance, see Covariance and Contravariance in Generics. + + + The type of the event data generated by the event. + This type parameter is covariant. That is, you can use either the type you specified or any type that is more derived. For more information about covariance and contravariance, see Covariance and Contravariance in Generics. + + + + + Gets the sender object that raised the event. + + + + + Gets the event data that was generated by the event. + + + + + Represents a data stream signaling its elements by means of an event. + + The type of the event data generated by the event. + + + + Event signaling the next element in the data stream. + + + + + Represents a data stream signaling its elements by means of an event. + + + The type of the event data generated by the event. + This type parameter is covariant. That is, you can use either the type you specified or any type that is more derived. For more information about covariance and contravariance, see Covariance and Contravariance in Generics. + + + + + Event signaling the next element in the data stream. + + + + + Utility methods to handle lock-free combining of Exceptions + as well as hosting a terminal-exception indicator for + lock-free termination support. + + + + + The singleton instance of the exception indicating a terminal state, + DO NOT LEAK or signal this via OnError! + + + + + Tries to atomically set the Exception on the given field if it is + still null. + + The target field to try to set atomically. + The exception to set, not null (not verified). + True if the operation succeeded, false if the target was not null. + + + + Utility methods for dealing with serializing OnXXX signals + for an IObserver where concurrent OnNext is still not allowed + but concurrent OnError/OnCompleted may happen. + This serialization case is generally lower overhead than + a full SerializedObserver wrapper and doesn't need + allocation. + + + + + Signals the given item to the observer in a serialized fashion + allowing a concurrent OnError or OnCompleted emission to be delayed until + the observer.OnNext returns. + Do not call OnNext from multiple threads as it may lead to ignored items. + Use a full SerializedObserver wrapper for merging multiple sequences. + + The element type of the observer. + The observer to signal events in a serialized fashion. + The item to signal. + Indicates there is an emission going on currently. + The field containing an error or terminal indicator. + + + + Signals the given exception to the observer. If there is a concurrent + OnNext emission is happening, saves the exception into the given field + otherwise to be picked up by . + This method can be called concurrently with itself and the other methods of this + helper class but only one terminal signal may actually win. + + The element type of the observer. + The observer to signal events in a serialized fashion. + The exception to signal sooner or later. + Indicates there is an emission going on currently. + The field containing an error or terminal indicator. + + + + Signals OnCompleted on the observer. If there is a concurrent + OnNext emission happening, the error field will host a special + terminal exception signal to be picked up by once it finishes with OnNext and signal the + OnCompleted as well. + This method can be called concurrently with itself and the other methods of this + helper class but only one terminal signal may actually win. + + The element type of the observer. + The observer to signal events in a serialized fashion. + Indicates there is an emission going on currently. + The field containing an error or terminal indicator. + + + + Base interface for observers that can dispose of a resource on a terminal notification + or when disposed itself. + + + + + + Interface with variance annotation; allows for better type checking when detecting capabilities in SubscribeSafe. + + Type of the resulting sequence's elements. + + + + Base class for implementation of query operators, providing performance benefits over the use of Observable.Create. + + Type of the resulting sequence's elements. + + + + Publicly visible Subscribe method. + + Observer to send notifications on. The implementation of a producer must ensure the correct message grammar on the observer. + IDisposable to cancel the subscription. This causes the underlying sink to be notified of unsubscription, causing it to prevent further messages from being sent to the observer. + + + + Core implementation of the query operator, called upon a new subscription to the producer object. + + Observer to send notifications on. The implementation of a producer must ensure the correct message grammar on the observer. + Disposable representing all the resources and/or subscriptions the operator uses to process events. + The observer passed in to this method is not protected using auto-detach behavior upon an OnError or OnCompleted call. The implementation must ensure proper resource disposal and enforce the message grammar. + + + + Publicly visible Subscribe method. + + Observer to send notifications on. The implementation of a producer must ensure the correct message grammar on the observer. + IDisposable to cancel the subscription. This causes the underlying sink to be notified of unsubscription, causing it to prevent further messages from being sent to the observer. + + + + Core implementation of the query operator, called upon a new subscription to the producer object. + + The sink object. + + + + Represents an observable sequence of elements that have a common key. + + + The type of the key shared by all elements in the group. + This type parameter is covariant. That is, you can use either the type you specified or any type that is more derived. For more information about covariance and contravariance, see Covariance and Contravariance in Generics. + + + The type of the elements in the group. + This type parameter is covariant. That is, you can use either the type you specified or any type that is more derived. For more information about covariance and contravariance, see Covariance and Contravariance in Generics. + + + + + Gets the common key. + + + + + Provides functionality to evaluate queries against a specific data source wherein the type of the data is known. + + + The type of the data in the data source. + This type parameter is covariant. That is, you can use either the type you specified or any type that is more derived. For more information about covariance and contravariance, see Covariance and Contravariance in Generics. + + + + + Provides functionality to evaluate queries against a specific data source wherein the type of the data is not specified. + + + + + Gets the type of the element(s) that are returned when the expression tree associated with this instance of IQbservable is executed. + + + + + Gets the expression tree that is associated with the instance of IQbservable. + + + + + Gets the query provider that is associated with this data source. + + + + + Defines methods to create and execute queries that are described by an IQbservable object. + + + + + Constructs an object that can evaluate the query represented by a specified expression tree. + + The type of the elements of the that is returned. + Expression tree representing the query. + IQbservable object that can evaluate the given query expression. + + + + Internal interface describing the LINQ to Events query language. + + + + + Internal interface describing the LINQ to Events query language. + + + + + Attribute applied to static classes providing expression tree forms of query methods, + mapping those to the corresponding methods for local query execution on the specified + target class type. + + + + + Creates a new mapping to the specified local execution query method implementation type. + + Type with query methods for local execution. + + + + Gets the type with the implementation of local query methods. + + + + + Provides a set of static methods for writing in-memory queries over observable sequences. + + + + + Applies an accumulator function over an observable sequence, returning the result of the aggregation as a single element in the result sequence. The specified seed value is used as the initial accumulator value. + For aggregation behavior with incremental intermediate results, see . + + The type of the elements in the source sequence. + The type of the result of the aggregation. + An observable sequence to aggregate over. + The initial accumulator value. + An accumulator function to be invoked on each element. + An observable sequence containing a single element with the final accumulator value. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Applies an accumulator function over an observable sequence, returning the result of the aggregation as a single element in the result sequence. The specified seed value is used as the initial accumulator value, + and the specified result selector function is used to select the result value. + + The type of the elements in the source sequence. + The type of the accumulator value. + The type of the resulting value. + An observable sequence to aggregate over. + The initial accumulator value. + An accumulator function to be invoked on each element. + A function to transform the final accumulator value into the result value. + An observable sequence containing a single element with the final accumulator value. + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Applies an accumulator function over an observable sequence, returning the result of the aggregation as a single element in the result sequence. + For aggregation behavior with incremental intermediate results, see . + + The type of the elements in the source sequence and the result of the aggregation. + An observable sequence to aggregate over. + An accumulator function to be invoked on each element. + An observable sequence containing a single element with the final accumulator value. + or is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Determines whether all elements of an observable sequence satisfy a condition. + + The type of the elements in the source sequence. + An observable sequence whose elements to apply the predicate to. + A function to test each element for a condition. + An observable sequence containing a single element determining whether all elements in the source sequence pass the test in the specified predicate. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Determines whether an observable sequence contains any elements. + + The type of the elements in the source sequence. + An observable sequence to check for non-emptiness. + An observable sequence containing a single element determining whether the source sequence contains any elements. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Determines whether any element of an observable sequence satisfies a condition. + + The type of the elements in the source sequence. + An observable sequence whose elements to apply the predicate to. + A function to test each element for a condition. + An observable sequence containing a single element determining whether any elements in the source sequence pass the test in the specified predicate. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values. + + A sequence of values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values. + is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values. + + A sequence of values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values. + is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values. + + A sequence of values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values. + is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values. + + A sequence of values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values. + is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values. + + A sequence of values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values. + is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of nullable values. + + A sequence of nullable values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of nullable values. + + A sequence of nullable values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of nullable values. + + A sequence of nullable values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of nullable values. + + A sequence of nullable values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + (Asynchronous) The sum of the elements in the source sequence is larger than . + + + + Computes the average of an observable sequence of nullable values. + + A sequence of nullable values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values. + or is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values. + or is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values. + or is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values. + or is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values. + or is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + or is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + or is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + or is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + or is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + or is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Determines whether an observable sequence contains a specified element by using the default equality comparer. + + The type of the elements in the source sequence. + An observable sequence in which to locate a value. + The value to locate in the source sequence. + An observable sequence containing a single element determining whether the source sequence contains an element that has the specified value. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Determines whether an observable sequence contains a specified element by using a specified System.Collections.Generic.IEqualityComparer{T}. + + The type of the elements in the source sequence. + An observable sequence in which to locate a value. + The value to locate in the source sequence. + An equality comparer to compare elements. + An observable sequence containing a single element determining whether the source sequence contains an element that has the specified value. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns an observable sequence containing an that represents the total number of elements in an observable sequence. + + The type of the elements in the source sequence. + An observable sequence that contains elements to be counted. + An observable sequence containing a single element with the number of elements in the input sequence. + is null. + (Asynchronous) The number of elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns an observable sequence containing an that represents how many elements in the specified observable sequence satisfy a condition. + + The type of the elements in the source sequence. + An observable sequence that contains elements to be counted. + A function to test each element for a condition. + An observable sequence containing a single element with a number that represents how many elements in the input sequence satisfy the condition in the predicate function. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the element at a specified index in a sequence. + + The type of the elements in the source sequence. + Observable sequence to return the element from. + The zero-based index of the element to retrieve. + An observable sequence that produces the element at the specified position in the source sequence. + is null. + is less than zero. + (Asynchronous) is greater than or equal to the number of elements in the source sequence. + + + + Returns the element at a specified index in a sequence or a default value if the index is out of range. + + The type of the elements in the source sequence. + Observable sequence to return the element from. + The zero-based index of the element to retrieve. + An observable sequence that produces the element at the specified position in the source sequence, or a default value if the index is outside the bounds of the source sequence. + is null. + is less than zero. + + + + Returns the first element of an observable sequence. + + The type of the elements in the source sequence. + Source observable sequence. + Sequence containing the first element in the observable sequence. + is null. + (Asynchronous) The source sequence is empty. + + + + Returns the first element of an observable sequence that satisfies the condition in the predicate. + + The type of the elements in the source sequence. + Source observable sequence. + A predicate function to evaluate for elements in the source sequence. + Sequence containing the first element in the observable sequence that satisfies the condition in the predicate. + or is null. + (Asynchronous) No element satisfies the condition in the predicate. -or- The source sequence is empty. + + + + Returns the first element of an observable sequence, or a default value if no such element exists. + + The type of the elements in the source sequence. + Source observable sequence. + Sequence containing the first element in the observable sequence, or a default value if no such element exists. + is null. + + + + Returns the first element of an observable sequence that satisfies the condition in the predicate, or a default value if no such element exists. + + The type of the elements in the source sequence. + Source observable sequence. + A predicate function to evaluate for elements in the source sequence. + Sequence containing the first element in the observable sequence that satisfies the condition in the predicate, or a default value if no such element exists. + or is null. + + + + Determines whether an observable sequence is empty. + + The type of the elements in the source sequence. + An observable sequence to check for emptiness. + An observable sequence containing a single element determining whether the source sequence is empty. + is null. + + + + Returns the last element of an observable sequence. + + The type of the elements in the source sequence. + Source observable sequence. + Sequence containing the last element in the observable sequence. + is null. + (Asynchronous) The source sequence is empty. + + + + Returns the last element of an observable sequence that satisfies the condition in the predicate. + + The type of the elements in the source sequence. + Source observable sequence. + A predicate function to evaluate for elements in the source sequence. + Sequence containing the last element in the observable sequence that satisfies the condition in the predicate. + or is null. + (Asynchronous) No element satisfies the condition in the predicate. -or- The source sequence is empty. + + + + Returns the last element of an observable sequence, or a default value if no such element exists. + + The type of the elements in the source sequence. + Source observable sequence. + Sequence containing the last element in the observable sequence, or a default value if no such element exists. + is null. + + + + Returns the last element of an observable sequence that satisfies the condition in the predicate, or a default value if no such element exists. + + The type of the elements in the source sequence. + Source observable sequence. + A predicate function to evaluate for elements in the source sequence. + Sequence containing the last element in the observable sequence that satisfies the condition in the predicate, or a default value if no such element exists. + or is null. + + + + Returns an observable sequence containing an that represents the total number of elements in an observable sequence. + + The type of the elements in the source sequence. + An observable sequence that contains elements to be counted. + An observable sequence containing a single element with the number of elements in the input sequence. + is null. + (Asynchronous) The number of elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns an observable sequence containing an that represents how many elements in the specified observable sequence satisfy a condition. + + The type of the elements in the source sequence. + An observable sequence that contains elements to be counted. + A function to test each element for a condition. + An observable sequence containing a single element with a number that represents how many elements in the input sequence satisfy the condition in the predicate function. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum element in an observable sequence. + + The type of the elements in the source sequence. + An observable sequence to determine the maximum element of. + An observable sequence containing a single element with the maximum element in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence according to the specified comparer. + + The type of the elements in the source sequence. + An observable sequence to determine the maximum element of. + Comparer used to compare elements. + An observable sequence containing a single element with the maximum element in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of values. + + A sequence of values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of values. + + A sequence of values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of values. + + A sequence of values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of values. + + A sequence of values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of values. + + A sequence of values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum value. + + The type of the elements in the source sequence. + The type of the objects derived from the elements in the source sequence to determine the maximum of. + An observable sequence to determine the minimum element of. + A transform function to apply to each element. + An observable sequence containing a single element with the value that corresponds to the maximum element in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum value according to the specified comparer. + + The type of the elements in the source sequence. + The type of the objects derived from the elements in the source sequence to determine the maximum of. + An observable sequence to determine the minimum element of. + A transform function to apply to each element. + Comparer used to compare elements. + An observable sequence containing a single element with the value that corresponds to the maximum element in the source sequence. + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the elements in an observable sequence with the maximum key value. + + The type of the elements in the source sequence. + The type of the key computed for each element in the source sequence. + An observable sequence to get the maximum elements for. + Key selector function. + An observable sequence containing a list of zero or more elements that have a maximum key value. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the elements in an observable sequence with the maximum key value according to the specified comparer. + + The type of the elements in the source sequence. + The type of the key computed for each element in the source sequence. + An observable sequence to get the maximum elements for. + Key selector function. + Comparer used to compare key values. + An observable sequence containing a list of zero or more elements that have a maximum key value. + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum element in an observable sequence. + + The type of the elements in the source sequence. + An observable sequence to determine the minimum element of. + An observable sequence containing a single element with the minimum element in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum element in an observable sequence according to the specified comparer. + + The type of the elements in the source sequence. + An observable sequence to determine the minimum element of. + Comparer used to compare elements. + An observable sequence containing a single element with the minimum element in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of values. + + A sequence of values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of values. + + A sequence of values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of values. + + A sequence of values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of values. + + A sequence of values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of values. + + A sequence of values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum value. + + The type of the elements in the source sequence. + The type of the objects derived from the elements in the source sequence to determine the minimum of. + An observable sequence to determine the minimum element of. + A transform function to apply to each element. + An observable sequence containing a single element with the value that corresponds to the minimum element in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum value according to the specified comparer. + + The type of the elements in the source sequence. + The type of the objects derived from the elements in the source sequence to determine the minimum of. + An observable sequence to determine the minimum element of. + A transform function to apply to each element. + Comparer used to compare elements. + An observable sequence containing a single element with the value that corresponds to the minimum element in the source sequence. + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the elements in an observable sequence with the minimum key value. + + The type of the elements in the source sequence. + The type of the key computed for each element in the source sequence. + An observable sequence to get the minimum elements for. + Key selector function. + An observable sequence containing a list of zero or more elements that have a minimum key value. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the elements in an observable sequence with the minimum key value according to the specified comparer. + + The type of the elements in the source sequence. + The type of the key computed for each element in the source sequence. + An observable sequence to get the minimum elements for. + Key selector function. + Comparer used to compare key values. + An observable sequence containing a list of zero or more elements that have a minimum key value. + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Determines whether two sequences are equal by comparing the elements pairwise. + + The type of the elements in the source sequence. + First observable sequence to compare. + Second observable sequence to compare. + An observable sequence that contains a single element which indicates whether both sequences are of equal length and their corresponding elements are equal according to the default equality comparer for their type. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Determines whether two sequences are equal by comparing the elements pairwise using a specified equality comparer. + + The type of the elements in the source sequence. + First observable sequence to compare. + Second observable sequence to compare. + Comparer used to compare elements of both sequences. + An observable sequence that contains a single element which indicates whether both sequences are of equal length and their corresponding elements are equal according to the specified equality comparer. + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Determines whether an observable and enumerable sequence are equal by comparing the elements pairwise. + + The type of the elements in the source sequence. + First observable sequence to compare. + Second observable sequence to compare. + An observable sequence that contains a single element which indicates whether both sequences are of equal length and their corresponding elements are equal according to the default equality comparer for their type. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Determines whether an observable and enumerable sequence are equal by comparing the elements pairwise using a specified equality comparer. + + The type of the elements in the source sequence. + First observable sequence to compare. + Second observable sequence to compare. + Comparer used to compare elements of both sequences. + An observable sequence that contains a single element which indicates whether both sequences are of equal length and their corresponding elements are equal according to the specified equality comparer. + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the only element of an observable sequence, and reports an exception if there is not exactly one element in the observable sequence. + + The type of the elements in the source sequence. + Source observable sequence. + Sequence containing the single element in the observable sequence. + is null. + (Asynchronous) The source sequence contains more than one element. -or- The source sequence is empty. + + + + Returns the only element of an observable sequence that satisfies the condition in the predicate, and reports an exception if there is not exactly one element in the observable sequence. + + The type of the elements in the source sequence. + Source observable sequence. + A predicate function to evaluate for elements in the source sequence. + Sequence containing the single element in the observable sequence that satisfies the condition in the predicate. + or is null. + (Asynchronous) No element satisfies the condition in the predicate. -or- More than one element satisfies the condition in the predicate. -or- The source sequence is empty. + + + + Returns the only element of an observable sequence, or a default value if the observable sequence is empty; this method reports an exception if there is more than one element in the observable sequence. + + The type of the elements in the source sequence. + Source observable sequence. + Sequence containing the single element in the observable sequence, or a default value if no such element exists. + is null. + (Asynchronous) The source sequence contains more than one element. + + + + Returns the only element of an observable sequence that matches the predicate, or a default value if no such element exists; this method reports an exception if there is more than one element in the observable sequence. + + The type of the elements in the source sequence. + Source observable sequence. + A predicate function to evaluate for elements in the source sequence. + Sequence containing the single element in the observable sequence that satisfies the condition in the predicate, or a default value if no such element exists. + or is null. + (Asynchronous) The sequence contains more than one element that satisfies the condition in the predicate. + + + + Computes the sum of a sequence of values. + + A sequence of values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of values. + + A sequence of values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of values. + + A sequence of values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + is null. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of values. + + A sequence of values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + is null. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of values. + + A sequence of values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + is null. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values. + + A sequence of nullable values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values. + + A sequence of nullable values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values. + + A sequence of nullable values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + is null. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values. + + A sequence of nullable values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + is null. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values. + + A sequence of nullable values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + is null. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + or is null. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + or is null. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + or is null. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + or is null. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + or is null. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + or is null. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates an array from an observable sequence. + + The type of the elements in the source sequence. + The source observable sequence to get an array of elements for. + An observable sequence containing a single element with an array containing all the elements of the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates a dictionary from an observable sequence according to a specified key selector function. + + The type of the elements in the source sequence. + The type of the dictionary key computed for each element in the source sequence. + An observable sequence to create a dictionary for. + A function to extract a key from each element. + An observable sequence containing a single element with a dictionary mapping unique key values onto the corresponding source sequence's element. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates a dictionary from an observable sequence according to a specified key selector function, and a comparer. + + The type of the elements in the source sequence. + The type of the dictionary key computed for each element in the source sequence. + An observable sequence to create a dictionary for. + A function to extract a key from each element. + An equality comparer to compare keys. + An observable sequence containing a single element with a dictionary mapping unique key values onto the corresponding source sequence's element. + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates a dictionary from an observable sequence according to a specified key selector function, and an element selector function. + + The type of the elements in the source sequence. + The type of the dictionary key computed for each element in the source sequence. + The type of the dictionary value computed for each element in the source sequence. + An observable sequence to create a dictionary for. + A function to extract a key from each element. + A transform function to produce a result element value from each element. + An observable sequence containing a single element with a dictionary mapping unique key values onto the corresponding source sequence's element. + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates a dictionary from an observable sequence according to a specified key selector function, a comparer, and an element selector function. + + The type of the elements in the source sequence. + The type of the dictionary key computed for each element in the source sequence. + The type of the dictionary value computed for each element in the source sequence. + An observable sequence to create a dictionary for. + A function to extract a key from each element. + A transform function to produce a result element value from each element. + An equality comparer to compare keys. + An observable sequence containing a single element with a dictionary mapping unique key values onto the corresponding source sequence's element. + or or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates a list from an observable sequence. + + The type of the elements in the source sequence. + The source observable sequence to get a list of elements for. + An observable sequence containing a single element with a list containing all the elements of the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates a lookup from an observable sequence according to a specified key selector function. + + The type of the elements in the source sequence. + The type of the lookup key computed for each element in the source sequence. + An observable sequence to create a lookup for. + A function to extract a key from each element. + An observable sequence containing a single element with a lookup mapping unique key values onto the corresponding source sequence's elements. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates a lookup from an observable sequence according to a specified key selector function, and a comparer. + + The type of the elements in the source sequence. + The type of the lookup key computed for each element in the source sequence. + An observable sequence to create a lookup for. + A function to extract a key from each element. + An equality comparer to compare keys. + An observable sequence containing a single element with a lookup mapping unique key values onto the corresponding source sequence's elements. + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates a lookup from an observable sequence according to a specified key selector function, and an element selector function. + + The type of the elements in the source sequence. + The type of the lookup key computed for each element in the source sequence. + The type of the lookup value computed for each element in the source sequence. + An observable sequence to create a lookup for. + A function to extract a key from each element. + A transform function to produce a result element value from each element. + An observable sequence containing a single element with a lookup mapping unique key values onto the corresponding source sequence's elements. + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates a lookup from an observable sequence according to a specified key selector function, a comparer, and an element selector function. + + The type of the elements in the source sequence. + The type of the lookup key computed for each element in the source sequence. + The type of the lookup value computed for each element in the source sequence. + An observable sequence to create a lookup for. + A function to extract a key from each element. + A transform function to produce a result element value from each element. + An equality comparer to compare keys. + An observable sequence containing a single element with a lookup mapping unique key values onto the corresponding source sequence's elements. + or or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The type of the eleventh argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The type of the eleventh argument passed to the begin delegate. + The type of the twelfth argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The type of the eleventh argument passed to the begin delegate. + The type of the twelfth argument passed to the begin delegate. + The type of the thirteenth argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The type of the eleventh argument passed to the begin delegate. + The type of the twelfth argument passed to the begin delegate. + The type of the thirteenth argument passed to the begin delegate. + The type of the fourteenth argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The type of the eleventh argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The type of the eleventh argument passed to the begin delegate. + The type of the twelfth argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The type of the eleventh argument passed to the begin delegate. + The type of the twelfth argument passed to the begin delegate. + The type of the thirteenth argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The type of the eleventh argument passed to the begin delegate. + The type of the twelfth argument passed to the begin delegate. + The type of the thirteenth argument passed to the begin delegate. + The type of the fourteenth argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Invokes the specified function asynchronously, surfacing the result through an observable sequence. + + The type of the result returned by the function. + Function to run asynchronously. + An observable sequence exposing the function's result value, or an exception. + is null. + + + The function is called immediately, not during the subscription of the resulting sequence. + Multiple subscriptions to the resulting sequence can observe the function's result. + + + + + + Invokes the specified function asynchronously on the specified scheduler, surfacing the result through an observable sequence + + The type of the result returned by the function. + Function to run asynchronously. + Scheduler to run the function on. + An observable sequence exposing the function's result value, or an exception. + or is null. + + + The function is called immediately, not during the subscription of the resulting sequence. + Multiple subscriptions to the resulting sequence can observe the function's result. + + + + + + Invokes the asynchronous function, surfacing the result through an observable sequence. + + The type of the result returned by the asynchronous function. + Asynchronous function to run. + An observable sequence exposing the function's result value, or an exception. + is null. + + + The function is started immediately, not during the subscription of the resulting sequence. + Multiple subscriptions to the resulting sequence can observe the function's result. + + + + + + Invokes the asynchronous function, surfacing the result through an observable sequence. + + The type of the result returned by the asynchronous function. + Asynchronous function to run. + Scheduler on which to notify observers. + An observable sequence exposing the function's result value, or an exception. + is null or is null. + + + The function is started immediately, not during the subscription of the resulting sequence. + Multiple subscriptions to the resulting sequence can observe the function's result. + + + + + + Invokes the asynchronous function, surfacing the result through an observable sequence. + The CancellationToken is shared by all subscriptions on the resulting observable sequence. See the remarks section for more information. + + The type of the result returned by the asynchronous function. + Asynchronous function to run. + An observable sequence exposing the function's result value, or an exception. + is null. + + + The function is started immediately, not during the subscription of the resulting sequence. + Multiple subscriptions to the resulting sequence can observe the function's result. + + If any subscription to the resulting sequence is disposed, the CancellationToken is set. The observer associated to the disposed + subscription won't see the TaskCanceledException, but other observers will. You can protect against this using the Catch operator. + Be careful when handing out the resulting sequence because of this behavior. The most common use is to have a single subscription + to the resulting sequence, which controls the CancellationToken state. Alternatively, you can control subscription behavior using + multicast operators. + + + + + + + Invokes the asynchronous function, surfacing the result through an observable sequence. + The CancellationToken is shared by all subscriptions on the resulting observable sequence. See the remarks section for more information. + + The type of the result returned by the asynchronous function. + Asynchronous function to run. + Scheduler on which to notify observers. + An observable sequence exposing the function's result value, or an exception. + is null or is null. + + + The function is started immediately, not during the subscription of the resulting sequence. + Multiple subscriptions to the resulting sequence can observe the function's result. + + If any subscription to the resulting sequence is disposed, the CancellationToken is set. The observer associated to the disposed + subscription won't see the TaskCanceledException, but other observers will. You can protect against this using the Catch operator. + Be careful when handing out the resulting sequence because of this behavior. The most common use is to have a single subscription + to the resulting sequence, which controls the CancellationToken state. Alternatively, you can control subscription behavior using + multicast operators. + + + + + + + Invokes the action asynchronously, surfacing the result through an observable sequence. + + Action to run asynchronously. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + is null. + + + The action is called immediately, not during the subscription of the resulting sequence. + Multiple subscriptions to the resulting sequence can observe the action's outcome. + + + + + + Invokes the action asynchronously on the specified scheduler, surfacing the result through an observable sequence. + + Action to run asynchronously. + Scheduler to run the action on. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + or is null. + + + The action is called immediately, not during the subscription of the resulting sequence. + Multiple subscriptions to the resulting sequence can observe the action's outcome. + + + + + + Invokes the asynchronous action, surfacing the result through an observable sequence. + + Asynchronous action to run. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + is null. + + + The action is started immediately, not during the subscription of the resulting sequence. + Multiple subscriptions to the resulting sequence can observe the action's outcome. + + + + + + Invokes the asynchronous action, surfacing the result through an observable sequence. + + Asynchronous action to run. + Scheduler on which to notify observers. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + is null or is null. + + + The action is started immediately, not during the subscription of the resulting sequence. + Multiple subscriptions to the resulting sequence can observe the action's outcome. + + + + + + Invokes the asynchronous action, surfacing the result through an observable sequence. + The CancellationToken is shared by all subscriptions on the resulting observable sequence. See the remarks section for more information. + + Asynchronous action to run. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + is null. + + + The action is started immediately, not during the subscription of the resulting sequence. + Multiple subscriptions to the resulting sequence can observe the action's outcome. + + If any subscription to the resulting sequence is disposed, the CancellationToken is set. The observer associated to the disposed + subscription won't see the TaskCanceledException, but other observers will. You can protect against this using the Catch operator. + Be careful when handing out the resulting sequence because of this behavior. The most common use is to have a single subscription + to the resulting sequence, which controls the CancellationToken state. Alternatively, you can control subscription behavior using + multicast operators. + + + + + + + Invokes the asynchronous action, surfacing the result through an observable sequence. + The CancellationToken is shared by all subscriptions on the resulting observable sequence. See the remarks section for more information. + + Asynchronous action to run. + Scheduler on which to notify observers. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + is null or is null. + + + The action is started immediately, not during the subscription of the resulting sequence. + Multiple subscriptions to the resulting sequence can observe the action's outcome. + + If any subscription to the resulting sequence is disposed, the CancellationToken is set. The observer associated to the disposed + subscription won't see the TaskCanceledException, but other observers will. You can protect against this using the Catch operator. + Be careful when handing out the resulting sequence because of this behavior. The most common use is to have a single subscription + to the resulting sequence, which controls the CancellationToken state. Alternatively, you can control subscription behavior using + multicast operators. + + + + + + + Converts an asynchronous function into an observable sequence. Each subscription to the resulting sequence causes the function to be started. + + The type of the result returned by the asynchronous function. + Asynchronous function to convert. + An observable sequence exposing the result of invoking the function, or an exception. + is null. + + + + Converts an asynchronous function into an observable sequence. Each subscription to the resulting sequence causes the function to be started. + + The type of the result returned by the asynchronous function. + Asynchronous function to convert. + Scheduler on which to notify observers. + An observable sequence exposing the result of invoking the function, or an exception. + is null or is null. + + + + Converts an asynchronous function into an observable sequence. Each subscription to the resulting sequence causes the function to be started. + The CancellationToken passed to the asynchronous function is tied to the observable sequence's subscription that triggered the function's invocation and can be used for best-effort cancellation. + + The type of the result returned by the asynchronous function. + Asynchronous function to convert. + An observable sequence exposing the result of invoking the function, or an exception. + is null. + When a subscription to the resulting sequence is disposed, the CancellationToken that was fed to the asynchronous function will be signaled. + + + + Converts an asynchronous function into an observable sequence. Each subscription to the resulting sequence causes the function to be started. + The CancellationToken passed to the asynchronous function is tied to the observable sequence's subscription that triggered the function's invocation and can be used for best-effort cancellation. + + The type of the result returned by the asynchronous function. + Asynchronous function to convert. + Scheduler on which to notify observers. + An observable sequence exposing the result of invoking the function, or an exception. + is null or is null. + When a subscription to the resulting sequence is disposed, the CancellationToken that was fed to the asynchronous function will be signaled. + + + + Converts an asynchronous action into an observable sequence. Each subscription to the resulting sequence causes the action to be started. + + Asynchronous action to convert. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + is null. + + + + Converts an asynchronous action into an observable sequence. Each subscription to the resulting sequence causes the action to be started. + + Asynchronous action to convert. + Scheduler on which to notify observers. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + is null or is null. + + + + Converts an asynchronous action into an observable sequence. Each subscription to the resulting sequence causes the action to be started. + The CancellationToken passed to the asynchronous action is tied to the observable sequence's subscription that triggered the action's invocation and can be used for best-effort cancellation. + + Asynchronous action to convert. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + When a subscription to the resulting sequence is disposed, the CancellationToken that was fed to the asynchronous function will be signaled. + is null. + + + + Converts an asynchronous action into an observable sequence. Each subscription to the resulting sequence causes the action to be started. + The CancellationToken passed to the asynchronous action is tied to the observable sequence's subscription that triggered the action's invocation and can be used for best-effort cancellation. + + Asynchronous action to convert. + Scheduler on which to notify observers. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + When a subscription to the resulting sequence is disposed, the CancellationToken that was fed to the asynchronous function will be signaled. + is null or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + The type of the first argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + The type of the first argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the thirteenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the thirteenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the thirteenth argument passed to the function. + The type of the fourteenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the thirteenth argument passed to the function. + The type of the fourteenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the thirteenth argument passed to the function. + The type of the fourteenth argument passed to the function. + The type of the fifteenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the thirteenth argument passed to the function. + The type of the fourteenth argument passed to the function. + The type of the fifteenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the thirteenth argument passed to the function. + The type of the fourteenth argument passed to the function. + The type of the fifteenth argument passed to the function. + The type of the sixteenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the thirteenth argument passed to the function. + The type of the fourteenth argument passed to the function. + The type of the fifteenth argument passed to the function. + The type of the sixteenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Action to convert to an asynchronous action. + Asynchronous action. + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + The type of the first argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + The type of the first argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + The type of the thirteenth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + The type of the thirteenth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + The type of the thirteenth argument passed to the action. + The type of the fourteenth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + The type of the thirteenth argument passed to the action. + The type of the fourteenth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + The type of the thirteenth argument passed to the action. + The type of the fourteenth argument passed to the action. + The type of the fifteenth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + The type of the thirteenth argument passed to the action. + The type of the fourteenth argument passed to the action. + The type of the fifteenth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + The type of the thirteenth argument passed to the action. + The type of the fourteenth argument passed to the action. + The type of the fifteenth argument passed to the action. + The type of the sixteenth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + The type of the thirteenth argument passed to the action. + The type of the fourteenth argument passed to the action. + The type of the fifteenth argument passed to the action. + The type of the sixteenth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + or is null. + + + + Gets an awaiter that returns the last value of the observable sequence or throws an exception if the sequence is empty. + This operation subscribes to the observable sequence, making it hot. + + The type of the elements in the source sequence. + Source sequence to await. + Object that can be awaited. + is null. + + + + Gets an awaiter that returns the last value of the observable sequence or throws an exception if the sequence is empty. + This operation subscribes and connects to the observable sequence, making it hot. + + The type of the elements in the source sequence. + Source sequence to await. + Object that can be awaited. + is null. + + + + Gets an awaiter that returns the last value of the observable sequence or throws an exception if the sequence is empty. + This operation subscribes to the observable sequence, making it hot. The supplied CancellationToken can be used to cancel the subscription. + + The type of the elements in the source sequence. + Source sequence to await. + Cancellation token. + Object that can be awaited. + is null. + + + + Gets an awaiter that returns the last value of the observable sequence or throws an exception if the sequence is empty. + This operation subscribes and connects to the observable sequence, making it hot. The supplied CancellationToken can be used to cancel the subscription and connection. + + The type of the elements in the source sequence. + Source sequence to await. + Cancellation token. + Object that can be awaited. + is null. + + + + Multicasts the source sequence notifications through the specified subject to the resulting connectable observable. Upon connection of the + connectable observable, the subject is subscribed to the source exactly one, and messages are forwarded to the observers registered with + the connectable observable. For specializations with fixed subject types, see Publish, PublishLast, and Replay. + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be pushed into the specified subject. + Subject to push source elements into. + A connectable observable sequence that upon connection causes the source sequence to push results into the specified subject. + or is null. + + + + Multicasts the source sequence notifications through an instantiated subject into all uses of the sequence within a selector function. Each + subscription to the resulting sequence causes a separate multicast invocation, exposing the sequence resulting from the selector function's + invocation. For specializations with fixed subject types, see Publish, PublishLast, and Replay. + + The type of the elements in the source sequence. + The type of the elements produced by the intermediate subject. + The type of the elements in the result sequence. + Source sequence which will be multicasted in the specified selector function. + Factory function to create an intermediate subject through which the source sequence's elements will be multicast to the selector function. + Selector function which can use the multicasted source sequence subject to the policies enforced by the created subject. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + or or is null. + + + + Returns a connectable observable sequence that shares a single subscription to the underlying sequence. + This operator is a specialization of Multicast using a regular . + + The type of the elements in the source sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + A connectable observable sequence that shares a single subscription to the underlying sequence. + is null. + Subscribers will receive all notifications of the source from the time of the subscription on. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence. + This operator is a specialization of Multicast using a regular . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all notifications of the source from the time of the subscription on. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + or is null. + + + + + Returns a connectable observable sequence that shares a single subscription to the underlying sequence and starts with initialValue. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Initial value received by observers upon subscription. + A connectable observable sequence that shares a single subscription to the underlying sequence. + is null. + Subscribers will receive immediately receive the initial value, followed by all notifications of the source from the time of the subscription on. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence and starts with initialValue. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive immediately receive the initial value, followed by all notifications of the source from the time of the subscription on. + Initial value received by observers upon subscription. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + or is null. + + + + + Returns a connectable observable sequence that shares a single subscription to the underlying sequence containing only the last notification. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + A connectable observable sequence that shares a single subscription to the underlying sequence. + is null. + Subscribers will only receive the last notification of the source. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence containing only the last notification. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will only receive the last notification of the source. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + or is null. + + + + + Returns an observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + + The type of the elements in the source sequence. + Connectable observable sequence. + An observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + is null. + + + + Returns an observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + + The type of the elements in the source sequence. + Connectable observable sequence. + The time span that should be waited before possibly unsubscribing from the connectable observable. + An observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + is null. + + + + Returns an observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + + The type of the elements in the source sequence. + Connectable observable sequence. + The time span that should be waited before possibly unsubscribing from the connectable observable. + The scheduler to use for delayed unsubscription. + An observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + is null. + + + + Returns an observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + + The type of the elements in the source sequence. + Connectable observable sequence. + The minimum number of observers required to subscribe before establishing the connection to the source. + An observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + is null. + is non-positive. + + + + Returns an observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + + The type of the elements in the source sequence. + Connectable observable sequence. + The minimum number of observers required to subscribe before establishing the connection to the source. + The time span that should be waited before possibly unsubscribing from the connectable observable. + An observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + is null. + is non-positive. + + + + Returns an observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + + The type of the elements in the source sequence. + Connectable observable sequence. + The minimum number of observers required to subscribe before establishing the connection to the source. + The time span that should be waited before possibly unsubscribing from the connectable observable. + The scheduler to use for delayed unsubscription. + An observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + is null. + is non-positive. + + + + Automatically connect the upstream IConnectableObservable at most once when the + specified number of IObservers have subscribed to this IObservable. + + The type of the elements in the source sequence. + Connectable observable sequence. + The number of observers required to subscribe before the connection to source happens, non-positive value will trigger an immediate subscription. + If not null, the connection's IDisposable is provided to it. + An observable sequence that connects to the source at most once when the given number of observers have subscribed to it. + is null. + + + + Returns a connectable observable sequence that shares a single subscription to the underlying sequence replaying all notifications. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + A connectable observable sequence that shares a single subscription to the underlying sequence. + is null. + Subscribers will receive all the notifications of the source. + + + + + Returns a connectable observable sequence that shares a single subscription to the underlying sequence replaying all notifications. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Scheduler where connected observers will be invoked on. + A connectable observable sequence that shares a single subscription to the underlying sequence. + or is null. + Subscribers will receive all the notifications of the source. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying all notifications. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all the notifications of the source. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + or is null. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying all notifications. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all the notifications of the source. + Scheduler where connected observers within the selector function will be invoked on. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + or or is null. + + + + + Returns a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum time length for the replay buffer. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Maximum time length of the replay buffer. + A connectable observable sequence that shares a single subscription to the underlying sequence. + is null. + is less than TimeSpan.Zero. + Subscribers will receive all the notifications of the source subject to the specified replay buffer trimming policy. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum time length for the replay buffer. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all the notifications of the source subject to the specified replay buffer trimming policy. + Maximum time length of the replay buffer. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + or is null. + is less than TimeSpan.Zero. + + + + + Returns a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum time length for the replay buffer. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Maximum time length of the replay buffer. + Scheduler where connected observers will be invoked on. + A connectable observable sequence that shares a single subscription to the underlying sequence. + or is null. + is less than TimeSpan.Zero. + Subscribers will receive all the notifications of the source subject to the specified replay buffer trimming policy. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum time length for the replay buffer. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all the notifications of the source subject to the specified replay buffer trimming policy. + Maximum time length of the replay buffer. + Scheduler where connected observers within the selector function will be invoked on. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + or or is null. + is less than TimeSpan.Zero. + + + + + Returns a connectable observable sequence that shares a single subscription to the underlying sequence replaying bufferSize notifications. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Maximum element count of the replay buffer. + Scheduler where connected observers will be invoked on. + A connectable observable sequence that shares a single subscription to the underlying sequence. + or is null. + is less than zero. + Subscribers will receive all the notifications of the source subject to the specified replay buffer trimming policy. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum element count for the replay buffer. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all the notifications of the source subject to the specified replay buffer trimming policy. + Maximum element count of the replay buffer. + Scheduler where connected observers within the selector function will be invoked on. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + or or is null. + is less than zero. + + + + + Returns a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum element count for the replay buffer. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Maximum element count of the replay buffer. + A connectable observable sequence that shares a single subscription to the underlying sequence. + is null. + is less than zero. + Subscribers will receive all the notifications of the source subject to the specified replay buffer trimming policy. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum element count for the replay buffer. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all the notifications of the source subject to the specified replay buffer trimming policy. + Maximum element count of the replay buffer. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + or is null. + is less than zero. + + + + + Returns a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum time length and element count for the replay buffer. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Maximum element count of the replay buffer. + Maximum time length of the replay buffer. + A connectable observable sequence that shares a single subscription to the underlying sequence. + is null. + is less than zero. + is less than TimeSpan.Zero. + Subscribers will receive all the notifications of the source subject to the specified replay buffer trimming policy. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum time length and element count for the replay buffer. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all the notifications of the source subject to the specified replay buffer trimming policy. + Maximum element count of the replay buffer. + Maximum time length of the replay buffer. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + or is null. + is less than zero. + is less than TimeSpan.Zero. + + + + + Returns a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum time length and element count for the replay buffer. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Maximum element count of the replay buffer. + Maximum time length of the replay buffer. + Scheduler where connected observers will be invoked on. + A connectable observable sequence that shares a single subscription to the underlying sequence. + or is null. + is less than zero. + is less than TimeSpan.Zero. + Subscribers will receive all the notifications of the source subject to the specified replay buffer trimming policy. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum time length and element count for the replay buffer. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all the notifications of the source subject to the specified replay buffer trimming policy. + Maximum element count of the replay buffer. + Maximum time length of the replay buffer. + Scheduler where connected observers within the selector function will be invoked on. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + or or is null. + is less than zero. + is less than TimeSpan.Zero. + + + + + Produces an enumerable sequence of consecutive (possibly empty) chunks of the source sequence. + + The type of the elements in the source sequence. + Source observable sequence. + The enumerable sequence that returns consecutive (possibly empty) chunks upon each iteration. + is null. + + + + Produces an enumerable sequence that returns elements collected/aggregated from the source sequence between consecutive iterations. + + The type of the elements in the source sequence. + The type of the elements produced by the merge operation during collection. + Source observable sequence. + Factory to create a new collector object. + Merges a sequence element with the current collector. + The enumerable sequence that returns collected/aggregated elements from the source sequence upon each iteration. + or or is null. + + + + Produces an enumerable sequence that returns elements collected/aggregated from the source sequence between consecutive iterations. + + The type of the elements in the source sequence. + The type of the elements produced by the merge operation during collection. + Source observable sequence. + Factory to create the initial collector object. + Merges a sequence element with the current collector. + Factory to replace the current collector by a new collector. + The enumerable sequence that returns collected/aggregated elements from the source sequence upon each iteration. + or or or is null. + + + + Returns the first element of an observable sequence. + + The type of the elements in the source sequence. + Source observable sequence. + The first element in the observable sequence. + is null. + The source sequence is empty. + + + + + Returns the first element of an observable sequence that satisfies the condition in the predicate. + + The type of the elements in the source sequence. + Source observable sequence. + A predicate function to evaluate for elements in the source sequence. + The first element in the observable sequence that satisfies the condition in the predicate. + or is null. + No element satisfies the condition in the predicate. -or- The source sequence is empty. + + + + + Returns the first element of an observable sequence, or a default value if no such element exists. + + The type of the elements in the source sequence. + Source observable sequence. + The first element in the observable sequence, or a default value if no such element exists. + is null. + + + + + Returns the first element of an observable sequence that satisfies the condition in the predicate, or a default value if no such element exists. + + The type of the elements in the source sequence. + Source observable sequence. + A predicate function to evaluate for elements in the source sequence. + The first element in the observable sequence that satisfies the condition in the predicate, or a default value if no such element exists. + or is null. + + + + + Invokes an action for each element in the observable sequence, and blocks until the sequence is terminated. + + The type of the elements in the source sequence. + Source sequence. + Action to invoke for each element in the observable sequence. + or is null. + Because of its blocking nature, this operator is mainly used for testing. + + + + Invokes an action for each element in the observable sequence, incorporating the element's index, and blocks until the sequence is terminated. + + The type of the elements in the source sequence. + Source sequence. + Action to invoke for each element in the observable sequence. + or is null. + Because of its blocking nature, this operator is mainly used for testing. + + + + Returns an enumerator that enumerates all values of the observable sequence. + + The type of the elements in the source sequence. + An observable sequence to get an enumerator for. + The enumerator that can be used to enumerate over the elements in the observable sequence. + is null. + + + + Returns the last element of an observable sequence. + + The type of the elements in the source sequence. + Source observable sequence. + The last element in the observable sequence. + is null. + The source sequence is empty. + + + + + Returns the last element of an observable sequence that satisfies the condition in the predicate. + + The type of the elements in the source sequence. + Source observable sequence. + A predicate function to evaluate for elements in the source sequence. + The last element in the observable sequence that satisfies the condition in the predicate. + or is null. + No element satisfies the condition in the predicate. -or- The source sequence is empty. + + + + + Returns the last element of an observable sequence, or a default value if no such element exists. + + The type of the elements in the source sequence. + Source observable sequence. + The last element in the observable sequence, or a default value if no such element exists. + is null. + + + + + Returns the last element of an observable sequence that satisfies the condition in the predicate, or a default value if no such element exists. + + The type of the elements in the source sequence. + Source observable sequence. + A predicate function to evaluate for elements in the source sequence. + The last element in the observable sequence that satisfies the condition in the predicate, or a default value if no such element exists. + or is null. + + + + + Returns an enumerable sequence whose enumeration returns the latest observed element in the source observable sequence. + Enumerators on the resulting sequence will never produce the same element repeatedly, and will block until the next element becomes available. + + The type of the elements in the source sequence. + Source observable sequence. + The enumerable sequence that returns the last sampled element upon each iteration and subsequently blocks until the next element in the observable source sequence becomes available. + + + + Returns an enumerable sequence whose enumeration returns the most recently observed element in the source observable sequence, using the specified initial value in case no element has been sampled yet. + Enumerators on the resulting sequence never block and can produce the same element repeatedly. + + The type of the elements in the source sequence. + Source observable sequence. + Initial value that will be yielded by the enumerable sequence if no element has been sampled yet. + The enumerable sequence that returns the last sampled element upon each iteration. + is null. + + + + Returns an enumerable sequence whose enumeration blocks until the next element in the source observable sequence becomes available. + Enumerators on the resulting sequence will block until the next element becomes available. + + The type of the elements in the source sequence. + Source observable sequence. + The enumerable sequence that blocks upon each iteration until the next element in the observable source sequence becomes available. + is null. + + + + Returns the only element of an observable sequence, and throws an exception if there is not exactly one element in the observable sequence. + + The type of the elements in the source sequence. + Source observable sequence. + The single element in the observable sequence. + is null. + The source sequence contains more than one element. -or- The source sequence is empty. + + + + + Returns the only element of an observable sequence that satisfies the condition in the predicate, and throws an exception if there is not exactly one element matching the predicate in the observable sequence. + + The type of the elements in the source sequence. + Source observable sequence. + A predicate function to evaluate for elements in the source sequence. + The single element in the observable sequence that satisfies the condition in the predicate. + or is null. + No element satisfies the condition in the predicate. -or- More than one element satisfies the condition in the predicate. -or- The source sequence is empty. + + + + + Returns the only element of an observable sequence, or a default value if the observable sequence is empty; this method throws an exception if there is more than one element in the observable sequence. + + The type of the elements in the source sequence. + Source observable sequence. + The single element in the observable sequence, or a default value if no such element exists. + is null. + The source sequence contains more than one element. + + + + + Returns the only element of an observable sequence that satisfies the condition in the predicate, or a default value if no such element exists; this method throws an exception if there is more than one element matching the predicate in the observable sequence. + + The type of the elements in the source sequence. + Source observable sequence. + A predicate function to evaluate for elements in the source sequence. + The single element in the observable sequence that satisfies the condition in the predicate, or a default value if no such element exists. + or is null. + The sequence contains more than one element that satisfies the condition in the predicate. + + + + + Waits for the observable sequence to complete and returns the last element of the sequence. + If the sequence terminates with an OnError notification, the exception is thrown. + + The type of the elements in the source sequence. + Source observable sequence. + The last element in the observable sequence. + is null. + The source sequence is empty. + + + + Wraps the source sequence in order to run its observer callbacks on the specified scheduler. + + The type of the elements in the source sequence. + Source sequence. + Scheduler to notify observers on. + The source sequence whose observations happen on the specified scheduler. + or is null. + + This only invokes observer callbacks on a scheduler. In case the subscription and/or unsubscription actions have side-effects + that require to be run on a scheduler, use . + + + + + Wraps the source sequence in order to run its observer callbacks on the specified synchronization context. + + The type of the elements in the source sequence. + Source sequence. + Synchronization context to notify observers on. + The source sequence whose observations happen on the specified synchronization context. + or is null. + + This only invokes observer callbacks on a synchronization context. In case the subscription and/or unsubscription actions have side-effects + that require to be run on a synchronization context, use . + + + + + Wraps the source sequence in order to run its subscription and unsubscription logic on the specified scheduler. This operation is not commonly used; + see the remarks section for more information on the distinction between SubscribeOn and ObserveOn. + + The type of the elements in the source sequence. + Source sequence. + Scheduler to perform subscription and unsubscription actions on. + The source sequence whose subscriptions and unsubscriptions happen on the specified scheduler. + or is null. + + This only performs the side-effects of subscription and unsubscription on the specified scheduler. In order to invoke observer + callbacks on a scheduler, use . + + + + + Wraps the source sequence in order to run its subscription and unsubscription logic on the specified synchronization context. This operation is not commonly used; + see the remarks section for more information on the distinction between SubscribeOn and ObserveOn. + + The type of the elements in the source sequence. + Source sequence. + Synchronization context to perform subscription and unsubscription actions on. + The source sequence whose subscriptions and unsubscriptions happen on the specified synchronization context. + or is null. + + This only performs the side-effects of subscription and unsubscription on the specified synchronization context. In order to invoke observer + callbacks on a synchronization context, use . + + + + + Synchronizes the observable sequence such that observer notifications cannot be delivered concurrently. + This overload is useful to "fix" an observable sequence that exhibits concurrent callbacks on individual observers, which is invalid behavior for the query processor. + + The type of the elements in the source sequence. + Source sequence. + The source sequence whose outgoing calls to observers are synchronized. + is null. + + It's invalid behavior - according to the observer grammar - for a sequence to exhibit concurrent callbacks on a given observer. + This operator can be used to "fix" a source that doesn't conform to this rule. + + + + + Synchronizes the observable sequence such that observer notifications cannot be delivered concurrently, using the specified gate object. + This overload is useful when writing n-ary query operators, in order to prevent concurrent callbacks from different sources by synchronizing on a common gate object. + + The type of the elements in the source sequence. + Source sequence. + Gate object to synchronize each observer call on. + The source sequence whose outgoing calls to observers are synchronized on the given gate object. + or is null. + + + + Subscribes an observer to an enumerable sequence. + + The type of the elements in the source sequence. + Enumerable sequence to subscribe to. + Observer that will receive notifications from the enumerable sequence. + Disposable object that can be used to unsubscribe the observer from the enumerable + or is null. + + + + Subscribes an observer to an enumerable sequence, using the specified scheduler to run the enumeration loop. + + The type of the elements in the source sequence. + Enumerable sequence to subscribe to. + Observer that will receive notifications from the enumerable sequence. + Scheduler to perform the enumeration on. + Disposable object that can be used to unsubscribe the observer from the enumerable + or or is null. + + + + Converts an observable sequence to an enumerable sequence. + + The type of the elements in the source sequence. + An observable sequence to convert to an enumerable sequence. + The enumerable sequence containing the elements in the observable sequence. + is null. + + + + Exposes an observable sequence as an object with an -based .NET event. + + Observable source sequence. + The event source object. + is null. + + + + Exposes an observable sequence as an object with an -based .NET event. + + The type of the elements in the source sequence. + Observable source sequence. + The event source object. + is null. + + + + Exposes an observable sequence as an object with a .NET event, conforming to the standard .NET event pattern. + + The type of the event data generated by the event. + Observable source sequence. + The event source object. + is null. + + + + Converts an enumerable sequence to an observable sequence. + + The type of the elements in the source sequence. + Enumerable sequence to convert to an observable sequence. + The observable sequence whose elements are pulled from the given enumerable sequence. + is null. + + + + Converts an enumerable sequence to an observable sequence, using the specified scheduler to run the enumeration loop. + + The type of the elements in the source sequence. + Enumerable sequence to convert to an observable sequence. + Scheduler to run the enumeration of the input sequence on. + The observable sequence whose elements are pulled from the given enumerable sequence. + or is null. + + + + Creates an observable sequence from a specified Subscribe method implementation. + + The type of the elements in the produced sequence. + Implementation of the resulting observable sequence's Subscribe method. + The observable sequence with the specified implementation for the Subscribe method. + is null. + + Use of this operator is preferred over manual implementation of the interface. In case + you need a type implementing rather than an anonymous implementation, consider using + the abstract base class. + + + + + Creates an observable sequence from a specified Subscribe method implementation. + + The type of the elements in the produced sequence. + Implementation of the resulting observable sequence's Subscribe method, returning an Action delegate that will be wrapped in an IDisposable. + The observable sequence with the specified implementation for the Subscribe method. + is null. + + Use of this operator is preferred over manual implementation of the interface. In case + you need a type implementing rather than an anonymous implementation, consider using + the abstract base class. + + + + + Creates an observable sequence from a specified cancellable asynchronous Subscribe method. + The CancellationToken passed to the asynchronous Subscribe method is tied to the returned disposable subscription, allowing best-effort cancellation. + + The type of the elements in the produced sequence. + Asynchronous method used to produce elements. + The observable sequence surfacing the elements produced by the asynchronous method. + is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + When a subscription to the resulting sequence is disposed, the CancellationToken that was fed to the asynchronous subscribe function will be signaled. + + + + Creates an observable sequence from a specified asynchronous Subscribe method. + + The type of the elements in the produced sequence. + Asynchronous method used to produce elements. + The observable sequence surfacing the elements produced by the asynchronous method. + is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + + + + Creates an observable sequence from a specified cancellable asynchronous Subscribe method. + The CancellationToken passed to the asynchronous Subscribe method is tied to the returned disposable subscription, allowing best-effort cancellation. + + The type of the elements in the produced sequence. + Asynchronous method used to implement the resulting sequence's Subscribe method. + The observable sequence with the specified implementation for the Subscribe method. + is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + When a subscription to the resulting sequence is disposed, the CancellationToken that was fed to the asynchronous subscribe function will be signaled. + + + + Creates an observable sequence from a specified asynchronous Subscribe method. + + The type of the elements in the produced sequence. + Asynchronous method used to implement the resulting sequence's Subscribe method. + The observable sequence with the specified implementation for the Subscribe method. + is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + + + + Creates an observable sequence from a specified cancellable asynchronous Subscribe method. + The CancellationToken passed to the asynchronous Subscribe method is tied to the returned disposable subscription, allowing best-effort cancellation. + + The type of the elements in the produced sequence. + Asynchronous method used to implement the resulting sequence's Subscribe method, returning an Action delegate that will be wrapped in an IDisposable. + The observable sequence with the specified implementation for the Subscribe method. + is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + When a subscription to the resulting sequence is disposed, the CancellationToken that was fed to the asynchronous subscribe function will be signaled. + + + + Creates an observable sequence from a specified asynchronous Subscribe method. + + The type of the elements in the produced sequence. + Asynchronous method used to implement the resulting sequence's Subscribe method, returning an Action delegate that will be wrapped in an IDisposable. + The observable sequence with the specified implementation for the Subscribe method. + is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + + + + Returns an observable sequence that invokes the specified factory function whenever a new observer subscribes. + + The type of the elements in the sequence returned by the factory function, and in the resulting sequence. + Observable factory function to invoke for each observer that subscribes to the resulting sequence. + An observable sequence whose observers trigger an invocation of the given observable factory function. + is null. + + + + Returns an observable sequence that starts the specified asynchronous factory function whenever a new observer subscribes. + + The type of the elements in the sequence returned by the factory function, and in the resulting sequence. + Asynchronous factory function to start for each observer that subscribes to the resulting sequence. + An observable sequence whose observers trigger the given asynchronous observable factory function to be started. + is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + + + + Returns an observable sequence that starts the specified cancellable asynchronous factory function whenever a new observer subscribes. + The CancellationToken passed to the asynchronous factory function is tied to the returned disposable subscription, allowing best-effort cancellation. + + The type of the elements in the sequence returned by the factory function, and in the resulting sequence. + Asynchronous factory function to start for each observer that subscribes to the resulting sequence. + An observable sequence whose observers trigger the given asynchronous observable factory function to be started. + is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + When a subscription to the resulting sequence is disposed, the CancellationToken that was fed to the asynchronous observable factory function will be signaled. + + + + Returns an empty observable sequence. + + The type used for the type parameter of the resulting sequence. + An observable sequence with no elements. + + + + Returns an empty observable sequence. + + The type used for the type parameter of the resulting sequence. + Object solely used to infer the type of the type parameter. This parameter is typically used when creating a sequence of anonymously typed elements. + An observable sequence with no elements. + + + + Returns an empty observable sequence, using the specified scheduler to send out the single OnCompleted message. + + The type used for the type parameter of the resulting sequence. + Scheduler to send the termination call on. + An observable sequence with no elements. + is null. + + + + Returns an empty observable sequence, using the specified scheduler to send out the single OnCompleted message. + + The type used for the type parameter of the resulting sequence. + Scheduler to send the termination call on. + Object solely used to infer the type of the type parameter. This parameter is typically used when creating a sequence of anonymously typed elements. + An observable sequence with no elements. + is null. + + + + Generates an observable sequence by running a state-driven loop producing the sequence's elements. + + The type of the state used in the generator loop. + The type of the elements in the produced sequence. + Initial state. + Condition to terminate generation (upon returning false). + Iteration step function. + Selector function for results produced in the sequence. + The generated sequence. + or or is null. + + + + Generates an observable sequence by running a state-driven loop producing the sequence's elements, using the specified scheduler to send out observer messages. + + The type of the state used in the generator loop. + The type of the elements in the produced sequence. + Initial state. + Condition to terminate generation (upon returning false). + Iteration step function. + Selector function for results produced in the sequence. + Scheduler on which to run the generator loop. + The generated sequence. + or or or is null. + + + + Returns a non-terminating observable sequence, which can be used to denote an infinite duration (e.g. when using reactive joins). + + The type used for the type parameter of the resulting sequence. + An observable sequence whose observers will never get called. + + + + Returns a non-terminating observable sequence, which can be used to denote an infinite duration (e.g. when using reactive joins). + + The type used for the type parameter of the resulting sequence. + Object solely used to infer the type of the type parameter. This parameter is typically used when creating a sequence of anonymously typed elements. + An observable sequence whose observers will never get called. + + + + Generates an observable sequence of integral numbers within a specified range. + + The value of the first integer in the sequence. + The number of sequential integers to generate. + An observable sequence that contains a range of sequential integral numbers. + is less than zero. -or- + - 1 is larger than . + + + + Generates an observable sequence of integral numbers within a specified range, using the specified scheduler to send out observer messages. + + The value of the first integer in the sequence. + The number of sequential integers to generate. + Scheduler to run the generator loop on. + An observable sequence that contains a range of sequential integral numbers. + is less than zero. -or- + - 1 is larger than . + is null. + + + + Generates an observable sequence that repeats the given element infinitely. + + The type of the element that will be repeated in the produced sequence. + Element to repeat. + An observable sequence that repeats the given element infinitely. + + + + Generates an observable sequence that repeats the given element infinitely, using the specified scheduler to send out observer messages. + + The type of the element that will be repeated in the produced sequence. + Element to repeat. + Scheduler to run the producer loop on. + An observable sequence that repeats the given element infinitely. + is null. + + + + Generates an observable sequence that repeats the given element the specified number of times. + + The type of the element that will be repeated in the produced sequence. + Element to repeat. + Number of times to repeat the element. + An observable sequence that repeats the given element the specified number of times. + is less than zero. + + + + Generates an observable sequence that repeats the given element the specified number of times, using the specified scheduler to send out observer messages. + + The type of the element that will be repeated in the produced sequence. + Element to repeat. + Number of times to repeat the element. + Scheduler to run the producer loop on. + An observable sequence that repeats the given element the specified number of times. + is less than zero. + is null. + + + + Returns an observable sequence that contains a single element. + + The type of the element that will be returned in the produced sequence. + Single element in the resulting observable sequence. + An observable sequence containing the single specified element. + + + + Returns an observable sequence that contains a single element, using the specified scheduler to send out observer messages. + + The type of the element that will be returned in the produced sequence. + Single element in the resulting observable sequence. + Scheduler to send the single element on. + An observable sequence containing the single specified element. + is null. + + + + Returns an observable sequence that terminates with an exception. + + The type used for the type parameter of the resulting sequence. + Exception object used for the sequence's termination. + The observable sequence that terminates exceptionally with the specified exception object. + is null. + + + + Returns an observable sequence that terminates with an exception. + + The type used for the type parameter of the resulting sequence. + Exception object used for the sequence's termination. + Object solely used to infer the type of the type parameter. This parameter is typically used when creating a sequence of anonymously typed elements. + The observable sequence that terminates exceptionally with the specified exception object. + is null. + + + + Returns an observable sequence that terminates with an exception, using the specified scheduler to send out the single OnError message. + + The type used for the type parameter of the resulting sequence. + Exception object used for the sequence's termination. + Scheduler to send the exceptional termination call on. + The observable sequence that terminates exceptionally with the specified exception object. + or is null. + + + + Returns an observable sequence that terminates with an exception, using the specified scheduler to send out the single OnError message. + + The type used for the type parameter of the resulting sequence. + Exception object used for the sequence's termination. + Scheduler to send the exceptional termination call on. + Object solely used to infer the type of the type parameter. This parameter is typically used when creating a sequence of anonymously typed elements. + The observable sequence that terminates exceptionally with the specified exception object. + or is null. + + + + Constructs an observable sequence that depends on a resource object, whose lifetime is tied to the resulting observable sequence's lifetime. + + The type of the elements in the produced sequence. + The type of the resource used during the generation of the resulting sequence. Needs to implement . + Factory function to obtain a resource object. + Factory function to obtain an observable sequence that depends on the obtained resource. + An observable sequence whose lifetime controls the lifetime of the dependent resource object. + or is null. + + + + Constructs an observable sequence that depends on a resource object, whose lifetime is tied to the resulting observable sequence's lifetime. The resource is obtained and used through asynchronous methods. + The CancellationToken passed to the asynchronous methods is tied to the returned disposable subscription, allowing best-effort cancellation at any stage of the resource acquisition or usage. + + The type of the elements in the produced sequence. + The type of the resource used during the generation of the resulting sequence. Needs to implement . + Asynchronous factory function to obtain a resource object. + Asynchronous factory function to obtain an observable sequence that depends on the obtained resource. + An observable sequence whose lifetime controls the lifetime of the dependent resource object. + or is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + When a subscription to the resulting sequence is disposed, the CancellationToken that was fed to the asynchronous resource factory and observable factory functions will be signaled. + + + + Converts a .NET event, conforming to the standard .NET event pattern based on , to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on , to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on a supplied event delegate type, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + The delegate type of the event to be converted. + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on a supplied event delegate type, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + The delegate type of the event to be converted. + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on , to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + The delegate type of the event to be converted. + The type of the event data generated by the event. + A function used to convert the given event handler to a delegate compatible with the underlying .NET event. The resulting delegate is used in calls to the addHandler and removeHandler action parameters. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on , to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + The delegate type of the event to be converted. + The type of the event data generated by the event. + A function used to convert the given event handler to a delegate compatible with the underlying .NET event. The resulting delegate is used in calls to the addHandler and removeHandler action parameters. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on a supplied event delegate type with a strongly typed sender parameter, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + The delegate type of the event to be converted. + The type of the sender that raises the event. + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on a supplied event delegate type with a strongly typed sender parameter, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + The delegate type of the event to be converted. + The type of the sender that raises the event. + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on , to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on , to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts an instance .NET event, conforming to the standard .NET event pattern with an parameter, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the target object type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Object instance that exposes the event to convert. + Name of the event to convert. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts an instance .NET event, conforming to the standard .NET event pattern with an parameter, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the target object type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Object instance that exposes the event to convert. + Name of the event to convert. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts an instance .NET event, conforming to the standard .NET event pattern with strongly typed event arguments, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the target object type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + The type of the event data generated by the event. + Object instance that exposes the event to convert. + Name of the event to convert. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. -or- The event's second argument type is not assignable to TEventArgs. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts an instance .NET event, conforming to the standard .NET event pattern with strongly typed event arguments, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the target object type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + The type of the event data generated by the event. + Object instance that exposes the event to convert. + Name of the event to convert. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. -or- The event's second argument type is not assignable to TEventArgs. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts an instance .NET event, conforming to the standard .NET event pattern with a strongly typed sender and strongly typed event arguments, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the target object type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + The type of the sender that raises the event. + The type of the event data generated by the event. + Object instance that exposes the event to convert. + Name of the event to convert. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. -or- The event's first argument type is not assignable to TSender. -or- The event's second argument type is not assignable to TEventArgs. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts an instance .NET event, conforming to the standard .NET event pattern with a strongly typed sender and strongly typed event arguments, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the target object type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + The type of the sender that raises the event. + The type of the event data generated by the event. + Object instance that exposes the event to convert. + Name of the event to convert. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. -or- The event's first argument type is not assignable to TSender. -or- The event's second argument type is not assignable to TEventArgs. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a static .NET event, conforming to the standard .NET event pattern with an parameter, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the specified type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Type that exposes the static event to convert. + Name of the event to convert. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a static .NET event, conforming to the standard .NET event pattern with an parameter, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the specified type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Type that exposes the static event to convert. + Name of the event to convert. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a static .NET event, conforming to the standard .NET event pattern with strongly typed event arguments, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the specified type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + The type of the event data generated by the event. + Type that exposes the static event to convert. + Name of the event to convert. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. -or- The event's second argument type is not assignable to TEventArgs. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a static .NET event, conforming to the standard .NET event pattern with strongly typed event arguments, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the specified type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + The type of the event data generated by the event. + Type that exposes the static event to convert. + Name of the event to convert. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. -or- The event's second argument type is not assignable to TEventArgs. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a static .NET event, conforming to the standard .NET event pattern with a strongly typed sender and strongly typed event arguments, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the specified type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + The type of the sender that raises the event. + The type of the event data generated by the event. + Type that exposes the static event to convert. + Name of the event to convert. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. -or- The event's first argument type is not assignable to TSender. -or- The event's second argument type is not assignable to TEventArgs. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a static .NET event, conforming to the standard .NET event pattern with a strongly typed sender and strongly typed event arguments, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the specified type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + The type of the sender that raises the event. + The type of the event data generated by the event. + Type that exposes the static event to convert. + Name of the event to convert. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. -or- The event's first argument type is not assignable to TSender. -or- The event's second argument type is not assignable to TEventArgs. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a .NET event to an observable sequence, using a conversion function to obtain the event delegate. Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events conforming to the standard .NET event pattern, use any of the FromEventPattern overloads instead. + + The delegate type of the event to be converted. + The type of the event data generated by the event. + A function used to convert the given event handler to a delegate compatible with the underlying .NET event. The resulting delegate is used in calls to the addHandler and removeHandler action parameters. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains the event argument objects passed to the invocations of the underlying .NET event. + or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEvent, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEvent, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEvent calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a .NET event to an observable sequence, using a conversion function to obtain the event delegate. Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events conforming to the standard .NET event pattern, use any of the FromEventPattern overloads instead. + + The delegate type of the event to be converted. + The type of the event data generated by the event. + A function used to convert the given event handler to a delegate compatible with the underlying .NET event. The resulting delegate is used in calls to the addHandler and removeHandler action parameters. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains the event argument objects passed to the invocations of the underlying .NET event. + or or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEvent calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEvent that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a .NET event to an observable sequence, using a supplied event delegate type. Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events conforming to the standard .NET event pattern, use any of the FromEventPattern overloads instead. + + The delegate type of the event to be converted. + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains the event argument objects passed to the invocations of the underlying .NET event. + or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEvent, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEvent, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEvent calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a .NET event to an observable sequence, using a supplied event delegate type. Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events conforming to the standard .NET event pattern, use any of the FromEventPattern overloads instead. + + The delegate type of the event to be converted. + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains the event argument objects passed to the invocations of the underlying .NET event. + or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEvent calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEvent that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a generic Action-based .NET event to an observable sequence. Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events conforming to the standard .NET event pattern, use any of the FromEventPattern overloads instead. + + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains the event argument objects passed to the invocations of the underlying .NET event. + or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEvent, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEvent, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEvent calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a generic Action-based .NET event to an observable sequence. Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events conforming to the standard .NET event pattern, use any of the FromEventPattern overloads instead. + + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains the event argument objects passed to the invocations of the underlying .NET event. + or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEvent calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEvent that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts an Action-based .NET event to an observable sequence. Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events conforming to the standard .NET event pattern, use any of the FromEventPattern overloads instead. + + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains the event argument objects passed to the invocations of the underlying .NET event. + or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEvent, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEvent, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEvent calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts an Action-based .NET event to an observable sequence. Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events conforming to the standard .NET event pattern, use any of the FromEventPattern overloads instead. + + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains the event argument objects passed to the invocations of the underlying .NET event. + or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEvent calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEvent that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Invokes an action for each element in the observable sequence, and returns a Task object that will get signaled when the sequence terminates. + + The type of the elements in the source sequence. + Source sequence. + Action to invoke for each element in the observable sequence. + Task that signals the termination of the sequence. + or is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + + + + Invokes an action for each element in the observable sequence, and returns a Task object that will get signaled when the sequence terminates. + The loop can be quit prematurely by setting the specified cancellation token. + + The type of the elements in the source sequence. + Source sequence. + Action to invoke for each element in the observable sequence. + Cancellation token used to stop the loop. + Task that signals the termination of the sequence. + or is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + + + + Invokes an action for each element in the observable sequence, incorporating the element's index, and returns a Task object that will get signaled when the sequence terminates. + + The type of the elements in the source sequence. + Source sequence. + Action to invoke for each element in the observable sequence. + Task that signals the termination of the sequence. + or is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + + + + Invokes an action for each element in the observable sequence, incorporating the element's index, and returns a Task object that will get signaled when the sequence terminates. + The loop can be quit prematurely by setting the specified cancellation token. + + The type of the elements in the source sequence. + Source sequence. + Action to invoke for each element in the observable sequence. + Cancellation token used to stop the loop. + Task that signals the termination of the sequence. + or is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + + + + Uses to determine which source in to return, choosing if no match is found. + + The type of the value returned by the selector function, used to look up the resulting source. + The type of the elements in the result sequence. + Selector function invoked to determine the source to lookup in the dictionary. + Dictionary of sources to select from based on the invocation result. + Default source to select in case no matching source in is found. + The observable sequence retrieved from the dictionary based on the invocation result, or if no match is found. + or or is null. + + + + Uses to determine which source in to return, choosing an empty sequence on the specified scheduler if no match is found. + + The type of the value returned by the selector function, used to look up the resulting source. + The type of the elements in the result sequence. + Selector function invoked to determine the source to lookup in the dictionary. + Dictionary of sources to select from based on the invocation result. + Scheduler to generate an empty sequence on in case no matching source in is found. + The observable sequence retrieved from the dictionary based on the invocation result, or an empty sequence if no match is found. + or or is null. + + + + Uses to determine which source in to return, choosing an empty sequence if no match is found. + + The type of the value returned by the selector function, used to look up the resulting source. + The type of the elements in the result sequence. + Selector function invoked to determine the source to lookup in the dictionary. + Dictionary of sources to select from based on the invocation result. + The observable sequence retrieved from the dictionary based on the invocation result, or an empty sequence if no match is found. + or is null. + + + + Repeats the given as long as the specified holds, where the is evaluated after each repeated completed. + + The type of the elements in the source sequence. + Source to repeat as long as the function evaluates to true. + Condition that will be evaluated upon the completion of an iteration through the , to determine whether repetition of the source is required. + The observable sequence obtained by concatenating the sequence as long as the holds. + or is null. + + + + Concatenates the observable sequences obtained by running the for each element in the given enumerable . + + The type of the elements in the enumerable source sequence. + The type of the elements in the observable result sequence. + Enumerable source for which each element will be mapped onto an observable source that will be concatenated in the result sequence. + Function to select an observable source for each element in the . + The observable sequence obtained by concatenating the sources returned by for each element in the . + or is null. + + + + If the specified evaluates true, select the sequence. Otherwise, select the sequence. + + The type of the elements in the result sequence. + Condition evaluated to decide which sequence to return. + Sequence returned in case evaluates true. + Sequence returned in case evaluates false. + if evaluates true; otherwise. + or or is null. + + + + If the specified evaluates true, select the sequence. Otherwise, return an empty sequence. + + The type of the elements in the result sequence. + Condition evaluated to decide which sequence to return. + Sequence returned in case evaluates true. + if evaluates true; an empty sequence otherwise. + or is null. + + + + If the specified evaluates true, select the sequence. Otherwise, return an empty sequence generated on the specified scheduler. + + The type of the elements in the result sequence. + Condition evaluated to decide which sequence to return. + Sequence returned in case evaluates true. + Scheduler to generate an empty sequence on in case evaluates false. + if evaluates true; an empty sequence otherwise. + or or is null. + + + + Repeats the given as long as the specified holds, where the is evaluated before each repeated is subscribed to. + + The type of the elements in the source sequence. + Source to repeat as long as the function evaluates to true. + Condition that will be evaluated before subscription to the , to determine whether repetition of the source is required. + The observable sequence obtained by concatenating the sequence as long as the holds. + or is null. + + + + Creates a pattern that matches when both observable sequences have an available element. + + The type of the elements in the left sequence. + The type of the elements in the right sequence. + Observable sequence to match with the right sequence. + Observable sequence to match with the left sequence. + Pattern object that matches when both observable sequences have an available element. + or is null. + + + + Matches when the observable sequence has an available element and projects the element by invoking the selector function. + + The type of the elements in the source sequence. + The type of the elements in the result sequence, returned by the selector function. + Observable sequence to apply the selector on. + Selector that will be invoked for elements in the source sequence. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + or is null. + + + + Joins together the results from several patterns. + + The type of the elements in the result sequence, obtained from the specified patterns. + A series of plans created by use of the Then operator on patterns. + An observable sequence with the results from matching several patterns. + is null. + + + + Joins together the results from several patterns. + + The type of the elements in the result sequence, obtained from the specified patterns. + A series of plans created by use of the Then operator on patterns. + An observable sequence with the results form matching several patterns. + is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Fourteenth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the fifteenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Fourteenth observable source. + Fifteenth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or or or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the fifteenth source sequence. + The type of the elements in the sixteenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Fourteenth observable source. + Fifteenth observable source. + Sixteenth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or or or or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Propagates the observable sequence that reacts first. + + The type of the elements in the source sequences. + First observable sequence. + Second observable sequence. + An observable sequence that surfaces either of the given sequences, whichever reacted first. + or is null. + + + + Propagates the observable sequence that reacts first. + + The type of the elements in the source sequences. + Observable sources competing to react first. + An observable sequence that surfaces any of the given sequences, whichever reacted first. + is null. + + + + Propagates the observable sequence that reacts first. + + The type of the elements in the source sequences. + Observable sources competing to react first. + An observable sequence that surfaces any of the given sequences, whichever reacted first. + is null. + + + + Projects each element of an observable sequence into consecutive non-overlapping buffers. + + The type of the elements in the source sequence, and in the lists in the result sequence. + The type of the elements in the sequences indicating buffer closing events. + Source sequence to produce buffers over. + A function invoked to define the boundaries of the produced buffers. A new buffer is started when the previous one is closed. + An observable sequence of buffers. + or is null. + + + + Projects each element of an observable sequence into zero or more buffers. + + The type of the elements in the source sequence, and in the lists in the result sequence. + The type of the elements in the sequence indicating buffer opening events, also passed to the closing selector to obtain a sequence of buffer closing events. + The type of the elements in the sequences indicating buffer closing events. + Source sequence to produce buffers over. + Observable sequence whose elements denote the creation of new buffers. + A function invoked to define the closing of each produced buffer. + An observable sequence of buffers. + or or is null. + + + + Projects each element of an observable sequence into consecutive non-overlapping buffers. + + The type of the elements in the source sequence, and in the lists in the result sequence. + The type of the elements in the sequences indicating buffer boundary events. + Source sequence to produce buffers over. + Sequence of buffer boundary markers. The current buffer is closed and a new buffer is opened upon receiving a boundary marker. + An observable sequence of buffers. + or is null. + + + + Continues an observable sequence that is terminated by an exception of the specified type with the observable sequence produced by the handler. + + The type of the elements in the source sequence and sequences returned by the exception handler function. + The type of the exception to catch and handle. Needs to derive from . + Source sequence. + Exception handler function, producing another observable sequence. + An observable sequence containing the source sequence's elements, followed by the elements produced by the handler's resulting observable sequence in case an exception occurred. + or is null. + + + + Continues an observable sequence that is terminated by an exception with the next observable sequence. + + The type of the elements in the source sequence and handler sequence. + First observable sequence whose exception (if any) is caught. + Second observable sequence used to produce results when an error occurred in the first sequence. + An observable sequence containing the first sequence's elements, followed by the elements of the second sequence in case an exception occurred. + or is null. + + + + Continues an observable sequence that is terminated by an exception with the next observable sequence. + + The type of the elements in the source and handler sequences. + Observable sequences to catch exceptions for. + An observable sequence containing elements from consecutive source sequences until a source sequence terminates successfully. + is null. + + + + Continues an observable sequence that is terminated by an exception with the next observable sequence. + + The type of the elements in the source and handler sequences. + Observable sequences to catch exceptions for. + An observable sequence containing elements from consecutive source sequences until a source sequence terminates successfully. + is null. + + + + Merges two observable sequences into one observable sequence by using the selector function whenever one of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Function to invoke whenever either of the sources produces an element. + An observable sequence containing the result of combining elements of both sources using the specified result selector function. + or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the source sequences. + The type of the elements in the result sequence, returned by the selector function. + Observable sources. + Function to invoke whenever any of the sources produces an element. For efficiency, the input list is reused after the selector returns. Either aggregate or copy the values during the function call. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by emitting a list with the latest source elements whenever any of the observable sequences produces an element. + + The type of the elements in the source sequences, and in the lists in the result sequence. + Observable sources. + An observable sequence containing lists of the latest elements of the sources. + is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by emitting a list with the latest source elements whenever any of the observable sequences produces an element. + + The type of the elements in the source sequences, and in the lists in the result sequence. + Observable sources. + An observable sequence containing lists of the latest elements of the sources. + is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Concatenates the second observable sequence to the first observable sequence upon successful termination of the first. + + The type of the elements in the source sequences. + First observable sequence. + Second observable sequence. + An observable sequence that contains the elements of the first sequence, followed by those of the second the sequence. + or is null. + + + + Concatenates all of the specified observable sequences, as long as the previous observable sequence terminated successfully. + + The type of the elements in the source sequences. + Observable sequences to concatenate. + An observable sequence that contains the elements of each given sequence, in sequential order. + is null. + + + + Concatenates all observable sequences in the given enumerable sequence, as long as the previous observable sequence terminated successfully. + + The type of the elements in the source sequences. + Observable sequences to concatenate. + An observable sequence that contains the elements of each given sequence, in sequential order. + is null. + + + + Concatenates all inner observable sequences, as long as the previous observable sequence terminated successfully. + + The type of the elements in the source sequences. + Observable sequence of inner observable sequences. + An observable sequence that contains the elements of each observed inner sequence, in sequential order. + is null. + + + + Concatenates all task results, as long as the previous task terminated successfully. + + The type of the results produced by the tasks. + Observable sequence of tasks. + An observable sequence that contains the results of each task, in sequential order. + is null. + If the tasks support cancellation, consider manual conversion of the tasks using , followed by a concatenation operation using . + + + + Merges elements from all inner observable sequences into a single observable sequence. + + The type of the elements in the source sequences. + Observable sequence of inner observable sequences. + The observable sequence that merges the elements of the inner sequences. + is null. + + + + Merges results from all source tasks into a single observable sequence. + + The type of the results produced by the source tasks. + Observable sequence of tasks. + The observable sequence that merges the results of the source tasks. + is null. + If the tasks support cancellation, consider manual conversion of the tasks using , followed by a merge operation using . + + + + Merges elements from all inner observable sequences into a single observable sequence, limiting the number of concurrent subscriptions to inner sequences. + + The type of the elements in the source sequences. + Observable sequence of inner observable sequences. + Maximum number of inner observable sequences being subscribed to concurrently. + The observable sequence that merges the elements of the inner sequences. + is null. + is less than or equal to zero. + + + + Merges elements from all observable sequences in the given enumerable sequence into a single observable sequence, limiting the number of concurrent subscriptions to inner sequences. + + The type of the elements in the source sequences. + Enumerable sequence of observable sequences. + Maximum number of observable sequences being subscribed to concurrently. + The observable sequence that merges the elements of the observable sequences. + is null. + is less than or equal to zero. + + + + Merges elements from all observable sequences in the given enumerable sequence into a single observable sequence, limiting the number of concurrent subscriptions to inner sequences, and using the specified scheduler for enumeration of and subscription to the sources. + + The type of the elements in the source sequences. + Enumerable sequence of observable sequences. + Maximum number of observable sequences being subscribed to concurrently. + Scheduler to run the enumeration of the sequence of sources on. + The observable sequence that merges the elements of the observable sequences. + or is null. + is less than or equal to zero. + + + + Merges elements from two observable sequences into a single observable sequence. + + The type of the elements in the source sequences. + First observable sequence. + Second observable sequence. + The observable sequence that merges the elements of the given sequences. + or is null. + + + + Merges elements from two observable sequences into a single observable sequence, using the specified scheduler for enumeration of and subscription to the sources. + + The type of the elements in the source sequences. + First observable sequence. + Second observable sequence. + Scheduler used to introduce concurrency for making subscriptions to the given sequences. + The observable sequence that merges the elements of the given sequences. + or or is null. + + + + Merges elements from all of the specified observable sequences into a single observable sequence. + + The type of the elements in the source sequences. + Observable sequences. + The observable sequence that merges the elements of the observable sequences. + is null. + + + + Merges elements from all of the specified observable sequences into a single observable sequence, using the specified scheduler for enumeration of and subscription to the sources. + + The type of the elements in the source sequences. + Observable sequences. + Scheduler to run the enumeration of the sequence of sources on. + The observable sequence that merges the elements of the observable sequences. + or is null. + + + + Merges elements from all observable sequences in the given enumerable sequence into a single observable sequence. + + The type of the elements in the source sequences. + Enumerable sequence of observable sequences. + The observable sequence that merges the elements of the observable sequences. + is null. + + + + Merges elements from all observable sequences in the given enumerable sequence into a single observable sequence, using the specified scheduler for enumeration of and subscription to the sources. + + The type of the elements in the source sequences. + Enumerable sequence of observable sequences. + Scheduler to run the enumeration of the sequence of sources on. + The observable sequence that merges the elements of the observable sequences. + or is null. + + + + Concatenates the second observable sequence to the first observable sequence upon successful or exceptional termination of the first. + + The type of the elements in the source sequences. + First observable sequence whose exception (if any) is caught. + Second observable sequence used to produce results after the first sequence terminates. + An observable sequence that concatenates the first and second sequence, even if the first sequence terminates exceptionally. + or is null. + + + + Concatenates all of the specified observable sequences, even if the previous observable sequence terminated exceptionally. + + The type of the elements in the source sequences. + Observable sequences to concatenate. + An observable sequence that concatenates the source sequences, even if a sequence terminates exceptionally. + is null. + + + + Concatenates all observable sequences in the given enumerable sequence, even if the previous observable sequence terminated exceptionally. + + The type of the elements in the source sequences. + Observable sequences to concatenate. + An observable sequence that concatenates the source sequences, even if a sequence terminates exceptionally. + is null. + + + + Returns the elements from the source observable sequence only after the other observable sequence produces an element. + Starting from Rx.NET 4.0, this will subscribe to before subscribing to + so in case emits an element right away, elements from are not missed. + + The type of the elements in the source sequence. + The type of the elements in the other sequence that indicates the end of skip behavior. + Source sequence to propagate elements for. + Observable sequence that triggers propagation of elements of the source sequence. + An observable sequence containing the elements of the source sequence starting from the point the other sequence triggered propagation. + or is null. + + + + Transforms an observable sequence of observable sequences into an observable sequence + producing values only from the most recent observable sequence. + Each time a new inner observable sequence is received, unsubscribe from the + previous inner observable sequence. + + The type of the elements in the source sequences. + Observable sequence of inner observable sequences. + The observable sequence that at any point in time produces the elements of the most recent inner observable sequence that has been received. + is null. + + + + Transforms an observable sequence of tasks into an observable sequence + producing values only from the most recent observable sequence. + Each time a new task is received, the previous task's result is ignored. + + The type of the results produced by the source tasks. + Observable sequence of tasks. + The observable sequence that at any point in time produces the result of the most recent task that has been received. + is null. + If the tasks support cancellation, consider manual conversion of the tasks using , followed by a switch operation using . + + + + Returns the elements from the source observable sequence until the other observable sequence produces an element. + + The type of the elements in the source sequence. + The type of the elements in the other sequence that indicates the end of take behavior. + Source sequence to propagate elements for. + Observable sequence that terminates propagation of elements of the source sequence. + An observable sequence containing the elements of the source sequence up to the point the other sequence interrupted further propagation. + or is null. + + + + Relays elements from the source observable sequence and calls the predicate after an + emission to check if the sequence should stop after that specific item. + + The type of the elements in the source and result sequences. + The source sequence to relay elements of. + Called after each upstream item has been emitted with + that upstream item and should return true to indicate the sequence should + complete. + The observable sequence with the source elements until the stop predicate returns true. + + The following sequence will stop after the value 5 has been encountered: + + Observable.Range(1, 10) + .TakeUntil(item => item == 5) + .Subscribe(Console.WriteLine); + + + If or is null. + + + + Projects each element of an observable sequence into consecutive non-overlapping windows. + + The type of the elements in the source sequence, and in the windows in the result sequence. + The type of the elements in the sequences indicating window closing events. + Source sequence to produce windows over. + A function invoked to define the boundaries of the produced windows. A new window is started when the previous one is closed. + An observable sequence of windows. + or is null. + + + + Projects each element of an observable sequence into zero or more windows. + + The type of the elements in the source sequence, and in the windows in the result sequence. + The type of the elements in the sequence indicating window opening events, also passed to the closing selector to obtain a sequence of window closing events. + The type of the elements in the sequences indicating window closing events. + Source sequence to produce windows over. + Observable sequence whose elements denote the creation of new windows. + A function invoked to define the closing of each produced window. + An observable sequence of windows. + or or is null. + + + + Projects each element of an observable sequence into consecutive non-overlapping windows. + + The type of the elements in the source sequence, and in the windows in the result sequence. + The type of the elements in the sequences indicating window boundary events. + Source sequence to produce windows over. + Sequence of window boundary markers. The current window is closed and a new window is opened upon receiving a boundary marker. + An observable sequence of windows. + or is null. + + + + Merges two observable sequences into one observable sequence by combining each element from the first source with the latest element from the second source, if any. + Starting from Rx.NET 4.0, this will subscribe to before subscribing to to have a latest element readily available + in case emits an element right away. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Function to invoke for each element from the first source combined with the latest element from the second source, if any. + An observable sequence containing the result of combining each element of the first source with the latest element from the second source, if any, using the specified result selector function. + or or is null. + + + + Merges two observable sequences into one observable sequence by combining their elements in a pairwise fashion. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Function to invoke for each consecutive pair of elements from the first and second source. + An observable sequence containing the result of pairwise combining the elements of the first and second source using the specified result selector function. + or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the source sequences. + The type of the elements in the result sequence, returned by the selector function. + Observable sources. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or is null. + + + + Merges the specified observable sequences into one observable sequence by emitting a list with the elements of the observable sequences at corresponding indexes. + + The type of the elements in the source sequences, and in the lists in the result sequence. + Observable sources. + An observable sequence containing lists of elements at corresponding indexes. + is null. + + + + Merges the specified observable sequences into one observable sequence by emitting a list with the elements of the observable sequences at corresponding indexes. + + The type of the elements in the source sequences, and in the lists in the result sequence. + Observable sources. + An observable sequence containing lists of elements at corresponding indexes. + is null. + + + + Merges an observable sequence and an enumerable sequence into one observable sequence by using the selector function. + + The type of the elements in the first observable source sequence. + The type of the elements in the second enumerable source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second enumerable source. + Function to invoke for each consecutive pair of elements from the first and second source. + An observable sequence containing the result of pairwise combining the elements of the first and second source using the specified result selector function. + or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Fourteenth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the fifteenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Fourteenth observable source. + Fifteenth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the fifteenth source sequence. + The type of the elements in the sixteenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Fourteenth observable source. + Fifteenth observable source. + Sixteenth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or or or or or or or or or or is null. + + + + Append a value to an observable sequence. + + The type of the elements in the source sequence. + Source sequence to append the value to. + Value to append to the specified sequence. + The source sequence appended with the specified value. + is null. + + + + Append a value to an observable sequence. + + The type of the elements in the source sequence. + Source sequence to append the value to. + Value to append to the specified sequence. + Scheduler to emit the append values on. + The source sequence appended with the specified value. + is null. + + + + Hides the identity of an observable sequence. + + The type of the elements in the source sequence. + An observable sequence whose identity to hide. + An observable sequence that hides the identity of the source sequence. + is null. + + + + Projects each element of an observable sequence into consecutive non-overlapping buffers which are produced based on element count information. + + The type of the elements in the source sequence, and in the lists in the result sequence. + Source sequence to produce buffers over. + Length of each buffer. + An observable sequence of buffers. + is null. + is less than or equal to zero. + + + + Projects each element of an observable sequence into zero or more buffers which are produced based on element count information. + + The type of the elements in the source sequence, and in the lists in the result sequence. + Source sequence to produce buffers over. + Length of each buffer. + Number of elements to skip between creation of consecutive buffers. + An observable sequence of buffers. + is null. + or is less than or equal to zero. + + + + Dematerializes the explicit notification values of an observable sequence as implicit notifications. + + The type of the elements materialized in the source sequence notification objects. + An observable sequence containing explicit notification values which have to be turned into implicit notifications. + An observable sequence exhibiting the behavior corresponding to the source sequence's notification values. + is null. + + + + Returns an observable sequence that contains only distinct contiguous elements. + + The type of the elements in the source sequence. + An observable sequence to retain distinct contiguous elements for. + An observable sequence only containing the distinct contiguous elements from the source sequence. + is null. + + + + Returns an observable sequence that contains only distinct contiguous elements according to the comparer. + + The type of the elements in the source sequence. + An observable sequence to retain distinct contiguous elements for. + Equality comparer for source elements. + An observable sequence only containing the distinct contiguous elements from the source sequence. + or is null. + + + + Returns an observable sequence that contains only distinct contiguous elements according to the keySelector. + + The type of the elements in the source sequence. + The type of the discriminator key computed for each element in the source sequence. + An observable sequence to retain distinct contiguous elements for, based on a computed key value. + A function to compute the comparison key for each element. + An observable sequence only containing the distinct contiguous elements, based on a computed key value, from the source sequence. + or is null. + + + + Returns an observable sequence that contains only distinct contiguous elements according to the keySelector and the comparer. + + The type of the elements in the source sequence. + The type of the discriminator key computed for each element in the source sequence. + An observable sequence to retain distinct contiguous elements for, based on a computed key value. + A function to compute the comparison key for each element. + Equality comparer for computed key values. + An observable sequence only containing the distinct contiguous elements, based on a computed key value, from the source sequence. + or or is null. + + + + Invokes an action for each element in the observable sequence, and propagates all observer messages through the result sequence. + This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + + The type of the elements in the source sequence. + Source sequence. + Action to invoke for each element in the observable sequence. + The source sequence with the side-effecting behavior applied. + or is null. + + + + Invokes an action for each element in the observable sequence and invokes an action upon graceful termination of the observable sequence. + This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + + The type of the elements in the source sequence. + Source sequence. + Action to invoke for each element in the observable sequence. + Action to invoke upon graceful termination of the observable sequence. + The source sequence with the side-effecting behavior applied. + or or is null. + + + + Invokes an action for each element in the observable sequence and invokes an action upon exceptional termination of the observable sequence. + This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + + The type of the elements in the source sequence. + Source sequence. + Action to invoke for each element in the observable sequence. + Action to invoke upon exceptional termination of the observable sequence. + The source sequence with the side-effecting behavior applied. + or or is null. + + + + Invokes an action for each element in the observable sequence and invokes an action upon graceful or exceptional termination of the observable sequence. + This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + + The type of the elements in the source sequence. + Source sequence. + Action to invoke for each element in the observable sequence. + Action to invoke upon exceptional termination of the observable sequence. + Action to invoke upon graceful termination of the observable sequence. + The source sequence with the side-effecting behavior applied. + or or or is null. + + + + Invokes the observer's methods for each message in the source sequence. + This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + + The type of the elements in the source sequence. + Source sequence. + Observer whose methods to invoke as part of the source sequence's observation. + The source sequence with the side-effecting behavior applied. + or is null. + + + + Invokes a specified action after the source observable sequence terminates gracefully or exceptionally. + + The type of the elements in the source sequence. + Source sequence. + Action to invoke after the source observable sequence terminates. + Source sequence with the action-invoking termination behavior applied. + or is null. + + + + Ignores all elements in an observable sequence leaving only the termination messages. + + The type of the elements in the source sequence. + Source sequence. + An empty observable sequence that signals termination, successful or exceptional, of the source sequence. + is null. + + + + Materializes the implicit notifications of an observable sequence as explicit notification values. + + The type of the elements in the source sequence. + An observable sequence to get notification values for. + An observable sequence containing the materialized notification values from the source sequence. + is null. + + + + Prepend a value to an observable sequence. + + The type of the elements in the source sequence. + Source sequence to prepend the value to. + Value to prepend to the specified sequence. + The source sequence prepended with the specified value. + is null. + + + + Prepend a value to an observable sequence. + + The type of the elements in the source sequence. + Source sequence to prepend the value to. + Value to prepend to the specified sequence. + Scheduler to emit the prepend values on. + The source sequence prepended with the specified value. + is null. + + + + Repeats the observable sequence indefinitely. + + The type of the elements in the source sequence. + Observable sequence to repeat. + The observable sequence producing the elements of the given sequence repeatedly and sequentially. + is null. + + + + Repeats the observable sequence a specified number of times. + + The type of the elements in the source sequence. + Observable sequence to repeat. + Number of times to repeat the sequence. + The observable sequence producing the elements of the given sequence repeatedly. + is null. + is less than zero. + + + + Repeatedly resubscribes to the source observable after a normal completion and when the observable + returned by a handler produces an arbitrary item. + + The type of the elements in the source sequence. + The arbitrary element type signaled by the handler observable. + Observable sequence to keep repeating when it successfully terminates. + The function that is called for each observer and takes an observable sequence objects. + It should return an observable of arbitrary items that should signal that arbitrary item in + response to receiving the completion signal from the source observable. If this observable signals + a terminal event, the sequence is terminated with that signal instead. + An observable sequence producing the elements of the given sequence repeatedly while each repetition terminates successfully. + is null. + is null. + + + + Repeats the source observable sequence until it successfully terminates. + + The type of the elements in the source sequence. + Observable sequence to repeat until it successfully terminates. + An observable sequence producing the elements of the given sequence repeatedly until it terminates successfully. + is null. + + + + Repeats the source observable sequence the specified number of times or until it successfully terminates. + + The type of the elements in the source sequence. + Observable sequence to repeat until it successfully terminates. + Number of times to repeat the sequence. + An observable sequence producing the elements of the given sequence repeatedly until it terminates successfully. + is null. + is less than zero. + + + + Retries (resubscribes to) the source observable after a failure and when the observable + returned by a handler produces an arbitrary item. + + The type of the elements in the source sequence. + The arbitrary element type signaled by the handler observable. + Observable sequence to repeat until it successfully terminates. + The function that is called for each observer and takes an observable sequence of + errors. It should return an observable of arbitrary items that should signal that arbitrary item in + response to receiving the failure Exception from the source observable. If this observable signals + a terminal event, the sequence is terminated with that signal instead. + An observable sequence producing the elements of the given sequence repeatedly until it terminates successfully. + is null. + is null. + + + + Applies an accumulator function over an observable sequence and returns each intermediate result. The specified seed value is used as the initial accumulator value. + For aggregation behavior with no intermediate results, see . + + The type of the elements in the source sequence. + The type of the result of the aggregation. + An observable sequence to accumulate over. + The initial accumulator value. + An accumulator function to be invoked on each element. + An observable sequence containing the accumulated values. + or is null. + + + + Applies an accumulator function over an observable sequence and returns each intermediate result. + For aggregation behavior with no intermediate results, see . + + The type of the elements in the source sequence and the result of the aggregation. + An observable sequence to accumulate over. + An accumulator function to be invoked on each element. + An observable sequence containing the accumulated values. + or is null. + + + + Bypasses a specified number of elements at the end of an observable sequence. + + The type of the elements in the source sequence. + Source sequence. + Number of elements to bypass at the end of the source sequence. + An observable sequence containing the source sequence elements except for the bypassed ones at the end. + is null. + is less than zero. + + This operator accumulates a queue with a length enough to store the first elements. As more elements are + received, elements are taken from the front of the queue and produced on the result sequence. This causes elements to be delayed. + + + + + Prepends a sequence of values to an observable sequence. + + The type of the elements in the source sequence. + Source sequence to prepend values to. + Values to prepend to the specified sequence. + The source sequence prepended with the specified values. + or is null. + + + + Prepends a sequence of values to an observable sequence. + + The type of the elements in the source sequence. + Source sequence to prepend values to. + Values to prepend to the specified sequence. + The source sequence prepended with the specified values. + or is null. + + + + Prepends a sequence of values to an observable sequence. + + The type of the elements in the source sequence. + Source sequence to prepend values to. + Scheduler to emit the prepended values on. + Values to prepend to the specified sequence. + The source sequence prepended with the specified values. + or or is null. + + + + Prepends a sequence of values to an observable sequence. + + The type of the elements in the source sequence. + Source sequence to prepend values to. + Scheduler to emit the prepended values on. + Values to prepend to the specified sequence. + The source sequence prepended with the specified values. + or or is null. + + + + Returns a specified number of contiguous elements from the end of an observable sequence. + + The type of the elements in the source sequence. + Source sequence. + Number of elements to take from the end of the source sequence. + An observable sequence containing the specified number of elements from the end of the source sequence. + is null. + is less than zero. + + This operator accumulates a buffer with a length enough to store elements elements. Upon completion of + the source sequence, this buffer is drained on the result sequence. This causes the elements to be delayed. + + + + + Returns a specified number of contiguous elements from the end of an observable sequence, using the specified scheduler to drain the queue. + + The type of the elements in the source sequence. + Source sequence. + Number of elements to take from the end of the source sequence. + Scheduler used to drain the queue upon completion of the source sequence. + An observable sequence containing the specified number of elements from the end of the source sequence. + or is null. + is less than zero. + + This operator accumulates a buffer with a length enough to store elements elements. Upon completion of + the source sequence, this buffer is drained on the result sequence. This causes the elements to be delayed. + + + + + Returns a list with the specified number of contiguous elements from the end of an observable sequence. + + The type of the elements in the source sequence. + Source sequence. + Number of elements to take from the end of the source sequence. + An observable sequence containing a single list with the specified number of elements from the end of the source sequence. + is null. + is less than zero. + + This operator accumulates a buffer with a length enough to store elements. Upon completion of the + source sequence, this buffer is produced on the result sequence. + + + + + Projects each element of an observable sequence into consecutive non-overlapping windows which are produced based on element count information. + + The type of the elements in the source sequence, and in the windows in the result sequence. + Source sequence to produce windows over. + Length of each window. + An observable sequence of windows. + is null. + is less than or equal to zero. + + + + Projects each element of an observable sequence into zero or more windows which are produced based on element count information. + + The type of the elements in the source sequence, and in the windows in the result sequence. + Source sequence to produce windows over. + Length of each window. + Number of elements to skip between creation of consecutive windows. + An observable sequence of windows. + is null. + or is less than or equal to zero. + + + + Converts the elements of an observable sequence to the specified type. + + The type to convert the elements in the source sequence to. + The observable sequence that contains the elements to be converted. + An observable sequence that contains each element of the source sequence converted to the specified type. + is null. + + + + Returns the elements of the specified sequence or the type parameter's default value in a singleton sequence if the sequence is empty. + + The type of the elements in the source sequence (if any), whose default value will be taken if the sequence is empty. + The sequence to return a default value for if it is empty. + An observable sequence that contains the default value for the TSource type if the source is empty; otherwise, the elements of the source itself. + is null. + + + + Returns the elements of the specified sequence or the specified value in a singleton sequence if the sequence is empty. + + The type of the elements in the source sequence (if any), and the specified default value which will be taken if the sequence is empty. + The sequence to return the specified value for if it is empty. + The value to return if the sequence is empty. + An observable sequence that contains the specified default value if the source is empty; otherwise, the elements of the source itself. + is null. + + + + Returns an observable sequence that contains only distinct elements. + + The type of the elements in the source sequence. + An observable sequence to retain distinct elements for. + An observable sequence only containing the distinct elements from the source sequence. + is null. + Usage of this operator should be considered carefully due to the maintenance of an internal lookup structure which can grow large. + + + + Returns an observable sequence that contains only distinct elements according to the comparer. + + The type of the elements in the source sequence. + An observable sequence to retain distinct elements for. + Equality comparer for source elements. + An observable sequence only containing the distinct elements from the source sequence. + or is null. + Usage of this operator should be considered carefully due to the maintenance of an internal lookup structure which can grow large. + + + + Returns an observable sequence that contains only distinct elements according to the keySelector. + + The type of the elements in the source sequence. + The type of the discriminator key computed for each element in the source sequence. + An observable sequence to retain distinct elements for. + A function to compute the comparison key for each element. + An observable sequence only containing the distinct elements, based on a computed key value, from the source sequence. + or is null. + Usage of this operator should be considered carefully due to the maintenance of an internal lookup structure which can grow large. + + + + Returns an observable sequence that contains only distinct elements according to the keySelector and the comparer. + + The type of the elements in the source sequence. + The type of the discriminator key computed for each element in the source sequence. + An observable sequence to retain distinct elements for. + A function to compute the comparison key for each element. + Equality comparer for source elements. + An observable sequence only containing the distinct elements, based on a computed key value, from the source sequence. + or or is null. + Usage of this operator should be considered carefully due to the maintenance of an internal lookup structure which can grow large. + + + + Groups the elements of an observable sequence according to a specified key selector function. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + An observable sequence whose elements to group. + A function to extract the key for each element. + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + or is null. + + + + Groups the elements of an observable sequence according to a specified key selector function and comparer. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + An observable sequence whose elements to group. + A function to extract the key for each element. + An equality comparer to compare keys with. + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + or or is null. + + + + Groups the elements of an observable sequence and selects the resulting elements by using a specified function. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements within the groups computed for each element in the source sequence. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to map each source element to an element in an observable group. + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + or or is null. + + + + Groups the elements of an observable sequence according to a specified key selector function and comparer and selects the resulting elements by using a specified function. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements within the groups computed for each element in the source sequence. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to map each source element to an element in an observable group. + An equality comparer to compare keys with. + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + or or or is null. + + + + Groups the elements of an observable sequence with the specified initial capacity according to a specified key selector function. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + An observable sequence whose elements to group. + A function to extract the key for each element. + The initial number of elements that the underlying dictionary can contain. + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + or is null. + is less than 0. + + + + Groups the elements of an observable sequence with the specified initial capacity according to a specified key selector function and comparer. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + An observable sequence whose elements to group. + A function to extract the key for each element. + The initial number of elements that the underlying dictionary can contain. + An equality comparer to compare keys with. + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + or or is null. + is less than 0. + + + + Groups the elements of an observable sequence with the specified initial capacity and selects the resulting elements by using a specified function. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements within the groups computed for each element in the source sequence. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to map each source element to an element in an observable group. + The initial number of elements that the underlying dictionary can contain. + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + or or is null. + is less than 0. + + + + Groups the elements of an observable sequence with the specified initial capacity according to a specified key selector function and comparer and selects the resulting elements by using a specified function. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements within the groups computed for each element in the source sequence. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to map each source element to an element in an observable group. + The initial number of elements that the underlying dictionary can contain. + An equality comparer to compare keys with. + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + or or or is null. + is less than 0. + + + + Groups the elements of an observable sequence according to a specified key selector function and comparer and selects the resulting elements by using a specified function. + A duration selector function is used to control the lifetime of groups. When a group expires, it receives an OnCompleted notification. When a new element with the same + key value as a reclaimed group occurs, the group will be reborn with a new lifetime request. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements within the groups computed for each element in the source sequence. + The type of the elements in the duration sequences obtained for each group to denote its lifetime. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to map each source element to an element in an observable group. + A function to signal the expiration of a group. + An equality comparer to compare keys with. + + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + If a group's lifetime expires, a new group with the same key value can be created once an element with such a key value is encountered. + + or or or or is null. + + + + Groups the elements of an observable sequence according to a specified key selector function and selects the resulting elements by using a specified function. + A duration selector function is used to control the lifetime of groups. When a group expires, it receives an OnCompleted notification. When a new element with the same + key value as a reclaimed group occurs, the group will be reborn with a new lifetime request. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements within the groups computed for each element in the source sequence. + The type of the elements in the duration sequences obtained for each group to denote its lifetime. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to map each source element to an element in an observable group. + A function to signal the expiration of a group. + + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + If a group's lifetime expires, a new group with the same key value can be created once an element with such a key value is encountered. + + or or or is null. + + + + Groups the elements of an observable sequence according to a specified key selector function and comparer. + A duration selector function is used to control the lifetime of groups. When a group expires, it receives an OnCompleted notification. When a new element with the same + key value as a reclaimed group occurs, the group will be reborn with a new lifetime request. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements in the duration sequences obtained for each group to denote its lifetime. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to signal the expiration of a group. + An equality comparer to compare keys with. + + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + If a group's lifetime expires, a new group with the same key value can be created once an element with such a key value is encountered. + + or or or is null. + + + + Groups the elements of an observable sequence according to a specified key selector function. + A duration selector function is used to control the lifetime of groups. When a group expires, it receives an OnCompleted notification. When a new element with the same + key value as a reclaimed group occurs, the group will be reborn with a new lifetime request. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements in the duration sequences obtained for each group to denote its lifetime. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to signal the expiration of a group. + + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + If a group's lifetime expires, a new group with the same key value can be created once an element with such a key value is encountered. + + or or is null. + + + + Groups the elements of an observable sequence with the specified initial capacity according to a specified key selector function and comparer and selects the resulting elements by using a specified function. + A duration selector function is used to control the lifetime of groups. When a group expires, it receives an OnCompleted notification. When a new element with the same + key value as a reclaimed group occurs, the group will be reborn with a new lifetime request. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements within the groups computed for each element in the source sequence. + The type of the elements in the duration sequences obtained for each group to denote its lifetime. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to map each source element to an element in an observable group. + A function to signal the expiration of a group. + The initial number of elements that the underlying dictionary can contain. + An equality comparer to compare keys with. + + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + If a group's lifetime expires, a new group with the same key value can be created once an element with such a key value is encountered. + + or or or or is null. + is less than 0. + + + + Groups the elements of an observable sequence with the specified initial capacity according to a specified key selector function and selects the resulting elements by using a specified function. + A duration selector function is used to control the lifetime of groups. When a group expires, it receives an OnCompleted notification. When a new element with the same + key value as a reclaimed group occurs, the group will be reborn with a new lifetime request. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements within the groups computed for each element in the source sequence. + The type of the elements in the duration sequences obtained for each group to denote its lifetime. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to map each source element to an element in an observable group. + A function to signal the expiration of a group. + The initial number of elements that the underlying dictionary can contain. + + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + If a group's lifetime expires, a new group with the same key value can be created once an element with such a key value is encountered. + + or or or is null. + is less than 0. + + + + Groups the elements of an observable sequence with the specified initial capacity according to a specified key selector function and comparer. + A duration selector function is used to control the lifetime of groups. When a group expires, it receives an OnCompleted notification. When a new element with the same + key value as a reclaimed group occurs, the group will be reborn with a new lifetime request. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements in the duration sequences obtained for each group to denote its lifetime. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to signal the expiration of a group. + The initial number of elements that the underlying dictionary can contain. + An equality comparer to compare keys with. + + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + If a group's lifetime expires, a new group with the same key value can be created once an element with such a key value is encountered. + + or or or is null. + is less than 0. + + + + Groups the elements of an observable sequence with the specified initial capacity according to a specified key selector function. + A duration selector function is used to control the lifetime of groups. When a group expires, it receives an OnCompleted notification. When a new element with the same + key value as a reclaimed group occurs, the group will be reborn with a new lifetime request. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements in the duration sequences obtained for each group to denote its lifetime. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to signal the expiration of a group. + The initial number of elements that the underlying dictionary can contain. + + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + If a group's lifetime expires, a new group with the same key value can be created once an element with such a key value is encountered. + + or or is null. + is less than 0. + + + + Correlates the elements of two sequences based on overlapping durations, and groups the results. + + The type of the elements in the left source sequence. + The type of the elements in the right source sequence. + The type of the elements in the duration sequence denoting the computed duration of each element in the left source sequence. + The type of the elements in the duration sequence denoting the computed duration of each element in the right source sequence. + The type of the elements in the result sequence, obtained by invoking the result selector function for source elements with overlapping duration. + The left observable sequence to join elements for. + The right observable sequence to join elements for. + A function to select the duration of each element of the left observable sequence, used to determine overlap. + A function to select the duration of each element of the right observable sequence, used to determine overlap. + A function invoked to compute a result element for any element of the left sequence with overlapping elements from the right observable sequence. + An observable sequence that contains result elements computed from source elements that have an overlapping duration. + or or or or is null. + + + + Correlates the elements of two sequences based on overlapping durations. + + The type of the elements in the left source sequence. + The type of the elements in the right source sequence. + The type of the elements in the duration sequence denoting the computed duration of each element in the left source sequence. + The type of the elements in the duration sequence denoting the computed duration of each element in the right source sequence. + The type of the elements in the result sequence, obtained by invoking the result selector function for source elements with overlapping duration. + The left observable sequence to join elements for. + The right observable sequence to join elements for. + A function to select the duration of each element of the left observable sequence, used to determine overlap. + A function to select the duration of each element of the right observable sequence, used to determine overlap. + A function invoked to compute a result element for any two overlapping elements of the left and right observable sequences. + An observable sequence that contains result elements computed from source elements that have an overlapping duration. + or or or or is null. + + + + Filters the elements of an observable sequence based on the specified type. + + The type to filter the elements in the source sequence on. + The observable sequence that contains the elements to be filtered. + An observable sequence that contains elements from the input sequence of type TResult. + is null. + + + + Projects each element of an observable sequence into a new form. + + The type of the elements in the source sequence. + The type of the elements in the result sequence, obtained by running the selector function for each element in the source sequence. + A sequence of elements to invoke a transform function on. + A transform function to apply to each source element. + An observable sequence whose elements are the result of invoking the transform function on each element of source. + or is null. + + + + Projects each element of an observable sequence into a new form by incorporating the element's index. + + The type of the elements in the source sequence. + The type of the elements in the result sequence, obtained by running the selector function for each element in the source sequence. + A sequence of elements to invoke a transform function on. + A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + An observable sequence whose elements are the result of invoking the transform function on each element of source. + or is null. + + + + Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the other sequence and the elements in the result sequence. + An observable sequence of elements to project. + An observable sequence to project each element from the source sequence onto. + An observable sequence whose elements are the result of projecting each source element onto the other sequence and merging all the resulting sequences together. + or is null. + + + + Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected inner sequences and the elements in the merged result sequence. + An observable sequence of elements to project. + A transform function to apply to each element. + An observable sequence whose elements are the result of invoking the one-to-many transform function on each element of the input sequence. + or is null. + + + + Projects each element of an observable sequence to an observable sequence by incorporating the element's index and merges the resulting observable sequences into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected inner sequences and the elements in the merged result sequence. + An observable sequence of elements to project. + A transform function to apply to each element; the second parameter of the function represents the index of the source element. + An observable sequence whose elements are the result of invoking the one-to-many transform function on each element of the input sequence. + or is null. + + + + Projects each element of an observable sequence to a task and merges all of the task results into one observable sequence. + + The type of the elements in the source sequence. + The type of the result produced by the projected tasks and the elements in the merged result sequence. + An observable sequence of elements to project. + A transform function to apply to each element. + An observable sequence whose elements are the result of the tasks executed for each element of the input sequence. + This overload supports composition of observable sequences and tasks, without requiring manual conversion of the tasks to observable sequences using . + or is null. + + + + Projects each element of an observable sequence to a task by incorporating the element's index and merges all of the task results into one observable sequence. + + The type of the elements in the source sequence. + The type of the result produced by the projected tasks and the elements in the merged result sequence. + An observable sequence of elements to project. + A transform function to apply to each element; the second parameter of the function represents the index of the source element. + An observable sequence whose elements are the result of the tasks executed for each element of the input sequence. + This overload supports composition of observable sequences and tasks, without requiring manual conversion of the tasks to observable sequences using . + or is null. + + + + Projects each element of an observable sequence to a task with cancellation support and merges all of the task results into one observable sequence. + + The type of the elements in the source sequence. + The type of the result produced by the projected tasks and the elements in the merged result sequence. + An observable sequence of elements to project. + A transform function to apply to each element. + An observable sequence whose elements are the result of the tasks executed for each element of the input sequence. + This overload supports composition of observable sequences and tasks, without requiring manual conversion of the tasks to observable sequences using . + or is null. + + + + Projects each element of an observable sequence to a task by incorporating the element's index with cancellation support and merges all of the task results into one observable sequence. + + The type of the elements in the source sequence. + The type of the result produced by the projected tasks and the elements in the merged result sequence. + An observable sequence of elements to project. + A transform function to apply to each element; the second parameter of the function represents the index of the source element. + An observable sequence whose elements are the result of the tasks executed for each element of the input sequence. + This overload supports composition of observable sequences and tasks, without requiring manual conversion of the tasks to observable sequences using . + or is null. + + + + Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected intermediate sequences. + The type of the elements in the result sequence, obtained by using the selector to combine source sequence elements with their corresponding intermediate sequence elements. + An observable sequence of elements to project. + A transform function to apply to each element. + A transform function to apply to each element of the intermediate sequence. + An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + or or is null. + + + + Projects each element of an observable sequence to an observable sequence by incorporating the element's index, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected intermediate sequences. + The type of the elements in the result sequence, obtained by using the selector to combine source sequence elements with their corresponding intermediate sequence elements. + An observable sequence of elements to project. + A transform function to apply to each element; the second parameter of the function represents the index of the source element. + A transform function to apply to each element of the intermediate sequence; the second parameter of the function represents the index of the source element and the fourth parameter represents the index of the intermediate element. + An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + or or is null. + + + + Projects each element of an observable sequence to a task, invokes the result selector for the source element and the task result, and merges the results into one observable sequence. + + The type of the elements in the source sequence. + The type of the results produced by the projected intermediate tasks. + The type of the elements in the result sequence, obtained by using the selector to combine source sequence elements with their corresponding intermediate task results. + An observable sequence of elements to project. + A transform function to apply to each element. + A transform function to apply to each element of the intermediate sequence. + An observable sequence whose elements are the result of obtaining a task for each element of the input sequence and then mapping the task's result and its corresponding source element to a result element. + or or is null. + This overload supports using LINQ query comprehension syntax in C# and Visual Basic to compose observable sequences and tasks, without requiring manual conversion of the tasks to observable sequences using . + + + + Projects each element of an observable sequence to a task by incorporating the element's index, invokes the result selector for the source element and the task result, and merges the results into one observable sequence. + + The type of the elements in the source sequence. + The type of the results produced by the projected intermediate tasks. + The type of the elements in the result sequence, obtained by using the selector to combine source sequence elements with their corresponding intermediate task results. + An observable sequence of elements to project. + A transform function to apply to each element; the second parameter of the function represents the index of the source element. + A transform function to apply to each element of the intermediate sequence; the second parameter of the function represents the index of the source element. + An observable sequence whose elements are the result of obtaining a task for each element of the input sequence and then mapping the task's result and its corresponding source element to a result element. + or or is null. + This overload supports using LINQ query comprehension syntax in C# and Visual Basic to compose observable sequences and tasks, without requiring manual conversion of the tasks to observable sequences using . + + + + Projects each element of an observable sequence to a task with cancellation support, invokes the result selector for the source element and the task result, and merges the results into one observable sequence. + + The type of the elements in the source sequence. + The type of the results produced by the projected intermediate tasks. + The type of the elements in the result sequence, obtained by using the selector to combine source sequence elements with their corresponding intermediate task results. + An observable sequence of elements to project. + A transform function to apply to each element. + A transform function to apply to each element of the intermediate sequence. + An observable sequence whose elements are the result of obtaining a task for each element of the input sequence and then mapping the task's result and its corresponding source element to a result element. + or or is null. + This overload supports using LINQ query comprehension syntax in C# and Visual Basic to compose observable sequences and tasks, without requiring manual conversion of the tasks to observable sequences using . + + + + Projects each element of an observable sequence to a task by incorporating the element's index with cancellation support, invokes the result selector for the source element and the task result, and merges the results into one observable sequence. + + The type of the elements in the source sequence. + The type of the results produced by the projected intermediate tasks. + The type of the elements in the result sequence, obtained by using the selector to combine source sequence elements with their corresponding intermediate task results. + An observable sequence of elements to project. + A transform function to apply to each element; the second parameter of the function represents the index of the source element. + A transform function to apply to each element of the intermediate sequence; the second parameter of the function represents the index of the source element. + An observable sequence whose elements are the result of obtaining a task for each element of the input sequence and then mapping the task's result and its corresponding source element to a result element. + or or is null. + This overload supports using LINQ query comprehension syntax in C# and Visual Basic to compose observable sequences and tasks, without requiring manual conversion of the tasks to observable sequences using . + + + + Projects each notification of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected inner sequences and the elements in the merged result sequence. + An observable sequence of notifications to project. + A transform function to apply to each element. + A transform function to apply when an error occurs in the source sequence. + A transform function to apply when the end of the source sequence is reached. + An observable sequence whose elements are the result of invoking the one-to-many transform function corresponding to each notification in the input sequence. + or or or is null. + + + + Projects each notification of an observable sequence to an observable sequence by incorporating the element's index and merges the resulting observable sequences into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected inner sequences and the elements in the merged result sequence. + An observable sequence of notifications to project. + A transform function to apply to each element; the second parameter of the function represents the index of the source element. + A transform function to apply when an error occurs in the source sequence. + A transform function to apply when the end of the source sequence is reached. + An observable sequence whose elements are the result of invoking the one-to-many transform function corresponding to each notification in the input sequence. + or or or is null. + + + + Projects each element of an observable sequence to an enumerable sequence and concatenates the resulting enumerable sequences into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected inner enumerable sequences and the elements in the merged result sequence. + An observable sequence of elements to project. + A transform function to apply to each element. + An observable sequence whose elements are the result of invoking the one-to-many transform function on each element of the input sequence. + or is null. + The projected sequences are enumerated synchronously within the OnNext call of the source sequence. In order to do a concurrent, non-blocking merge, change the selector to return an observable sequence obtained using the conversion. + + + + Projects each element of an observable sequence to an enumerable sequence by incorporating the element's index and concatenates the resulting enumerable sequences into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected inner enumerable sequences and the elements in the merged result sequence. + An observable sequence of elements to project. + A transform function to apply to each element; the second parameter of the function represents the index of the source element. + An observable sequence whose elements are the result of invoking the one-to-many transform function on each element of the input sequence. + or is null. + The projected sequences are enumerated synchronously within the OnNext call of the source sequence. In order to do a concurrent, non-blocking merge, change the selector to return an observable sequence obtained using the conversion. + + + + Projects each element of an observable sequence to an enumerable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected intermediate enumerable sequences. + The type of the elements in the result sequence, obtained by using the selector to combine source sequence elements with their corresponding intermediate sequence elements. + An observable sequence of elements to project. + A transform function to apply to each element. + A transform function to apply to each element of the intermediate sequence. + An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + or or is null. + The projected sequences are enumerated synchronously within the OnNext call of the source sequence. In order to do a concurrent, non-blocking merge, change the selector to return an observable sequence obtained using the conversion. + + + + Projects each element of an observable sequence to an enumerable sequence by incorporating the element's index, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected intermediate enumerable sequences. + The type of the elements in the result sequence, obtained by using the selector to combine source sequence elements with their corresponding intermediate sequence elements. + An observable sequence of elements to project. + A transform function to apply to each element; the second parameter of the function represents the index of the source element. + A transform function to apply to each element of the intermediate sequence; the second parameter of the function represents the index of the source element and the fourth parameter represents the index of the intermediate element. + An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + or or is null. + The projected sequences are enumerated synchronously within the OnNext call of the source sequence. In order to do a concurrent, non-blocking merge, change the selector to return an observable sequence obtained using the conversion. + + + + Bypasses a specified number of elements in an observable sequence and then returns the remaining elements. + + The type of the elements in the source sequence. + The sequence to take elements from. + The number of elements to skip before returning the remaining elements. + An observable sequence that contains the elements that occur after the specified index in the input sequence. + is null. + is less than zero. + + + + Bypasses elements in an observable sequence as long as a specified condition is true and then returns the remaining elements. + + The type of the elements in the source sequence. + An observable sequence to return elements from. + A function to test each element for a condition. + An observable sequence that contains the elements from the input sequence starting at the first element in the linear series that does not pass the test specified by predicate. + or is null. + + + + Bypasses elements in an observable sequence as long as a specified condition is true and then returns the remaining elements. + The element's index is used in the logic of the predicate function. + + The type of the elements in the source sequence. + An observable sequence to return elements from. + A function to test each element for a condition; the second parameter of the function represents the index of the source element. + An observable sequence that contains the elements from the input sequence starting at the first element in the linear series that does not pass the test specified by predicate. + or is null. + + + + Returns a specified number of contiguous elements from the start of an observable sequence. + + The type of the elements in the source sequence. + The sequence to take elements from. + The number of elements to return. + An observable sequence that contains the specified number of elements from the start of the input sequence. + is null. + is less than zero. + + + + Returns a specified number of contiguous elements from the start of an observable sequence, using the specified scheduler for the edge case of Take(0). + + The type of the elements in the source sequence. + The sequence to take elements from. + The number of elements to return. + Scheduler used to produce an OnCompleted message in case count is set to 0. + An observable sequence that contains the specified number of elements from the start of the input sequence. + or is null. + is less than zero. + + + + Returns elements from an observable sequence as long as a specified condition is true. + + The type of the elements in the source sequence. + A sequence to return elements from. + A function to test each element for a condition. + An observable sequence that contains the elements from the input sequence that occur before the element at which the test no longer passes. + or is null. + + + + Returns elements from an observable sequence as long as a specified condition is true. + The element's index is used in the logic of the predicate function. + + The type of the elements in the source sequence. + A sequence to return elements from. + A function to test each element for a condition; the second parameter of the function represents the index of the source element. + An observable sequence that contains the elements from the input sequence that occur before the element at which the test no longer passes. + or is null. + + + + Filters the elements of an observable sequence based on a predicate. + + The type of the elements in the source sequence. + An observable sequence whose elements to filter. + A function to test each source element for a condition. + An observable sequence that contains elements from the input sequence that satisfy the condition. + or is null. + + + + Filters the elements of an observable sequence based on a predicate by incorporating the element's index. + + The type of the elements in the source sequence. + An observable sequence whose elements to filter. + A function to test each source element for a condition; the second parameter of the function represents the index of the source element. + An observable sequence that contains elements from the input sequence that satisfy the condition. + or is null. + + + + Projects each element of an observable sequence into consecutive non-overlapping buffers which are produced based on timing information. + + The type of the elements in the source sequence, and in the lists in the result sequence. + Source sequence to produce buffers over. + Length of each buffer. + An observable sequence of buffers. + is null. + is less than TimeSpan.Zero. + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create buffers as fast as it can. + Because all source sequence elements end up in one of the buffers, some buffers won't have a zero time span. This is a side-effect of the asynchrony introduced + by the scheduler, where the action to close the current buffer and to create a new buffer may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Projects each element of an observable sequence into consecutive non-overlapping buffers which are produced based on timing information, using the specified scheduler to run timers. + + The type of the elements in the source sequence, and in the lists in the result sequence. + Source sequence to produce buffers over. + Length of each buffer. + Scheduler to run buffering timers on. + An observable sequence of buffers. + or is null. + is less than TimeSpan.Zero. + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create buffers as fast as it can. + Because all source sequence elements end up in one of the buffers, some buffers won't have a zero time span. This is a side-effect of the asynchrony introduced + by the scheduler, where the action to close the current buffer and to create a new buffer may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Projects each element of an observable sequence into zero or more buffers which are produced based on timing information. + + The type of the elements in the source sequence, and in the lists in the result sequence. + Source sequence to produce buffers over. + Length of each buffer. + Interval between creation of consecutive buffers. + An observable sequence of buffers. + is null. + or is less than TimeSpan.Zero. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create buffers with minimum duration + length. However, some buffers won't have a zero time span. This is a side-effect of the asynchrony introduced by the scheduler, where the action to close the + current buffer may not execute immediately, despite the TimeSpan.Zero due time. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create buffers as fast as it can. + However, this doesn't mean all buffers will start at the beginning of the source sequence. This is a side-effect of the asynchrony introduced by the scheduler, + where the action to create a new buffer may not execute immediately, despite the TimeSpan.Zero due time. + + + + + + Projects each element of an observable sequence into zero or more buffers which are produced based on timing information, using the specified scheduler to run timers. + + The type of the elements in the source sequence, and in the lists in the result sequence. + Source sequence to produce buffers over. + Length of each buffer. + Interval between creation of consecutive buffers. + Scheduler to run buffering timers on. + An observable sequence of buffers. + or is null. + or is less than TimeSpan.Zero. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create buffers with minimum duration + length. However, some buffers won't have a zero time span. This is a side-effect of the asynchrony introduced by the scheduler, where the action to close the + current buffer may not execute immediately, despite the TimeSpan.Zero due time. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create buffers as fast as it can. + However, this doesn't mean all buffers will start at the beginning of the source sequence. This is a side-effect of the asynchrony introduced by the scheduler, + where the action to create a new buffer may not execute immediately, despite the TimeSpan.Zero due time. + + + + + + Projects each element of an observable sequence into a buffer that's sent out when either it's full or a given amount of time has elapsed. + A useful real-world analogy of this overload is the behavior of a ferry leaving the dock when all seats are taken, or at the scheduled time of departure, whichever event occurs first. + + The type of the elements in the source sequence, and in the lists in the result sequence. + Source sequence to produce buffers over. + Maximum time length of a window. + Maximum element count of a window. + An observable sequence of buffers. + is null. + is less than TimeSpan.Zero. -or- is less than or equal to zero. + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create buffers as fast as it can. + Because all source sequence elements end up in one of the buffers, some buffers won't have a zero time span. This is a side-effect of the asynchrony introduced + by the scheduler, where the action to close the current buffer and to create a new buffer may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Projects each element of an observable sequence into a buffer that's sent out when either it's full or a given amount of time has elapsed, using the specified scheduler to run timers. + A useful real-world analogy of this overload is the behavior of a ferry leaving the dock when all seats are taken, or at the scheduled time of departure, whichever event occurs first. + + The type of the elements in the source sequence, and in the lists in the result sequence. + Source sequence to produce buffers over. + Maximum time length of a buffer. + Maximum element count of a buffer. + Scheduler to run buffering timers on. + An observable sequence of buffers. + or is null. + is less than TimeSpan.Zero. -or- is less than or equal to zero. + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create buffers as fast as it can. + Because all source sequence elements end up in one of the buffers, some buffers won't have a zero time span. This is a side-effect of the asynchrony introduced + by the scheduler, where the action to close the current buffer and to create a new buffer may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Time shifts the observable sequence by the specified relative time duration. + The relative time intervals between the values are preserved. + + The type of the elements in the source sequence. + Source sequence to delay values for. + Relative time by which to shift the observable sequence. If this value is equal to TimeSpan.Zero, the scheduler will dispatch observer callbacks as soon as possible. + Time-shifted sequence. + is null. + is less than TimeSpan.Zero. + + + This operator is less efficient than DelaySubscription because it records all notifications and time-delays those. This allows for immediate propagation of errors. + + + Observer callbacks for the resulting sequence will be run on the default scheduler. This effect is similar to using ObserveOn. + + + Exceptions signaled by the source sequence through an OnError callback are forwarded immediately to the result sequence. Any OnNext notifications that were in the queue at the point of the OnError callback will be dropped. + In order to delay error propagation, consider using the Observable.Materialize and Observable.Dematerialize operators, or use DelaySubscription. + + + + + + Time shifts the observable sequence by the specified relative time duration, using the specified scheduler to run timers. + The relative time intervals between the values are preserved. + + The type of the elements in the source sequence. + Source sequence to delay values for. + Relative time by which to shift the observable sequence. If this value is equal to TimeSpan.Zero, the scheduler will dispatch observer callbacks as soon as possible. + Scheduler to run the delay timers on. + Time-shifted sequence. + or is null. + is less than TimeSpan.Zero. + + + This operator is less efficient than DelaySubscription because it records all notifications and time-delays those. This allows for immediate propagation of errors. + + + Observer callbacks for the resulting sequence will be run on the specified scheduler. This effect is similar to using ObserveOn. + + + Exceptions signaled by the source sequence through an OnError callback are forwarded immediately to the result sequence. Any OnNext notifications that were in the queue at the point of the OnError callback will be dropped. + + + Exceptions signaled by the source sequence through an OnError callback are forwarded immediately to the result sequence. Any OnNext notifications that were in the queue at the point of the OnError callback will be dropped. + In order to delay error propagation, consider using the Observable.Materialize and Observable.Dematerialize operators, or use DelaySubscription. + + + + + + Time shifts the observable sequence to start propagating notifications at the specified absolute time. + The relative time intervals between the values are preserved. + + The type of the elements in the source sequence. + Source sequence to delay values for. + Absolute time used to shift the observable sequence; the relative time shift gets computed upon subscription. If this value is less than or equal to DateTimeOffset.UtcNow, the scheduler will dispatch observer callbacks as soon as possible. + Time-shifted sequence. + is null. + + + This operator is less efficient than DelaySubscription because it records all notifications and time-delays those. This allows for immediate propagation of errors. + + + Observer callbacks for the resulting sequence will be run on the default scheduler. This effect is similar to using ObserveOn. + + + Exceptions signaled by the source sequence through an OnError callback are forwarded immediately to the result sequence. Any OnNext notifications that were in the queue at the point of the OnError callback will be dropped. + In order to delay error propagation, consider using the Observable.Materialize and Observable.Dematerialize operators, or use DelaySubscription. + + + + + + Time shifts the observable sequence to start propagating notifications at the specified absolute time, using the specified scheduler to run timers. + The relative time intervals between the values are preserved. + + The type of the elements in the source sequence. + Source sequence to delay values for. + Absolute time used to shift the observable sequence; the relative time shift gets computed upon subscription. If this value is less than or equal to DateTimeOffset.UtcNow, the scheduler will dispatch observer callbacks as soon as possible. + Scheduler to run the delay timers on. + Time-shifted sequence. + or is null. + + + This operator is less efficient than DelaySubscription because it records all notifications and time-delays those. This allows for immediate propagation of errors. + + + Observer callbacks for the resulting sequence will be run on the specified scheduler. This effect is similar to using ObserveOn. + + + Exceptions signaled by the source sequence through an OnError callback are forwarded immediately to the result sequence. Any OnNext notifications that were in the queue at the point of the OnError callback will be dropped. + In order to delay error propagation, consider using the Observable.Materialize and Observable.Dematerialize operators, or use DelaySubscription. + + + + + + Time shifts the observable sequence based on a delay selector function for each element. + + The type of the elements in the source sequence. + The type of the elements in the delay sequences used to denote the delay duration of each element in the source sequence. + Source sequence to delay values for. + Selector function to retrieve a sequence indicating the delay for each given element. + Time-shifted sequence. + or is null. + + + + Time shifts the observable sequence based on a subscription delay and a delay selector function for each element. + + The type of the elements in the source sequence. + The type of the elements in the delay sequences used to denote the delay duration of each element in the source sequence. + Source sequence to delay values for. + Sequence indicating the delay for the subscription to the source. + Selector function to retrieve a sequence indicating the delay for each given element. + Time-shifted sequence. + or or is null. + + + + Time shifts the observable sequence by delaying the subscription with the specified relative time duration. + + The type of the elements in the source sequence. + Source sequence to delay subscription for. + Relative time shift of the subscription. + Time-shifted sequence. + is null. + is less than TimeSpan.Zero. + + + This operator is more efficient than Delay but postpones all side-effects of subscription and affects error propagation timing. + + + The side-effects of subscribing to the source sequence will be run on the default scheduler. Observer callbacks will not be affected. + + + + + + Time shifts the observable sequence by delaying the subscription with the specified relative time duration, using the specified scheduler to run timers. + + The type of the elements in the source sequence. + Source sequence to delay subscription for. + Relative time shift of the subscription. + Scheduler to run the subscription delay timer on. + Time-shifted sequence. + or is null. + is less than TimeSpan.Zero. + + + This operator is more efficient than Delay but postpones all side-effects of subscription and affects error propagation timing. + + + The side-effects of subscribing to the source sequence will be run on the specified scheduler. Observer callbacks will not be affected. + + + + + + Time shifts the observable sequence by delaying the subscription to the specified absolute time. + + The type of the elements in the source sequence. + Source sequence to delay subscription for. + Absolute time to perform the subscription at. + Time-shifted sequence. + is null. + + + This operator is more efficient than Delay but postpones all side-effects of subscription and affects error propagation timing. + + + The side-effects of subscribing to the source sequence will be run on the default scheduler. Observer callbacks will not be affected. + + + + + + Time shifts the observable sequence by delaying the subscription to the specified absolute time, using the specified scheduler to run timers. + + The type of the elements in the source sequence. + Source sequence to delay subscription for. + Absolute time to perform the subscription at. + Scheduler to run the subscription delay timer on. + Time-shifted sequence. + or is null. + + + This operator is more efficient than Delay but postpones all side-effects of subscription and affects error propagation timing. + + + The side-effects of subscribing to the source sequence will be run on the specified scheduler. Observer callbacks will not be affected. + + + + + + Generates an observable sequence by running a state-driven and temporal loop producing the sequence's elements. + + The type of the state used in the generator loop. + The type of the elements in the produced sequence. + Initial state. + Condition to terminate generation (upon returning false). + Iteration step function. + Selector function for results produced in the sequence. + Time selector function to control the speed of values being produced each iteration. + The generated sequence. + or or or is null. + + + + Generates an observable sequence by running a state-driven and temporal loop producing the sequence's elements, using the specified scheduler to run timers and to send out observer messages. + + The type of the state used in the generator loop. + The type of the elements in the produced sequence. + Initial state. + Condition to terminate generation (upon returning false). + Iteration step function. + Selector function for results produced in the sequence. + Time selector function to control the speed of values being produced each iteration. + Scheduler on which to run the generator loop. + The generated sequence. + or or or or is null. + + + + Generates an observable sequence by running a state-driven and temporal loop producing the sequence's elements. + + The type of the state used in the generator loop. + The type of the elements in the produced sequence. + Initial state. + Condition to terminate generation (upon returning false). + Iteration step function. + Selector function for results produced in the sequence. + Time selector function to control the speed of values being produced each iteration. + The generated sequence. + or or or is null. + + + + Generates an observable sequence by running a state-driven and temporal loop producing the sequence's elements, using the specified scheduler to run timers and to send out observer messages. + + The type of the state used in the generator loop. + The type of the elements in the produced sequence. + Initial state. + Condition to terminate generation (upon returning false). + Iteration step function. + Selector function for results produced in the sequence. + Time selector function to control the speed of values being produced each iteration. + Scheduler on which to run the generator loop. + The generated sequence. + or or or or is null. + + + + Returns an observable sequence that produces a value after each period. + + Period for producing the values in the resulting sequence. If this value is equal to TimeSpan.Zero, the timer will recur as fast as possible. + An observable sequence that produces a value after each period. + is less than TimeSpan.Zero. + + Intervals are measured between the start of subsequent notifications, not between the end of the previous and the start of the next notification. + If the observer takes longer than the interval period to handle the message, the subsequent notification will be delivered immediately after the + current one has been handled. In case you need to control the time between the end and the start of consecutive notifications, consider using the + + operator instead. + + + + + Returns an observable sequence that produces a value after each period, using the specified scheduler to run timers and to send out observer messages. + + Period for producing the values in the resulting sequence. If this value is equal to TimeSpan.Zero, the timer will recur as fast as possible. + Scheduler to run the timer on. + An observable sequence that produces a value after each period. + is less than TimeSpan.Zero. + is null. + + Intervals are measured between the start of subsequent notifications, not between the end of the previous and the start of the next notification. + If the observer takes longer than the interval period to handle the message, the subsequent notification will be delivered immediately after the + current one has been handled. In case you need to control the time between the end and the start of consecutive notifications, consider using the + + operator instead. + + + + + Samples the observable sequence at each interval. + Upon each sampling tick, the latest element (if any) in the source sequence during the last sampling interval is sent to the resulting sequence. + + The type of the elements in the source sequence. + Source sequence to sample. + Interval at which to sample. If this value is equal to TimeSpan.Zero, the scheduler will continuously sample the stream. + Sampled observable sequence. + is null. + is less than TimeSpan.Zero. + + Specifying a TimeSpan.Zero value for doesn't guarantee all source sequence elements will be preserved. This is a side-effect + of the asynchrony introduced by the scheduler, where the sampling action may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Samples the observable sequence at each interval, using the specified scheduler to run sampling timers. + Upon each sampling tick, the latest element (if any) in the source sequence during the last sampling interval is sent to the resulting sequence. + + The type of the elements in the source sequence. + Source sequence to sample. + Interval at which to sample. If this value is equal to TimeSpan.Zero, the scheduler will continuously sample the stream. + Scheduler to run the sampling timer on. + Sampled observable sequence. + or is null. + is less than TimeSpan.Zero. + + Specifying a TimeSpan.Zero value for doesn't guarantee all source sequence elements will be preserved. This is a side-effect + of the asynchrony introduced by the scheduler, where the sampling action may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Samples the source observable sequence using a sampler observable sequence producing sampling ticks. + Upon each sampling tick, the latest element (if any) in the source sequence during the last sampling interval is sent to the resulting sequence. + + The type of the elements in the source sequence. + The type of the elements in the sampling sequence. + Source sequence to sample. + Sampling tick sequence. + Sampled observable sequence. + or is null. + + + + Skips elements for the specified duration from the start of the observable source sequence. + + The type of the elements in the source sequence. + Source sequence to skip elements for. + Duration for skipping elements from the start of the sequence. + An observable sequence with the elements skipped during the specified duration from the start of the source sequence. + is null. + is less than TimeSpan.Zero. + + + Specifying a TimeSpan.Zero value for doesn't guarantee no elements will be dropped from the start of the source sequence. + This is a side-effect of the asynchrony introduced by the scheduler, where the action that causes callbacks from the source sequence to be forwarded + may not execute immediately, despite the TimeSpan.Zero due time. + + + Errors produced by the source sequence are always forwarded to the result sequence, even if the error occurs before the . + + + + + + Skips elements for the specified duration from the start of the observable source sequence, using the specified scheduler to run timers. + + The type of the elements in the source sequence. + Source sequence to skip elements for. + Duration for skipping elements from the start of the sequence. + Scheduler to run the timer on. + An observable sequence with the elements skipped during the specified duration from the start of the source sequence. + or is null. + is less than TimeSpan.Zero. + + + Specifying a TimeSpan.Zero value for doesn't guarantee no elements will be dropped from the start of the source sequence. + This is a side-effect of the asynchrony introduced by the scheduler, where the action that causes callbacks from the source sequence to be forwarded + may not execute immediately, despite the TimeSpan.Zero due time. + + + Errors produced by the source sequence are always forwarded to the result sequence, even if the error occurs before the . + + + + + + Skips elements for the specified duration from the end of the observable source sequence. + + The type of the elements in the source sequence. + Source sequence to skip elements for. + Duration for skipping elements from the end of the sequence. + An observable sequence with the elements skipped during the specified duration from the end of the source sequence. + is null. + is less than TimeSpan.Zero. + + This operator accumulates a queue with a length enough to store elements received during the initial window. + As more elements are received, elements older than the specified are taken from the queue and produced on the + result sequence. This causes elements to be delayed with . + + + + + Skips elements for the specified duration from the end of the observable source sequence, using the specified scheduler to run timers. + + The type of the elements in the source sequence. + Source sequence to skip elements for. + Duration for skipping elements from the end of the sequence. + Scheduler to run the timer on. + An observable sequence with the elements skipped during the specified duration from the end of the source sequence. + or is null. + is less than TimeSpan.Zero. + + This operator accumulates a queue with a length enough to store elements received during the initial window. + As more elements are received, elements older than the specified are taken from the queue and produced on the + result sequence. This causes elements to be delayed with . + + + + + Skips elements from the observable source sequence until the specified start time. + + The type of the elements in the source sequence. + Source sequence to skip elements for. + Time to start taking elements from the source sequence. If this value is less than or equal to DateTimeOffset.UtcNow, no elements will be skipped. + An observable sequence with the elements skipped until the specified start time. + is null. + + Errors produced by the source sequence are always forwarded to the result sequence, even if the error occurs before the . + + + + + Skips elements from the observable source sequence until the specified start time, using the specified scheduler to run timers. + + The type of the elements in the source sequence. + Source sequence to skip elements for. + Time to start taking elements from the source sequence. If this value is less than or equal to DateTimeOffset.UtcNow, no elements will be skipped. + Scheduler to run the timer on. + An observable sequence with the elements skipped until the specified start time. + or is null. + + Errors produced by the source sequence are always forwarded to the result sequence, even if the error occurs before the . + + + + + Takes elements for the specified duration from the start of the observable source sequence. + + The type of the elements in the source sequence. + Source sequence to take elements from. + Duration for taking elements from the start of the sequence. + An observable sequence with the elements taken during the specified duration from the start of the source sequence. + is null. + is less than TimeSpan.Zero. + + Specifying a TimeSpan.Zero value for doesn't guarantee an empty sequence will be returned. This is a side-effect + of the asynchrony introduced by the scheduler, where the action that stops forwarding callbacks from the source sequence may not execute + immediately, despite the TimeSpan.Zero due time. + + + + + Takes elements for the specified duration from the start of the observable source sequence, using the specified scheduler to run timers. + + The type of the elements in the source sequence. + Source sequence to take elements from. + Duration for taking elements from the start of the sequence. + Scheduler to run the timer on. + An observable sequence with the elements taken during the specified duration from the start of the source sequence. + or is null. + is less than TimeSpan.Zero. + + Specifying a TimeSpan.Zero value for doesn't guarantee an empty sequence will be returned. This is a side-effect + of the asynchrony introduced by the scheduler, where the action that stops forwarding callbacks from the source sequence may not execute + immediately, despite the TimeSpan.Zero due time. + + + + + Returns elements within the specified duration from the end of the observable source sequence. + + The type of the elements in the source sequence. + Source sequence to take elements from. + Duration for taking elements from the end of the sequence. + An observable sequence with the elements taken during the specified duration from the end of the source sequence. + is null. + is less than TimeSpan.Zero. + + This operator accumulates a buffer with a length enough to store elements for any window during the lifetime of + the source sequence. Upon completion of the source sequence, this buffer is drained on the result sequence. This causes the result elements + to be delayed with . + + + + + Returns elements within the specified duration from the end of the observable source sequence, using the specified scheduler to run timers. + + The type of the elements in the source sequence. + Source sequence to take elements from. + Duration for taking elements from the end of the sequence. + Scheduler to run the timer on. + An observable sequence with the elements taken during the specified duration from the end of the source sequence. + or is null. + is less than TimeSpan.Zero. + + This operator accumulates a buffer with a length enough to store elements for any window during the lifetime of + the source sequence. Upon completion of the source sequence, this buffer is drained on the result sequence. This causes the result elements + to be delayed with . + + + + + Returns elements within the specified duration from the end of the observable source sequence, using the specified schedulers to run timers and to drain the collected elements. + + The type of the elements in the source sequence. + Source sequence to take elements from. + Duration for taking elements from the end of the sequence. + Scheduler to run the timer on. + Scheduler to drain the collected elements. + An observable sequence with the elements taken during the specified duration from the end of the source sequence. + or or is null. + is less than TimeSpan.Zero. + + This operator accumulates a buffer with a length enough to store elements for any window during the lifetime of + the source sequence. Upon completion of the source sequence, this buffer is drained on the result sequence. This causes the result elements + to be delayed with . + + + + + Returns a list with the elements within the specified duration from the end of the observable source sequence. + + The type of the elements in the source sequence. + Source sequence to take elements from. + Duration for taking elements from the end of the sequence. + An observable sequence containing a single list with the elements taken during the specified duration from the end of the source sequence. + is null. + is less than TimeSpan.Zero. + + This operator accumulates a buffer with a length enough to store elements for any window during the lifetime of + the source sequence. Upon completion of the source sequence, this buffer is produced on the result sequence. + + + + + Returns a list with the elements within the specified duration from the end of the observable source sequence, using the specified scheduler to run timers. + + The type of the elements in the source sequence. + Source sequence to take elements from. + Duration for taking elements from the end of the sequence. + Scheduler to run the timer on. + An observable sequence containing a single list with the elements taken during the specified duration from the end of the source sequence. + or is null. + is less than TimeSpan.Zero. + + This operator accumulates a buffer with a length enough to store elements for any window during the lifetime of + the source sequence. Upon completion of the source sequence, this buffer is produced on the result sequence. + + + + + Takes elements for the specified duration until the specified end time. + + The type of the elements in the source sequence. + Source sequence to take elements from. + Time to stop taking elements from the source sequence. If this value is less than or equal to DateTimeOffset.UtcNow, the result stream will complete immediately. + An observable sequence with the elements taken until the specified end time. + is null. + + + + Takes elements for the specified duration until the specified end time, using the specified scheduler to run timers. + + The type of the elements in the source sequence. + Source sequence to take elements from. + Time to stop taking elements from the source sequence. If this value is less than or equal to DateTimeOffset.UtcNow, the result stream will complete immediately. + Scheduler to run the timer on. + An observable sequence with the elements taken until the specified end time. + or is null. + + + + Ignores elements from an observable sequence which are followed by another element within a specified relative time duration. + + The type of the elements in the source sequence. + Source sequence to throttle. + Throttling duration for each element. + The throttled sequence. + is null. + is less than TimeSpan.Zero. + + + This operator throttles the source sequence by holding on to each element for the duration specified in . If another + element is produced within this time window, the element is dropped and a new timer is started for the current element, repeating this whole + process. For streams that never have gaps larger than or equal to between elements, the resulting stream won't + produce any elements. In order to reduce the volume of a stream whilst guaranteeing the periodic production of elements, consider using the + Observable.Sample set of operators. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing throttling timers to be scheduled + that are due immediately. However, this doesn't guarantee all elements will be retained in the result sequence. This is a side-effect of the + asynchrony introduced by the scheduler, where the action to forward the current element may not execute immediately, despite the TimeSpan.Zero + due time. In such cases, the next element may arrive before the scheduler gets a chance to run the throttling action. + + + + + + Ignores elements from an observable sequence which are followed by another element within a specified relative time duration, using the specified scheduler to run throttling timers. + + The type of the elements in the source sequence. + Source sequence to throttle. + Throttling duration for each element. + Scheduler to run the throttle timers on. + The throttled sequence. + or is null. + is less than TimeSpan.Zero. + + + This operator throttles the source sequence by holding on to each element for the duration specified in . If another + element is produced within this time window, the element is dropped and a new timer is started for the current element, repeating this whole + process. For streams that never have gaps larger than or equal to between elements, the resulting stream won't + produce any elements. In order to reduce the volume of a stream whilst guaranteeing the periodic production of elements, consider using the + Observable.Sample set of operators. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing throttling timers to be scheduled + that are due immediately. However, this doesn't guarantee all elements will be retained in the result sequence. This is a side-effect of the + asynchrony introduced by the scheduler, where the action to forward the current element may not execute immediately, despite the TimeSpan.Zero + due time. In such cases, the next element may arrive before the scheduler gets a chance to run the throttling action. + + + + + + Ignores elements from an observable sequence which are followed by another value within a computed throttle duration. + + The type of the elements in the source sequence. + The type of the elements in the throttle sequences selected for each element in the source sequence. + Source sequence to throttle. + Selector function to retrieve a sequence indicating the throttle duration for each given element. + The throttled sequence. + or is null. + + This operator throttles the source sequence by holding on to each element for the duration denoted by . + If another element is produced within this time window, the element is dropped and a new timer is started for the current element, repeating this + whole process. For streams where the duration computed by applying the to each element overlaps with + the occurrence of the successor element, the resulting stream won't produce any elements. In order to reduce the volume of a stream whilst + guaranteeing the periodic production of elements, consider using the Observable.Sample set of operators. + + + + + Records the time interval between consecutive elements in an observable sequence. + + The type of the elements in the source sequence. + Source sequence to record time intervals for. + An observable sequence with time interval information on elements. + is null. + + + + Records the time interval between consecutive elements in an observable sequence, using the specified scheduler to compute time intervals. + + The type of the elements in the source sequence. + Source sequence to record time intervals for. + Scheduler used to compute time intervals. + An observable sequence with time interval information on elements. + or is null. + + + + Applies a timeout policy for each element in the observable sequence. + If the next element isn't received within the specified timeout duration starting from its predecessor, a TimeoutException is propagated to the observer. + + The type of the elements in the source sequence. + Source sequence to perform a timeout for. + Maximum duration between values before a timeout occurs. + The source sequence with a TimeoutException in case of a timeout. + is null. + is less than TimeSpan.Zero. + (Asynchronous) If no element is produced within from the previous element. + + + In case you only want to timeout on the first element, consider using the + operator applied to the source sequence and a delayed sequence. Alternatively, the general-purpose overload + of Timeout, can be used. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing timeout timers to be scheduled that are due + immediately. However, this doesn't guarantee a timeout will occur, even for the first element. This is a side-effect of the asynchrony introduced by the + scheduler, where the action to propagate a timeout may not execute immediately, despite the TimeSpan.Zero due time. In such cases, the next element may + arrive before the scheduler gets a chance to run the timeout action. + + + + + + Applies a timeout policy for each element in the observable sequence, using the specified scheduler to run timeout timers. + If the next element isn't received within the specified timeout duration starting from its predecessor, a TimeoutException is propagated to the observer. + + The type of the elements in the source sequence. + Source sequence to perform a timeout for. + Maximum duration between values before a timeout occurs. + Scheduler to run the timeout timers on. + The source sequence with a TimeoutException in case of a timeout. + or is null. + is less than TimeSpan.Zero. + (Asynchronous) If no element is produced within from the previous element. + + + In case you only want to timeout on the first element, consider using the + operator applied to the source sequence and a delayed sequence. Alternatively, the general-purpose overload + of Timeout, can be used. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing timeout timers to be scheduled that are due + immediately. However, this doesn't guarantee a timeout will occur, even for the first element. This is a side-effect of the asynchrony introduced by the + scheduler, where the action to propagate a timeout may not execute immediately, despite the TimeSpan.Zero due time. In such cases, the next element may + arrive before the scheduler gets a chance to run the timeout action. + + + + + + Applies a timeout policy for each element in the observable sequence. + If the next element isn't received within the specified timeout duration starting from its predecessor, the other observable sequence is used to produce future messages from that point on. + + The type of the elements in the source sequence and the other sequence used upon a timeout. + Source sequence to perform a timeout for. + Maximum duration between values before a timeout occurs. + Sequence to return in case of a timeout. + The source sequence switching to the other sequence in case of a timeout. + or is null. + is less than TimeSpan.Zero. + + + In case you only want to timeout on the first element, consider using the + operator applied to the source sequence and a delayed sequence. Alternatively, the general-purpose overload + of Timeout, can be used. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing timeout timers to be scheduled that are due + immediately. However, this doesn't guarantee a timeout will occur, even for the first element. This is a side-effect of the asynchrony introduced by the + scheduler, where the action to propagate a timeout may not execute immediately, despite the TimeSpan.Zero due time. In such cases, the next element may + arrive before the scheduler gets a chance to run the timeout action. + + + + + + Applies a timeout policy for each element in the observable sequence, using the specified scheduler to run timeout timers. + If the next element isn't received within the specified timeout duration starting from its predecessor, the other observable sequence is used to produce future messages from that point on. + + The type of the elements in the source sequence and the other sequence used upon a timeout. + Source sequence to perform a timeout for. + Maximum duration between values before a timeout occurs. + Sequence to return in case of a timeout. + Scheduler to run the timeout timers on. + The source sequence switching to the other sequence in case of a timeout. + or or is null. + is less than TimeSpan.Zero. + + + In case you only want to timeout on the first element, consider using the + operator applied to the source sequence and a delayed sequence. Alternatively, the general-purpose overload + of Timeout, can be used. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing timeout timers to be scheduled that are due + immediately. However, this doesn't guarantee a timeout will occur, even for the first element. This is a side-effect of the asynchrony introduced by the + scheduler, where the action to propagate a timeout may not execute immediately, despite the TimeSpan.Zero due time. In such cases, the next element may + arrive before the scheduler gets a chance to run the timeout action. + + + + + + Applies a timeout policy to the observable sequence based on an absolute time. + If the sequence doesn't terminate before the specified absolute due time, a TimeoutException is propagated to the observer. + + The type of the elements in the source sequence. + Source sequence to perform a timeout for. + Time when a timeout occurs. If this value is less than or equal to DateTimeOffset.UtcNow, the timeout occurs immediately. + The source sequence with a TimeoutException in case of a timeout. + is null. + (Asynchronous) If the sequence hasn't terminated before . + + In case you only want to timeout on the first element, consider using the + operator applied to the source sequence and a delayed sequence. Alternatively, the general-purpose overload + of Timeout, can be used. + + + + + Applies a timeout policy to the observable sequence based on an absolute time, using the specified scheduler to run timeout timers. + If the sequence doesn't terminate before the specified absolute due time, a TimeoutException is propagated to the observer. + + The type of the elements in the source sequence. + Source sequence to perform a timeout for. + Time when a timeout occurs. If this value is less than or equal to DateTimeOffset.UtcNow, the timeout occurs immediately. + Scheduler to run the timeout timers on. + The source sequence with a TimeoutException in case of a timeout. + or is null. + (Asynchronous) If the sequence hasn't terminated before . + + In case you only want to timeout on the first element, consider using the + operator applied to the source sequence and a delayed sequence. Alternatively, the general-purpose overload + of Timeout, can be used. + + + + + Applies a timeout policy to the observable sequence based on an absolute time. + If the sequence doesn't terminate before the specified absolute due time, the other observable sequence is used to produce future messages from that point on. + + The type of the elements in the source sequence and the other sequence used upon a timeout. + Source sequence to perform a timeout for. + Time when a timeout occurs. If this value is less than or equal to DateTimeOffset.UtcNow, the timeout occurs immediately. + Sequence to return in case of a timeout. + The source sequence switching to the other sequence in case of a timeout. + or is null. + + In case you only want to timeout on the first element, consider using the + operator applied to the source sequence and a delayed sequence. Alternatively, the general-purpose overload + of Timeout, can be used. + + + + + Applies a timeout policy to the observable sequence based on an absolute time, using the specified scheduler to run timeout timers. + If the sequence doesn't terminate before the specified absolute due time, the other observable sequence is used to produce future messages from that point on. + + The type of the elements in the source sequence and the other sequence used upon a timeout. + Source sequence to perform a timeout for. + Time when a timeout occurs. If this value is less than or equal to DateTimeOffset.UtcNow, the timeout occurs immediately. + Sequence to return in case of a timeout. + Scheduler to run the timeout timers on. + The source sequence switching to the other sequence in case of a timeout. + or or is null. + + In case you only want to timeout on the first element, consider using the + operator applied to the source sequence and a delayed sequence. Alternatively, the general-purpose overload + of Timeout, can be used. + + + + + Applies a timeout policy to the observable sequence based on a timeout duration computed for each element. + If the next element isn't received within the computed duration starting from its predecessor, a TimeoutException is propagated to the observer. + + The type of the elements in the source sequence. + The type of the elements in the timeout sequences used to indicate the timeout duration for each element in the source sequence. + Source sequence to perform a timeout for. + Selector to retrieve an observable sequence that represents the timeout between the current element and the next element. + The source sequence with a TimeoutException in case of a timeout. + or is null. + + + + Applies a timeout policy to the observable sequence based on a timeout duration computed for each element. + If the next element isn't received within the computed duration starting from its predecessor, the other observable sequence is used to produce future messages from that point on. + + The type of the elements in the source sequence and the other sequence used upon a timeout. + The type of the elements in the timeout sequences used to indicate the timeout duration for each element in the source sequence. + Source sequence to perform a timeout for. + Selector to retrieve an observable sequence that represents the timeout between the current element and the next element. + Sequence to return in case of a timeout. + The source sequence switching to the other sequence in case of a timeout. + or or is null. + + + + Applies a timeout policy to the observable sequence based on an initial timeout duration for the first element, and a timeout duration computed for each subsequent element. + If the next element isn't received within the computed duration starting from its predecessor, a TimeoutException is propagated to the observer. + + The type of the elements in the source sequence. + The type of the elements in the timeout sequences used to indicate the timeout duration for each element in the source sequence. + Source sequence to perform a timeout for. + Observable sequence that represents the timeout for the first element. + Selector to retrieve an observable sequence that represents the timeout between the current element and the next element. + The source sequence with a TimeoutException in case of a timeout. + or or is null. + + + + Applies a timeout policy to the observable sequence based on an initial timeout duration for the first element, and a timeout duration computed for each subsequent element. + If the next element isn't received within the computed duration starting from its predecessor, the other observable sequence is used to produce future messages from that point on. + + The type of the elements in the source sequence and the other sequence used upon a timeout. + The type of the elements in the timeout sequences used to indicate the timeout duration for each element in the source sequence. + Source sequence to perform a timeout for. + Observable sequence that represents the timeout for the first element. + Selector to retrieve an observable sequence that represents the timeout between the current element and the next element. + Sequence to return in case of a timeout. + The source sequence switching to the other sequence in case of a timeout. + or or or is null. + + + + Returns an observable sequence that produces a single value after the specified relative due time has elapsed. + + Relative time at which to produce the value. If this value is less than or equal to TimeSpan.Zero, the timer will fire as soon as possible. + An observable sequence that produces a value after the due time has elapsed. + + + + Returns an observable sequence that produces a single value at the specified absolute due time. + + Absolute time at which to produce the value. If this value is less than or equal to DateTimeOffset.UtcNow, the timer will fire as soon as possible. + An observable sequence that produces a value at due time. + + + + Returns an observable sequence that periodically produces a value after the specified initial relative due time has elapsed. + + Relative time at which to produce the first value. If this value is less than or equal to TimeSpan.Zero, the timer will fire as soon as possible. + Period to produce subsequent values. If this value is equal to TimeSpan.Zero, the timer will recur as fast as possible. + An observable sequence that produces a value after due time has elapsed and then after each period. + is less than TimeSpan.Zero. + + + + Returns an observable sequence that periodically produces a value starting at the specified initial absolute due time. + + Absolute time at which to produce the first value. If this value is less than or equal to DateTimeOffset.UtcNow, the timer will fire as soon as possible. + Period to produce subsequent values. If this value is equal to TimeSpan.Zero, the timer will recur as fast as possible. + An observable sequence that produces a value at due time and then after each period. + is less than TimeSpan.Zero. + + + + Returns an observable sequence that produces a single value after the specified relative due time has elapsed, using the specified scheduler to run the timer. + + Relative time at which to produce the value. If this value is less than or equal to TimeSpan.Zero, the timer will fire as soon as possible. + Scheduler to run the timer on. + An observable sequence that produces a value after the due time has elapsed. + is null. + + + + Returns an observable sequence that produces a single value at the specified absolute due time, using the specified scheduler to run the timer. + + Absolute time at which to produce the value. If this value is less than or equal to DateTimeOffset.UtcNow, the timer will fire as soon as possible. + Scheduler to run the timer on. + An observable sequence that produces a value at due time. + is null. + + + + Returns an observable sequence that periodically produces a value after the specified initial relative due time has elapsed, using the specified scheduler to run timers. + + Relative time at which to produce the first value. If this value is less than or equal to TimeSpan.Zero, the timer will fire as soon as possible. + Period to produce subsequent values. If this value is equal to TimeSpan.Zero, the timer will recur as fast as possible. + Scheduler to run timers on. + An observable sequence that produces a value after due time has elapsed and then each period. + is less than TimeSpan.Zero. + is null. + + + + Returns an observable sequence that periodically produces a value starting at the specified initial absolute due time, using the specified scheduler to run timers. + + Absolute time at which to produce the first value. If this value is less than or equal to DateTimeOffset.UtcNow, the timer will fire as soon as possible. + Period to produce subsequent values. If this value is equal to TimeSpan.Zero, the timer will recur as fast as possible. + Scheduler to run timers on. + An observable sequence that produces a value at due time and then after each period. + is less than TimeSpan.Zero. + is null. + + + + Timestamps each element in an observable sequence using the local system clock. + + The type of the elements in the source sequence. + Source sequence to timestamp elements for. + An observable sequence with timestamp information on elements. + is null. + + + + Timestamp each element in an observable sequence using the clock of the specified scheduler. + + The type of the elements in the source sequence. + Source sequence to timestamp elements for. + Scheduler used to compute timestamps. + An observable sequence with timestamp information on elements. + or is null. + + + + Projects each element of an observable sequence into consecutive non-overlapping windows which are produced based on timing information. + + The type of the elements in the source sequence, and in the windows in the result sequence. + Source sequence to produce windows over. + Length of each window. + The sequence of windows. + is null. + is less than TimeSpan.Zero. + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create windows as fast as it can. + Because all source sequence elements end up in one of the windows, some windows won't have a zero time span. This is a side-effect of the asynchrony introduced + by the scheduler, where the action to close the current window and to create a new window may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Projects each element of an observable sequence into consecutive non-overlapping windows which are produced based on timing information, using the specified scheduler to run timers. + + The type of the elements in the source sequence, and in the windows in the result sequence. + Source sequence to produce windows over. + Length of each window. + Scheduler to run windowing timers on. + An observable sequence of windows. + or is null. + is less than TimeSpan.Zero. + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create windows as fast as it can. + Because all source sequence elements end up in one of the windows, some windows won't have a zero time span. This is a side-effect of the asynchrony introduced + by the scheduler, where the action to close the current window and to create a new window may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Projects each element of an observable sequence into zero or more windows which are produced based on timing information. + + The type of the elements in the source sequence, and in the windows in the result sequence. + Source sequence to produce windows over. + Length of each window. + Interval between creation of consecutive windows. + An observable sequence of windows. + is null. + or is less than TimeSpan.Zero. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create windows with minimum duration + length. However, some windows won't have a zero time span. This is a side-effect of the asynchrony introduced by the scheduler, where the action to close the + current window may not execute immediately, despite the TimeSpan.Zero due time. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create windows as fast as it can. + However, this doesn't mean all windows will start at the beginning of the source sequence. This is a side-effect of the asynchrony introduced by the scheduler, + where the action to create a new window may not execute immediately, despite the TimeSpan.Zero due time. + + + + + + Projects each element of an observable sequence into zero or more windows which are produced based on timing information, using the specified scheduler to run timers. + + The type of the elements in the source sequence, and in the windows in the result sequence. + Source sequence to produce windows over. + Length of each window. + Interval between creation of consecutive windows. + Scheduler to run windowing timers on. + An observable sequence of windows. + or is null. + or is less than TimeSpan.Zero. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create windows with minimum duration + length. However, some windows won't have a zero time span. This is a side-effect of the asynchrony introduced by the scheduler, where the action to close the + current window may not execute immediately, despite the TimeSpan.Zero due time. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create windows as fast as it can. + However, this doesn't mean all windows will start at the beginning of the source sequence. This is a side-effect of the asynchrony introduced by the scheduler, + where the action to create a new window may not execute immediately, despite the TimeSpan.Zero due time. + + + + + + Projects each element of an observable sequence into a window that is completed when either it's full or a given amount of time has elapsed. + A useful real-world analogy of this overload is the behavior of a ferry leaving the dock when all seats are taken, or at the scheduled time of departure, whichever event occurs first. + + The type of the elements in the source sequence, and in the windows in the result sequence. + Source sequence to produce windows over. + Maximum time length of a window. + Maximum element count of a window. + An observable sequence of windows. + is null. + is less than TimeSpan.Zero. -or- is less than or equal to zero. + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create windows as fast as it can. + Because all source sequence elements end up in one of the windows, some windows won't have a zero time span. This is a side-effect of the asynchrony introduced + by the scheduler, where the action to close the current window and to create a new window may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Projects each element of an observable sequence into a window that is completed when either it's full or a given amount of time has elapsed, using the specified scheduler to run timers. + A useful real-world analogy of this overload is the behavior of a ferry leaving the dock when all seats are taken, or at the scheduled time of departure, whichever event occurs first. + + The type of the elements in the source sequence, and in the windows in the result sequence. + Source sequence to produce windows over. + Maximum time length of a window. + Maximum element count of a window. + Scheduler to run windowing timers on. + An observable sequence of windows. + or is null. + is less than TimeSpan.Zero. -or- is less than or equal to zero. + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create windows as fast as it can. + Because all source sequence elements end up in one of the windows, some windows won't have a zero time span. This is a side-effect of the asynchrony introduced + by the scheduler, where the action to close the current window and to create a new window may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Provides a set of static methods for writing in-memory queries over observable sequences. + + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + First observable source. + Second observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + First observable source. + Second observable source. + Third observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or is null. + + + + Merges two observable sequences into one observable sequence by combining each element from the first source with the latest element from the second source, if any. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + First observable source. + Second observable source. + An observable sequence containing the result of combining each element of the first source with the latest element from the second source, if any, as a tuple value. + or is null. + + + + Merges an observable sequence and an enumerable sequence into one observable sequence of tuple values. + + The type of the elements in the first observable source sequence. + The type of the elements in the second enumerable source sequence. + First observable source. + Second enumerable source. + An observable sequence containing the result of pairwise combining the elements of the first and second source as a tuple value. + or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + First observable source. + Second observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + First observable source. + Second observable source. + Third observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or is null. + + + + Subscribes to each observable sequence returned by the iteratorMethod in sequence and returns the observable sequence of values sent to the observer given to the iteratorMethod. + + The type of the elements in the produced sequence. + Iterator method that produces elements in the resulting sequence by calling the given observer. + An observable sequence obtained by running the iterator and returning the elements that were sent to the observer. + is null. + + + + Subscribes to each observable sequence returned by the iteratorMethod in sequence and produces a Unit value on the resulting sequence for each step of the iteration. + + Iterator method that drives the resulting observable sequence. + An observable sequence obtained by running the iterator and returning Unit values for each iteration step. + is null. + + + + Expands an observable sequence by recursively invoking selector, using the specified scheduler to enumerate the queue of obtained sequences. + + The type of the elements in the source sequence and each of the recursively expanded sources obtained by running the selector function. + Source sequence with the initial elements. + Selector function to invoke for each produced element, resulting in another sequence to which the selector will be invoked recursively again. + Scheduler on which to perform the expansion by enumerating the internal queue of obtained sequences. + An observable sequence containing all the elements produced by the recursive expansion. + or or is null. + + + + Expands an observable sequence by recursively invoking selector. + + The type of the elements in the source sequence and each of the recursively expanded sources obtained by running the selector function. + Source sequence with the initial elements. + Selector function to invoke for each produced element, resulting in another sequence to which the selector will be invoked recursively again. + An observable sequence containing all the elements produced by the recursive expansion. + or is null. + + + + Runs two observable sequences in parallel and combines their last elements. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable sequence. + Second observable sequence. + Result selector function to invoke with the last elements of both sequences. + An observable sequence with the result of calling the selector function with the last elements of both input sequences. + or or is null. + + + + Runs all specified observable sequences in parallel and collects their last elements. + + The type of the elements in the source sequences. + Observable sequence to collect the last elements for. + An observable sequence with an array collecting the last elements of all the input sequences. + is null. + + + + Runs all observable sequences in the enumerable sources sequence in parallel and collect their last elements. + + The type of the elements in the source sequences. + Observable sequence to collect the last elements for. + An observable sequence with an array collecting the last elements of all the input sequences. + is null. + + + + Returns an observable sequence that is the result of invoking the selector on the source sequence, without sharing subscriptions. + This operator allows for a fluent style of writing queries that use the same sequence multiple times. + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence that will be shared in the selector function. + Selector function which can use the source sequence as many times as needed, without sharing subscriptions to the source sequence. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + or is null. + + + + Comonadic bind operator. + + + + + Comonadic bind operator. + + + + + Immediately subscribes to source and retains the elements in the observable sequence. + + The type of the elements in the source sequence. + Source sequence. + Object that's both an observable sequence and a list which can be used to access the source sequence's elements. + is null. + + + + Provides a set of static methods for writing queries over observable sequences, allowing translation to a target query language. + + + + + Gets the local query provider which will retarget Qbservable-based queries to the corresponding Observable-based query for in-memory execution upon subscription. + + + + + Converts an in-memory observable sequence into an sequence with an expression tree representing the source sequence. + + The type of the elements in the source sequence. + Source sequence. + sequence representing the given observable source sequence. + is null. + + + + Returns the input typed as an . + This operator is used to separate the part of the query that's captured as an expression tree from the part that's executed locally. + + The type of the elements in the source sequence. + An sequence to convert to an sequence. + The original source object, but typed as an . + is null. + + + + Converts an enumerable sequence to an observable sequence. + + The type of the elements in the source sequence. + Enumerable sequence to convert to an observable sequence. + The observable sequence whose elements are pulled from the given enumerable sequence. + is null. + This operator requires the source's object (see ) to implement . + + + + Converts an enumerable sequence to an observable sequence, using the specified scheduler to run the enumeration loop. + + The type of the elements in the source sequence. + Enumerable sequence to convert to an observable sequence. + Scheduler to run the enumeration of the input sequence on. + The observable sequence whose elements are pulled from the given enumerable sequence. + or is null. + This operator requires the source's object (see ) to implement . + + + + Applies an accumulator function over an observable sequence, returning the result of the aggregation as a single element in the result sequence. + For aggregation behavior with incremental intermediate results, see . + + The type of the elements in the source sequence and the result of the aggregation. + An observable sequence to aggregate over. + An accumulator function to be invoked on each element. + An observable sequence containing a single element with the final accumulator value. + + or is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Applies an accumulator function over an observable sequence, returning the result of the aggregation as a single element in the result sequence. The specified seed value is used as the initial accumulator value. + For aggregation behavior with incremental intermediate results, see . + + The type of the elements in the source sequence. + The type of the result of the aggregation. + An observable sequence to aggregate over. + The initial accumulator value. + An accumulator function to be invoked on each element. + An observable sequence containing a single element with the final accumulator value. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Applies an accumulator function over an observable sequence, returning the result of the aggregation as a single element in the result sequence. The specified seed value is used as the initial accumulator value, + and the specified result selector function is used to select the result value. + + The type of the elements in the source sequence. + The type of the accumulator value. + The type of the resulting value. + An observable sequence to aggregate over. + The initial accumulator value. + An accumulator function to be invoked on each element. + A function to transform the final accumulator value into the result value. + An observable sequence containing a single element with the final accumulator value. + + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Determines whether all elements of an observable sequence satisfy a condition. + + The type of the elements in the source sequence. + An observable sequence whose elements to apply the predicate to. + A function to test each element for a condition. + An observable sequence containing a single element determining whether all elements in the source sequence pass the test in the specified predicate. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Propagates the observable sequence that reacts first. + + The type of the elements in the source sequences. + First observable sequence. + Second observable sequence. + An observable sequence that surfaces either of the given sequences, whichever reacted first. + + or is null. + + + + Propagates the observable sequence that reacts first. + + Query provider used to construct the data source. + The type of the elements in the source sequences. + Observable sources competing to react first. + An observable sequence that surfaces any of the given sequences, whichever reacted first. + + is null. + + + + Propagates the observable sequence that reacts first. + + Query provider used to construct the data source. + The type of the elements in the source sequences. + Observable sources competing to react first. + An observable sequence that surfaces any of the given sequences, whichever reacted first. + + is null. + + + + Determines whether an observable sequence contains any elements. + + The type of the elements in the source sequence. + An observable sequence to check for non-emptiness. + An observable sequence containing a single element determining whether the source sequence contains any elements. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Determines whether any element of an observable sequence satisfies a condition. + + The type of the elements in the source sequence. + An observable sequence whose elements to apply the predicate to. + A function to test each element for a condition. + An observable sequence containing a single element determining whether any elements in the source sequence pass the test in the specified predicate. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Append a value to an observable sequence. + + The type of the elements in the source sequence. + Source sequence to append the value to. + Value to append to the specified sequence. + The source sequence appended with the specified value. + + is null. + + + + Append a value to an observable sequence. + + The type of the elements in the source sequence. + Source sequence to append the value to. + Value to append to the specified sequence. + Scheduler to emit the append values on. + The source sequence appended with the specified value. + + is null. + + + + Automatically connect the upstream IConnectableObservable at most once when the + specified number of IObservers have subscribed to this IObservable. + + Query provider used to construct the data source. + The type of the elements in the source sequence. + Connectable observable sequence. + The number of observers required to subscribe before the connection to source happens, non-positive value will trigger an immediate subscription. + If not null, the connection's IDisposable is provided to it. + An observable sequence that connects to the source at most once when the given number of observers have subscribed to it. + + is null. + + + + Computes the average of an observable sequence of values. + + A sequence of values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values. + + is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values. + + A sequence of values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values. + + is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values. + + A sequence of values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values. + + is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values. + + A sequence of values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values. + + is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of nullable values. + + A sequence of nullable values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + + is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of nullable values. + + A sequence of nullable values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + + is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of nullable values. + + A sequence of nullable values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + + is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + (Asynchronous) The sum of the elements in the source sequence is larger than . + + + + Computes the average of an observable sequence of nullable values. + + A sequence of nullable values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + + is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of nullable values. + + A sequence of nullable values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + + is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values. + + A sequence of values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values. + + is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values. + + or is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values. + + or is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values. + + or is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values. + + or is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values. + + or is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + + or is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + + or is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + + or is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + + or is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + + or is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Projects each element of an observable sequence into consecutive non-overlapping buffers which are produced based on element count information. + + The type of the elements in the source sequence, and in the lists in the result sequence. + Source sequence to produce buffers over. + Length of each buffer. + An observable sequence of buffers. + + is null. + + is less than or equal to zero. + + + + Projects each element of an observable sequence into zero or more buffers which are produced based on element count information. + + The type of the elements in the source sequence, and in the lists in the result sequence. + Source sequence to produce buffers over. + Length of each buffer. + Number of elements to skip between creation of consecutive buffers. + An observable sequence of buffers. + + is null. + + or is less than or equal to zero. + + + + Projects each element of an observable sequence into consecutive non-overlapping buffers which are produced based on timing information. + + The type of the elements in the source sequence, and in the lists in the result sequence. + Source sequence to produce buffers over. + Length of each buffer. + An observable sequence of buffers. + + is null. + + is less than TimeSpan.Zero. + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create buffers as fast as it can. + Because all source sequence elements end up in one of the buffers, some buffers won't have a zero time span. This is a side-effect of the asynchrony introduced + by the scheduler, where the action to close the current buffer and to create a new buffer may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Projects each element of an observable sequence into a buffer that's sent out when either it's full or a given amount of time has elapsed. + A useful real-world analogy of this overload is the behavior of a ferry leaving the dock when all seats are taken, or at the scheduled time of departure, whichever event occurs first. + + The type of the elements in the source sequence, and in the lists in the result sequence. + Source sequence to produce buffers over. + Maximum time length of a window. + Maximum element count of a window. + An observable sequence of buffers. + + is null. + + is less than TimeSpan.Zero. -or- is less than or equal to zero. + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create buffers as fast as it can. + Because all source sequence elements end up in one of the buffers, some buffers won't have a zero time span. This is a side-effect of the asynchrony introduced + by the scheduler, where the action to close the current buffer and to create a new buffer may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Projects each element of an observable sequence into a buffer that's sent out when either it's full or a given amount of time has elapsed, using the specified scheduler to run timers. + A useful real-world analogy of this overload is the behavior of a ferry leaving the dock when all seats are taken, or at the scheduled time of departure, whichever event occurs first. + + The type of the elements in the source sequence, and in the lists in the result sequence. + Source sequence to produce buffers over. + Maximum time length of a buffer. + Maximum element count of a buffer. + Scheduler to run buffering timers on. + An observable sequence of buffers. + + or is null. + + is less than TimeSpan.Zero. -or- is less than or equal to zero. + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create buffers as fast as it can. + Because all source sequence elements end up in one of the buffers, some buffers won't have a zero time span. This is a side-effect of the asynchrony introduced + by the scheduler, where the action to close the current buffer and to create a new buffer may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Projects each element of an observable sequence into consecutive non-overlapping buffers which are produced based on timing information, using the specified scheduler to run timers. + + The type of the elements in the source sequence, and in the lists in the result sequence. + Source sequence to produce buffers over. + Length of each buffer. + Scheduler to run buffering timers on. + An observable sequence of buffers. + + or is null. + + is less than TimeSpan.Zero. + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create buffers as fast as it can. + Because all source sequence elements end up in one of the buffers, some buffers won't have a zero time span. This is a side-effect of the asynchrony introduced + by the scheduler, where the action to close the current buffer and to create a new buffer may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Projects each element of an observable sequence into zero or more buffers which are produced based on timing information. + + The type of the elements in the source sequence, and in the lists in the result sequence. + Source sequence to produce buffers over. + Length of each buffer. + Interval between creation of consecutive buffers. + An observable sequence of buffers. + + is null. + + or is less than TimeSpan.Zero. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create buffers with minimum duration + length. However, some buffers won't have a zero time span. This is a side-effect of the asynchrony introduced by the scheduler, where the action to close the + current buffer may not execute immediately, despite the TimeSpan.Zero due time. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create buffers as fast as it can. + However, this doesn't mean all buffers will start at the beginning of the source sequence. This is a side-effect of the asynchrony introduced by the scheduler, + where the action to create a new buffer may not execute immediately, despite the TimeSpan.Zero due time. + + + + + + Projects each element of an observable sequence into zero or more buffers which are produced based on timing information, using the specified scheduler to run timers. + + The type of the elements in the source sequence, and in the lists in the result sequence. + Source sequence to produce buffers over. + Length of each buffer. + Interval between creation of consecutive buffers. + Scheduler to run buffering timers on. + An observable sequence of buffers. + + or is null. + + or is less than TimeSpan.Zero. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create buffers with minimum duration + length. However, some buffers won't have a zero time span. This is a side-effect of the asynchrony introduced by the scheduler, where the action to close the + current buffer may not execute immediately, despite the TimeSpan.Zero due time. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create buffers as fast as it can. + However, this doesn't mean all buffers will start at the beginning of the source sequence. This is a side-effect of the asynchrony introduced by the scheduler, + where the action to create a new buffer may not execute immediately, despite the TimeSpan.Zero due time. + + + + + + Projects each element of an observable sequence into consecutive non-overlapping buffers. + + The type of the elements in the source sequence, and in the lists in the result sequence. + The type of the elements in the sequences indicating buffer boundary events. + Source sequence to produce buffers over. + Sequence of buffer boundary markers. The current buffer is closed and a new buffer is opened upon receiving a boundary marker. + An observable sequence of buffers. + + or is null. + + + + Projects each element of an observable sequence into consecutive non-overlapping buffers. + + The type of the elements in the source sequence, and in the lists in the result sequence. + The type of the elements in the sequences indicating buffer closing events. + Source sequence to produce buffers over. + A function invoked to define the boundaries of the produced buffers. A new buffer is started when the previous one is closed. + An observable sequence of buffers. + + or is null. + + + + Projects each element of an observable sequence into zero or more buffers. + + The type of the elements in the source sequence, and in the lists in the result sequence. + The type of the elements in the sequence indicating buffer opening events, also passed to the closing selector to obtain a sequence of buffer closing events. + The type of the elements in the sequences indicating buffer closing events. + Source sequence to produce buffers over. + Observable sequence whose elements denote the creation of new buffers. + A function invoked to define the closing of each produced buffer. + An observable sequence of buffers. + + or or is null. + + + + Uses to determine which source in to return, choosing an empty sequence if no match is found. + + Query provider used to construct the data source. + The type of the value returned by the selector function, used to look up the resulting source. + The type of the elements in the result sequence. + Selector function invoked to determine the source to lookup in the dictionary. + Dictionary of sources to select from based on the invocation result. + The observable sequence retrieved from the dictionary based on the invocation result, or an empty sequence if no match is found. + + or is null. + + + + Uses to determine which source in to return, choosing if no match is found. + + Query provider used to construct the data source. + The type of the value returned by the selector function, used to look up the resulting source. + The type of the elements in the result sequence. + Selector function invoked to determine the source to lookup in the dictionary. + Dictionary of sources to select from based on the invocation result. + Default source to select in case no matching source in is found. + The observable sequence retrieved from the dictionary based on the invocation result, or if no match is found. + + or or is null. + + + + Uses to determine which source in to return, choosing an empty sequence on the specified scheduler if no match is found. + + Query provider used to construct the data source. + The type of the value returned by the selector function, used to look up the resulting source. + The type of the elements in the result sequence. + Selector function invoked to determine the source to lookup in the dictionary. + Dictionary of sources to select from based on the invocation result. + Scheduler to generate an empty sequence on in case no matching source in is found. + The observable sequence retrieved from the dictionary based on the invocation result, or an empty sequence if no match is found. + + or or is null. + + + + Converts the elements of an observable sequence to the specified type. + + The type to convert the elements in the source sequence to. + The observable sequence that contains the elements to be converted. + An observable sequence that contains each element of the source sequence converted to the specified type. + + is null. + + + + Continues an observable sequence that is terminated by an exception with the next observable sequence. + + The type of the elements in the source sequence and handler sequence. + First observable sequence whose exception (if any) is caught. + Second observable sequence used to produce results when an error occurred in the first sequence. + An observable sequence containing the first sequence's elements, followed by the elements of the second sequence in case an exception occurred. + + or is null. + + + + Continues an observable sequence that is terminated by an exception with the next observable sequence. + + Query provider used to construct the data source. + The type of the elements in the source and handler sequences. + Observable sequences to catch exceptions for. + An observable sequence containing elements from consecutive source sequences until a source sequence terminates successfully. + + is null. + + + + Continues an observable sequence that is terminated by an exception with the next observable sequence. + + Query provider used to construct the data source. + The type of the elements in the source and handler sequences. + Observable sequences to catch exceptions for. + An observable sequence containing elements from consecutive source sequences until a source sequence terminates successfully. + + is null. + + + + Continues an observable sequence that is terminated by an exception of the specified type with the observable sequence produced by the handler. + + The type of the elements in the source sequence and sequences returned by the exception handler function. + The type of the exception to catch and handle. Needs to derive from . + Source sequence. + Exception handler function, producing another observable sequence. + An observable sequence containing the source sequence's elements, followed by the elements produced by the handler's resulting observable sequence in case an exception occurred. + + or is null. + + + + Produces an enumerable sequence of consecutive (possibly empty) chunks of the source sequence. + + The type of the elements in the source sequence. + Source observable sequence. + The enumerable sequence that returns consecutive (possibly empty) chunks upon each iteration. + + is null. + This operator requires the source's object (see ) to implement . + + + + Produces an enumerable sequence that returns elements collected/aggregated from the source sequence between consecutive iterations. + + The type of the elements in the source sequence. + The type of the elements produced by the merge operation during collection. + Source observable sequence. + Factory to create the initial collector object. + Merges a sequence element with the current collector. + Factory to replace the current collector by a new collector. + The enumerable sequence that returns collected/aggregated elements from the source sequence upon each iteration. + + or or or is null. + This operator requires the source's object (see ) to implement . + + + + Produces an enumerable sequence that returns elements collected/aggregated from the source sequence between consecutive iterations. + + The type of the elements in the source sequence. + The type of the elements produced by the merge operation during collection. + Source observable sequence. + Factory to create a new collector object. + Merges a sequence element with the current collector. + The enumerable sequence that returns collected/aggregated elements from the source sequence upon each iteration. + + or or is null. + This operator requires the source's object (see ) to implement . + + + + Merges the specified observable sequences into one observable sequence by emitting a list with the latest source elements whenever any of the observable sequences produces an element. + + Query provider used to construct the data source. + The type of the elements in the source sequences, and in the lists in the result sequence. + Observable sources. + An observable sequence containing lists of the latest elements of the sources. + + is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by emitting a list with the latest source elements whenever any of the observable sequences produces an element. + + Query provider used to construct the data source. + The type of the elements in the source sequences, and in the lists in the result sequence. + Observable sources. + An observable sequence containing lists of the latest elements of the sources. + + is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + Query provider used to construct the data source. + The type of the elements in the source sequences. + The type of the elements in the result sequence, returned by the selector function. + Observable sources. + Function to invoke whenever any of the sources produces an element. For efficiency, the input list is reused after the selector returns. Either aggregate or copy the values during the function call. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges two observable sequences into one observable sequence by using the selector function whenever one of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Function to invoke whenever either of the sources produces an element. + An observable sequence containing the result of combining elements of both sources using the specified result selector function. + + or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Fourteenth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the fifteenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Fourteenth observable source. + Fifteenth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or or or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the fifteenth source sequence. + The type of the elements in the sixteenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Fourteenth observable source. + Fifteenth observable source. + Sixteenth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or or or or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Concatenates the second observable sequence to the first observable sequence upon successful termination of the first. + + The type of the elements in the source sequences. + First observable sequence. + Second observable sequence. + An observable sequence that contains the elements of the first sequence, followed by those of the second the sequence. + + or is null. + + + + Concatenates all of the specified observable sequences, as long as the previous observable sequence terminated successfully. + + Query provider used to construct the data source. + The type of the elements in the source sequences. + Observable sequences to concatenate. + An observable sequence that contains the elements of each given sequence, in sequential order. + + is null. + + + + Concatenates all observable sequences in the given enumerable sequence, as long as the previous observable sequence terminated successfully. + + Query provider used to construct the data source. + The type of the elements in the source sequences. + Observable sequences to concatenate. + An observable sequence that contains the elements of each given sequence, in sequential order. + + is null. + + + + Concatenates all inner observable sequences, as long as the previous observable sequence terminated successfully. + + The type of the elements in the source sequences. + Observable sequence of inner observable sequences. + An observable sequence that contains the elements of each observed inner sequence, in sequential order. + + is null. + + + + Concatenates all task results, as long as the previous task terminated successfully. + + The type of the results produced by the tasks. + Observable sequence of tasks. + An observable sequence that contains the results of each task, in sequential order. + + is null. + If the tasks support cancellation, consider manual conversion of the tasks using , followed by a concatenation operation using . + + + + Determines whether an observable sequence contains a specified element by using the default equality comparer. + + The type of the elements in the source sequence. + An observable sequence in which to locate a value. + The value to locate in the source sequence. + An observable sequence containing a single element determining whether the source sequence contains an element that has the specified value. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Determines whether an observable sequence contains a specified element by using a specified System.Collections.Generic.IEqualityComparer{T}. + + The type of the elements in the source sequence. + An observable sequence in which to locate a value. + The value to locate in the source sequence. + An equality comparer to compare elements. + An observable sequence containing a single element determining whether the source sequence contains an element that has the specified value. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns an observable sequence containing an that represents the total number of elements in an observable sequence. + + The type of the elements in the source sequence. + An observable sequence that contains elements to be counted. + An observable sequence containing a single element with the number of elements in the input sequence. + + is null. + (Asynchronous) The number of elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns an observable sequence containing an that represents how many elements in the specified observable sequence satisfy a condition. + + The type of the elements in the source sequence. + An observable sequence that contains elements to be counted. + A function to test each element for a condition. + An observable sequence containing a single element with a number that represents how many elements in the input sequence satisfy the condition in the predicate function. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates an observable sequence from a specified Subscribe method implementation. + + Query provider used to construct the data source. + The type of the elements in the produced sequence. + Implementation of the resulting observable sequence's Subscribe method. + The observable sequence with the specified implementation for the Subscribe method. + + is null. + + Use of this operator is preferred over manual implementation of the interface. In case + you need a type implementing rather than an anonymous implementation, consider using + the abstract base class. + + + + + Creates an observable sequence from a specified Subscribe method implementation. + + Query provider used to construct the data source. + The type of the elements in the produced sequence. + Implementation of the resulting observable sequence's Subscribe method, returning an Action delegate that will be wrapped in an IDisposable. + The observable sequence with the specified implementation for the Subscribe method. + + is null. + + Use of this operator is preferred over manual implementation of the interface. In case + you need a type implementing rather than an anonymous implementation, consider using + the abstract base class. + + + + + Creates an observable sequence from a specified cancellable asynchronous Subscribe method. + The CancellationToken passed to the asynchronous Subscribe method is tied to the returned disposable subscription, allowing best-effort cancellation. + + Query provider used to construct the data source. + The type of the elements in the produced sequence. + Asynchronous method used to produce elements. + The observable sequence surfacing the elements produced by the asynchronous method. + + is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + When a subscription to the resulting sequence is disposed, the CancellationToken that was fed to the asynchronous subscribe function will be signaled. + + + + Creates an observable sequence from a specified asynchronous Subscribe method. + + Query provider used to construct the data source. + The type of the elements in the produced sequence. + Asynchronous method used to produce elements. + The observable sequence surfacing the elements produced by the asynchronous method. + + is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + + + + Creates an observable sequence from a specified cancellable asynchronous Subscribe method. + The CancellationToken passed to the asynchronous Subscribe method is tied to the returned disposable subscription, allowing best-effort cancellation. + + Query provider used to construct the data source. + The type of the elements in the produced sequence. + Asynchronous method used to implement the resulting sequence's Subscribe method. + The observable sequence with the specified implementation for the Subscribe method. + + is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + When a subscription to the resulting sequence is disposed, the CancellationToken that was fed to the asynchronous subscribe function will be signaled. + + + + Creates an observable sequence from a specified asynchronous Subscribe method. + + Query provider used to construct the data source. + The type of the elements in the produced sequence. + Asynchronous method used to implement the resulting sequence's Subscribe method. + The observable sequence with the specified implementation for the Subscribe method. + + is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + + + + Creates an observable sequence from a specified cancellable asynchronous Subscribe method. + The CancellationToken passed to the asynchronous Subscribe method is tied to the returned disposable subscription, allowing best-effort cancellation. + + Query provider used to construct the data source. + The type of the elements in the produced sequence. + Asynchronous method used to implement the resulting sequence's Subscribe method, returning an Action delegate that will be wrapped in an IDisposable. + The observable sequence with the specified implementation for the Subscribe method. + + is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + When a subscription to the resulting sequence is disposed, the CancellationToken that was fed to the asynchronous subscribe function will be signaled. + + + + Creates an observable sequence from a specified asynchronous Subscribe method. + + Query provider used to construct the data source. + The type of the elements in the produced sequence. + Asynchronous method used to implement the resulting sequence's Subscribe method, returning an Action delegate that will be wrapped in an IDisposable. + The observable sequence with the specified implementation for the Subscribe method. + + is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + + + + Returns the elements of the specified sequence or the type parameter's default value in a singleton sequence if the sequence is empty. + + The type of the elements in the source sequence (if any), whose default value will be taken if the sequence is empty. + The sequence to return a default value for if it is empty. + An observable sequence that contains the default value for the TSource type if the source is empty; otherwise, the elements of the source itself. + + is null. + + + + Returns the elements of the specified sequence or the specified value in a singleton sequence if the sequence is empty. + + The type of the elements in the source sequence (if any), and the specified default value which will be taken if the sequence is empty. + The sequence to return the specified value for if it is empty. + The value to return if the sequence is empty. + An observable sequence that contains the specified default value if the source is empty; otherwise, the elements of the source itself. + + is null. + + + + Returns an observable sequence that invokes the specified factory function whenever a new observer subscribes. + + Query provider used to construct the data source. + The type of the elements in the sequence returned by the factory function, and in the resulting sequence. + Observable factory function to invoke for each observer that subscribes to the resulting sequence. + An observable sequence whose observers trigger an invocation of the given observable factory function. + + is null. + + + + Returns an observable sequence that starts the specified asynchronous factory function whenever a new observer subscribes. + + Query provider used to construct the data source. + The type of the elements in the sequence returned by the factory function, and in the resulting sequence. + Asynchronous factory function to start for each observer that subscribes to the resulting sequence. + An observable sequence whose observers trigger the given asynchronous observable factory function to be started. + + is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + + + + Returns an observable sequence that starts the specified cancellable asynchronous factory function whenever a new observer subscribes. + The CancellationToken passed to the asynchronous factory function is tied to the returned disposable subscription, allowing best-effort cancellation. + + Query provider used to construct the data source. + The type of the elements in the sequence returned by the factory function, and in the resulting sequence. + Asynchronous factory function to start for each observer that subscribes to the resulting sequence. + An observable sequence whose observers trigger the given asynchronous observable factory function to be started. + + is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + When a subscription to the resulting sequence is disposed, the CancellationToken that was fed to the asynchronous observable factory function will be signaled. + + + + Time shifts the observable sequence to start propagating notifications at the specified absolute time. + The relative time intervals between the values are preserved. + + The type of the elements in the source sequence. + Source sequence to delay values for. + Absolute time used to shift the observable sequence; the relative time shift gets computed upon subscription. If this value is less than or equal to DateTimeOffset.UtcNow, the scheduler will dispatch observer callbacks as soon as possible. + Time-shifted sequence. + + is null. + + + This operator is less efficient than DelaySubscription because it records all notifications and time-delays those. This allows for immediate propagation of errors. + + + Observer callbacks for the resulting sequence will be run on the default scheduler. This effect is similar to using ObserveOn. + + + Exceptions signaled by the source sequence through an OnError callback are forwarded immediately to the result sequence. Any OnNext notifications that were in the queue at the point of the OnError callback will be dropped. + In order to delay error propagation, consider using the Observable.Materialize and Observable.Dematerialize operators, or use DelaySubscription. + + + + + + Time shifts the observable sequence to start propagating notifications at the specified absolute time, using the specified scheduler to run timers. + The relative time intervals between the values are preserved. + + The type of the elements in the source sequence. + Source sequence to delay values for. + Absolute time used to shift the observable sequence; the relative time shift gets computed upon subscription. If this value is less than or equal to DateTimeOffset.UtcNow, the scheduler will dispatch observer callbacks as soon as possible. + Scheduler to run the delay timers on. + Time-shifted sequence. + + or is null. + + + This operator is less efficient than DelaySubscription because it records all notifications and time-delays those. This allows for immediate propagation of errors. + + + Observer callbacks for the resulting sequence will be run on the specified scheduler. This effect is similar to using ObserveOn. + + + Exceptions signaled by the source sequence through an OnError callback are forwarded immediately to the result sequence. Any OnNext notifications that were in the queue at the point of the OnError callback will be dropped. + In order to delay error propagation, consider using the Observable.Materialize and Observable.Dematerialize operators, or use DelaySubscription. + + + + + + Time shifts the observable sequence by the specified relative time duration. + The relative time intervals between the values are preserved. + + The type of the elements in the source sequence. + Source sequence to delay values for. + Relative time by which to shift the observable sequence. If this value is equal to TimeSpan.Zero, the scheduler will dispatch observer callbacks as soon as possible. + Time-shifted sequence. + + is null. + + is less than TimeSpan.Zero. + + + This operator is less efficient than DelaySubscription because it records all notifications and time-delays those. This allows for immediate propagation of errors. + + + Observer callbacks for the resulting sequence will be run on the default scheduler. This effect is similar to using ObserveOn. + + + Exceptions signaled by the source sequence through an OnError callback are forwarded immediately to the result sequence. Any OnNext notifications that were in the queue at the point of the OnError callback will be dropped. + In order to delay error propagation, consider using the Observable.Materialize and Observable.Dematerialize operators, or use DelaySubscription. + + + + + + Time shifts the observable sequence by the specified relative time duration, using the specified scheduler to run timers. + The relative time intervals between the values are preserved. + + The type of the elements in the source sequence. + Source sequence to delay values for. + Relative time by which to shift the observable sequence. If this value is equal to TimeSpan.Zero, the scheduler will dispatch observer callbacks as soon as possible. + Scheduler to run the delay timers on. + Time-shifted sequence. + + or is null. + + is less than TimeSpan.Zero. + + + This operator is less efficient than DelaySubscription because it records all notifications and time-delays those. This allows for immediate propagation of errors. + + + Observer callbacks for the resulting sequence will be run on the specified scheduler. This effect is similar to using ObserveOn. + + + Exceptions signaled by the source sequence through an OnError callback are forwarded immediately to the result sequence. Any OnNext notifications that were in the queue at the point of the OnError callback will be dropped. + + + Exceptions signaled by the source sequence through an OnError callback are forwarded immediately to the result sequence. Any OnNext notifications that were in the queue at the point of the OnError callback will be dropped. + In order to delay error propagation, consider using the Observable.Materialize and Observable.Dematerialize operators, or use DelaySubscription. + + + + + + Time shifts the observable sequence based on a delay selector function for each element. + + The type of the elements in the source sequence. + The type of the elements in the delay sequences used to denote the delay duration of each element in the source sequence. + Source sequence to delay values for. + Selector function to retrieve a sequence indicating the delay for each given element. + Time-shifted sequence. + + or is null. + + + + Time shifts the observable sequence based on a subscription delay and a delay selector function for each element. + + The type of the elements in the source sequence. + The type of the elements in the delay sequences used to denote the delay duration of each element in the source sequence. + Source sequence to delay values for. + Sequence indicating the delay for the subscription to the source. + Selector function to retrieve a sequence indicating the delay for each given element. + Time-shifted sequence. + + or or is null. + + + + Time shifts the observable sequence by delaying the subscription to the specified absolute time. + + The type of the elements in the source sequence. + Source sequence to delay subscription for. + Absolute time to perform the subscription at. + Time-shifted sequence. + + is null. + + + This operator is more efficient than Delay but postpones all side-effects of subscription and affects error propagation timing. + + + The side-effects of subscribing to the source sequence will be run on the default scheduler. Observer callbacks will not be affected. + + + + + + Time shifts the observable sequence by delaying the subscription to the specified absolute time, using the specified scheduler to run timers. + + The type of the elements in the source sequence. + Source sequence to delay subscription for. + Absolute time to perform the subscription at. + Scheduler to run the subscription delay timer on. + Time-shifted sequence. + + or is null. + + + This operator is more efficient than Delay but postpones all side-effects of subscription and affects error propagation timing. + + + The side-effects of subscribing to the source sequence will be run on the specified scheduler. Observer callbacks will not be affected. + + + + + + Time shifts the observable sequence by delaying the subscription with the specified relative time duration. + + The type of the elements in the source sequence. + Source sequence to delay subscription for. + Relative time shift of the subscription. + Time-shifted sequence. + + is null. + + is less than TimeSpan.Zero. + + + This operator is more efficient than Delay but postpones all side-effects of subscription and affects error propagation timing. + + + The side-effects of subscribing to the source sequence will be run on the default scheduler. Observer callbacks will not be affected. + + + + + + Time shifts the observable sequence by delaying the subscription with the specified relative time duration, using the specified scheduler to run timers. + + The type of the elements in the source sequence. + Source sequence to delay subscription for. + Relative time shift of the subscription. + Scheduler to run the subscription delay timer on. + Time-shifted sequence. + + or is null. + + is less than TimeSpan.Zero. + + + This operator is more efficient than Delay but postpones all side-effects of subscription and affects error propagation timing. + + + The side-effects of subscribing to the source sequence will be run on the specified scheduler. Observer callbacks will not be affected. + + + + + + Dematerializes the explicit notification values of an observable sequence as implicit notifications. + + The type of the elements materialized in the source sequence notification objects. + An observable sequence containing explicit notification values which have to be turned into implicit notifications. + An observable sequence exhibiting the behavior corresponding to the source sequence's notification values. + + is null. + + + + Returns an observable sequence that contains only distinct elements. + + The type of the elements in the source sequence. + An observable sequence to retain distinct elements for. + An observable sequence only containing the distinct elements from the source sequence. + + is null. + Usage of this operator should be considered carefully due to the maintenance of an internal lookup structure which can grow large. + + + + Returns an observable sequence that contains only distinct elements according to the comparer. + + The type of the elements in the source sequence. + An observable sequence to retain distinct elements for. + Equality comparer for source elements. + An observable sequence only containing the distinct elements from the source sequence. + + or is null. + Usage of this operator should be considered carefully due to the maintenance of an internal lookup structure which can grow large. + + + + Returns an observable sequence that contains only distinct elements according to the keySelector. + + The type of the elements in the source sequence. + The type of the discriminator key computed for each element in the source sequence. + An observable sequence to retain distinct elements for. + A function to compute the comparison key for each element. + An observable sequence only containing the distinct elements, based on a computed key value, from the source sequence. + + or is null. + Usage of this operator should be considered carefully due to the maintenance of an internal lookup structure which can grow large. + + + + Returns an observable sequence that contains only distinct elements according to the keySelector and the comparer. + + The type of the elements in the source sequence. + The type of the discriminator key computed for each element in the source sequence. + An observable sequence to retain distinct elements for. + A function to compute the comparison key for each element. + Equality comparer for source elements. + An observable sequence only containing the distinct elements, based on a computed key value, from the source sequence. + + or or is null. + Usage of this operator should be considered carefully due to the maintenance of an internal lookup structure which can grow large. + + + + Returns an observable sequence that contains only distinct contiguous elements. + + The type of the elements in the source sequence. + An observable sequence to retain distinct contiguous elements for. + An observable sequence only containing the distinct contiguous elements from the source sequence. + + is null. + + + + Returns an observable sequence that contains only distinct contiguous elements according to the comparer. + + The type of the elements in the source sequence. + An observable sequence to retain distinct contiguous elements for. + Equality comparer for source elements. + An observable sequence only containing the distinct contiguous elements from the source sequence. + + or is null. + + + + Returns an observable sequence that contains only distinct contiguous elements according to the keySelector. + + The type of the elements in the source sequence. + The type of the discriminator key computed for each element in the source sequence. + An observable sequence to retain distinct contiguous elements for, based on a computed key value. + A function to compute the comparison key for each element. + An observable sequence only containing the distinct contiguous elements, based on a computed key value, from the source sequence. + + or is null. + + + + Returns an observable sequence that contains only distinct contiguous elements according to the keySelector and the comparer. + + The type of the elements in the source sequence. + The type of the discriminator key computed for each element in the source sequence. + An observable sequence to retain distinct contiguous elements for, based on a computed key value. + A function to compute the comparison key for each element. + Equality comparer for computed key values. + An observable sequence only containing the distinct contiguous elements, based on a computed key value, from the source sequence. + + or or is null. + + + + Invokes the observer's methods for each message in the source sequence. + This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + + The type of the elements in the source sequence. + Source sequence. + Observer whose methods to invoke as part of the source sequence's observation. + The source sequence with the side-effecting behavior applied. + + or is null. + + + + Invokes an action for each element in the observable sequence, and propagates all observer messages through the result sequence. + This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + + The type of the elements in the source sequence. + Source sequence. + Action to invoke for each element in the observable sequence. + The source sequence with the side-effecting behavior applied. + + or is null. + + + + Invokes an action for each element in the observable sequence and invokes an action upon graceful termination of the observable sequence. + This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + + The type of the elements in the source sequence. + Source sequence. + Action to invoke for each element in the observable sequence. + Action to invoke upon graceful termination of the observable sequence. + The source sequence with the side-effecting behavior applied. + + or or is null. + + + + Invokes an action for each element in the observable sequence and invokes an action upon exceptional termination of the observable sequence. + This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + + The type of the elements in the source sequence. + Source sequence. + Action to invoke for each element in the observable sequence. + Action to invoke upon exceptional termination of the observable sequence. + The source sequence with the side-effecting behavior applied. + + or or is null. + + + + Invokes an action for each element in the observable sequence and invokes an action upon graceful or exceptional termination of the observable sequence. + This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + + The type of the elements in the source sequence. + Source sequence. + Action to invoke for each element in the observable sequence. + Action to invoke upon exceptional termination of the observable sequence. + Action to invoke upon graceful termination of the observable sequence. + The source sequence with the side-effecting behavior applied. + + or or or is null. + + + + Repeats the given as long as the specified holds, where the is evaluated after each repeated completed. + + The type of the elements in the source sequence. + Source to repeat as long as the function evaluates to true. + Condition that will be evaluated upon the completion of an iteration through the , to determine whether repetition of the source is required. + The observable sequence obtained by concatenating the sequence as long as the holds. + + or is null. + + + + Returns the element at a specified index in a sequence. + + The type of the elements in the source sequence. + Observable sequence to return the element from. + The zero-based index of the element to retrieve. + An observable sequence that produces the element at the specified position in the source sequence. + + is null. + + is less than zero. + (Asynchronous) is greater than or equal to the number of elements in the source sequence. + + + + Returns the element at a specified index in a sequence or a default value if the index is out of range. + + The type of the elements in the source sequence. + Observable sequence to return the element from. + The zero-based index of the element to retrieve. + An observable sequence that produces the element at the specified position in the source sequence, or a default value if the index is outside the bounds of the source sequence. + + is null. + + is less than zero. + + + + Returns an empty observable sequence. + + Query provider used to construct the data source. + The type used for the type parameter of the resulting sequence. + An observable sequence with no elements. + + + + Returns an empty observable sequence, using the specified scheduler to send out the single OnCompleted message. + + Query provider used to construct the data source. + The type used for the type parameter of the resulting sequence. + Scheduler to send the termination call on. + An observable sequence with no elements. + + is null. + + + + Returns an empty observable sequence, using the specified scheduler to send out the single OnCompleted message. + + Query provider used to construct the data source. + The type used for the type parameter of the resulting sequence. + Scheduler to send the termination call on. + Object solely used to infer the type of the type parameter. This parameter is typically used when creating a sequence of anonymously typed elements. + An observable sequence with no elements. + + is null. + + + + Returns an empty observable sequence. + + Query provider used to construct the data source. + The type used for the type parameter of the resulting sequence. + Object solely used to infer the type of the type parameter. This parameter is typically used when creating a sequence of anonymously typed elements. + An observable sequence with no elements. + + + + Invokes a specified action after the source observable sequence terminates gracefully or exceptionally. + + The type of the elements in the source sequence. + Source sequence. + Action to invoke after the source observable sequence terminates. + Source sequence with the action-invoking termination behavior applied. + + or is null. + + + + Returns the first element of an observable sequence. + + The type of the elements in the source sequence. + Source observable sequence. + Sequence containing the first element in the observable sequence. + + is null. + (Asynchronous) The source sequence is empty. + + + + Returns the first element of an observable sequence that satisfies the condition in the predicate. + + The type of the elements in the source sequence. + Source observable sequence. + A predicate function to evaluate for elements in the source sequence. + Sequence containing the first element in the observable sequence that satisfies the condition in the predicate. + + or is null. + (Asynchronous) No element satisfies the condition in the predicate. -or- The source sequence is empty. + + + + Returns the first element of an observable sequence, or a default value if no such element exists. + + The type of the elements in the source sequence. + Source observable sequence. + Sequence containing the first element in the observable sequence, or a default value if no such element exists. + + is null. + + + + Returns the first element of an observable sequence that satisfies the condition in the predicate, or a default value if no such element exists. + + The type of the elements in the source sequence. + Source observable sequence. + A predicate function to evaluate for elements in the source sequence. + Sequence containing the first element in the observable sequence that satisfies the condition in the predicate, or a default value if no such element exists. + + or is null. + + + + Concatenates the observable sequences obtained by running the for each element in the given enumerable . + + Query provider used to construct the data source. + The type of the elements in the enumerable source sequence. + The type of the elements in the observable result sequence. + Enumerable source for which each element will be mapped onto an observable source that will be concatenated in the result sequence. + Function to select an observable source for each element in the . + The observable sequence obtained by concatenating the sources returned by for each element in the . + + or is null. + + + + Converts to asynchronous action into an observable sequence. Each subscription to the resulting sequence causes the action to be started. + + Query provider used to construct the data source. + Asynchronous action to convert. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + + is null. + + + + Converts to asynchronous action into an observable sequence. Each subscription to the resulting sequence causes the action to be started. + + Query provider used to construct the data source. + Asynchronous action to convert. + Scheduler on which to notify observers. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + + is null or is null. + + + + Converts to asynchronous action into an observable sequence. Each subscription to the resulting sequence causes the action to be started. + The CancellationToken passed to the asynchronous action is tied to the observable sequence's subscription that triggered the action's invocation and can be used for best-effort cancellation. + + Query provider used to construct the data source. + Asynchronous action to convert. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + When a subscription to the resulting sequence is disposed, the CancellationToken that was fed to the asynchronous function will be signaled. + + is null. + + + + Converts to asynchronous action into an observable sequence. Each subscription to the resulting sequence causes the action to be started. + The CancellationToken passed to the asynchronous action is tied to the observable sequence's subscription that triggered the action's invocation and can be used for best-effort cancellation. + + Query provider used to construct the data source. + Asynchronous action to convert. + Scheduler on which to notify observers. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + When a subscription to the resulting sequence is disposed, the CancellationToken that was fed to the asynchronous function will be signaled. + + is null or is null. + + + + Converts to asynchronous function into an observable sequence. Each subscription to the resulting sequence causes the function to be started. + + Query provider used to construct the data source. + The type of the result returned by the asynchronous function. + Asynchronous function to convert. + An observable sequence exposing the result of invoking the function, or an exception. + + is null. + + + + Converts to asynchronous function into an observable sequence. Each subscription to the resulting sequence causes the function to be started. + The CancellationToken passed to the asynchronous function is tied to the observable sequence's subscription that triggered the function's invocation and can be used for best-effort cancellation. + + Query provider used to construct the data source. + The type of the result returned by the asynchronous function. + Asynchronous function to convert. + An observable sequence exposing the result of invoking the function, or an exception. + + is null. + When a subscription to the resulting sequence is disposed, the CancellationToken that was fed to the asynchronous function will be signaled. + + + + Converts to asynchronous function into an observable sequence. Each subscription to the resulting sequence causes the function to be started. + + Query provider used to construct the data source. + The type of the result returned by the asynchronous function. + Asynchronous function to convert. + Scheduler on which to notify observers. + An observable sequence exposing the result of invoking the function, or an exception. + + is null or is null. + + + + Converts to asynchronous function into an observable sequence. Each subscription to the resulting sequence causes the function to be started. + The CancellationToken passed to the asynchronous function is tied to the observable sequence's subscription that triggered the function's invocation and can be used for best-effort cancellation. + + Query provider used to construct the data source. + The type of the result returned by the asynchronous function. + Asynchronous function to convert. + Scheduler on which to notify observers. + An observable sequence exposing the result of invoking the function, or an exception. + + is null or is null. + When a subscription to the resulting sequence is disposed, the CancellationToken that was fed to the asynchronous function will be signaled. + + + + Converts an Action-based .NET event to an observable sequence. Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events conforming to the standard .NET event pattern, use any of the FromEventPattern overloads instead. + + Query provider used to construct the data source. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains the event argument objects passed to the invocations of the underlying .NET event. + + or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEvent, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEvent, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEvent calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts an Action-based .NET event to an observable sequence. Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events conforming to the standard .NET event pattern, use any of the FromEventPattern overloads instead. + + Query provider used to construct the data source. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains the event argument objects passed to the invocations of the underlying .NET event. + + or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEvent calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEvent that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a .NET event to an observable sequence, using a supplied event delegate type. Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events conforming to the standard .NET event pattern, use any of the FromEventPattern overloads instead. + + Query provider used to construct the data source. + The delegate type of the event to be converted. + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains the event argument objects passed to the invocations of the underlying .NET event. + + or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEvent, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEvent, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEvent calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a .NET event to an observable sequence, using a supplied event delegate type. Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events conforming to the standard .NET event pattern, use any of the FromEventPattern overloads instead. + + Query provider used to construct the data source. + The delegate type of the event to be converted. + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains the event argument objects passed to the invocations of the underlying .NET event. + + or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEvent calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEvent that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a .NET event to an observable sequence, using a conversion function to obtain the event delegate. Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events conforming to the standard .NET event pattern, use any of the FromEventPattern overloads instead. + + Query provider used to construct the data source. + The delegate type of the event to be converted. + The type of the event data generated by the event. + A function used to convert the given event handler to a delegate compatible with the underlying .NET event. The resulting delegate is used in calls to the addHandler and removeHandler action parameters. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains the event argument objects passed to the invocations of the underlying .NET event. + + or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEvent, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEvent, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEvent calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a .NET event to an observable sequence, using a conversion function to obtain the event delegate. Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events conforming to the standard .NET event pattern, use any of the FromEventPattern overloads instead. + + Query provider used to construct the data source. + The delegate type of the event to be converted. + The type of the event data generated by the event. + A function used to convert the given event handler to a delegate compatible with the underlying .NET event. The resulting delegate is used in calls to the addHandler and removeHandler action parameters. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains the event argument objects passed to the invocations of the underlying .NET event. + + or or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEvent calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEvent that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a generic Action-based .NET event to an observable sequence. Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events conforming to the standard .NET event pattern, use any of the FromEventPattern overloads instead. + + Query provider used to construct the data source. + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains the event argument objects passed to the invocations of the underlying .NET event. + + or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEvent, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEvent, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEvent calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a generic Action-based .NET event to an observable sequence. Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events conforming to the standard .NET event pattern, use any of the FromEventPattern overloads instead. + + Query provider used to construct the data source. + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains the event argument objects passed to the invocations of the underlying .NET event. + + or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEvent calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEvent that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on , to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on , to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts an instance .NET event, conforming to the standard .NET event pattern with an parameter, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the target object type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + Object instance that exposes the event to convert. + Name of the event to convert. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts an instance .NET event, conforming to the standard .NET event pattern with an parameter, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the target object type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + Object instance that exposes the event to convert. + Name of the event to convert. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a static .NET event, conforming to the standard .NET event pattern with an parameter, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the specified type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + Type that exposes the static event to convert. + Name of the event to convert. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a static .NET event, conforming to the standard .NET event pattern with an parameter, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the specified type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + Type that exposes the static event to convert. + Name of the event to convert. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on a supplied event delegate type, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + The delegate type of the event to be converted. + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on a supplied event delegate type, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + The delegate type of the event to be converted. + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on , to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + The delegate type of the event to be converted. + The type of the event data generated by the event. + A function used to convert the given event handler to a delegate compatible with the underlying .NET event. The resulting delegate is used in calls to the addHandler and removeHandler action parameters. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on , to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + The delegate type of the event to be converted. + The type of the event data generated by the event. + A function used to convert the given event handler to a delegate compatible with the underlying .NET event. The resulting delegate is used in calls to the addHandler and removeHandler action parameters. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on a supplied event delegate type with a strongly typed sender parameter, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + The delegate type of the event to be converted. + The type of the sender that raises the event. + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on a supplied event delegate type with a strongly typed sender parameter, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + The delegate type of the event to be converted. + The type of the sender that raises the event. + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on , to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on , to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts an instance .NET event, conforming to the standard .NET event pattern with strongly typed event arguments, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the target object type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + The type of the event data generated by the event. + Object instance that exposes the event to convert. + Name of the event to convert. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. -or- The event's second argument type is not assignable to TEventArgs. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts an instance .NET event, conforming to the standard .NET event pattern with strongly typed event arguments, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the target object type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + The type of the event data generated by the event. + Object instance that exposes the event to convert. + Name of the event to convert. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. -or- The event's second argument type is not assignable to TEventArgs. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a static .NET event, conforming to the standard .NET event pattern with strongly typed event arguments, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the specified type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + The type of the event data generated by the event. + Type that exposes the static event to convert. + Name of the event to convert. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. -or- The event's second argument type is not assignable to TEventArgs. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a static .NET event, conforming to the standard .NET event pattern with strongly typed event arguments, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the specified type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + The type of the event data generated by the event. + Type that exposes the static event to convert. + Name of the event to convert. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. -or- The event's second argument type is not assignable to TEventArgs. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts an instance .NET event, conforming to the standard .NET event pattern with a strongly typed sender and strongly typed event arguments, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the target object type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + The type of the sender that raises the event. + The type of the event data generated by the event. + Object instance that exposes the event to convert. + Name of the event to convert. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. -or- The event's first argument type is not assignable to TSender. -or- The event's second argument type is not assignable to TEventArgs. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts an instance .NET event, conforming to the standard .NET event pattern with a strongly typed sender and strongly typed event arguments, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the target object type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + The type of the sender that raises the event. + The type of the event data generated by the event. + Object instance that exposes the event to convert. + Name of the event to convert. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. -or- The event's first argument type is not assignable to TSender. -or- The event's second argument type is not assignable to TEventArgs. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a static .NET event, conforming to the standard .NET event pattern with a strongly typed sender and strongly typed event arguments, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the specified type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + The type of the sender that raises the event. + The type of the event data generated by the event. + Type that exposes the static event to convert. + Name of the event to convert. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. -or- The event's first argument type is not assignable to TSender. -or- The event's second argument type is not assignable to TEventArgs. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a static .NET event, conforming to the standard .NET event pattern with a strongly typed sender and strongly typed event arguments, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the specified type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + The type of the sender that raises the event. + The type of the event data generated by the event. + Type that exposes the static event to convert. + Name of the event to convert. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. -or- The event's first argument type is not assignable to TSender. -or- The event's second argument type is not assignable to TEventArgs. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Generates an observable sequence by running a state-driven loop producing the sequence's elements. + + Query provider used to construct the data source. + The type of the state used in the generator loop. + The type of the elements in the produced sequence. + Initial state. + Condition to terminate generation (upon returning false). + Iteration step function. + Selector function for results produced in the sequence. + The generated sequence. + + or or is null. + + + + Generates an observable sequence by running a state-driven loop producing the sequence's elements, using the specified scheduler to send out observer messages. + + Query provider used to construct the data source. + The type of the state used in the generator loop. + The type of the elements in the produced sequence. + Initial state. + Condition to terminate generation (upon returning false). + Iteration step function. + Selector function for results produced in the sequence. + Scheduler on which to run the generator loop. + The generated sequence. + + or or or is null. + + + + Generates an observable sequence by running a state-driven and temporal loop producing the sequence's elements. + + Query provider used to construct the data source. + The type of the state used in the generator loop. + The type of the elements in the produced sequence. + Initial state. + Condition to terminate generation (upon returning false). + Iteration step function. + Selector function for results produced in the sequence. + Time selector function to control the speed of values being produced each iteration. + The generated sequence. + + or or or is null. + + + + Generates an observable sequence by running a state-driven and temporal loop producing the sequence's elements. + + Query provider used to construct the data source. + The type of the state used in the generator loop. + The type of the elements in the produced sequence. + Initial state. + Condition to terminate generation (upon returning false). + Iteration step function. + Selector function for results produced in the sequence. + Time selector function to control the speed of values being produced each iteration. + The generated sequence. + + or or or is null. + + + + Generates an observable sequence by running a state-driven and temporal loop producing the sequence's elements, using the specified scheduler to run timers and to send out observer messages. + + Query provider used to construct the data source. + The type of the state used in the generator loop. + The type of the elements in the produced sequence. + Initial state. + Condition to terminate generation (upon returning false). + Iteration step function. + Selector function for results produced in the sequence. + Time selector function to control the speed of values being produced each iteration. + Scheduler on which to run the generator loop. + The generated sequence. + + or or or or is null. + + + + Generates an observable sequence by running a state-driven and temporal loop producing the sequence's elements, using the specified scheduler to run timers and to send out observer messages. + + Query provider used to construct the data source. + The type of the state used in the generator loop. + The type of the elements in the produced sequence. + Initial state. + Condition to terminate generation (upon returning false). + Iteration step function. + Selector function for results produced in the sequence. + Time selector function to control the speed of values being produced each iteration. + Scheduler on which to run the generator loop. + The generated sequence. + + or or or or is null. + + + + Groups the elements of an observable sequence according to a specified key selector function. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + An observable sequence whose elements to group. + A function to extract the key for each element. + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + + or is null. + + + + Groups the elements of an observable sequence with the specified initial capacity according to a specified key selector function. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + An observable sequence whose elements to group. + A function to extract the key for each element. + The initial number of elements that the underlying dictionary can contain. + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + + or is null. + + is less than 0. + + + + Groups the elements of an observable sequence with the specified initial capacity according to a specified key selector function and comparer. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + An observable sequence whose elements to group. + A function to extract the key for each element. + The initial number of elements that the underlying dictionary can contain. + An equality comparer to compare keys with. + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + + or or is null. + + is less than 0. + + + + Groups the elements of an observable sequence according to a specified key selector function and comparer. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + An observable sequence whose elements to group. + A function to extract the key for each element. + An equality comparer to compare keys with. + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + + or or is null. + + + + Groups the elements of an observable sequence and selects the resulting elements by using a specified function. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements within the groups computed for each element in the source sequence. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to map each source element to an element in an observable group. + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + + or or is null. + + + + Groups the elements of an observable sequence with the specified initial capacity and selects the resulting elements by using a specified function. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements within the groups computed for each element in the source sequence. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to map each source element to an element in an observable group. + The initial number of elements that the underlying dictionary can contain. + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + + or or is null. + + is less than 0. + + + + Groups the elements of an observable sequence with the specified initial capacity according to a specified key selector function and comparer and selects the resulting elements by using a specified function. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements within the groups computed for each element in the source sequence. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to map each source element to an element in an observable group. + The initial number of elements that the underlying dictionary can contain. + An equality comparer to compare keys with. + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + + or or or is null. + + is less than 0. + + + + Groups the elements of an observable sequence according to a specified key selector function and comparer and selects the resulting elements by using a specified function. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements within the groups computed for each element in the source sequence. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to map each source element to an element in an observable group. + An equality comparer to compare keys with. + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + + or or or is null. + + + + Groups the elements of an observable sequence according to a specified key selector function. + A duration selector function is used to control the lifetime of groups. When a group expires, it receives an OnCompleted notification. When a new element with the same + key value as a reclaimed group occurs, the group will be reborn with a new lifetime request. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements in the duration sequences obtained for each group to denote its lifetime. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to signal the expiration of a group. + + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + If a group's lifetime expires, a new group with the same key value can be created once an element with such a key value is encountered. + + + or or is null. + + + + Groups the elements of an observable sequence with the specified initial capacity according to a specified key selector function. + A duration selector function is used to control the lifetime of groups. When a group expires, it receives an OnCompleted notification. When a new element with the same + key value as a reclaimed group occurs, the group will be reborn with a new lifetime request. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements in the duration sequences obtained for each group to denote its lifetime. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to signal the expiration of a group. + The initial number of elements that the underlying dictionary can contain. + + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + If a group's lifetime expires, a new group with the same key value can be created once an element with such a key value is encountered. + + + or or is null. + + is less than 0. + + + + Groups the elements of an observable sequence with the specified initial capacity according to a specified key selector function and comparer. + A duration selector function is used to control the lifetime of groups. When a group expires, it receives an OnCompleted notification. When a new element with the same + key value as a reclaimed group occurs, the group will be reborn with a new lifetime request. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements in the duration sequences obtained for each group to denote its lifetime. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to signal the expiration of a group. + The initial number of elements that the underlying dictionary can contain. + An equality comparer to compare keys with. + + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + If a group's lifetime expires, a new group with the same key value can be created once an element with such a key value is encountered. + + + or or or is null. + + is less than 0. + + + + Groups the elements of an observable sequence according to a specified key selector function and comparer. + A duration selector function is used to control the lifetime of groups. When a group expires, it receives an OnCompleted notification. When a new element with the same + key value as a reclaimed group occurs, the group will be reborn with a new lifetime request. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements in the duration sequences obtained for each group to denote its lifetime. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to signal the expiration of a group. + An equality comparer to compare keys with. + + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + If a group's lifetime expires, a new group with the same key value can be created once an element with such a key value is encountered. + + + or or or is null. + + + + Groups the elements of an observable sequence according to a specified key selector function and selects the resulting elements by using a specified function. + A duration selector function is used to control the lifetime of groups. When a group expires, it receives an OnCompleted notification. When a new element with the same + key value as a reclaimed group occurs, the group will be reborn with a new lifetime request. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements within the groups computed for each element in the source sequence. + The type of the elements in the duration sequences obtained for each group to denote its lifetime. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to map each source element to an element in an observable group. + A function to signal the expiration of a group. + + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + If a group's lifetime expires, a new group with the same key value can be created once an element with such a key value is encountered. + + + or or or is null. + + + + Groups the elements of an observable sequence with the specified initial capacity according to a specified key selector function and selects the resulting elements by using a specified function. + A duration selector function is used to control the lifetime of groups. When a group expires, it receives an OnCompleted notification. When a new element with the same + key value as a reclaimed group occurs, the group will be reborn with a new lifetime request. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements within the groups computed for each element in the source sequence. + The type of the elements in the duration sequences obtained for each group to denote its lifetime. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to map each source element to an element in an observable group. + A function to signal the expiration of a group. + The initial number of elements that the underlying dictionary can contain. + + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + If a group's lifetime expires, a new group with the same key value can be created once an element with such a key value is encountered. + + + or or or is null. + + is less than 0. + + + + Groups the elements of an observable sequence with the specified initial capacity according to a specified key selector function and comparer and selects the resulting elements by using a specified function. + A duration selector function is used to control the lifetime of groups. When a group expires, it receives an OnCompleted notification. When a new element with the same + key value as a reclaimed group occurs, the group will be reborn with a new lifetime request. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements within the groups computed for each element in the source sequence. + The type of the elements in the duration sequences obtained for each group to denote its lifetime. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to map each source element to an element in an observable group. + A function to signal the expiration of a group. + The initial number of elements that the underlying dictionary can contain. + An equality comparer to compare keys with. + + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + If a group's lifetime expires, a new group with the same key value can be created once an element with such a key value is encountered. + + + or or or or is null. + + is less than 0. + + + + Groups the elements of an observable sequence according to a specified key selector function and comparer and selects the resulting elements by using a specified function. + A duration selector function is used to control the lifetime of groups. When a group expires, it receives an OnCompleted notification. When a new element with the same + key value as a reclaimed group occurs, the group will be reborn with a new lifetime request. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements within the groups computed for each element in the source sequence. + The type of the elements in the duration sequences obtained for each group to denote its lifetime. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to map each source element to an element in an observable group. + A function to signal the expiration of a group. + An equality comparer to compare keys with. + + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + If a group's lifetime expires, a new group with the same key value can be created once an element with such a key value is encountered. + + + or or or or is null. + + + + Correlates the elements of two sequences based on overlapping durations, and groups the results. + + The type of the elements in the left source sequence. + The type of the elements in the right source sequence. + The type of the elements in the duration sequence denoting the computed duration of each element in the left source sequence. + The type of the elements in the duration sequence denoting the computed duration of each element in the right source sequence. + The type of the elements in the result sequence, obtained by invoking the result selector function for source elements with overlapping duration. + The left observable sequence to join elements for. + The right observable sequence to join elements for. + A function to select the duration of each element of the left observable sequence, used to determine overlap. + A function to select the duration of each element of the right observable sequence, used to determine overlap. + A function invoked to compute a result element for any element of the left sequence with overlapping elements from the right observable sequence. + An observable sequence that contains result elements computed from source elements that have an overlapping duration. + + or or or or is null. + + + + If the specified evaluates true, select the sequence. Otherwise, return an empty sequence. + + Query provider used to construct the data source. + The type of the elements in the result sequence. + Condition evaluated to decide which sequence to return. + Sequence returned in case evaluates true. + + if evaluates true; an empty sequence otherwise. + + or is null. + + + + If the specified evaluates true, select the sequence. Otherwise, select the sequence. + + Query provider used to construct the data source. + The type of the elements in the result sequence. + Condition evaluated to decide which sequence to return. + Sequence returned in case evaluates true. + Sequence returned in case evaluates false. + + if evaluates true; otherwise. + + or or is null. + + + + If the specified evaluates true, select the sequence. Otherwise, return an empty sequence generated on the specified scheduler. + + Query provider used to construct the data source. + The type of the elements in the result sequence. + Condition evaluated to decide which sequence to return. + Sequence returned in case evaluates true. + Scheduler to generate an empty sequence on in case evaluates false. + + if evaluates true; an empty sequence otherwise. + + or or is null. + + + + Ignores all elements in an observable sequence leaving only the termination messages. + + The type of the elements in the source sequence. + Source sequence. + An empty observable sequence that signals termination, successful or exceptional, of the source sequence. + + is null. + + + + Returns an observable sequence that produces a value after each period. + + Query provider used to construct the data source. + Period for producing the values in the resulting sequence. If this value is equal to TimeSpan.Zero, the timer will recur as fast as possible. + An observable sequence that produces a value after each period. + + is less than TimeSpan.Zero. + + Intervals are measured between the start of subsequent notifications, not between the end of the previous and the start of the next notification. + If the observer takes longer than the interval period to handle the message, the subsequent notification will be delivered immediately after the + current one has been handled. In case you need to control the time between the end and the start of consecutive notifications, consider using the + + operator instead. + + + + + Returns an observable sequence that produces a value after each period, using the specified scheduler to run timers and to send out observer messages. + + Query provider used to construct the data source. + Period for producing the values in the resulting sequence. If this value is equal to TimeSpan.Zero, the timer will recur as fast as possible. + Scheduler to run the timer on. + An observable sequence that produces a value after each period. + + is less than TimeSpan.Zero. + + is null. + + Intervals are measured between the start of subsequent notifications, not between the end of the previous and the start of the next notification. + If the observer takes longer than the interval period to handle the message, the subsequent notification will be delivered immediately after the + current one has been handled. In case you need to control the time between the end and the start of consecutive notifications, consider using the + + operator instead. + + + + + Determines whether an observable sequence is empty. + + The type of the elements in the source sequence. + An observable sequence to check for emptiness. + An observable sequence containing a single element determining whether the source sequence is empty. + + is null. + + + + Correlates the elements of two sequences based on overlapping durations. + + The type of the elements in the left source sequence. + The type of the elements in the right source sequence. + The type of the elements in the duration sequence denoting the computed duration of each element in the left source sequence. + The type of the elements in the duration sequence denoting the computed duration of each element in the right source sequence. + The type of the elements in the result sequence, obtained by invoking the result selector function for source elements with overlapping duration. + The left observable sequence to join elements for. + The right observable sequence to join elements for. + A function to select the duration of each element of the left observable sequence, used to determine overlap. + A function to select the duration of each element of the right observable sequence, used to determine overlap. + A function invoked to compute a result element for any two overlapping elements of the left and right observable sequences. + An observable sequence that contains result elements computed from source elements that have an overlapping duration. + + or or or or is null. + + + + Returns the last element of an observable sequence. + + The type of the elements in the source sequence. + Source observable sequence. + Sequence containing the last element in the observable sequence. + + is null. + (Asynchronous) The source sequence is empty. + + + + Returns the last element of an observable sequence that satisfies the condition in the predicate. + + The type of the elements in the source sequence. + Source observable sequence. + A predicate function to evaluate for elements in the source sequence. + Sequence containing the last element in the observable sequence that satisfies the condition in the predicate. + + or is null. + (Asynchronous) No element satisfies the condition in the predicate. -or- The source sequence is empty. + + + + Returns the last element of an observable sequence, or a default value if no such element exists. + + The type of the elements in the source sequence. + Source observable sequence. + Sequence containing the last element in the observable sequence, or a default value if no such element exists. + + is null. + + + + Returns the last element of an observable sequence that satisfies the condition in the predicate, or a default value if no such element exists. + + The type of the elements in the source sequence. + Source observable sequence. + A predicate function to evaluate for elements in the source sequence. + Sequence containing the last element in the observable sequence that satisfies the condition in the predicate, or a default value if no such element exists. + + or is null. + + + + Returns an enumerable sequence whose enumeration returns the latest observed element in the source observable sequence. + Enumerators on the resulting sequence will never produce the same element repeatedly, and will block until the next element becomes available. + + The type of the elements in the source sequence. + Source observable sequence. + The enumerable sequence that returns the last sampled element upon each iteration and subsequently blocks until the next element in the observable source sequence becomes available. + This operator requires the source's object (see ) to implement . + + + + Returns an observable sequence containing an that represents the total number of elements in an observable sequence. + + The type of the elements in the source sequence. + An observable sequence that contains elements to be counted. + An observable sequence containing a single element with the number of elements in the input sequence. + + is null. + (Asynchronous) The number of elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns an observable sequence containing an that represents how many elements in the specified observable sequence satisfy a condition. + + The type of the elements in the source sequence. + An observable sequence that contains elements to be counted. + A function to test each element for a condition. + An observable sequence containing a single element with a number that represents how many elements in the input sequence satisfy the condition in the predicate function. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Materializes the implicit notifications of an observable sequence as explicit notification values. + + The type of the elements in the source sequence. + An observable sequence to get notification values for. + An observable sequence containing the materialized notification values from the source sequence. + + is null. + + + + Returns the maximum value in an observable sequence of values. + + A sequence of values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of values. + + A sequence of values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of values. + + A sequence of values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of values. + + A sequence of values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of values. + + A sequence of values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum element in an observable sequence. + + The type of the elements in the source sequence. + An observable sequence to determine the maximum element of. + An observable sequence containing a single element with the maximum element in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence according to the specified comparer. + + The type of the elements in the source sequence. + An observable sequence to determine the maximum element of. + Comparer used to compare elements. + An observable sequence containing a single element with the maximum element in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum value. + + The type of the elements in the source sequence. + The type of the objects derived from the elements in the source sequence to determine the maximum of. + An observable sequence to determine the minimum element of. + A transform function to apply to each element. + An observable sequence containing a single element with the value that corresponds to the maximum element in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum value according to the specified comparer. + + The type of the elements in the source sequence. + The type of the objects derived from the elements in the source sequence to determine the maximum of. + An observable sequence to determine the minimum element of. + A transform function to apply to each element. + Comparer used to compare elements. + An observable sequence containing a single element with the value that corresponds to the maximum element in the source sequence. + + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the elements in an observable sequence with the maximum key value. + + The type of the elements in the source sequence. + The type of the key computed for each element in the source sequence. + An observable sequence to get the maximum elements for. + Key selector function. + An observable sequence containing a list of zero or more elements that have a maximum key value. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the elements in an observable sequence with the maximum key value according to the specified comparer. + + The type of the elements in the source sequence. + The type of the key computed for each element in the source sequence. + An observable sequence to get the maximum elements for. + Key selector function. + Comparer used to compare key values. + An observable sequence containing a list of zero or more elements that have a maximum key value. + + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Merges elements from two observable sequences into a single observable sequence. + + The type of the elements in the source sequences. + First observable sequence. + Second observable sequence. + The observable sequence that merges the elements of the given sequences. + + or is null. + + + + Merges elements from two observable sequences into a single observable sequence, using the specified scheduler for enumeration of and subscription to the sources. + + The type of the elements in the source sequences. + First observable sequence. + Second observable sequence. + Scheduler used to introduce concurrency for making subscriptions to the given sequences. + The observable sequence that merges the elements of the given sequences. + + or or is null. + + + + Merges elements from all of the specified observable sequences into a single observable sequence, using the specified scheduler for enumeration of and subscription to the sources. + + Query provider used to construct the data source. + The type of the elements in the source sequences. + Observable sequences. + Scheduler to run the enumeration of the sequence of sources on. + The observable sequence that merges the elements of the observable sequences. + + or is null. + + + + Merges elements from all inner observable sequences into a single observable sequence. + + The type of the elements in the source sequences. + Observable sequence of inner observable sequences. + The observable sequence that merges the elements of the inner sequences. + + is null. + + + + Merges results from all source tasks into a single observable sequence. + + The type of the results produced by the source tasks. + Observable sequence of tasks. + The observable sequence that merges the results of the source tasks. + + is null. + If the tasks support cancellation, consider manual conversion of the tasks using , followed by a merge operation using . + + + + Merges elements from all of the specified observable sequences into a single observable sequence. + + Query provider used to construct the data source. + The type of the elements in the source sequences. + Observable sequences. + The observable sequence that merges the elements of the observable sequences. + + is null. + + + + Merges elements from all observable sequences in the given enumerable sequence into a single observable sequence. + + Query provider used to construct the data source. + The type of the elements in the source sequences. + Enumerable sequence of observable sequences. + The observable sequence that merges the elements of the observable sequences. + + is null. + + + + Merges elements from all inner observable sequences into a single observable sequence, limiting the number of concurrent subscriptions to inner sequences. + + The type of the elements in the source sequences. + Observable sequence of inner observable sequences. + Maximum number of inner observable sequences being subscribed to concurrently. + The observable sequence that merges the elements of the inner sequences. + + is null. + + is less than or equal to zero. + + + + Merges elements from all observable sequences in the given enumerable sequence into a single observable sequence, limiting the number of concurrent subscriptions to inner sequences. + + Query provider used to construct the data source. + The type of the elements in the source sequences. + Enumerable sequence of observable sequences. + Maximum number of observable sequences being subscribed to concurrently. + The observable sequence that merges the elements of the observable sequences. + + is null. + + is less than or equal to zero. + + + + Merges elements from all observable sequences in the given enumerable sequence into a single observable sequence, limiting the number of concurrent subscriptions to inner sequences, and using the specified scheduler for enumeration of and subscription to the sources. + + Query provider used to construct the data source. + The type of the elements in the source sequences. + Enumerable sequence of observable sequences. + Maximum number of observable sequences being subscribed to concurrently. + Scheduler to run the enumeration of the sequence of sources on. + The observable sequence that merges the elements of the observable sequences. + + or is null. + + is less than or equal to zero. + + + + Merges elements from all observable sequences in the given enumerable sequence into a single observable sequence, using the specified scheduler for enumeration of and subscription to the sources. + + Query provider used to construct the data source. + The type of the elements in the source sequences. + Enumerable sequence of observable sequences. + Scheduler to run the enumeration of the sequence of sources on. + The observable sequence that merges the elements of the observable sequences. + + or is null. + + + + Returns the minimum value in an observable sequence of values. + + A sequence of values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of values. + + A sequence of values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of values. + + A sequence of values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of values. + + A sequence of values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of values. + + A sequence of values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum element in an observable sequence. + + The type of the elements in the source sequence. + An observable sequence to determine the minimum element of. + An observable sequence containing a single element with the minimum element in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum element in an observable sequence according to the specified comparer. + + The type of the elements in the source sequence. + An observable sequence to determine the minimum element of. + Comparer used to compare elements. + An observable sequence containing a single element with the minimum element in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum value. + + The type of the elements in the source sequence. + The type of the objects derived from the elements in the source sequence to determine the minimum of. + An observable sequence to determine the minimum element of. + A transform function to apply to each element. + An observable sequence containing a single element with the value that corresponds to the minimum element in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum value according to the specified comparer. + + The type of the elements in the source sequence. + The type of the objects derived from the elements in the source sequence to determine the minimum of. + An observable sequence to determine the minimum element of. + A transform function to apply to each element. + Comparer used to compare elements. + An observable sequence containing a single element with the value that corresponds to the minimum element in the source sequence. + + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the elements in an observable sequence with the minimum key value. + + The type of the elements in the source sequence. + The type of the key computed for each element in the source sequence. + An observable sequence to get the minimum elements for. + Key selector function. + An observable sequence containing a list of zero or more elements that have a minimum key value. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the elements in an observable sequence with the minimum key value according to the specified comparer. + + The type of the elements in the source sequence. + The type of the key computed for each element in the source sequence. + An observable sequence to get the minimum elements for. + Key selector function. + Comparer used to compare key values. + An observable sequence containing a list of zero or more elements that have a minimum key value. + + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns an enumerable sequence whose enumeration returns the most recently observed element in the source observable sequence, using the specified initial value in case no element has been sampled yet. + Enumerators on the resulting sequence never block and can produce the same element repeatedly. + + The type of the elements in the source sequence. + Source observable sequence. + Initial value that will be yielded by the enumerable sequence if no element has been sampled yet. + The enumerable sequence that returns the last sampled element upon each iteration. + + is null. + This operator requires the source's object (see ) to implement . + + + + Multicasts the source sequence notifications through an instantiated subject into all uses of the sequence within a selector function. Each + subscription to the resulting sequence causes a separate multicast invocation, exposing the sequence resulting from the selector function's + invocation. For specializations with fixed subject types, see Publish, PublishLast, and Replay. + + The type of the elements in the source sequence. + The type of the elements produced by the intermediate subject. + The type of the elements in the result sequence. + Source sequence which will be multicasted in the specified selector function. + Factory function to create an intermediate subject through which the source sequence's elements will be multicast to the selector function. + Selector function which can use the multicasted source sequence subject to the policies enforced by the created subject. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + + or or is null. + + + + Returns a non-terminating observable sequence, which can be used to denote an infinite duration (e.g. when using reactive joins). + + Query provider used to construct the data source. + The type used for the type parameter of the resulting sequence. + An observable sequence whose observers will never get called. + + + + Returns a non-terminating observable sequence, which can be used to denote an infinite duration (e.g. when using reactive joins). + + Query provider used to construct the data source. + The type used for the type parameter of the resulting sequence. + Object solely used to infer the type of the type parameter. This parameter is typically used when creating a sequence of anonymously typed elements. + An observable sequence whose observers will never get called. + + + + Returns an enumerable sequence whose enumeration blocks until the next element in the source observable sequence becomes available. + Enumerators on the resulting sequence will block until the next element becomes available. + + The type of the elements in the source sequence. + Source observable sequence. + The enumerable sequence that blocks upon each iteration until the next element in the observable source sequence becomes available. + + is null. + This operator requires the source's object (see ) to implement . + + + + Wraps the source sequence in order to run its observer callbacks on the specified synchronization context. + + The type of the elements in the source sequence. + Source sequence. + Synchronization context to notify observers on. + The source sequence whose observations happen on the specified synchronization context. + + or is null. + + This only invokes observer callbacks on a synchronization context. In case the subscription and/or unsubscription actions have side-effects + that require to be run on a synchronization context, use . + + + + + Wraps the source sequence in order to run its observer callbacks on the specified scheduler. + + The type of the elements in the source sequence. + Source sequence. + Scheduler to notify observers on. + The source sequence whose observations happen on the specified scheduler. + + or is null. + + This only invokes observer callbacks on a scheduler. In case the subscription and/or unsubscription actions have side-effects + that require to be run on a scheduler, use . + + + + + Filters the elements of an observable sequence based on the specified type. + + The type to filter the elements in the source sequence on. + The observable sequence that contains the elements to be filtered. + An observable sequence that contains elements from the input sequence of type TResult. + + is null. + + + + Concatenates the second observable sequence to the first observable sequence upon successful or exceptional termination of the first. + + The type of the elements in the source sequences. + First observable sequence whose exception (if any) is caught. + Second observable sequence used to produce results after the first sequence terminates. + An observable sequence that concatenates the first and second sequence, even if the first sequence terminates exceptionally. + + or is null. + + + + Concatenates all of the specified observable sequences, even if the previous observable sequence terminated exceptionally. + + Query provider used to construct the data source. + The type of the elements in the source sequences. + Observable sequences to concatenate. + An observable sequence that concatenates the source sequences, even if a sequence terminates exceptionally. + + is null. + + + + Concatenates all observable sequences in the given enumerable sequence, even if the previous observable sequence terminated exceptionally. + + Query provider used to construct the data source. + The type of the elements in the source sequences. + Observable sequences to concatenate. + An observable sequence that concatenates the source sequences, even if a sequence terminates exceptionally. + + is null. + + + + Prepend a value to an observable sequence. + + The type of the elements in the source sequence. + Source sequence to prepend the value to. + Value to prepend to the specified sequence. + The source sequence prepended with the specified value. + + is null. + + + + Prepend a value to an observable sequence. + + The type of the elements in the source sequence. + Source sequence to prepend the value to. + Value to prepend to the specified sequence. + Scheduler to emit the prepend values on. + The source sequence prepended with the specified value. + + is null. + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence. + This operator is a specialization of Multicast using a regular . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all notifications of the source from the time of the subscription on. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + + or is null. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence and starts with initialValue. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive immediately receive the initial value, followed by all notifications of the source from the time of the subscription on. + Initial value received by observers upon subscription. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + + or is null. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence containing only the last notification. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will only receive the last notification of the source. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + + or is null. + + + + + Generates an observable sequence of integral numbers within a specified range. + + Query provider used to construct the data source. + The value of the first integer in the sequence. + The number of sequential integers to generate. + An observable sequence that contains a range of sequential integral numbers. + + is less than zero. -or- + - 1 is larger than . + + + + Generates an observable sequence of integral numbers within a specified range, using the specified scheduler to send out observer messages. + + Query provider used to construct the data source. + The value of the first integer in the sequence. + The number of sequential integers to generate. + Scheduler to run the generator loop on. + An observable sequence that contains a range of sequential integral numbers. + + is less than zero. -or- + - 1 is larger than . + + is null. + + + + Returns an observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + + Query provider used to construct the data source. + The type of the elements in the source sequence. + Connectable observable sequence. + An observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + + is null. + + + + Returns an observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + + Query provider used to construct the data source. + The type of the elements in the source sequence. + Connectable observable sequence. + The time span that should be waited before possibly unsubscribing from the connectable observable. + An observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + + is null. + + + + Returns an observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + + Query provider used to construct the data source. + The type of the elements in the source sequence. + Connectable observable sequence. + The time span that should be waited before possibly unsubscribing from the connectable observable. + The scheduler to use for delayed unsubscription. + An observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + + is null. + + + + Returns an observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + + Query provider used to construct the data source. + The type of the elements in the source sequence. + Connectable observable sequence. + The minimum number of observers required to subscribe before establishing the connection to the source. + An observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + + is null. + is non-positive. + + + + Returns an observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + + Query provider used to construct the data source. + The type of the elements in the source sequence. + Connectable observable sequence. + The minimum number of observers required to subscribe before establishing the connection to the source. + The time span that should be waited before possibly unsubscribing from the connectable observable. + An observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + + is null. + is non-positive. + + + + Returns an observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + + Query provider used to construct the data source. + The type of the elements in the source sequence. + Connectable observable sequence. + The minimum number of observers required to subscribe before establishing the connection to the source. + The time span that should be waited before possibly unsubscribing from the connectable observable. + The scheduler to use for delayed unsubscription. + An observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + + is null. + is non-positive. + + + + Generates an observable sequence that repeats the given element infinitely. + + Query provider used to construct the data source. + The type of the element that will be repeated in the produced sequence. + Element to repeat. + An observable sequence that repeats the given element infinitely. + + + + Generates an observable sequence that repeats the given element the specified number of times. + + Query provider used to construct the data source. + The type of the element that will be repeated in the produced sequence. + Element to repeat. + Number of times to repeat the element. + An observable sequence that repeats the given element the specified number of times. + + is less than zero. + + + + Generates an observable sequence that repeats the given element the specified number of times, using the specified scheduler to send out observer messages. + + Query provider used to construct the data source. + The type of the element that will be repeated in the produced sequence. + Element to repeat. + Number of times to repeat the element. + Scheduler to run the producer loop on. + An observable sequence that repeats the given element the specified number of times. + + is less than zero. + + is null. + + + + Generates an observable sequence that repeats the given element infinitely, using the specified scheduler to send out observer messages. + + Query provider used to construct the data source. + The type of the element that will be repeated in the produced sequence. + Element to repeat. + Scheduler to run the producer loop on. + An observable sequence that repeats the given element infinitely. + + is null. + + + + Repeats the observable sequence indefinitely. + + The type of the elements in the source sequence. + Observable sequence to repeat. + The observable sequence producing the elements of the given sequence repeatedly and sequentially. + + is null. + + + + Repeats the observable sequence a specified number of times. + + The type of the elements in the source sequence. + Observable sequence to repeat. + Number of times to repeat the sequence. + The observable sequence producing the elements of the given sequence repeatedly. + + is null. + + is less than zero. + + + + Repeatedly resubscribes to the source observable after a normal completion and when the observable + returned by a handler produces an arbitrary item. + + The type of the elements in the source sequence. + The arbitrary element type signaled by the handler observable. + Observable sequence to keep repeating when it successfully terminates. + The function that is called for each observer and takes an observable sequence objects. + It should return an observable of arbitrary items that should signal that arbitrary item in + response to receiving the completion signal from the source observable. If this observable signals + a terminal event, the sequence is terminated with that signal instead. + An observable sequence producing the elements of the given sequence repeatedly while each repetition terminates successfully. + is null. + is null. + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying all notifications. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all the notifications of the source. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + + or is null. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum element count for the replay buffer. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all the notifications of the source subject to the specified replay buffer trimming policy. + Maximum element count of the replay buffer. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + + or is null. + + is less than zero. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum element count for the replay buffer. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all the notifications of the source subject to the specified replay buffer trimming policy. + Maximum element count of the replay buffer. + Scheduler where connected observers within the selector function will be invoked on. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + + or or is null. + + is less than zero. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum time length and element count for the replay buffer. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all the notifications of the source subject to the specified replay buffer trimming policy. + Maximum element count of the replay buffer. + Maximum time length of the replay buffer. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + + or is null. + + is less than zero. + + is less than TimeSpan.Zero. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum time length and element count for the replay buffer. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all the notifications of the source subject to the specified replay buffer trimming policy. + Maximum element count of the replay buffer. + Maximum time length of the replay buffer. + Scheduler where connected observers within the selector function will be invoked on. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + + or or is null. + + is less than zero. + + is less than TimeSpan.Zero. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying all notifications. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all the notifications of the source. + Scheduler where connected observers within the selector function will be invoked on. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + + or or is null. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum time length for the replay buffer. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all the notifications of the source subject to the specified replay buffer trimming policy. + Maximum time length of the replay buffer. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + + or is null. + + is less than TimeSpan.Zero. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum time length for the replay buffer. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all the notifications of the source subject to the specified replay buffer trimming policy. + Maximum time length of the replay buffer. + Scheduler where connected observers within the selector function will be invoked on. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + + or or is null. + + is less than TimeSpan.Zero. + + + + + Repeats the source observable sequence until it successfully terminates. + + The type of the elements in the source sequence. + Observable sequence to repeat until it successfully terminates. + An observable sequence producing the elements of the given sequence repeatedly until it terminates successfully. + + is null. + + + + Repeats the source observable sequence the specified number of times or until it successfully terminates. + + The type of the elements in the source sequence. + Observable sequence to repeat until it successfully terminates. + Number of times to repeat the sequence. + An observable sequence producing the elements of the given sequence repeatedly until it terminates successfully. + + is null. + + is less than zero. + + + + Retries (resubscribes to) the source observable after a failure and when the observable + returned by a handler produces an arbitrary item. + + The type of the elements in the source sequence. + The arbitrary element type signaled by the handler observable. + Observable sequence to repeat until it successfully terminates. + The function that is called for each observer and takes an observable sequence of + errors. It should return an observable of arbitrary items that should signal that arbitrary item in + response to receiving the failure Exception from the source observable. If this observable signals + a terminal event, the sequence is terminated with that signal instead. + An observable sequence producing the elements of the given sequence repeatedly until it terminates successfully. + + is null. + + is null. + + + + Returns an observable sequence that contains a single element. + + Query provider used to construct the data source. + The type of the element that will be returned in the produced sequence. + Single element in the resulting observable sequence. + An observable sequence containing the single specified element. + + + + Returns an observable sequence that contains a single element, using the specified scheduler to send out observer messages. + + Query provider used to construct the data source. + The type of the element that will be returned in the produced sequence. + Single element in the resulting observable sequence. + Scheduler to send the single element on. + An observable sequence containing the single specified element. + + is null. + + + + Samples the observable sequence at each interval. + Upon each sampling tick, the latest element (if any) in the source sequence during the last sampling interval is sent to the resulting sequence. + + The type of the elements in the source sequence. + Source sequence to sample. + Interval at which to sample. If this value is equal to TimeSpan.Zero, the scheduler will continuously sample the stream. + Sampled observable sequence. + + is null. + + is less than TimeSpan.Zero. + + Specifying a TimeSpan.Zero value for doesn't guarantee all source sequence elements will be preserved. This is a side-effect + of the asynchrony introduced by the scheduler, where the sampling action may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Samples the observable sequence at each interval, using the specified scheduler to run sampling timers. + Upon each sampling tick, the latest element (if any) in the source sequence during the last sampling interval is sent to the resulting sequence. + + The type of the elements in the source sequence. + Source sequence to sample. + Interval at which to sample. If this value is equal to TimeSpan.Zero, the scheduler will continuously sample the stream. + Scheduler to run the sampling timer on. + Sampled observable sequence. + + or is null. + + is less than TimeSpan.Zero. + + Specifying a TimeSpan.Zero value for doesn't guarantee all source sequence elements will be preserved. This is a side-effect + of the asynchrony introduced by the scheduler, where the sampling action may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Samples the source observable sequence using a sampler observable sequence producing sampling ticks. + Upon each sampling tick, the latest element (if any) in the source sequence during the last sampling interval is sent to the resulting sequence. + + The type of the elements in the source sequence. + The type of the elements in the sampling sequence. + Source sequence to sample. + Sampling tick sequence. + Sampled observable sequence. + + or is null. + + + + Applies an accumulator function over an observable sequence and returns each intermediate result. + For aggregation behavior with no intermediate results, see . + + The type of the elements in the source sequence and the result of the aggregation. + An observable sequence to accumulate over. + An accumulator function to be invoked on each element. + An observable sequence containing the accumulated values. + + or is null. + + + + Applies an accumulator function over an observable sequence and returns each intermediate result. The specified seed value is used as the initial accumulator value. + For aggregation behavior with no intermediate results, see . + + The type of the elements in the source sequence. + The type of the result of the aggregation. + An observable sequence to accumulate over. + The initial accumulator value. + An accumulator function to be invoked on each element. + An observable sequence containing the accumulated values. + + or is null. + + + + Projects each element of an observable sequence into a new form. + + The type of the elements in the source sequence. + The type of the elements in the result sequence, obtained by running the selector function for each element in the source sequence. + A sequence of elements to invoke a transform function on. + A transform function to apply to each source element. + An observable sequence whose elements are the result of invoking the transform function on each element of source. + + or is null. + + + + Projects each element of an observable sequence into a new form by incorporating the element's index. + + The type of the elements in the source sequence. + The type of the elements in the result sequence, obtained by running the selector function for each element in the source sequence. + A sequence of elements to invoke a transform function on. + A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + An observable sequence whose elements are the result of invoking the transform function on each element of source. + + or is null. + + + + Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected intermediate sequences. + The type of the elements in the result sequence, obtained by using the selector to combine source sequence elements with their corresponding intermediate sequence elements. + An observable sequence of elements to project. + A transform function to apply to each element. + A transform function to apply to each element of the intermediate sequence. + An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + + or or is null. + + + + Projects each element of an observable sequence to an observable sequence by incorporating the element's index, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected intermediate sequences. + The type of the elements in the result sequence, obtained by using the selector to combine source sequence elements with their corresponding intermediate sequence elements. + An observable sequence of elements to project. + A transform function to apply to each element; the second parameter of the function represents the index of the source element. + A transform function to apply to each element of the intermediate sequence; the second parameter of the function represents the index of the source element and the fourth parameter represents the index of the intermediate element. + An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + + or or is null. + + + + Projects each element of an observable sequence to an enumerable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected intermediate enumerable sequences. + The type of the elements in the result sequence, obtained by using the selector to combine source sequence elements with their corresponding intermediate sequence elements. + An observable sequence of elements to project. + A transform function to apply to each element. + A transform function to apply to each element of the intermediate sequence. + An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + + or or is null. + The projected sequences are enumerated synchronously within the OnNext call of the source sequence. In order to do a concurrent, non-blocking merge, change the selector to return an observable sequence obtained using the conversion. + + + + Projects each element of an observable sequence to an enumerable sequence by incorporating the element's index, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected intermediate enumerable sequences. + The type of the elements in the result sequence, obtained by using the selector to combine source sequence elements with their corresponding intermediate sequence elements. + An observable sequence of elements to project. + A transform function to apply to each element; the second parameter of the function represents the index of the source element. + A transform function to apply to each element of the intermediate sequence; the second parameter of the function represents the index of the source element and the fourth parameter represents the index of the intermediate element. + An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + + or or is null. + The projected sequences are enumerated synchronously within the OnNext call of the source sequence. In order to do a concurrent, non-blocking merge, change the selector to return an observable sequence obtained using the conversion. + + + + Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the other sequence and the elements in the result sequence. + An observable sequence of elements to project. + An observable sequence to project each element from the source sequence onto. + An observable sequence whose elements are the result of projecting each source element onto the other sequence and merging all the resulting sequences together. + + or is null. + + + + Projects each notification of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected inner sequences and the elements in the merged result sequence. + An observable sequence of notifications to project. + A transform function to apply to each element. + A transform function to apply when an error occurs in the source sequence. + A transform function to apply when the end of the source sequence is reached. + An observable sequence whose elements are the result of invoking the one-to-many transform function corresponding to each notification in the input sequence. + + or or or is null. + + + + Projects each notification of an observable sequence to an observable sequence by incorporating the element's index and merges the resulting observable sequences into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected inner sequences and the elements in the merged result sequence. + An observable sequence of notifications to project. + A transform function to apply to each element; the second parameter of the function represents the index of the source element. + A transform function to apply when an error occurs in the source sequence. + A transform function to apply when the end of the source sequence is reached. + An observable sequence whose elements are the result of invoking the one-to-many transform function corresponding to each notification in the input sequence. + + or or or is null. + + + + Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected inner sequences and the elements in the merged result sequence. + An observable sequence of elements to project. + A transform function to apply to each element. + An observable sequence whose elements are the result of invoking the one-to-many transform function on each element of the input sequence. + + or is null. + + + + Projects each element of an observable sequence to an observable sequence by incorporating the element's index and merges the resulting observable sequences into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected inner sequences and the elements in the merged result sequence. + An observable sequence of elements to project. + A transform function to apply to each element; the second parameter of the function represents the index of the source element. + An observable sequence whose elements are the result of invoking the one-to-many transform function on each element of the input sequence. + + or is null. + + + + Projects each element of an observable sequence to a task and merges all of the task results into one observable sequence. + + The type of the elements in the source sequence. + The type of the result produced by the projected tasks and the elements in the merged result sequence. + An observable sequence of elements to project. + A transform function to apply to each element. + An observable sequence whose elements are the result of the tasks executed for each element of the input sequence. + This overload supports composition of observable sequences and tasks, without requiring manual conversion of the tasks to observable sequences using . + + or is null. + + + + Projects each element of an observable sequence to a task by incorporating the element's index and merges all of the task results into one observable sequence. + + The type of the elements in the source sequence. + The type of the result produced by the projected tasks and the elements in the merged result sequence. + An observable sequence of elements to project. + A transform function to apply to each element; the second parameter of the function represents the index of the source element. + An observable sequence whose elements are the result of the tasks executed for each element of the input sequence. + This overload supports composition of observable sequences and tasks, without requiring manual conversion of the tasks to observable sequences using . + + or is null. + + + + Projects each element of an observable sequence to a task with cancellation support and merges all of the task results into one observable sequence. + + The type of the elements in the source sequence. + The type of the result produced by the projected tasks and the elements in the merged result sequence. + An observable sequence of elements to project. + A transform function to apply to each element. + An observable sequence whose elements are the result of the tasks executed for each element of the input sequence. + This overload supports composition of observable sequences and tasks, without requiring manual conversion of the tasks to observable sequences using . + + or is null. + + + + Projects each element of an observable sequence to a task by incorporating the element's index with cancellation support and merges all of the task results into one observable sequence. + + The type of the elements in the source sequence. + The type of the result produced by the projected tasks and the elements in the merged result sequence. + An observable sequence of elements to project. + A transform function to apply to each element; the second parameter of the function represents the index of the source element. + An observable sequence whose elements are the result of the tasks executed for each element of the input sequence. + This overload supports composition of observable sequences and tasks, without requiring manual conversion of the tasks to observable sequences using . + + or is null. + + + + Projects each element of an observable sequence to an enumerable sequence and concatenates the resulting enumerable sequences into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected inner enumerable sequences and the elements in the merged result sequence. + An observable sequence of elements to project. + A transform function to apply to each element. + An observable sequence whose elements are the result of invoking the one-to-many transform function on each element of the input sequence. + + or is null. + The projected sequences are enumerated synchronously within the OnNext call of the source sequence. In order to do a concurrent, non-blocking merge, change the selector to return an observable sequence obtained using the conversion. + + + + Projects each element of an observable sequence to an enumerable sequence by incorporating the element's index and concatenates the resulting enumerable sequences into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected inner enumerable sequences and the elements in the merged result sequence. + An observable sequence of elements to project. + A transform function to apply to each element; the second parameter of the function represents the index of the source element. + An observable sequence whose elements are the result of invoking the one-to-many transform function on each element of the input sequence. + + or is null. + The projected sequences are enumerated synchronously within the OnNext call of the source sequence. In order to do a concurrent, non-blocking merge, change the selector to return an observable sequence obtained using the conversion. + + + + Projects each element of an observable sequence to a task, invokes the result selector for the source element and the task result, and merges the results into one observable sequence. + + The type of the elements in the source sequence. + The type of the results produced by the projected intermediate tasks. + The type of the elements in the result sequence, obtained by using the selector to combine source sequence elements with their corresponding intermediate task results. + An observable sequence of elements to project. + A transform function to apply to each element. + A transform function to apply to each element of the intermediate sequence. + An observable sequence whose elements are the result of obtaining a task for each element of the input sequence and then mapping the task's result and its corresponding source element to a result element. + + or or is null. + This overload supports using LINQ query comprehension syntax in C# and Visual Basic to compose observable sequences and tasks, without requiring manual conversion of the tasks to observable sequences using . + + + + Projects each element of an observable sequence to a task by incorporating the element's index, invokes the result selector for the source element and the task result, and merges the results into one observable sequence. + + The type of the elements in the source sequence. + The type of the results produced by the projected intermediate tasks. + The type of the elements in the result sequence, obtained by using the selector to combine source sequence elements with their corresponding intermediate task results. + An observable sequence of elements to project. + A transform function to apply to each element; the second parameter of the function represents the index of the source element. + A transform function to apply to each element of the intermediate sequence; the second parameter of the function represents the index of the source element. + An observable sequence whose elements are the result of obtaining a task for each element of the input sequence and then mapping the task's result and its corresponding source element to a result element. + + or or is null. + This overload supports using LINQ query comprehension syntax in C# and Visual Basic to compose observable sequences and tasks, without requiring manual conversion of the tasks to observable sequences using . + + + + Projects each element of an observable sequence to a task with cancellation support, invokes the result selector for the source element and the task result, and merges the results into one observable sequence. + + The type of the elements in the source sequence. + The type of the results produced by the projected intermediate tasks. + The type of the elements in the result sequence, obtained by using the selector to combine source sequence elements with their corresponding intermediate task results. + An observable sequence of elements to project. + A transform function to apply to each element. + A transform function to apply to each element of the intermediate sequence. + An observable sequence whose elements are the result of obtaining a task for each element of the input sequence and then mapping the task's result and its corresponding source element to a result element. + + or or is null. + This overload supports using LINQ query comprehension syntax in C# and Visual Basic to compose observable sequences and tasks, without requiring manual conversion of the tasks to observable sequences using . + + + + Projects each element of an observable sequence to a task by incorporating the element's index with cancellation support, invokes the result selector for the source element and the task result, and merges the results into one observable sequence. + + The type of the elements in the source sequence. + The type of the results produced by the projected intermediate tasks. + The type of the elements in the result sequence, obtained by using the selector to combine source sequence elements with their corresponding intermediate task results. + An observable sequence of elements to project. + A transform function to apply to each element; the second parameter of the function represents the index of the source element. + A transform function to apply to each element of the intermediate sequence; the second parameter of the function represents the index of the source element. + An observable sequence whose elements are the result of obtaining a task for each element of the input sequence and then mapping the task's result and its corresponding source element to a result element. + + or or is null. + This overload supports using LINQ query comprehension syntax in C# and Visual Basic to compose observable sequences and tasks, without requiring manual conversion of the tasks to observable sequences using . + + + + Determines whether two sequences are equal by comparing the elements pairwise. + + The type of the elements in the source sequence. + First observable sequence to compare. + Second observable sequence to compare. + An observable sequence that contains a single element which indicates whether both sequences are of equal length and their corresponding elements are equal according to the default equality comparer for their type. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Determines whether an observable and enumerable sequence are equal by comparing the elements pairwise. + + The type of the elements in the source sequence. + First observable sequence to compare. + Second observable sequence to compare. + An observable sequence that contains a single element which indicates whether both sequences are of equal length and their corresponding elements are equal according to the default equality comparer for their type. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Determines whether two sequences are equal by comparing the elements pairwise using a specified equality comparer. + + The type of the elements in the source sequence. + First observable sequence to compare. + Second observable sequence to compare. + Comparer used to compare elements of both sequences. + An observable sequence that contains a single element which indicates whether both sequences are of equal length and their corresponding elements are equal according to the specified equality comparer. + + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Determines whether an observable and enumerable sequence are equal by comparing the elements pairwise using a specified equality comparer. + + The type of the elements in the source sequence. + First observable sequence to compare. + Second observable sequence to compare. + Comparer used to compare elements of both sequences. + An observable sequence that contains a single element which indicates whether both sequences are of equal length and their corresponding elements are equal according to the specified equality comparer. + + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the only element of an observable sequence, and reports an exception if there is not exactly one element in the observable sequence. + + The type of the elements in the source sequence. + Source observable sequence. + Sequence containing the single element in the observable sequence. + + is null. + (Asynchronous) The source sequence contains more than one element. -or- The source sequence is empty. + + + + Returns the only element of an observable sequence that satisfies the condition in the predicate, and reports an exception if there is not exactly one element in the observable sequence. + + The type of the elements in the source sequence. + Source observable sequence. + A predicate function to evaluate for elements in the source sequence. + Sequence containing the single element in the observable sequence that satisfies the condition in the predicate. + + or is null. + (Asynchronous) No element satisfies the condition in the predicate. -or- More than one element satisfies the condition in the predicate. -or- The source sequence is empty. + + + + Returns the only element of an observable sequence, or a default value if the observable sequence is empty; this method reports an exception if there is more than one element in the observable sequence. + + The type of the elements in the source sequence. + Source observable sequence. + Sequence containing the single element in the observable sequence, or a default value if no such element exists. + + is null. + (Asynchronous) The source sequence contains more than one element. + + + + Returns the only element of an observable sequence that matches the predicate, or a default value if no such element exists; this method reports an exception if there is more than one element in the observable sequence. + + The type of the elements in the source sequence. + Source observable sequence. + A predicate function to evaluate for elements in the source sequence. + Sequence containing the single element in the observable sequence that satisfies the condition in the predicate, or a default value if no such element exists. + + or is null. + (Asynchronous) The sequence contains more than one element that satisfies the condition in the predicate. + + + + Bypasses a specified number of elements in an observable sequence and then returns the remaining elements. + + The type of the elements in the source sequence. + The sequence to take elements from. + The number of elements to skip before returning the remaining elements. + An observable sequence that contains the elements that occur after the specified index in the input sequence. + + is null. + + is less than zero. + + + + Skips elements for the specified duration from the start of the observable source sequence. + + The type of the elements in the source sequence. + Source sequence to skip elements for. + Duration for skipping elements from the start of the sequence. + An observable sequence with the elements skipped during the specified duration from the start of the source sequence. + + is null. + + is less than TimeSpan.Zero. + + + Specifying a TimeSpan.Zero value for doesn't guarantee no elements will be dropped from the start of the source sequence. + This is a side-effect of the asynchrony introduced by the scheduler, where the action that causes callbacks from the source sequence to be forwarded + may not execute immediately, despite the TimeSpan.Zero due time. + + + Errors produced by the source sequence are always forwarded to the result sequence, even if the error occurs before the . + + + + + + Skips elements for the specified duration from the start of the observable source sequence, using the specified scheduler to run timers. + + The type of the elements in the source sequence. + Source sequence to skip elements for. + Duration for skipping elements from the start of the sequence. + Scheduler to run the timer on. + An observable sequence with the elements skipped during the specified duration from the start of the source sequence. + + or is null. + + is less than TimeSpan.Zero. + + + Specifying a TimeSpan.Zero value for doesn't guarantee no elements will be dropped from the start of the source sequence. + This is a side-effect of the asynchrony introduced by the scheduler, where the action that causes callbacks from the source sequence to be forwarded + may not execute immediately, despite the TimeSpan.Zero due time. + + + Errors produced by the source sequence are always forwarded to the result sequence, even if the error occurs before the . + + + + + + Bypasses a specified number of elements at the end of an observable sequence. + + The type of the elements in the source sequence. + Source sequence. + Number of elements to bypass at the end of the source sequence. + An observable sequence containing the source sequence elements except for the bypassed ones at the end. + + is null. + + is less than zero. + + This operator accumulates a queue with a length enough to store the first elements. As more elements are + received, elements are taken from the front of the queue and produced on the result sequence. This causes elements to be delayed. + + + + + Skips elements for the specified duration from the end of the observable source sequence. + + The type of the elements in the source sequence. + Source sequence to skip elements for. + Duration for skipping elements from the end of the sequence. + An observable sequence with the elements skipped during the specified duration from the end of the source sequence. + + is null. + + is less than TimeSpan.Zero. + + This operator accumulates a queue with a length enough to store elements received during the initial window. + As more elements are received, elements older than the specified are taken from the queue and produced on the + result sequence. This causes elements to be delayed with . + + + + + Skips elements for the specified duration from the end of the observable source sequence, using the specified scheduler to run timers. + + The type of the elements in the source sequence. + Source sequence to skip elements for. + Duration for skipping elements from the end of the sequence. + Scheduler to run the timer on. + An observable sequence with the elements skipped during the specified duration from the end of the source sequence. + + or is null. + + is less than TimeSpan.Zero. + + This operator accumulates a queue with a length enough to store elements received during the initial window. + As more elements are received, elements older than the specified are taken from the queue and produced on the + result sequence. This causes elements to be delayed with . + + + + + Skips elements from the observable source sequence until the specified start time. + + The type of the elements in the source sequence. + Source sequence to skip elements for. + Time to start taking elements from the source sequence. If this value is less than or equal to DateTimeOffset.UtcNow, no elements will be skipped. + An observable sequence with the elements skipped until the specified start time. + + is null. + + Errors produced by the source sequence are always forwarded to the result sequence, even if the error occurs before the . + + + + + Skips elements from the observable source sequence until the specified start time, using the specified scheduler to run timers. + + The type of the elements in the source sequence. + Source sequence to skip elements for. + Time to start taking elements from the source sequence. If this value is less than or equal to DateTimeOffset.UtcNow, no elements will be skipped. + Scheduler to run the timer on. + An observable sequence with the elements skipped until the specified start time. + + or is null. + + Errors produced by the source sequence are always forwarded to the result sequence, even if the error occurs before the . + + + + + Returns the elements from the source observable sequence only after the other observable sequence produces an element. + Starting from Rx.NET 4.0, this will subscribe to before subscribing to + so in case emits an element right away, elements from are not missed. + + The type of the elements in the source sequence. + The type of the elements in the other sequence that indicates the end of skip behavior. + Source sequence to propagate elements for. + Observable sequence that triggers propagation of elements of the source sequence. + An observable sequence containing the elements of the source sequence starting from the point the other sequence triggered propagation. + + or is null. + + + + Bypasses elements in an observable sequence as long as a specified condition is true and then returns the remaining elements. + + The type of the elements in the source sequence. + An observable sequence to return elements from. + A function to test each element for a condition. + An observable sequence that contains the elements from the input sequence starting at the first element in the linear series that does not pass the test specified by predicate. + + or is null. + + + + Bypasses elements in an observable sequence as long as a specified condition is true and then returns the remaining elements. + The element's index is used in the logic of the predicate function. + + The type of the elements in the source sequence. + An observable sequence to return elements from. + A function to test each element for a condition; the second parameter of the function represents the index of the source element. + An observable sequence that contains the elements from the input sequence starting at the first element in the linear series that does not pass the test specified by predicate. + + or is null. + + + + Invokes the action asynchronously, surfacing the result through an observable sequence. + + Query provider used to construct the data source. + Action to run asynchronously. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + + is null. + + + + The action is called immediately, not during the subscription of the resulting sequence. + + + Multiple subscriptions to the resulting sequence can observe the action's outcome. + + + + + + + Invokes the action asynchronously on the specified scheduler, surfacing the result through an observable sequence. + + Query provider used to construct the data source. + Action to run asynchronously. + Scheduler to run the action on. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + + or is null. + + + + The action is called immediately, not during the subscription of the resulting sequence. + + + Multiple subscriptions to the resulting sequence can observe the action's outcome. + + + + + + + Invokes the specified function asynchronously, surfacing the result through an observable sequence. + + Query provider used to construct the data source. + The type of the result returned by the function. + Function to run asynchronously. + An observable sequence exposing the function's result value, or an exception. + + is null. + + + + The function is called immediately, not during the subscription of the resulting sequence. + + + Multiple subscriptions to the resulting sequence can observe the function's result. + + + + + + + Invokes the specified function asynchronously on the specified scheduler, surfacing the result through an observable sequence + + Query provider used to construct the data source. + The type of the result returned by the function. + Function to run asynchronously. + Scheduler to run the function on. + An observable sequence exposing the function's result value, or an exception. + + or is null. + + + + The function is called immediately, not during the subscription of the resulting sequence. + + + Multiple subscriptions to the resulting sequence can observe the function's result. + + + + + + + Invokes the asynchronous action, surfacing the result through an observable sequence. + + Query provider used to construct the data source. + Asynchronous action to run. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + + is null. + + + + The action is started immediately, not during the subscription of the resulting sequence. + + + Multiple subscriptions to the resulting sequence can observe the action's outcome. + + + + + + + Invokes the asynchronous action, surfacing the result through an observable sequence. + + Query provider used to construct the data source. + Asynchronous action to run. + Scheduler on which to notify observers. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + + is null or is null. + + + + The action is started immediately, not during the subscription of the resulting sequence. + + + Multiple subscriptions to the resulting sequence can observe the action's outcome. + + + + + + + Invokes the asynchronous action, surfacing the result through an observable sequence. + The CancellationToken is shared by all subscriptions on the resulting observable sequence. See the remarks section for more information. + + Query provider used to construct the data source. + Asynchronous action to run. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + + is null. + + + + The action is started immediately, not during the subscription of the resulting sequence. + + + Multiple subscriptions to the resulting sequence can observe the action's outcome. + + + + If any subscription to the resulting sequence is disposed, the CancellationToken is set. The observer associated to the disposed + subscription won't see the TaskCanceledException, but other observers will. You can protect against this using the Catch operator. + Be careful when handing out the resulting sequence because of this behavior. The most common use is to have a single subscription + to the resulting sequence, which controls the CancellationToken state. Alternatively, you can control subscription behavior using + multicast operators. + + + + + + + + Invokes the asynchronous action, surfacing the result through an observable sequence. + The CancellationToken is shared by all subscriptions on the resulting observable sequence. See the remarks section for more information. + + Query provider used to construct the data source. + Asynchronous action to run. + Scheduler on which to notify observers. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + + is null or is null. + + + + The action is started immediately, not during the subscription of the resulting sequence. + + + Multiple subscriptions to the resulting sequence can observe the action's outcome. + + + + If any subscription to the resulting sequence is disposed, the CancellationToken is set. The observer associated to the disposed + subscription won't see the TaskCanceledException, but other observers will. You can protect against this using the Catch operator. + Be careful when handing out the resulting sequence because of this behavior. The most common use is to have a single subscription + to the resulting sequence, which controls the CancellationToken state. Alternatively, you can control subscription behavior using + multicast operators. + + + + + + + + Invokes the asynchronous function, surfacing the result through an observable sequence. + + Query provider used to construct the data source. + The type of the result returned by the asynchronous function. + Asynchronous function to run. + An observable sequence exposing the function's result value, or an exception. + + is null. + + + + The function is started immediately, not during the subscription of the resulting sequence. + + + Multiple subscriptions to the resulting sequence can observe the function's result. + + + + + + + Invokes the asynchronous function, surfacing the result through an observable sequence. + The CancellationToken is shared by all subscriptions on the resulting observable sequence. See the remarks section for more information. + + Query provider used to construct the data source. + The type of the result returned by the asynchronous function. + Asynchronous function to run. + An observable sequence exposing the function's result value, or an exception. + + is null. + + + + The function is started immediately, not during the subscription of the resulting sequence. + + + Multiple subscriptions to the resulting sequence can observe the function's result. + + + + If any subscription to the resulting sequence is disposed, the CancellationToken is set. The observer associated to the disposed + subscription won't see the TaskCanceledException, but other observers will. You can protect against this using the Catch operator. + Be careful when handing out the resulting sequence because of this behavior. The most common use is to have a single subscription + to the resulting sequence, which controls the CancellationToken state. Alternatively, you can control subscription behavior using + multicast operators. + + + + + + + + Invokes the asynchronous function, surfacing the result through an observable sequence. + + Query provider used to construct the data source. + The type of the result returned by the asynchronous function. + Asynchronous function to run. + Scheduler on which to notify observers. + An observable sequence exposing the function's result value, or an exception. + + is null or is null. + + + + The function is started immediately, not during the subscription of the resulting sequence. + + + Multiple subscriptions to the resulting sequence can observe the function's result. + + + + + + + Invokes the asynchronous function, surfacing the result through an observable sequence. + The CancellationToken is shared by all subscriptions on the resulting observable sequence. See the remarks section for more information. + + Query provider used to construct the data source. + The type of the result returned by the asynchronous function. + Asynchronous function to run. + Scheduler on which to notify observers. + An observable sequence exposing the function's result value, or an exception. + + is null or is null. + + + + The function is started immediately, not during the subscription of the resulting sequence. + + + Multiple subscriptions to the resulting sequence can observe the function's result. + + + + If any subscription to the resulting sequence is disposed, the CancellationToken is set. The observer associated to the disposed + subscription won't see the TaskCanceledException, but other observers will. You can protect against this using the Catch operator. + Be careful when handing out the resulting sequence because of this behavior. The most common use is to have a single subscription + to the resulting sequence, which controls the CancellationToken state. Alternatively, you can control subscription behavior using + multicast operators. + + + + + + + + Prepends a sequence of values to an observable sequence. + + The type of the elements in the source sequence. + Source sequence to prepend values to. + Scheduler to emit the prepended values on. + Values to prepend to the specified sequence. + The source sequence prepended with the specified values. + + or or is null. + + + + Prepends a sequence of values to an observable sequence. + + The type of the elements in the source sequence. + Source sequence to prepend values to. + Scheduler to emit the prepended values on. + Values to prepend to the specified sequence. + The source sequence prepended with the specified values. + + or or is null. + + + + Prepends a sequence of values to an observable sequence. + + The type of the elements in the source sequence. + Source sequence to prepend values to. + Values to prepend to the specified sequence. + The source sequence prepended with the specified values. + + or is null. + + + + Prepends a sequence of values to an observable sequence. + + The type of the elements in the source sequence. + Source sequence to prepend values to. + Values to prepend to the specified sequence. + The source sequence prepended with the specified values. + + or is null. + + + + Wraps the source sequence in order to run its subscription and unsubscription logic on the specified synchronization context. This operation is not commonly used; + see the remarks section for more information on the distinction between SubscribeOn and ObserveOn. + + The type of the elements in the source sequence. + Source sequence. + Synchronization context to perform subscription and unsubscription actions on. + The source sequence whose subscriptions and unsubscriptions happen on the specified synchronization context. + + or is null. + + This only performs the side-effects of subscription and unsubscription on the specified synchronization context. In order to invoke observer + callbacks on a synchronization context, use . + + + + + Wraps the source sequence in order to run its subscription and unsubscription logic on the specified scheduler. This operation is not commonly used; + see the remarks section for more information on the distinction between SubscribeOn and ObserveOn. + + The type of the elements in the source sequence. + Source sequence. + Scheduler to perform subscription and unsubscription actions on. + The source sequence whose subscriptions and unsubscriptions happen on the specified scheduler. + + or is null. + + This only performs the side-effects of subscription and unsubscription on the specified scheduler. In order to invoke observer + callbacks on a scheduler, use . + + + + + Computes the sum of a sequence of values. + + A sequence of values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + + is null. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of values. + + A sequence of values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of values. + + A sequence of values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + + is null. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of values. + + A sequence of values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + + is null. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values. + + A sequence of nullable values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + + is null. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values. + + A sequence of nullable values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values. + + A sequence of nullable values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + + is null. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values. + + A sequence of nullable values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + + is null. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values. + + A sequence of nullable values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of values. + + A sequence of values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + + or is null. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + + or is null. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + + or is null. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + + or is null. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + + or is null. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + + or is null. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Transforms an observable sequence of observable sequences into an observable sequence + producing values only from the most recent observable sequence. + Each time a new inner observable sequence is received, unsubscribe from the + previous inner observable sequence. + + The type of the elements in the source sequences. + Observable sequence of inner observable sequences. + The observable sequence that at any point in time produces the elements of the most recent inner observable sequence that has been received. + + is null. + + + + Transforms an observable sequence of tasks into an observable sequence + producing values only from the most recent observable sequence. + Each time a new task is received, the previous task's result is ignored. + + The type of the results produced by the source tasks. + Observable sequence of tasks. + The observable sequence that at any point in time produces the result of the most recent task that has been received. + + is null. + If the tasks support cancellation, consider manual conversion of the tasks using , followed by a switch operation using . + + + + Synchronizes the observable sequence such that observer notifications cannot be delivered concurrently. + This overload is useful to "fix" an observable sequence that exhibits concurrent callbacks on individual observers, which is invalid behavior for the query processor. + + The type of the elements in the source sequence. + Source sequence. + The source sequence whose outgoing calls to observers are synchronized. + + is null. + + It's invalid behavior - according to the observer grammar - for a sequence to exhibit concurrent callbacks on a given observer. + This operator can be used to "fix" a source that doesn't conform to this rule. + + + + + Synchronizes the observable sequence such that observer notifications cannot be delivered concurrently, using the specified gate object. + This overload is useful when writing n-ary query operators, in order to prevent concurrent callbacks from different sources by synchronizing on a common gate object. + + The type of the elements in the source sequence. + Source sequence. + Gate object to synchronize each observer call on. + The source sequence whose outgoing calls to observers are synchronized on the given gate object. + + or is null. + + + + Returns a specified number of contiguous elements from the start of an observable sequence. + + The type of the elements in the source sequence. + The sequence to take elements from. + The number of elements to return. + An observable sequence that contains the specified number of elements from the start of the input sequence. + + is null. + + is less than zero. + + + + Returns a specified number of contiguous elements from the start of an observable sequence, using the specified scheduler for the edge case of Take(0). + + The type of the elements in the source sequence. + The sequence to take elements from. + The number of elements to return. + Scheduler used to produce an OnCompleted message in case count is set to 0. + An observable sequence that contains the specified number of elements from the start of the input sequence. + + or is null. + + is less than zero. + + + + Takes elements for the specified duration from the start of the observable source sequence. + + The type of the elements in the source sequence. + Source sequence to take elements from. + Duration for taking elements from the start of the sequence. + An observable sequence with the elements taken during the specified duration from the start of the source sequence. + + is null. + + is less than TimeSpan.Zero. + + Specifying a TimeSpan.Zero value for doesn't guarantee an empty sequence will be returned. This is a side-effect + of the asynchrony introduced by the scheduler, where the action that stops forwarding callbacks from the source sequence may not execute + immediately, despite the TimeSpan.Zero due time. + + + + + Takes elements for the specified duration from the start of the observable source sequence, using the specified scheduler to run timers. + + The type of the elements in the source sequence. + Source sequence to take elements from. + Duration for taking elements from the start of the sequence. + Scheduler to run the timer on. + An observable sequence with the elements taken during the specified duration from the start of the source sequence. + + or is null. + + is less than TimeSpan.Zero. + + Specifying a TimeSpan.Zero value for doesn't guarantee an empty sequence will be returned. This is a side-effect + of the asynchrony introduced by the scheduler, where the action that stops forwarding callbacks from the source sequence may not execute + immediately, despite the TimeSpan.Zero due time. + + + + + Returns a specified number of contiguous elements from the end of an observable sequence. + + The type of the elements in the source sequence. + Source sequence. + Number of elements to take from the end of the source sequence. + An observable sequence containing the specified number of elements from the end of the source sequence. + + is null. + + is less than zero. + + This operator accumulates a buffer with a length enough to store elements elements. Upon completion of + the source sequence, this buffer is drained on the result sequence. This causes the elements to be delayed. + + + + + Returns a specified number of contiguous elements from the end of an observable sequence, using the specified scheduler to drain the queue. + + The type of the elements in the source sequence. + Source sequence. + Number of elements to take from the end of the source sequence. + Scheduler used to drain the queue upon completion of the source sequence. + An observable sequence containing the specified number of elements from the end of the source sequence. + + or is null. + + is less than zero. + + This operator accumulates a buffer with a length enough to store elements elements. Upon completion of + the source sequence, this buffer is drained on the result sequence. This causes the elements to be delayed. + + + + + Returns elements within the specified duration from the end of the observable source sequence. + + The type of the elements in the source sequence. + Source sequence to take elements from. + Duration for taking elements from the end of the sequence. + An observable sequence with the elements taken during the specified duration from the end of the source sequence. + + is null. + + is less than TimeSpan.Zero. + + This operator accumulates a buffer with a length enough to store elements for any window during the lifetime of + the source sequence. Upon completion of the source sequence, this buffer is drained on the result sequence. This causes the result elements + to be delayed with . + + + + + Returns elements within the specified duration from the end of the observable source sequence, using the specified scheduler to run timers. + + The type of the elements in the source sequence. + Source sequence to take elements from. + Duration for taking elements from the end of the sequence. + Scheduler to run the timer on. + An observable sequence with the elements taken during the specified duration from the end of the source sequence. + + or is null. + + is less than TimeSpan.Zero. + + This operator accumulates a buffer with a length enough to store elements for any window during the lifetime of + the source sequence. Upon completion of the source sequence, this buffer is drained on the result sequence. This causes the result elements + to be delayed with . + + + + + Returns elements within the specified duration from the end of the observable source sequence, using the specified schedulers to run timers and to drain the collected elements. + + The type of the elements in the source sequence. + Source sequence to take elements from. + Duration for taking elements from the end of the sequence. + Scheduler to run the timer on. + Scheduler to drain the collected elements. + An observable sequence with the elements taken during the specified duration from the end of the source sequence. + + or or is null. + + is less than TimeSpan.Zero. + + This operator accumulates a buffer with a length enough to store elements for any window during the lifetime of + the source sequence. Upon completion of the source sequence, this buffer is drained on the result sequence. This causes the result elements + to be delayed with . + + + + + Returns a list with the specified number of contiguous elements from the end of an observable sequence. + + The type of the elements in the source sequence. + Source sequence. + Number of elements to take from the end of the source sequence. + An observable sequence containing a single list with the specified number of elements from the end of the source sequence. + + is null. + + is less than zero. + + This operator accumulates a buffer with a length enough to store elements. Upon completion of the + source sequence, this buffer is produced on the result sequence. + + + + + Returns a list with the elements within the specified duration from the end of the observable source sequence. + + The type of the elements in the source sequence. + Source sequence to take elements from. + Duration for taking elements from the end of the sequence. + An observable sequence containing a single list with the elements taken during the specified duration from the end of the source sequence. + + is null. + + is less than TimeSpan.Zero. + + This operator accumulates a buffer with a length enough to store elements for any window during the lifetime of + the source sequence. Upon completion of the source sequence, this buffer is produced on the result sequence. + + + + + Returns a list with the elements within the specified duration from the end of the observable source sequence, using the specified scheduler to run timers. + + The type of the elements in the source sequence. + Source sequence to take elements from. + Duration for taking elements from the end of the sequence. + Scheduler to run the timer on. + An observable sequence containing a single list with the elements taken during the specified duration from the end of the source sequence. + + or is null. + + is less than TimeSpan.Zero. + + This operator accumulates a buffer with a length enough to store elements for any window during the lifetime of + the source sequence. Upon completion of the source sequence, this buffer is produced on the result sequence. + + + + + Takes elements for the specified duration until the specified end time. + + The type of the elements in the source sequence. + Source sequence to take elements from. + Time to stop taking elements from the source sequence. If this value is less than or equal to DateTimeOffset.UtcNow, the result stream will complete immediately. + An observable sequence with the elements taken until the specified end time. + + is null. + + + + Takes elements for the specified duration until the specified end time, using the specified scheduler to run timers. + + The type of the elements in the source sequence. + Source sequence to take elements from. + Time to stop taking elements from the source sequence. If this value is less than or equal to DateTimeOffset.UtcNow, the result stream will complete immediately. + Scheduler to run the timer on. + An observable sequence with the elements taken until the specified end time. + + or is null. + + + + Returns the elements from the source observable sequence until the other observable sequence produces an element. + + The type of the elements in the source sequence. + The type of the elements in the other sequence that indicates the end of take behavior. + Source sequence to propagate elements for. + Observable sequence that terminates propagation of elements of the source sequence. + An observable sequence containing the elements of the source sequence up to the point the other sequence interrupted further propagation. + + or is null. + + + + Relays elements from the source observable sequence and calls the predicate after an + emission to check if the sequence should stop after that specific item. + + The type of the elements in the source and result sequences. + The source sequence to relay elements of. + Called after each upstream item has been emitted with + that upstream item and should return true to indicate the sequence should + complete. + The observable sequence with the source elements until the stop predicate returns true. + + The following sequence will stop after the value 5 has been encountered: + + Observable.Range(1, 10) + .TakeUntil(item => item == 5) + .Subscribe(Console.WriteLine); + + + If or is null. + + + + Returns elements from an observable sequence as long as a specified condition is true. + + The type of the elements in the source sequence. + A sequence to return elements from. + A function to test each element for a condition. + An observable sequence that contains the elements from the input sequence that occur before the element at which the test no longer passes. + + or is null. + + + + Returns elements from an observable sequence as long as a specified condition is true. + The element's index is used in the logic of the predicate function. + + The type of the elements in the source sequence. + A sequence to return elements from. + A function to test each element for a condition; the second parameter of the function represents the index of the source element. + An observable sequence that contains the elements from the input sequence that occur before the element at which the test no longer passes. + + or is null. + + + + Ignores elements from an observable sequence which are followed by another element within a specified relative time duration. + + The type of the elements in the source sequence. + Source sequence to throttle. + Throttling duration for each element. + The throttled sequence. + + is null. + + is less than TimeSpan.Zero. + + + This operator throttles the source sequence by holding on to each element for the duration specified in . If another + element is produced within this time window, the element is dropped and a new timer is started for the current element, repeating this whole + process. For streams that never have gaps larger than or equal to between elements, the resulting stream won't + produce any elements. In order to reduce the volume of a stream whilst guaranteeing the periodic production of elements, consider using the + Observable.Sample set of operators. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing throttling timers to be scheduled + that are due immediately. However, this doesn't guarantee all elements will be retained in the result sequence. This is a side-effect of the + asynchrony introduced by the scheduler, where the action to forward the current element may not execute immediately, despite the TimeSpan.Zero + due time. In such cases, the next element may arrive before the scheduler gets a chance to run the throttling action. + + + + + + Ignores elements from an observable sequence which are followed by another element within a specified relative time duration, using the specified scheduler to run throttling timers. + + The type of the elements in the source sequence. + Source sequence to throttle. + Throttling duration for each element. + Scheduler to run the throttle timers on. + The throttled sequence. + + or is null. + + is less than TimeSpan.Zero. + + + This operator throttles the source sequence by holding on to each element for the duration specified in . If another + element is produced within this time window, the element is dropped and a new timer is started for the current element, repeating this whole + process. For streams that never have gaps larger than or equal to between elements, the resulting stream won't + produce any elements. In order to reduce the volume of a stream whilst guaranteeing the periodic production of elements, consider using the + Observable.Sample set of operators. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing throttling timers to be scheduled + that are due immediately. However, this doesn't guarantee all elements will be retained in the result sequence. This is a side-effect of the + asynchrony introduced by the scheduler, where the action to forward the current element may not execute immediately, despite the TimeSpan.Zero + due time. In such cases, the next element may arrive before the scheduler gets a chance to run the throttling action. + + + + + + Ignores elements from an observable sequence which are followed by another value within a computed throttle duration. + + The type of the elements in the source sequence. + The type of the elements in the throttle sequences selected for each element in the source sequence. + Source sequence to throttle. + Selector function to retrieve a sequence indicating the throttle duration for each given element. + The throttled sequence. + + or is null. + + This operator throttles the source sequence by holding on to each element for the duration denoted by . + If another element is produced within this time window, the element is dropped and a new timer is started for the current element, repeating this + whole process. For streams where the duration computed by applying the to each element overlaps with + the occurrence of the successor element, the resulting stream won't produce any elements. In order to reduce the volume of a stream whilst + guaranteeing the periodic production of elements, consider using the Observable.Sample set of operators. + + + + + Returns an observable sequence that terminates with an exception. + + Query provider used to construct the data source. + The type used for the type parameter of the resulting sequence. + Exception object used for the sequence's termination. + The observable sequence that terminates exceptionally with the specified exception object. + + is null. + + + + Returns an observable sequence that terminates with an exception, using the specified scheduler to send out the single OnError message. + + Query provider used to construct the data source. + The type used for the type parameter of the resulting sequence. + Exception object used for the sequence's termination. + Scheduler to send the exceptional termination call on. + The observable sequence that terminates exceptionally with the specified exception object. + + or is null. + + + + Returns an observable sequence that terminates with an exception, using the specified scheduler to send out the single OnError message. + + Query provider used to construct the data source. + The type used for the type parameter of the resulting sequence. + Exception object used for the sequence's termination. + Scheduler to send the exceptional termination call on. + Object solely used to infer the type of the type parameter. This parameter is typically used when creating a sequence of anonymously typed elements. + The observable sequence that terminates exceptionally with the specified exception object. + + or is null. + + + + Returns an observable sequence that terminates with an exception. + + Query provider used to construct the data source. + The type used for the type parameter of the resulting sequence. + Exception object used for the sequence's termination. + Object solely used to infer the type of the type parameter. This parameter is typically used when creating a sequence of anonymously typed elements. + The observable sequence that terminates exceptionally with the specified exception object. + + is null. + + + + Records the time interval between consecutive elements in an observable sequence. + + The type of the elements in the source sequence. + Source sequence to record time intervals for. + An observable sequence with time interval information on elements. + + is null. + + + + Records the time interval between consecutive elements in an observable sequence, using the specified scheduler to compute time intervals. + + The type of the elements in the source sequence. + Source sequence to record time intervals for. + Scheduler used to compute time intervals. + An observable sequence with time interval information on elements. + + or is null. + + + + Applies a timeout policy to the observable sequence based on an absolute time. + If the sequence doesn't terminate before the specified absolute due time, a TimeoutException is propagated to the observer. + + The type of the elements in the source sequence. + Source sequence to perform a timeout for. + Time when a timeout occurs. If this value is less than or equal to DateTimeOffset.UtcNow, the timeout occurs immediately. + The source sequence with a TimeoutException in case of a timeout. + + is null. + (Asynchronous) If the sequence hasn't terminated before . + + In case you only want to timeout on the first element, consider using the + operator applied to the source sequence and a delayed sequence. Alternatively, the general-purpose overload + of Timeout, can be used. + + + + + Applies a timeout policy to the observable sequence based on an absolute time. + If the sequence doesn't terminate before the specified absolute due time, the other observable sequence is used to produce future messages from that point on. + + The type of the elements in the source sequence and the other sequence used upon a timeout. + Source sequence to perform a timeout for. + Time when a timeout occurs. If this value is less than or equal to DateTimeOffset.UtcNow, the timeout occurs immediately. + Sequence to return in case of a timeout. + The source sequence switching to the other sequence in case of a timeout. + + or is null. + + In case you only want to timeout on the first element, consider using the + operator applied to the source sequence and a delayed sequence. Alternatively, the general-purpose overload + of Timeout, can be used. + + + + + Applies a timeout policy to the observable sequence based on an absolute time, using the specified scheduler to run timeout timers. + If the sequence doesn't terminate before the specified absolute due time, the other observable sequence is used to produce future messages from that point on. + + The type of the elements in the source sequence and the other sequence used upon a timeout. + Source sequence to perform a timeout for. + Time when a timeout occurs. If this value is less than or equal to DateTimeOffset.UtcNow, the timeout occurs immediately. + Sequence to return in case of a timeout. + Scheduler to run the timeout timers on. + The source sequence switching to the other sequence in case of a timeout. + + or or is null. + + In case you only want to timeout on the first element, consider using the + operator applied to the source sequence and a delayed sequence. Alternatively, the general-purpose overload + of Timeout, can be used. + + + + + Applies a timeout policy to the observable sequence based on an absolute time, using the specified scheduler to run timeout timers. + If the sequence doesn't terminate before the specified absolute due time, a TimeoutException is propagated to the observer. + + The type of the elements in the source sequence. + Source sequence to perform a timeout for. + Time when a timeout occurs. If this value is less than or equal to DateTimeOffset.UtcNow, the timeout occurs immediately. + Scheduler to run the timeout timers on. + The source sequence with a TimeoutException in case of a timeout. + + or is null. + (Asynchronous) If the sequence hasn't terminated before . + + In case you only want to timeout on the first element, consider using the + operator applied to the source sequence and a delayed sequence. Alternatively, the general-purpose overload + of Timeout, can be used. + + + + + Applies a timeout policy for each element in the observable sequence. + If the next element isn't received within the specified timeout duration starting from its predecessor, a TimeoutException is propagated to the observer. + + The type of the elements in the source sequence. + Source sequence to perform a timeout for. + Maximum duration between values before a timeout occurs. + The source sequence with a TimeoutException in case of a timeout. + + is null. + + is less than TimeSpan.Zero. + (Asynchronous) If no element is produced within from the previous element. + + + In case you only want to timeout on the first element, consider using the + operator applied to the source sequence and a delayed sequence. Alternatively, the general-purpose overload + of Timeout, can be used. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing timeout timers to be scheduled that are due + immediately. However, this doesn't guarantee a timeout will occur, even for the first element. This is a side-effect of the asynchrony introduced by the + scheduler, where the action to propagate a timeout may not execute immediately, despite the TimeSpan.Zero due time. In such cases, the next element may + arrive before the scheduler gets a chance to run the timeout action. + + + + + + Applies a timeout policy for each element in the observable sequence. + If the next element isn't received within the specified timeout duration starting from its predecessor, the other observable sequence is used to produce future messages from that point on. + + The type of the elements in the source sequence and the other sequence used upon a timeout. + Source sequence to perform a timeout for. + Maximum duration between values before a timeout occurs. + Sequence to return in case of a timeout. + The source sequence switching to the other sequence in case of a timeout. + + or is null. + + is less than TimeSpan.Zero. + + + In case you only want to timeout on the first element, consider using the + operator applied to the source sequence and a delayed sequence. Alternatively, the general-purpose overload + of Timeout, can be used. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing timeout timers to be scheduled that are due + immediately. However, this doesn't guarantee a timeout will occur, even for the first element. This is a side-effect of the asynchrony introduced by the + scheduler, where the action to propagate a timeout may not execute immediately, despite the TimeSpan.Zero due time. In such cases, the next element may + arrive before the scheduler gets a chance to run the timeout action. + + + + + + Applies a timeout policy for each element in the observable sequence, using the specified scheduler to run timeout timers. + If the next element isn't received within the specified timeout duration starting from its predecessor, the other observable sequence is used to produce future messages from that point on. + + The type of the elements in the source sequence and the other sequence used upon a timeout. + Source sequence to perform a timeout for. + Maximum duration between values before a timeout occurs. + Sequence to return in case of a timeout. + Scheduler to run the timeout timers on. + The source sequence switching to the other sequence in case of a timeout. + + or or is null. + + is less than TimeSpan.Zero. + + + In case you only want to timeout on the first element, consider using the + operator applied to the source sequence and a delayed sequence. Alternatively, the general-purpose overload + of Timeout, can be used. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing timeout timers to be scheduled that are due + immediately. However, this doesn't guarantee a timeout will occur, even for the first element. This is a side-effect of the asynchrony introduced by the + scheduler, where the action to propagate a timeout may not execute immediately, despite the TimeSpan.Zero due time. In such cases, the next element may + arrive before the scheduler gets a chance to run the timeout action. + + + + + + Applies a timeout policy for each element in the observable sequence, using the specified scheduler to run timeout timers. + If the next element isn't received within the specified timeout duration starting from its predecessor, a TimeoutException is propagated to the observer. + + The type of the elements in the source sequence. + Source sequence to perform a timeout for. + Maximum duration between values before a timeout occurs. + Scheduler to run the timeout timers on. + The source sequence with a TimeoutException in case of a timeout. + + or is null. + + is less than TimeSpan.Zero. + (Asynchronous) If no element is produced within from the previous element. + + + In case you only want to timeout on the first element, consider using the + operator applied to the source sequence and a delayed sequence. Alternatively, the general-purpose overload + of Timeout, can be used. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing timeout timers to be scheduled that are due + immediately. However, this doesn't guarantee a timeout will occur, even for the first element. This is a side-effect of the asynchrony introduced by the + scheduler, where the action to propagate a timeout may not execute immediately, despite the TimeSpan.Zero due time. In such cases, the next element may + arrive before the scheduler gets a chance to run the timeout action. + + + + + + Applies a timeout policy to the observable sequence based on an initial timeout duration for the first element, and a timeout duration computed for each subsequent element. + If the next element isn't received within the computed duration starting from its predecessor, a TimeoutException is propagated to the observer. + + The type of the elements in the source sequence. + The type of the elements in the timeout sequences used to indicate the timeout duration for each element in the source sequence. + Source sequence to perform a timeout for. + Observable sequence that represents the timeout for the first element. + Selector to retrieve an observable sequence that represents the timeout between the current element and the next element. + The source sequence with a TimeoutException in case of a timeout. + + or or is null. + + + + Applies a timeout policy to the observable sequence based on an initial timeout duration for the first element, and a timeout duration computed for each subsequent element. + If the next element isn't received within the computed duration starting from its predecessor, the other observable sequence is used to produce future messages from that point on. + + The type of the elements in the source sequence and the other sequence used upon a timeout. + The type of the elements in the timeout sequences used to indicate the timeout duration for each element in the source sequence. + Source sequence to perform a timeout for. + Observable sequence that represents the timeout for the first element. + Selector to retrieve an observable sequence that represents the timeout between the current element and the next element. + Sequence to return in case of a timeout. + The source sequence switching to the other sequence in case of a timeout. + + or or or is null. + + + + Applies a timeout policy to the observable sequence based on a timeout duration computed for each element. + If the next element isn't received within the computed duration starting from its predecessor, a TimeoutException is propagated to the observer. + + The type of the elements in the source sequence. + The type of the elements in the timeout sequences used to indicate the timeout duration for each element in the source sequence. + Source sequence to perform a timeout for. + Selector to retrieve an observable sequence that represents the timeout between the current element and the next element. + The source sequence with a TimeoutException in case of a timeout. + + or is null. + + + + Applies a timeout policy to the observable sequence based on a timeout duration computed for each element. + If the next element isn't received within the computed duration starting from its predecessor, the other observable sequence is used to produce future messages from that point on. + + The type of the elements in the source sequence and the other sequence used upon a timeout. + The type of the elements in the timeout sequences used to indicate the timeout duration for each element in the source sequence. + Source sequence to perform a timeout for. + Selector to retrieve an observable sequence that represents the timeout between the current element and the next element. + Sequence to return in case of a timeout. + The source sequence switching to the other sequence in case of a timeout. + + or or is null. + + + + Returns an observable sequence that produces a single value at the specified absolute due time. + + Query provider used to construct the data source. + Absolute time at which to produce the value. If this value is less than or equal to DateTimeOffset.UtcNow, the timer will fire as soon as possible. + An observable sequence that produces a value at due time. + + + + Returns an observable sequence that periodically produces a value starting at the specified initial absolute due time. + + Query provider used to construct the data source. + Absolute time at which to produce the first value. If this value is less than or equal to DateTimeOffset.UtcNow, the timer will fire as soon as possible. + Period to produce subsequent values. If this value is equal to TimeSpan.Zero, the timer will recur as fast as possible. + An observable sequence that produces a value at due time and then after each period. + + is less than TimeSpan.Zero. + + + + Returns an observable sequence that periodically produces a value starting at the specified initial absolute due time, using the specified scheduler to run timers. + + Query provider used to construct the data source. + Absolute time at which to produce the first value. If this value is less than or equal to DateTimeOffset.UtcNow, the timer will fire as soon as possible. + Period to produce subsequent values. If this value is equal to TimeSpan.Zero, the timer will recur as fast as possible. + Scheduler to run timers on. + An observable sequence that produces a value at due time and then after each period. + + is less than TimeSpan.Zero. + + is null. + + + + Returns an observable sequence that produces a single value at the specified absolute due time, using the specified scheduler to run the timer. + + Query provider used to construct the data source. + Absolute time at which to produce the value. If this value is less than or equal to DateTimeOffset.UtcNow, the timer will fire as soon as possible. + Scheduler to run the timer on. + An observable sequence that produces a value at due time. + + is null. + + + + Returns an observable sequence that produces a single value after the specified relative due time has elapsed. + + Query provider used to construct the data source. + Relative time at which to produce the value. If this value is less than or equal to TimeSpan.Zero, the timer will fire as soon as possible. + An observable sequence that produces a value after the due time has elapsed. + + + + Returns an observable sequence that periodically produces a value after the specified initial relative due time has elapsed. + + Query provider used to construct the data source. + Relative time at which to produce the first value. If this value is less than or equal to TimeSpan.Zero, the timer will fire as soon as possible. + Period to produce subsequent values. If this value is equal to TimeSpan.Zero, the timer will recur as fast as possible. + An observable sequence that produces a value after due time has elapsed and then after each period. + + is less than TimeSpan.Zero. + + + + Returns an observable sequence that periodically produces a value after the specified initial relative due time has elapsed, using the specified scheduler to run timers. + + Query provider used to construct the data source. + Relative time at which to produce the first value. If this value is less than or equal to TimeSpan.Zero, the timer will fire as soon as possible. + Period to produce subsequent values. If this value is equal to TimeSpan.Zero, the timer will recur as fast as possible. + Scheduler to run timers on. + An observable sequence that produces a value after due time has elapsed and then each period. + + is less than TimeSpan.Zero. + + is null. + + + + Returns an observable sequence that produces a single value after the specified relative due time has elapsed, using the specified scheduler to run the timer. + + Query provider used to construct the data source. + Relative time at which to produce the value. If this value is less than or equal to TimeSpan.Zero, the timer will fire as soon as possible. + Scheduler to run the timer on. + An observable sequence that produces a value after the due time has elapsed. + + is null. + + + + Timestamps each element in an observable sequence using the local system clock. + + The type of the elements in the source sequence. + Source sequence to timestamp elements for. + An observable sequence with timestamp information on elements. + + is null. + + + + Timestamp each element in an observable sequence using the clock of the specified scheduler. + + The type of the elements in the source sequence. + Source sequence to timestamp elements for. + Scheduler used to compute timestamps. + An observable sequence with timestamp information on elements. + + or is null. + + + + Creates an array from an observable sequence. + + The type of the elements in the source sequence. + The source observable sequence to get an array of elements for. + An observable sequence containing a single element with an array containing all the elements of the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates a dictionary from an observable sequence according to a specified key selector function. + + The type of the elements in the source sequence. + The type of the dictionary key computed for each element in the source sequence. + An observable sequence to create a dictionary for. + A function to extract a key from each element. + An observable sequence containing a single element with a dictionary mapping unique key values onto the corresponding source sequence's element. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates a dictionary from an observable sequence according to a specified key selector function, and a comparer. + + The type of the elements in the source sequence. + The type of the dictionary key computed for each element in the source sequence. + An observable sequence to create a dictionary for. + A function to extract a key from each element. + An equality comparer to compare keys. + An observable sequence containing a single element with a dictionary mapping unique key values onto the corresponding source sequence's element. + + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates a dictionary from an observable sequence according to a specified key selector function, and an element selector function. + + The type of the elements in the source sequence. + The type of the dictionary key computed for each element in the source sequence. + The type of the dictionary value computed for each element in the source sequence. + An observable sequence to create a dictionary for. + A function to extract a key from each element. + A transform function to produce a result element value from each element. + An observable sequence containing a single element with a dictionary mapping unique key values onto the corresponding source sequence's element. + + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates a dictionary from an observable sequence according to a specified key selector function, a comparer, and an element selector function. + + The type of the elements in the source sequence. + The type of the dictionary key computed for each element in the source sequence. + The type of the dictionary value computed for each element in the source sequence. + An observable sequence to create a dictionary for. + A function to extract a key from each element. + A transform function to produce a result element value from each element. + An equality comparer to compare keys. + An observable sequence containing a single element with a dictionary mapping unique key values onto the corresponding source sequence's element. + + or or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Converts an observable sequence to an enumerable sequence. + + The type of the elements in the source sequence. + An observable sequence to convert to an enumerable sequence. + The enumerable sequence containing the elements in the observable sequence. + + is null. + This operator requires the source's object (see ) to implement . + + + + Creates a list from an observable sequence. + + The type of the elements in the source sequence. + The source observable sequence to get a list of elements for. + An observable sequence containing a single element with a list containing all the elements of the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates a lookup from an observable sequence according to a specified key selector function. + + The type of the elements in the source sequence. + The type of the lookup key computed for each element in the source sequence. + An observable sequence to create a lookup for. + A function to extract a key from each element. + An observable sequence containing a single element with a lookup mapping unique key values onto the corresponding source sequence's elements. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates a lookup from an observable sequence according to a specified key selector function, and a comparer. + + The type of the elements in the source sequence. + The type of the lookup key computed for each element in the source sequence. + An observable sequence to create a lookup for. + A function to extract a key from each element. + An equality comparer to compare keys. + An observable sequence containing a single element with a lookup mapping unique key values onto the corresponding source sequence's elements. + + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates a lookup from an observable sequence according to a specified key selector function, and an element selector function. + + The type of the elements in the source sequence. + The type of the lookup key computed for each element in the source sequence. + The type of the lookup value computed for each element in the source sequence. + An observable sequence to create a lookup for. + A function to extract a key from each element. + A transform function to produce a result element value from each element. + An observable sequence containing a single element with a lookup mapping unique key values onto the corresponding source sequence's elements. + + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates a lookup from an observable sequence according to a specified key selector function, a comparer, and an element selector function. + + The type of the elements in the source sequence. + The type of the lookup key computed for each element in the source sequence. + The type of the lookup value computed for each element in the source sequence. + An observable sequence to create a lookup for. + A function to extract a key from each element. + A transform function to produce a result element value from each element. + An equality comparer to compare keys. + An observable sequence containing a single element with a lookup mapping unique key values onto the corresponding source sequence's elements. + + or or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Converts an enumerable sequence to an observable sequence. + + Query provider used to construct the data source. + The type of the elements in the source sequence. + Enumerable sequence to convert to an observable sequence. + The observable sequence whose elements are pulled from the given enumerable sequence. + + is null. + + + + Converts an enumerable sequence to an observable sequence, using the specified scheduler to run the enumeration loop. + + Query provider used to construct the data source. + The type of the elements in the source sequence. + Enumerable sequence to convert to an observable sequence. + Scheduler to run the enumeration of the input sequence on. + The observable sequence whose elements are pulled from the given enumerable sequence. + + or is null. + + + + Constructs an observable sequence that depends on a resource object, whose lifetime is tied to the resulting observable sequence's lifetime. + + Query provider used to construct the data source. + The type of the elements in the produced sequence. + The type of the resource used during the generation of the resulting sequence. Needs to implement . + Factory function to obtain a resource object. + Factory function to obtain an observable sequence that depends on the obtained resource. + An observable sequence whose lifetime controls the lifetime of the dependent resource object. + + or is null. + + + + Constructs an observable sequence that depends on a resource object, whose lifetime is tied to the resulting observable sequence's lifetime. The resource is obtained and used through asynchronous methods. + The CancellationToken passed to the asynchronous methods is tied to the returned disposable subscription, allowing best-effort cancellation at any stage of the resource acquisition or usage. + + Query provider used to construct the data source. + The type of the elements in the produced sequence. + The type of the resource used during the generation of the resulting sequence. Needs to implement . + Asynchronous factory function to obtain a resource object. + Asynchronous factory function to obtain an observable sequence that depends on the obtained resource. + An observable sequence whose lifetime controls the lifetime of the dependent resource object. + + or is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + When a subscription to the resulting sequence is disposed, the CancellationToken that was fed to the asynchronous resource factory and observable factory functions will be signaled. + + + + Filters the elements of an observable sequence based on a predicate. + + The type of the elements in the source sequence. + An observable sequence whose elements to filter. + A function to test each source element for a condition. + An observable sequence that contains elements from the input sequence that satisfy the condition. + + or is null. + + + + Filters the elements of an observable sequence based on a predicate by incorporating the element's index. + + The type of the elements in the source sequence. + An observable sequence whose elements to filter. + A function to test each source element for a condition; the second parameter of the function represents the index of the source element. + An observable sequence that contains elements from the input sequence that satisfy the condition. + + or is null. + + + + Repeats the given as long as the specified holds, where the is evaluated before each repeated is subscribed to. + + Query provider used to construct the data source. + The type of the elements in the source sequence. + Source to repeat as long as the function evaluates to true. + Condition that will be evaluated before subscription to the , to determine whether repetition of the source is required. + The observable sequence obtained by concatenating the sequence as long as the holds. + + or is null. + + + + Projects each element of an observable sequence into consecutive non-overlapping windows which are produced based on element count information. + + The type of the elements in the source sequence, and in the windows in the result sequence. + Source sequence to produce windows over. + Length of each window. + An observable sequence of windows. + + is null. + + is less than or equal to zero. + + + + Projects each element of an observable sequence into zero or more windows which are produced based on element count information. + + The type of the elements in the source sequence, and in the windows in the result sequence. + Source sequence to produce windows over. + Length of each window. + Number of elements to skip between creation of consecutive windows. + An observable sequence of windows. + + is null. + + or is less than or equal to zero. + + + + Projects each element of an observable sequence into consecutive non-overlapping windows which are produced based on timing information. + + The type of the elements in the source sequence, and in the windows in the result sequence. + Source sequence to produce windows over. + Length of each window. + The sequence of windows. + + is null. + + is less than TimeSpan.Zero. + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create windows as fast as it can. + Because all source sequence elements end up in one of the windows, some windows won't have a zero time span. This is a side-effect of the asynchrony introduced + by the scheduler, where the action to close the current window and to create a new window may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Projects each element of an observable sequence into a window that is completed when either it's full or a given amount of time has elapsed. + A useful real-world analogy of this overload is the behavior of a ferry leaving the dock when all seats are taken, or at the scheduled time of departure, whichever event occurs first. + + The type of the elements in the source sequence, and in the windows in the result sequence. + Source sequence to produce windows over. + Maximum time length of a window. + Maximum element count of a window. + An observable sequence of windows. + + is null. + + is less than TimeSpan.Zero. -or- is less than or equal to zero. + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create windows as fast as it can. + Because all source sequence elements end up in one of the windows, some windows won't have a zero time span. This is a side-effect of the asynchrony introduced + by the scheduler, where the action to close the current window and to create a new window may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Projects each element of an observable sequence into a window that is completed when either it's full or a given amount of time has elapsed, using the specified scheduler to run timers. + A useful real-world analogy of this overload is the behavior of a ferry leaving the dock when all seats are taken, or at the scheduled time of departure, whichever event occurs first. + + The type of the elements in the source sequence, and in the windows in the result sequence. + Source sequence to produce windows over. + Maximum time length of a window. + Maximum element count of a window. + Scheduler to run windowing timers on. + An observable sequence of windows. + + or is null. + + is less than TimeSpan.Zero. -or- is less than or equal to zero. + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create windows as fast as it can. + Because all source sequence elements end up in one of the windows, some windows won't have a zero time span. This is a side-effect of the asynchrony introduced + by the scheduler, where the action to close the current window and to create a new window may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Projects each element of an observable sequence into consecutive non-overlapping windows which are produced based on timing information, using the specified scheduler to run timers. + + The type of the elements in the source sequence, and in the windows in the result sequence. + Source sequence to produce windows over. + Length of each window. + Scheduler to run windowing timers on. + An observable sequence of windows. + + or is null. + + is less than TimeSpan.Zero. + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create windows as fast as it can. + Because all source sequence elements end up in one of the windows, some windows won't have a zero time span. This is a side-effect of the asynchrony introduced + by the scheduler, where the action to close the current window and to create a new window may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Projects each element of an observable sequence into zero or more windows which are produced based on timing information. + + The type of the elements in the source sequence, and in the windows in the result sequence. + Source sequence to produce windows over. + Length of each window. + Interval between creation of consecutive windows. + An observable sequence of windows. + + is null. + + or is less than TimeSpan.Zero. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create windows with minimum duration + length. However, some windows won't have a zero time span. This is a side-effect of the asynchrony introduced by the scheduler, where the action to close the + current window may not execute immediately, despite the TimeSpan.Zero due time. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create windows as fast as it can. + However, this doesn't mean all windows will start at the beginning of the source sequence. This is a side-effect of the asynchrony introduced by the scheduler, + where the action to create a new window may not execute immediately, despite the TimeSpan.Zero due time. + + + + + + Projects each element of an observable sequence into zero or more windows which are produced based on timing information, using the specified scheduler to run timers. + + The type of the elements in the source sequence, and in the windows in the result sequence. + Source sequence to produce windows over. + Length of each window. + Interval between creation of consecutive windows. + Scheduler to run windowing timers on. + An observable sequence of windows. + + or is null. + + or is less than TimeSpan.Zero. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create windows with minimum duration + length. However, some windows won't have a zero time span. This is a side-effect of the asynchrony introduced by the scheduler, where the action to close the + current window may not execute immediately, despite the TimeSpan.Zero due time. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create windows as fast as it can. + However, this doesn't mean all windows will start at the beginning of the source sequence. This is a side-effect of the asynchrony introduced by the scheduler, + where the action to create a new window may not execute immediately, despite the TimeSpan.Zero due time. + + + + + + Projects each element of an observable sequence into consecutive non-overlapping windows. + + The type of the elements in the source sequence, and in the windows in the result sequence. + The type of the elements in the sequences indicating window boundary events. + Source sequence to produce windows over. + Sequence of window boundary markers. The current window is closed and a new window is opened upon receiving a boundary marker. + An observable sequence of windows. + + or is null. + + + + Projects each element of an observable sequence into consecutive non-overlapping windows. + + The type of the elements in the source sequence, and in the windows in the result sequence. + The type of the elements in the sequences indicating window closing events. + Source sequence to produce windows over. + A function invoked to define the boundaries of the produced windows. A new window is started when the previous one is closed. + An observable sequence of windows. + + or is null. + + + + Projects each element of an observable sequence into zero or more windows. + + The type of the elements in the source sequence, and in the windows in the result sequence. + The type of the elements in the sequence indicating window opening events, also passed to the closing selector to obtain a sequence of window closing events. + The type of the elements in the sequences indicating window closing events. + Source sequence to produce windows over. + Observable sequence whose elements denote the creation of new windows. + A function invoked to define the closing of each produced window. + An observable sequence of windows. + + or or is null. + + + + Merges two observable sequences into one observable sequence by combining each element from the first source with the latest element from the second source, if any. + Starting from Rx.NET 4.0, this will subscribe to before subscribing to to have a latest element readily available + in case emits an element right away. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Function to invoke for each element from the first source combined with the latest element from the second source, if any. + An observable sequence containing the result of combining each element of the first source with the latest element from the second source, if any, using the specified result selector function. + + or or is null. + + + + Merges the specified observable sequences into one observable sequence by emitting a list with the elements of the observable sequences at corresponding indexes. + + Query provider used to construct the data source. + The type of the elements in the source sequences, and in the lists in the result sequence. + Observable sources. + An observable sequence containing lists of elements at corresponding indexes. + + is null. + + + + Merges the specified observable sequences into one observable sequence by emitting a list with the elements of the observable sequences at corresponding indexes. + + Query provider used to construct the data source. + The type of the elements in the source sequences, and in the lists in the result sequence. + Observable sources. + An observable sequence containing lists of elements at corresponding indexes. + + is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + Query provider used to construct the data source. + The type of the elements in the source sequences. + The type of the elements in the result sequence, returned by the selector function. + Observable sources. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or is null. + + + + Merges two observable sequences into one observable sequence by combining their elements in a pairwise fashion. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Function to invoke for each consecutive pair of elements from the first and second source. + An observable sequence containing the result of pairwise combining the elements of the first and second source using the specified result selector function. + + or or is null. + + + + Merges an observable sequence and an enumerable sequence into one observable sequence by using the selector function. + + The type of the elements in the first observable source sequence. + The type of the elements in the second enumerable source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second enumerable source. + Function to invoke for each consecutive pair of elements from the first and second source. + An observable sequence containing the result of pairwise combining the elements of the first and second source using the specified result selector function. + + or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Fourteenth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the fifteenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Fourteenth observable source. + Fifteenth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the fifteenth source sequence. + The type of the elements in the sixteenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Fourteenth observable source. + Fifteenth observable source. + Sixteenth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or or or or or or or or or or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Query provider used to construct the data source. + Action to convert to an asynchronous action. + Asynchronous action. + + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Query provider used to construct the data source. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + The type of the thirteenth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + The type of the thirteenth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + The type of the thirteenth argument passed to the action. + The type of the fourteenth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + The type of the thirteenth argument passed to the action. + The type of the fourteenth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + The type of the thirteenth argument passed to the action. + The type of the fourteenth argument passed to the action. + The type of the fifteenth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + The type of the thirteenth argument passed to the action. + The type of the fourteenth argument passed to the action. + The type of the fifteenth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + The type of the thirteenth argument passed to the action. + The type of the fourteenth argument passed to the action. + The type of the fifteenth argument passed to the action. + The type of the sixteenth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + The type of the thirteenth argument passed to the action. + The type of the fourteenth argument passed to the action. + The type of the fifteenth argument passed to the action. + The type of the sixteenth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + Query provider used to construct the data source. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + Query provider used to construct the data source. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the thirteenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the thirteenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the thirteenth argument passed to the function. + The type of the fourteenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the thirteenth argument passed to the function. + The type of the fourteenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the thirteenth argument passed to the function. + The type of the fourteenth argument passed to the function. + The type of the fifteenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the thirteenth argument passed to the function. + The type of the fourteenth argument passed to the function. + The type of the fifteenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the thirteenth argument passed to the function. + The type of the fourteenth argument passed to the function. + The type of the fifteenth argument passed to the function. + The type of the sixteenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the thirteenth argument passed to the function. + The type of the fourteenth argument passed to the function. + The type of the fifteenth argument passed to the function. + The type of the sixteenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + + or is null. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The type of the eleventh argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The type of the eleventh argument passed to the begin delegate. + The type of the twelfth argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The type of the eleventh argument passed to the begin delegate. + The type of the twelfth argument passed to the begin delegate. + The type of the thirteenth argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The type of the eleventh argument passed to the begin delegate. + The type of the twelfth argument passed to the begin delegate. + The type of the thirteenth argument passed to the begin delegate. + The type of the fourteenth argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The type of the eleventh argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The type of the eleventh argument passed to the begin delegate. + The type of the twelfth argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The type of the eleventh argument passed to the begin delegate. + The type of the twelfth argument passed to the begin delegate. + The type of the thirteenth argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The type of the eleventh argument passed to the begin delegate. + The type of the twelfth argument passed to the begin delegate. + The type of the thirteenth argument passed to the begin delegate. + The type of the fourteenth argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Creates a pattern that matches when both observable sequences have an available element. + + The type of the elements in the left sequence. + The type of the elements in the right sequence. + Observable sequence to match with the right sequence. + Observable sequence to match with the left sequence. + Pattern object that matches when both observable sequences have an available element. + or is null. + + + + Matches when the observable sequence has an available element and projects the element by invoking the selector function. + + The type of the elements in the source sequence. + The type of the elements in the result sequence, returned by the selector function. + Observable sequence to apply the selector on. + Selector that will be invoked for elements in the source sequence. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + or is null. + + + + Joins together the results from several patterns. + + The type of the elements in the result sequence, obtained from the specified patterns. + Query provider used to construct the data source. + A series of plans created by use of the Then operator on patterns. + An observable sequence with the results from matching several patterns. + or is null. + + + + Joins together the results from several patterns. + + The type of the elements in the result sequence, obtained from the specified patterns. + Query provider used to construct the data source. + A series of plans created by use of the Then operator on patterns. + An observable sequence with the results form matching several patterns. + or is null. + + + + Try winning the race for the right of emission. + + If true, the contender is the left source. + True if the contender has won the race. + + + + If true, this observer won the race and now can emit + on a fast path. + + + + + Automatically connect the upstream IConnectableObservable once the + specified number of IObservers have subscribed to this IObservable. + + The upstream value type. + + + + The only instance for a TResult type: this source + is completely stateless and has a constant behavior. + + + + + No need for instantiating this more than once per TResult. + + + + + Contains the current active connection's state or null + if no connection is active at the moment. + Should be manipulated while holding the lock. + + + + + Contains the connection reference the downstream observer + has subscribed to. Its purpose is to + avoid subscribing, connecting and disconnecting + while holding a lock. + + + + + Holds an individual connection state: the observer count and + the connection's IDisposable. + + + + + Relays items to the downstream until the predicate returns true. + + The element type of the sequence + + + + Provides a set of static methods for writing queries over observable sequences, allowing translation to a target query language. + + + + + Subscribes to each observable sequence returned by the iteratorMethod in sequence and produces a Unit value on the resulting sequence for each step of the iteration. + + Query provider used to construct the data source. + Iterator method that drives the resulting observable sequence. + An observable sequence obtained by running the iterator and returning Unit values for each iteration step. + + is null. + + + + Subscribes to each observable sequence returned by the iteratorMethod in sequence and returns the observable sequence of values sent to the observer given to the iteratorMethod. + + Query provider used to construct the data source. + The type of the elements in the produced sequence. + Iterator method that produces elements in the resulting sequence by calling the given observer. + An observable sequence obtained by running the iterator and returning the elements that were sent to the observer. + + is null. + + + + Expands an observable sequence by recursively invoking selector. + + The type of the elements in the source sequence and each of the recursively expanded sources obtained by running the selector function. + Source sequence with the initial elements. + Selector function to invoke for each produced element, resulting in another sequence to which the selector will be invoked recursively again. + An observable sequence containing all the elements produced by the recursive expansion. + + or is null. + + + + Expands an observable sequence by recursively invoking selector, using the specified scheduler to enumerate the queue of obtained sequences. + + The type of the elements in the source sequence and each of the recursively expanded sources obtained by running the selector function. + Source sequence with the initial elements. + Selector function to invoke for each produced element, resulting in another sequence to which the selector will be invoked recursively again. + Scheduler on which to perform the expansion by enumerating the internal queue of obtained sequences. + An observable sequence containing all the elements produced by the recursive expansion. + + or or is null. + + + + Runs all specified observable sequences in parallel and collects their last elements. + + Query provider used to construct the data source. + The type of the elements in the source sequences. + Observable sequence to collect the last elements for. + An observable sequence with an array collecting the last elements of all the input sequences. + + is null. + + + + Runs all observable sequences in the enumerable sources sequence in parallel and collect their last elements. + + Query provider used to construct the data source. + The type of the elements in the source sequences. + Observable sequence to collect the last elements for. + An observable sequence with an array collecting the last elements of all the input sequences. + + is null. + + + + Runs two observable sequences in parallel and combines their last elements. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable sequence. + Second observable sequence. + Result selector function to invoke with the last elements of both sequences. + An observable sequence with the result of calling the selector function with the last elements of both input sequences. + + or or is null. + + + + Returns an observable sequence that is the result of invoking the selector on the source sequence, without sharing subscriptions. + This operator allows for a fluent style of writing queries that use the same sequence multiple times. + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence that will be shared in the selector function. + Selector function which can use the source sequence as many times as needed, without sharing subscriptions to the source sequence. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + + or is null. + + + + Comonadic bind operator. + + + + + Comonadic bind operator. + + + + + Merges two observable sequences into one observable sequence by combining each element from the first source with the latest element from the second source, if any. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + First observable source. + Second observable source. + An observable sequence containing the result of combining each element of the first source with the latest element from the second source, if any, as a tuple value. + or is null. + + + + Merges an observable sequence and an enumerable sequence into one observable sequence of tuple values. + + The type of the elements in the first observable source sequence. + The type of the elements in the second enumerable source sequence. + First observable source. + Second enumerable source. + An observable sequence containing the result of pairwise combining the elements of the first and second source as a tuple value. + or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + First observable source. + Second observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + First observable source. + Second observable source. + Third observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Fourteenth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the fifteenth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Fourteenth observable source. + Fifteenth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the fifteenth source sequence. + The type of the elements in the sixteenth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Fourteenth observable source. + Fifteenth observable source. + Sixteenth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + First observable source. + Second observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + First observable source. + Second observable source. + Third observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Fourteenth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the fifteenth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Fourteenth observable source. + Fifteenth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the fifteenth source sequence. + The type of the elements in the sixteenth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Fourteenth observable source. + Fifteenth observable source. + Sixteenth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or or or or or or or or or is null. + + + + (Infrastructure) Implement query debugger services. + + + + + The System.Reactive.Linq namespace contains interfaces and classes that support expressing queries over observable sequences, using Language Integrated Query (LINQ). + Query operators are made available as extension methods for and defined on the Observable and Qbservable classes, respectively. + + + + + Provides a set of static methods for subscribing to IObservables using Windows Forms controls. + + + + + Wraps the source sequence in order to run its subscription and unsubscription logic on the Windows Forms message loop associated with the specified control. + + The type of the elements in the source sequence. + Source sequence. + Windows Forms control whose associated message loop is used to perform subscription and unsubscription actions on. + The source sequence whose subscriptions and unsubscriptions happen on the Windows Forms message loop associated with the specified control. + or is null. + + Only the side-effects of subscribing to the source sequence and disposing subscriptions to the source sequence are run on the specified control. + In order to invoke observer callbacks on the specified control, e.g. to render results in a control, use . + + + + + Wraps the source sequence in order to run its observer callbacks on the Windows Forms message loop associated with the specified control. + + The type of the elements in the source sequence. + Source sequence. + Windows Forms control whose associated message loop is used to notify observers on. + The source sequence whose observations happen on the Windows Forms message loop associated with the specified control. + or is null. + + + + Provides a set of extension methods for scheduling actions performed through observable sequences on UI dispatchers. + + + + + Wraps the source sequence in order to run its observer callbacks on the specified dispatcher. + + The type of the elements in the source sequence. + Source sequence. + Dispatcher whose associated message loop is used to notify observers on. + The source sequence whose observations happen on the specified dispatcher. + or is null. + + + + Wraps the source sequence in order to run its observer callbacks on the specified dispatcher. + + The type of the elements in the source sequence. + Source sequence. + Dispatcher whose associated message loop is used to notify observers on. + Priority to schedule work items at. + The source sequence whose observations happen on the specified dispatcher. + or is null. + + + + Wraps the source sequence in order to run its observer callbacks on the specified dispatcher scheduler. + + The type of the elements in the source sequence. + Source sequence. + Dispatcher scheduler to notify observers on. + The source sequence whose observations happen on the specified dispatcher scheduler. + or is null. + + + + Wraps the source sequence in order to run its observer callbacks on the dispatcher associated with the specified object. + + The type of the elements in the source sequence. + Source sequence. + Object to get the dispatcher from. + The source sequence whose observations happen on the specified object's dispatcher. + or is null. + + + + Wraps the source sequence in order to run its observer callbacks on the dispatcher associated with the specified object. + + The type of the elements in the source sequence. + Source sequence. + Object to get the dispatcher from. + Priority to schedule work items at. + The source sequence whose observations happen on the specified object's dispatcher. + or is null. + + + + Wraps the source sequence in order to run its observer callbacks on the dispatcher associated with the current thread. + + The type of the elements in the source sequence. + Source sequence. + The source sequence whose observations happen on the current thread's dispatcher. + is null. + + + + Wraps the source sequence in order to run its observer callbacks on the dispatcher associated with the current thread. + + The type of the elements in the source sequence. + Source sequence. + Priority to schedule work items at. + The source sequence whose observations happen on the current thread's dispatcher. + is null. + + + + Wraps the source sequence in order to run its subscription and unsubscription logic on the specified dispatcher. + + The type of the elements in the source sequence. + Source sequence. + Dispatcher whose associated message loop is used to perform subscription and unsubscription actions on. + The source sequence whose subscriptions and unsubscriptions happen on the specified dispatcher. + or is null. + + Only the side-effects of subscribing to the source sequence and disposing subscriptions to the source sequence are run on the specified dispatcher. + In order to invoke observer callbacks on the specified dispatcher, e.g. to render results in a control, use . + + + + + Wraps the source sequence in order to run its subscription and unsubscription logic on the specified dispatcher. + + The type of the elements in the source sequence. + Source sequence. + Dispatcher whose associated message loop is used to to perform subscription and unsubscription actions on. + Priority to schedule work items at. + The source sequence whose subscriptions and unsubscriptions happen on the specified dispatcher. + or is null. + + Only the side-effects of subscribing to the source sequence and disposing subscriptions to the source sequence are run on the specified dispatcher. + In order to invoke observer callbacks on the specified dispatcher, e.g. to render results in a control, use . + + + + + Wraps the source sequence in order to run its subscription and unsubscription logic on the specified dispatcher scheduler. + + The type of the elements in the source sequence. + Source sequence. + Dispatcher scheduler to perform subscription and unsubscription actions on. + The source sequence whose subscriptions and unsubscriptions happen on the specified dispatcher scheduler. + or is null. + + Only the side-effects of subscribing to the source sequence and disposing subscriptions to the source sequence are run on the specified scheduler. + In order to invoke observer callbacks on the specified scheduler, e.g. to render results in a control, use . + + + + + Wraps the source sequence in order to run its subscription and unsubscription logic on the dispatcher associated with the specified object. + + The type of the elements in the source sequence. + Source sequence. + Object to get the dispatcher from. + The source sequence whose subscriptions and unsubscriptions happen on the specified object's dispatcher. + or is null. + + Only the side-effects of subscribing to the source sequence and disposing subscriptions to the source sequence are run on the dispatcher associated with the specified object. + In order to invoke observer callbacks on the dispatcher associated with the specified object, e.g. to render results in a control, use . + + + + + Wraps the source sequence in order to run its subscription and unsubscription logic on the dispatcher associated with the specified object. + + The type of the elements in the source sequence. + Source sequence. + Object to get the dispatcher from. + Priority to schedule work items at. + The source sequence whose subscriptions and unsubscriptions happen on the specified object's dispatcher. + or is null. + + Only the side-effects of subscribing to the source sequence and disposing subscriptions to the source sequence are run on the dispatcher associated with the specified object. + In order to invoke observer callbacks on the dispatcher associated with the specified object, e.g. to render results in a control, use . + + + + + Wraps the source sequence in order to run its subscription and unsubscription logic on the dispatcher associated with the current thread. + + The type of the elements in the source sequence. + Source sequence. + The source sequence whose subscriptions and unsubscriptions happen on the current thread's dispatcher. + is null. + + Only the side-effects of subscribing to the source sequence and disposing subscriptions to the source sequence are run on the dispatcher associated with the current thread. + In order to invoke observer callbacks on the dispatcher associated with the current thread, e.g. to render results in a control, use . + + + + + Wraps the source sequence in order to run its subscription and unsubscription logic on the dispatcher associated with the current thread. + + The type of the elements in the source sequence. + Source sequence. + Priority to schedule work items at. + The source sequence whose observations happen on the current thread's dispatcher. + is null. + + Only the side-effects of subscribing to the source sequence and disposing subscriptions to the source sequence are run on the dispatcher associated with the current thread. + In order to invoke observer callbacks on the dispatcher associated with the current thread, e.g. to render results in a control, use . + + + + + Provides a set of static methods for exposing observable sequences through .NET Remoting. + + + + + Makes an observable sequence remotable, using an infinite lease for the wrapping the source. + + The type of the elements in the source sequence. + Source sequence. + The observable sequence that supports remote subscriptions. + is null. + + + + Makes an observable sequence remotable, using a controllable lease for the wrapping the source. + + The type of the elements in the source sequence. + Source sequence. + Lease object to control lifetime of the remotable sequence. Notice null is a supported value. + The observable sequence that supports remote subscriptions. + is null. + + + + Makes an observable sequence remotable, using an infinite lease for the wrapping the source. + + The type of the elements in the source sequence. + Source sequence. + The observable sequence that supports remote subscriptions. + is null. + + + + Makes an observable sequence remotable, using a controllable lease for the wrapping the source. + + The type of the elements in the source sequence. + Source sequence. + Lease object to control lifetime of the remotable sequence. Notice null is a supported value. + The observable sequence that supports remote subscriptions. + is null. + + + + An ObserveOn operator implementation that uses lock-free + techniques to signal events to the downstream. + + The element type of the sequence. + + + + The current task representing a running drain operation. + + + + + Indicates the work-in-progress state of this operator, + zero means no work is currently being done. + + + + + If true, the upstream has issued OnCompleted. + + + + + If is true and this is non-null, the upstream + failed with an OnError. + + + + + Indicates a dispose has been requested. + + + + + Remove remaining elements from the queue upon + cancellation or failure. + + The queue to use. The argument ensures that the + _queue field is not re-read from memory unnecessarily + due to the memory barriers inside TryDequeue mandating it + despite the field is read-only. + + + + Submit the drain task via the appropriate scheduler if + there is no drain currently running (wip > 0). + + + + + The static action to be scheduled on a simple scheduler. + Avoids creating a delegate that captures this + whenever the signals have to be drained. + + + + + Emits at most one signal per run on a scheduler that doesn't like + long running tasks. + + The scheduler to use for scheduling the next signal emission if necessary. + The IDisposable of the recursively scheduled task or an empty disposable. + + + + Executes a drain step by checking the disposed state, + checking for the terminated state and for an + empty queue, issuing the appropriate signals to the + given downstream. + + The queue to use. The argument ensures that the + _queue field is not re-read from memory due to the memory barriers + inside TryDequeue mandating it despite the field is read-only. + In addition, the DrainStep is invoked from the DrainLongRunning's loop + so reading _queue inside this method would still incur the same barrier + overhead otherwise. + + + + Signals events on a ISchedulerLongRunning by blocking the emission thread while waiting + for them from the upstream. + + The element type of the sequence. + + + + This will run a suspending drain task, hogging the backing thread + until the sequence terminates or gets disposed. + + + + + The queue for holding the OnNext items, terminal signals have their own fields. + + + + + Protects the suspension and resumption of the long running drain task. + + + + + The work-in-progress counter. If it jumps from 0 to 1, the drain task is resumed, + if it reaches 0 again, the drain task is suspended. + + + + + Set to true if the upstream terminated. + + + + + Set to a non-null Exception if the upstream terminated with OnError. + + + + + Indicates the sequence has been disposed and the drain task should quit. + + + + + Makes sure the drain task is scheduled only once, when the first signal + from upstream arrives. + + + + + The disposable tracking the drain task. + + + + + Static reference to the Drain method, saves allocation. + + + + + Override this method to dispose additional resources. + The method is guaranteed to be called at most once. + + If true, the method was called from . + + + + Base class for implementation of query operators, providing a lightweight sink that can be disposed to mute the outgoing observer. + + Type of the resulting sequence's elements. + + Implementations of sinks are responsible to enforce the message grammar on the associated observer. Upon sending a terminal message, a pairing Dispose call should be made to trigger cancellation of related resources and to mute the outgoing observer. + + + + Holds onto a singleton IDisposable indicating a ready state. + + + + + This indicates the operation has been prepared and ready for + the next step. + + + + + Provides a mechanism for receiving push-based notifications and returning a response. + + + The type of the elements received by the observer. + This type parameter is contravariant. That is, you can use either the type you specified or any type that is less derived. For more information about covariance and contravariance, see Covariance and Contravariance in Generics. + + + The type of the result returned from the observer's notification handlers. + This type parameter is covariant. That is, you can use either the type you specified or any type that is more derived. For more information about covariance and contravariance, see Covariance and Contravariance in Generics. + + + + + Notifies the observer of a new element in the sequence. + + The new element in the sequence. + Result returned upon observation of a new element. + + + + Notifies the observer that an exception has occurred. + + The exception that occurred. + Result returned upon observation of an error. + + + + Notifies the observer of the end of the sequence. + + Result returned upon observation of the sequence completion. + + + + Abstract base class for join patterns. + + + + + Represents a join pattern over one observable sequence. + + The type of the elements in the first source sequence. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over two observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + + + + Creates a pattern that matches when all three observable sequences have an available element. + + The type of the elements in the third observable sequence. + Observable sequence to match with the two previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over three observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + + + + Creates a pattern that matches when all four observable sequences have an available element. + + The type of the elements in the fourth observable sequence. + Observable sequence to match with the three previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over four observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + + + + Creates a pattern that matches when all five observable sequences have an available element. + + The type of the elements in the fifth observable sequence. + Observable sequence to match with the four previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over five observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + + + + Creates a pattern that matches when all six observable sequences have an available element. + + The type of the elements in the sixth observable sequence. + Observable sequence to match with the five previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over six observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + + + + Creates a pattern that matches when all seven observable sequences have an available element. + + The type of the elements in the seventh observable sequence. + Observable sequence to match with the six previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over seven observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + + + + Creates a pattern that matches when all eight observable sequences have an available element. + + The type of the elements in the eighth observable sequence. + Observable sequence to match with the seven previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over eight observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + + + + Creates a pattern that matches when all nine observable sequences have an available element. + + The type of the elements in the ninth observable sequence. + Observable sequence to match with the eight previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over nine observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + + + + Creates a pattern that matches when all ten observable sequences have an available element. + + The type of the elements in the tenth observable sequence. + Observable sequence to match with the nine previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over ten observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + + + + Creates a pattern that matches when all eleven observable sequences have an available element. + + The type of the elements in the eleventh observable sequence. + Observable sequence to match with the ten previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over eleven observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + + + + Creates a pattern that matches when all twelve observable sequences have an available element. + + The type of the elements in the twelfth observable sequence. + Observable sequence to match with the eleven previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over twelve observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + + + + Creates a pattern that matches when all thirteen observable sequences have an available element. + + The type of the elements in the thirteenth observable sequence. + Observable sequence to match with the twelve previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over thirteen observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + + + + Creates a pattern that matches when all fourteen observable sequences have an available element. + + The type of the elements in the fourteenth observable sequence. + Observable sequence to match with the thirteen previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over fourteen observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + + + + Creates a pattern that matches when all fifteen observable sequences have an available element. + + The type of the elements in the fifteenth observable sequence. + Observable sequence to match with the fourteen previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over fifteen observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the fifteenth source sequence. + + + + Creates a pattern that matches when all sixteen observable sequences have an available element. + + The type of the elements in the sixteenth observable sequence. + Observable sequence to match with the fifteen previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over sixteen observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the fifteenth source sequence. + The type of the elements in the sixteenth source sequence. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents an execution plan for join patterns. + + The type of the results produced by the plan. + + + + Abstract base class for join patterns represented by an expression tree. + + + + + Creates a new join pattern object using the specified expression tree representation. + + Expression tree representing the join pattern. + + + + Gets the expression tree representing the join pattern. + + + + + Represents a join pattern over two observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + + + + Creates a pattern that matches when all three observable sequences have an available element. + + The type of the elements in the third observable sequence. + Observable sequence to match with the two previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over three observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + + + + Creates a pattern that matches when all four observable sequences have an available element. + + The type of the elements in the fourth observable sequence. + Observable sequence to match with the three previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over four observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + + + + Creates a pattern that matches when all five observable sequences have an available element. + + The type of the elements in the fifth observable sequence. + Observable sequence to match with the four previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over five observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + + + + Creates a pattern that matches when all six observable sequences have an available element. + + The type of the elements in the sixth observable sequence. + Observable sequence to match with the five previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over six observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + + + + Creates a pattern that matches when all seven observable sequences have an available element. + + The type of the elements in the seventh observable sequence. + Observable sequence to match with the six previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over seven observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + + + + Creates a pattern that matches when all eight observable sequences have an available element. + + The type of the elements in the eighth observable sequence. + Observable sequence to match with the seven previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over eight observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + + + + Creates a pattern that matches when all nine observable sequences have an available element. + + The type of the elements in the ninth observable sequence. + Observable sequence to match with the eight previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over nine observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + + + + Creates a pattern that matches when all ten observable sequences have an available element. + + The type of the elements in the tenth observable sequence. + Observable sequence to match with the nine previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over ten observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + + + + Creates a pattern that matches when all eleven observable sequences have an available element. + + The type of the elements in the eleventh observable sequence. + Observable sequence to match with the ten previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over eleven observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + + + + Creates a pattern that matches when all twelve observable sequences have an available element. + + The type of the elements in the twelfth observable sequence. + Observable sequence to match with the eleven previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over twelve observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + + + + Creates a pattern that matches when all thirteen observable sequences have an available element. + + The type of the elements in the thirteenth observable sequence. + Observable sequence to match with the twelve previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over thirteen observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + + + + Creates a pattern that matches when all fourteen observable sequences have an available element. + + The type of the elements in the fourteenth observable sequence. + Observable sequence to match with the thirteen previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over fourteen observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + + + + Creates a pattern that matches when all fifteen observable sequences have an available element. + + The type of the elements in the fifteenth observable sequence. + Observable sequence to match with the fourteen previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over fifteen observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the fifteenth source sequence. + + + + Creates a pattern that matches when all sixteen observable sequences have an available element. + + The type of the elements in the sixteenth observable sequence. + Observable sequence to match with the fifteen previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over sixteen observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the fifteenth source sequence. + The type of the elements in the sixteenth source sequence. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents an execution plan for join patterns represented by an expression tree. + + The type of the results produced by the plan. + + + + Gets the expression tree representing the join pattern execution plan. + + + + + The System.Reactive.Joins namespace contains classes used to express join patterns over observable sequences using fluent method syntax. + + + + + Represents an object that retains the elements of the observable sequence and signals the end of the sequence. + + The type of elements received from the source sequence. + + + + Constructs an object that retains the values of source and signals the end of the sequence. + + The observable sequence whose elements will be retained in the list. + is null. + + + + Returns the last value of the observable sequence. + + + + + Determines the index of a specific item in the ListObservable. + + The element to determine the index for. + The index of the specified item in the list; -1 if not found. + + + + Inserts an item to the ListObservable at the specified index. + + The index to insert the item at. + The item to insert in the list. + + + + Removes the ListObservable item at the specified index. + + The index of the item to remove. + + + + Gets or sets the element at the specified index. + + The index of the item to retrieve or set. + + + + Adds an item to the ListObservable. + + The item to add to the list. + + + + Removes all items from the ListObservable. + + + + + Determines whether the ListObservable contains a specific value. + + The item to search for in the list. + true if found; false otherwise. + + + + Copies the elements of the ListObservable to an System.Array, starting at a particular System.Array index. + + The array to copy elements to. + The start index in the array to start copying elements to. + + + + Gets the number of elements contained in the ListObservable. + + + + + Gets a value that indicates whether the ListObservable is read-only. + + + + + Removes the first occurrence of a specific object from the ListObservable. + + The item to remove from the list. + true if the item was found; false otherwise. + + + + Returns an enumerator that iterates through the collection. + + Enumerator over the list. + + + + Subscribes an observer to the ListObservable which will be notified upon completion. + + The observer to send completion or error messages to. + The disposable resource that can be used to unsubscribe. + is null. + + + + The System.Reactive namespace contains interfaces and classes used throughout the Reactive Extensions library. + + + + + The System.Reactive.Subjects namespace contains interfaces and classes to represent subjects, which are objects implementing both and . + Subjects are often used as sources of events, allowing one party to raise events and allowing another party to write queries over the event stream. Because of their ability to + have multiple registered observers, subjects are also used as a facility to provide multicast behavior for event streams in queries. + + + + + Represents the result of an asynchronous operation. + The last value before the OnCompleted notification, or the error received through OnError, is sent to all subscribed observers. + + The type of the elements processed by the subject. + + + + A pre-allocated empty array indicating the AsyncSubject has terminated. + + + + + A pre-allocated empty array indicating the AsyncSubject has been disposed. + + + + + Creates a subject that can only receive one value and that value is cached for all future observations. + + + + + Indicates whether the subject has observers subscribed to it. + + + + + Indicates whether the subject has been disposed. + + + + + Notifies all subscribed observers about the end of the sequence, also causing the last received value to be sent out (if any). + + + + + Notifies all subscribed observers about the exception. + + The exception to send to all observers. + is null. + + + + Sends a value to the subject. The last value received before successful termination will be sent to all subscribed and future observers. + + The value to store in the subject. + + + + Subscribes an observer to the subject. + + Observer to subscribe to the subject. + Disposable object that can be used to unsubscribe the observer from the subject. + is null. + + + + A disposable connecting the AsyncSubject and an IObserver. + + + + + Unsubscribe all observers and release resources. + + + + + Gets an awaitable object for the current AsyncSubject. + + Object that can be awaited. + + + + Specifies a callback action that will be invoked when the subject completes. + + Callback action that will be invoked when the subject completes. + is null. + + + + Gets whether the AsyncSubject has completed. + + + + + Gets the last element of the subject, potentially blocking until the subject completes successfully or exceptionally. + + The last element of the subject. Throws an InvalidOperationException if no element was received. + The source sequence is empty. + + + + Represents a value that changes over time. + Observers can subscribe to the subject to receive the last (or initial) value and all subsequent notifications. + + The type of the elements processed by the subject. + + + + Initializes a new instance of the class which creates a subject that caches its last value and starts with the specified value. + + Initial value sent to observers when no other value has been received by the subject yet. + + + + Indicates whether the subject has observers subscribed to it. + + + + + Indicates whether the subject has been disposed. + + + + + Gets the current value or throws an exception. + + The initial value passed to the constructor until is called; after which, the last value passed to . + + is frozen after is called. + After is called, always throws the specified exception. + An exception is always thrown after is called. + + Reading is a thread-safe operation, though there's a potential race condition when or are being invoked concurrently. + In some cases, it may be necessary for a caller to use external synchronization to avoid race conditions. + + + Dispose was called. + + + + Tries to get the current value or throws an exception. + + The initial value passed to the constructor until is called; after which, the last value passed to . + true if a value is available; false if the subject was disposed. + + The value returned from is frozen after is called. + After is called, always throws the specified exception. + + Calling is a thread-safe operation, though there's a potential race condition when or are being invoked concurrently. + In some cases, it may be necessary for a caller to use external synchronization to avoid race conditions. + + + + + + Notifies all subscribed observers about the end of the sequence. + + + + + Notifies all subscribed observers about the exception. + + The exception to send to all observers. + is null. + + + + Notifies all subscribed observers about the arrival of the specified element in the sequence. + + The value to send to all observers. + + + + Subscribes an observer to the subject. + + Observer to subscribe to the subject. + Disposable object that can be used to unsubscribe the observer from the subject. + is null. + + + + Unsubscribe all observers and release resources. + + + + + Represents an observable wrapper that can be connected and disconnected from its underlying observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the resulting sequence, after transformation through the subject. + + + + Creates an observable that can be connected and disconnected from its source. + + Underlying observable source sequence that can be connected and disconnected from the wrapper. + Subject exposed by the connectable observable, receiving data from the underlying source sequence upon connection. + + + + Connects the observable wrapper to its source. All subscribed observers will receive values from the underlying observable sequence as long as the connection is established. + + Disposable object used to disconnect the observable wrapper from its source, causing subscribed observer to stop receiving values from the underlying observable sequence. + + + + Subscribes an observer to the observable sequence. No values from the underlying observable source will be received unless a connection was established through the Connect method. + + Observer that will receive values from the underlying observable source when the current ConnectableObservable instance is connected through a call to Connect. + Disposable used to unsubscribe from the observable sequence. + + + + Represents an observable wrapper that can be connected and disconnected from its underlying observable sequence. + + + The type of the elements in the sequence. + This type parameter is covariant. That is, you can use either the type you specified or any type that is more derived. For more information about covariance and contravariance, see Covariance and Contravariance in Generics. + + + + + Connects the observable wrapper to its source. All subscribed observers will receive values from the underlying observable sequence as long as the connection is established. + + Disposable used to disconnect the observable wrapper from its source, causing subscribed observer to stop receiving values from the underlying observable sequence. + + + + Represents an object that is both an observable sequence as well as an observer. + + The type of the elements processed by the subject. + + + + Represents an object that is both an observable sequence as well as an observer. + + + The type of the elements received by the subject. + This type parameter is contravariant. That is, you can use either the type you specified or any type that is less derived. For more information about covariance and contravariance, see Covariance and Contravariance in Generics. + + + The type of the elements produced by the subject. + This type parameter is covariant. That is, you can use either the type you specified or any type that is more derived. For more information about covariance and contravariance, see Covariance and Contravariance in Generics. + + + + + Represents an object that is both an observable sequence as well as an observer. + Each notification is broadcasted to all subscribed and future observers, subject to buffer trimming policies. + + The type of the elements processed by the subject. + + + + Underlying optimized implementation of the replay subject. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified scheduler. + + Scheduler the observers are invoked on. + is null. + + + + Initializes a new instance of the class with the specified buffer size. + + Maximum element count of the replay buffer. + is less than zero. + + + + Initializes a new instance of the class with the specified buffer size and scheduler. + + Maximum element count of the replay buffer. + Scheduler the observers are invoked on. + is null. + is less than zero. + + + + Initializes a new instance of the class with the specified window. + + Maximum time length of the replay buffer. + is less than . + + + + Initializes a new instance of the class with the specified window and scheduler. + + Maximum time length of the replay buffer. + Scheduler the observers are invoked on. + is null. + is less than . + + + + Initializes a new instance of the class with the specified buffer size and window. + + Maximum element count of the replay buffer. + Maximum time length of the replay buffer. + is less than zero. -or- is less than . + + + + Initializes a new instance of the class with the specified buffer size, window and scheduler. + + Maximum element count of the replay buffer. + Maximum time length of the replay buffer. + Scheduler the observers are invoked on. + is less than zero. -or- is less than . + is null. + + + + Indicates whether the subject has observers subscribed to it. + + + + + Indicates whether the subject has been disposed. + + + + + Notifies all subscribed and future observers about the arrival of the specified element in the sequence. + + The value to send to all observers. + + + + Notifies all subscribed and future observers about the specified exception. + + The exception to send to all observers. + is null. + + + + Notifies all subscribed and future observers about the end of the sequence. + + + + + Subscribes an observer to the subject. + + Observer to subscribe to the subject. + Disposable object that can be used to unsubscribe the observer from the subject. + is null. + + + + Releases all resources used by the current instance of the class and unsubscribe all observers. + + + + + Original implementation of the ReplaySubject with time based operations (Scheduling, Stopwatch, buffer-by-time). + + + + + Specialized scheduled observer similar to a scheduled observer for the immediate scheduler. + + Type of the elements processed by the observer. + + + + Gate to control ownership transfer and protect data structures. + + + + + Observer to forward notifications to. + + + + + Queue to enqueue OnNext notifications into. + + + + + Standby queue to swap out for _queue when transferring ownership. This allows to reuse + queues in case of busy subjects where the initial replay doesn't suffice to catch up. + + + + + Exception passed to an OnError notification, if any. + + + + + Indicates whether an OnCompleted notification was received. + + + + + Indicates whether the observer is busy, i.e. some thread is actively draining the + notifications that were queued up. + + + + + Indicates whether a failure occurred when the owner was draining the queue. This will + prevent future work to be processed. + + + + + Creates a new scheduled observer that proxies to the specified observer. + + Observer to forward notifications to. + + + + Disposes the observer. + + + + + Notifies the observer of pending work. This will either cause the current owner to + process the newly enqueued notifications, or it will cause the calling thread to + become the owner and start processing the notification queue. + + + + + Notifies the observer of pending work. This will either cause the current owner to + process the newly enqueued notifications, or it will cause the calling thread to + become the owner and start processing the notification queue. + + The number of enqueued notifications to process (ignored). + + + + Enqueues an OnCompleted notification. + + + + + Enqueues an OnError notification. + + Error of the notification. + + + + Enqueues an OnNext notification. + + Value of the notification. + + + + Terminates the observer upon receiving terminal notifications, thus preventing + future notifications to go out. + + Observer to send terminal notifications to. + + + + Represents an object that is both an observable sequence as well as an observer. + Each notification is broadcasted to all subscribed observers. + + The type of the elements processed by the subject. + + + + Creates a subject. + + + + + Indicates whether the subject has observers subscribed to it. + + + + + Indicates whether the subject has been disposed. + + + + + Notifies all subscribed observers about the end of the sequence. + + + + + Notifies all subscribed observers about the specified exception. + + The exception to send to all currently subscribed observers. + is null. + + + + Notifies all subscribed observers about the arrival of the specified element in the sequence. + + The value to send to all currently subscribed observers. + + + + Subscribes an observer to the subject. + + Observer to subscribe to the subject. + Disposable object that can be used to unsubscribe the observer from the subject. + is null. + + + + Releases all resources used by the current instance of the class and unsubscribes all observers. + + + + + Provides a set of static methods for creating subjects. + + + + + Creates a subject from the specified observer and observable. + + The type of the elements received by the observer. + The type of the elements produced by the observable sequence. + The observer used to send messages to the subject. + The observable used to subscribe to messages sent from the subject. + Subject implemented using the given observer and observable. + or is null. + + + + Creates a subject from the specified observer and observable. + + The type of the elements received by the observer and produced by the observable sequence. + The observer used to send messages to the subject. + The observable used to subscribe to messages sent from the subject. + Subject implemented using the given observer and observable. + or is null. + + + + Synchronizes the messages sent to the subject. + + The type of the elements received by the subject. + The type of the elements produced by the subject. + The subject to synchronize. + Subject whose messages are synchronized. + is null. + + + + Synchronizes the messages sent to the subject. + + The type of the elements received and produced by the subject. + The subject to synchronize. + Subject whose messages are synchronized. + is null. + + + + Synchronizes the messages sent to the subject and notifies observers on the specified scheduler. + + The type of the elements received by the subject. + The type of the elements produced by the subject. + The subject to synchronize. + Scheduler to notify observers on. + Subject whose messages are synchronized and whose observers are notified on the given scheduler. + or is null. + + + + Synchronizes the messages sent to the subject and notifies observers on the specified scheduler. + + The type of the elements received and produced by the subject. + The subject to synchronize. + Scheduler to notify observers on. + Subject whose messages are synchronized and whose observers are notified on the given scheduler. + or is null. + + + + Base class for objects that are both an observable sequence as well as an observer. + + The type of the elements processed by the subject. + + + + Indicates whether the subject has observers subscribed to it. + + + + + Indicates whether the subject has been disposed. + + + + + Releases all resources used by the current instance of the subject and unsubscribes all observers. + + + + + Notifies all subscribed observers about the end of the sequence. + + + + + Notifies all subscribed observers about the specified exception. + + The exception to send to all currently subscribed observers. + is null. + + + + Notifies all subscribed observers about the arrival of the specified element in the sequence. + + The value to send to all currently subscribed observers. + + + + Subscribes an observer to the subject. + + Observer to subscribe to the subject. + Disposable object that can be used to unsubscribe the observer from the subject. + is null. + + + + Indicates the type of a notification. + + + + + Represents an OnNext notification. + + + + + Represents an OnError notification. + + + + + Represents an OnCompleted notification. + + + + + Represents a notification to an observer. + + The type of the elements received by the observer. + + + + Default constructor used by derived types. + + + + + Returns the value of an OnNext notification or throws an exception. + + + + + Returns a value that indicates whether the notification has a value. + + + + + Returns the exception of an OnError notification or returns null. + + + + + Gets the kind of notification that is represented. + + + + + Represents an OnNext notification to an observer. + + + + + Constructs a notification of a new value. + + + + + Returns the value of an OnNext notification. + + + + + Returns null. + + + + + Returns true. + + + + + Returns . + + + + + Returns the hash code for this instance. + + + + + Indicates whether this instance and a specified object are equal. + + + + + Returns a string representation of this instance. + + + + + Invokes the observer's method corresponding to the notification. + + Observer to invoke the notification on. + + + + Invokes the observer's method corresponding to the notification and returns the produced result. + + Observer to invoke the notification on. + Result produced by the observation. + + + + Invokes the delegate corresponding to the notification. + + Delegate to invoke for an OnNext notification. + Delegate to invoke for an OnError notification. + Delegate to invoke for an OnCompleted notification. + + + + Invokes the delegate corresponding to the notification and returns the produced result. + + Delegate to invoke for an OnNext notification. + Delegate to invoke for an OnError notification. + Delegate to invoke for an OnCompleted notification. + Result produced by the observation. + + + + Represents an OnError notification to an observer. + + + + + Constructs a notification of an exception. + + + + + Throws the exception. + + + + + Returns the exception. + + + + + Returns false. + + + + + Returns . + + + + + Returns the hash code for this instance. + + + + + Indicates whether this instance and other are equal. + + + + + Returns a string representation of this instance. + + + + + Invokes the observer's method corresponding to the notification. + + Observer to invoke the notification on. + + + + Invokes the observer's method corresponding to the notification and returns the produced result. + + Observer to invoke the notification on. + Result produced by the observation. + + + + Invokes the delegate corresponding to the notification. + + Delegate to invoke for an OnNext notification. + Delegate to invoke for an OnError notification. + Delegate to invoke for an OnCompleted notification. + + + + Invokes the delegate corresponding to the notification and returns the produced result. + + Delegate to invoke for an OnNext notification. + Delegate to invoke for an OnError notification. + Delegate to invoke for an OnCompleted notification. + Result produced by the observation. + + + + Represents an OnCompleted notification to an observer. + + + + + Complete notifications are stateless thus only one instance + can ever exist per type. + + + + + Constructs a notification of the end of a sequence. + + + + + Throws an . + + + + + Returns null. + + + + + Returns false. + + + + + Returns . + + + + + Returns the hash code for this instance. + + + + + Indicates whether this instance and other are equal. + + + + + Returns a string representation of this instance. + + + + + Invokes the observer's method corresponding to the notification. + + Observer to invoke the notification on. + + + + Invokes the observer's method corresponding to the notification and returns the produced result. + + Observer to invoke the notification on. + Result produced by the observation. + + + + Invokes the delegate corresponding to the notification. + + Delegate to invoke for an OnNext notification. + Delegate to invoke for an OnError notification. + Delegate to invoke for an OnCompleted notification. + + + + Invokes the delegate corresponding to the notification and returns the produced result. + + Delegate to invoke for an OnNext notification. + Delegate to invoke for an OnError notification. + Delegate to invoke for an OnCompleted notification. + Result produced by the observation. + + + + Determines whether the current object has the same observer message payload as a specified value. + + An object to compare to the current object. + true if both objects have the same observer message payload; otherwise, false. + + Equality of objects is based on the equality of the observer message payload they represent, including the notification Kind and the Value or Exception (if any). + This means two objects can be equal even though they don't represent the same observer method call, but have the same Kind and have equal parameters passed to the observer method. + In case one wants to determine whether two objects represent the same observer method call, use Object.ReferenceEquals identity equality instead. + + + + + Determines whether the two specified objects have the same observer message payload. + + The first to compare, or null. + The second to compare, or null. + true if the first value has the same observer message payload as the second value; otherwise, false. + + Equality of objects is based on the equality of the observer message payload they represent, including the notification Kind and the Value or Exception (if any). + This means two objects can be equal even though they don't represent the same observer method call, but have the same Kind and have equal parameters passed to the observer method. + In case one wants to determine whether two objects represent the same observer method call, use Object.ReferenceEquals identity equality instead. + + + + + Determines whether the two specified objects have a different observer message payload. + + The first to compare, or null. + The second to compare, or null. + true if the first value has a different observer message payload as the second value; otherwise, false. + + Equality of objects is based on the equality of the observer message payload they represent, including the notification Kind and the Value or Exception (if any). + This means two objects can be equal even though they don't represent the same observer method call, but have the same Kind and have equal parameters passed to the observer method. + In case one wants to determine whether two objects represent a different observer method call, use Object.ReferenceEquals identity equality instead. + + + + + Determines whether the specified System.Object is equal to the current . + + The System.Object to compare with the current . + true if the specified System.Object is equal to the current ; otherwise, false. + + Equality of objects is based on the equality of the observer message payload they represent, including the notification Kind and the Value or Exception (if any). + This means two objects can be equal even though they don't represent the same observer method call, but have the same Kind and have equal parameters passed to the observer method. + In case one wants to determine whether two objects represent the same observer method call, use Object.ReferenceEquals identity equality instead. + + + + + Invokes the observer's method corresponding to the notification. + + Observer to invoke the notification on. + + + + Invokes the observer's method corresponding to the notification and returns the produced result. + + The type of the result returned from the observer's notification handlers. + Observer to invoke the notification on. + Result produced by the observation. + + + + Invokes the delegate corresponding to the notification. + + Delegate to invoke for an OnNext notification. + Delegate to invoke for an OnError notification. + Delegate to invoke for an OnCompleted notification. + + + + Invokes the delegate corresponding to the notification and returns the produced result. + + The type of the result returned from the notification handler delegates. + Delegate to invoke for an OnNext notification. + Delegate to invoke for an OnError notification. + Delegate to invoke for an OnCompleted notification. + Result produced by the observation. + + + + Returns an observable sequence with a single notification, using the immediate scheduler. + + The observable sequence that surfaces the behavior of the notification upon subscription. + + + + Returns an observable sequence with a single notification. + + Scheduler to send out the notification calls on. + The observable sequence that surfaces the behavior of the notification upon subscription. + + + + Provides a set of static methods for constructing notifications. + + + + + Creates an object that represents an OnNext notification to an observer. + + The type of the elements received by the observer. Upon dematerialization of the notifications into an observable sequence, this type is used as the element type for the sequence. + The value contained in the notification. + The OnNext notification containing the value. + + + + Creates an object that represents an OnError notification to an observer. + + The type of the elements received by the observer. Upon dematerialization of the notifications into an observable sequence, this type is used as the element type for the sequence. + The exception contained in the notification. + The OnError notification containing the exception. + is null. + + + + Creates an object that represents an OnCompleted notification to an observer. + + The type of the elements received by the observer. Upon dematerialization of the notifications into an observable sequence, this type is used as the element type for the sequence. + The OnCompleted notification. + + + + Abstract base class for implementations of the interface. + + + If you don't need a named type to create an observable sequence (i.e. you rather need + an instance rather than a reusable type), use the Observable.Create method to create + an observable sequence with specified subscription behavior. + + The type of the elements in the sequence. + + + + Subscribes the given observer to the observable sequence. + + Observer that will receive notifications from the observable sequence. + Disposable object representing an observer's subscription to the observable sequence. + is null. + + + + Implement this method with the core subscription logic for the observable sequence. + + Observer to send notifications to. + Disposable object representing an observer's subscription to the observable sequence. + + + + Provides a set of static methods for creating observers. + + + + + Creates an observer from a notification callback. + + The type of the elements received by the observer. + Action that handles a notification. + The observer object that invokes the specified handler using a notification corresponding to each message it receives. + is null. + + + + Creates a notification callback from an observer. + + The type of the elements received by the observer. + Observer object. + The action that forwards its input notification to the underlying observer. + is null. + + + + Creates an observer from the specified OnNext action. + + The type of the elements received by the observer. + Observer's OnNext action implementation. + The observer object implemented using the given actions. + is null. + + + + Creates an observer from the specified OnNext and OnError actions. + + The type of the elements received by the observer. + Observer's OnNext action implementation. + Observer's OnError action implementation. + The observer object implemented using the given actions. + or is null. + + + + Creates an observer from the specified OnNext and OnCompleted actions. + + The type of the elements received by the observer. + Observer's OnNext action implementation. + Observer's OnCompleted action implementation. + The observer object implemented using the given actions. + or is null. + + + + Creates an observer from the specified OnNext, OnError, and OnCompleted actions. + + The type of the elements received by the observer. + Observer's OnNext action implementation. + Observer's OnError action implementation. + Observer's OnCompleted action implementation. + The observer object implemented using the given actions. + or or is null. + + + + Hides the identity of an observer. + + The type of the elements received by the source observer. + An observer whose identity to hide. + An observer that hides the identity of the specified observer. + is null. + + + + Checks access to the observer for grammar violations. This includes checking for multiple OnError or OnCompleted calls, as well as reentrancy in any of the observer methods. + If a violation is detected, an InvalidOperationException is thrown from the offending observer method call. + + The type of the elements received by the source observer. + The observer whose callback invocations should be checked for grammar violations. + An observer that checks callbacks invocations against the observer grammar and, if the checks pass, forwards those to the specified observer. + is null. + + + + Synchronizes access to the observer such that its callback methods cannot be called concurrently from multiple threads. This overload is useful when coordinating access to an observer. + Notice reentrant observer callbacks on the same thread are still possible. + + The type of the elements received by the source observer. + The observer whose callbacks should be synchronized. + An observer that delivers callbacks to the specified observer in a synchronized manner. + is null. + + Because a Monitor is used to perform the synchronization, there's no protection against reentrancy from the same thread. + Hence, overlapped observer callbacks are still possible, which is invalid behavior according to the observer grammar. In order to protect against this behavior as + well, use the overload, passing true for the second parameter. + + + + + Synchronizes access to the observer such that its callback methods cannot be called concurrently. This overload is useful when coordinating access to an observer. + The parameter configures the type of lock used for synchronization. + + The type of the elements received by the source observer. + The observer whose callbacks should be synchronized. + If set to true, reentrant observer callbacks will be queued up and get delivered to the observer in a sequential manner. + An observer that delivers callbacks to the specified observer in a synchronized manner. + is null. + + When the parameter is set to false, behavior is identical to the overload which uses + a Monitor for synchronization. When the parameter is set to true, an + is used to queue up callbacks to the specified observer if a reentrant call is made. + + + + + Synchronizes access to the observer such that its callback methods cannot be called concurrently by multiple threads, using the specified gate object for use by a Monitor-based lock. + This overload is useful when coordinating multiple observers that access shared state by synchronizing on a common gate object. + Notice reentrant observer callbacks on the same thread are still possible. + + The type of the elements received by the source observer. + The observer whose callbacks should be synchronized. + Gate object to synchronize each observer call on. + An observer that delivers callbacks to the specified observer in a synchronized manner. + or is null. + + Because a Monitor is used to perform the synchronization, there's no protection against reentrancy from the same thread. + Hence, overlapped observer callbacks are still possible, which is invalid behavior according to the observer grammar. In order to protect against this behavior as + well, use the overload. + + + + + Synchronizes access to the observer such that its callback methods cannot be called concurrently, using the specified asynchronous lock to protect against concurrent and reentrant access. + This overload is useful when coordinating multiple observers that access shared state by synchronizing on a common asynchronous lock. + + The type of the elements received by the source observer. + The observer whose callbacks should be synchronized. + Gate object to synchronize each observer call on. + An observer that delivers callbacks to the specified observer in a synchronized manner. + or is null. + + + + Schedules the invocation of observer methods on the given scheduler. + + The type of the elements received by the source observer. + The observer to schedule messages for. + Scheduler to schedule observer messages on. + Observer whose messages are scheduled on the given scheduler. + or is null. + + + + Schedules the invocation of observer methods on the given synchronization context. + + The type of the elements received by the source observer. + The observer to schedule messages for. + Synchronization context to schedule observer messages on. + Observer whose messages are scheduled on the given synchronization context. + or is null. + + + + Converts an observer to a progress object. + + The type of the progress objects received by the source observer. + The observer to convert. + Progress object whose Report messages correspond to the observer's OnNext messages. + is null. + + + + Converts an observer to a progress object, using the specified scheduler to invoke the progress reporting method. + + The type of the progress objects received by the source observer. + The observer to convert. + Scheduler to report progress on. + Progress object whose Report messages correspond to the observer's OnNext messages. + or is null. + + + + Converts a progress object to an observer. + + The type of the progress objects received by the progress reporter. + The progress object to convert. + Observer whose OnNext messages correspond to the progress object's Report messages. + is null. + + + + Abstract base class for implementations of the interface. + + This base class enforces the grammar of observers where and are terminal messages. + The type of the elements in the sequence. + + + + Creates a new observer in a non-stopped state. + + + + + Notifies the observer of a new element in the sequence. + + Next element in the sequence. + + + + Implement this method to react to the receival of a new element in the sequence. + + Next element in the sequence. + This method only gets called when the observer hasn't stopped yet. + + + + Notifies the observer that an exception has occurred. + + The error that has occurred. + is null. + + + + Implement this method to react to the occurrence of an exception. + + The error that has occurred. + This method only gets called when the observer hasn't stopped yet, and causes the observer to stop. + + + + Notifies the observer of the end of the sequence. + + + + + Implement this method to react to the end of the sequence. + + This method only gets called when the observer hasn't stopped yet, and causes the observer to stop. + + + + Disposes the observer, causing it to transition to the stopped state. + + + + + Core implementation of . + + true if the Dispose call was triggered by the method; false if it was triggered by the finalizer. + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to Using the Scheduler.{0} property is no longer supported due to refactoring of the API surface and elimination of platform-specific dependencies. Please include System.Reactive.PlatformServices for your target platform and use the {0}Scheduler type instead. If you're building a Windows Store app, notice some schedulers are no longer supported. Consider using Scheduler.Default instead.. + + + + + Looks up a localized string similar to OnCompleted notification doesn't have a value.. + + + + + Looks up a localized string similar to Disposable has already been assigned.. + + + + + Looks up a localized string similar to Disposables collection can not contain null values.. + + + + + Looks up a localized string similar to Failed to start monitoring system clock changes.. + + + + + Looks up a localized string similar to Heap is empty.. + + + + + Looks up a localized string similar to Observer has already terminated.. + + + + + Looks up a localized string similar to Reentrancy has been detected.. + + + + + Looks up a localized string similar to This scheduler operation has already been awaited.. + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to {0} cannot be called when the scheduler is already running. Try using Sleep instead.. + + + + + Looks up a localized string similar to Could not find event '{0}' on object of type '{1}'.. + + + + + Looks up a localized string similar to Could not find event '{0}' on type '{1}'.. + + + + + Looks up a localized string similar to Add method should take 1 parameter.. + + + + + Looks up a localized string similar to The second parameter of the event delegate must be assignable to '{0}'.. + + + + + Looks up a localized string similar to Event is missing the add method.. + + + + + Looks up a localized string similar to Event is missing the remove method.. + + + + + Looks up a localized string similar to The event delegate must have a void return type.. + + + + + Looks up a localized string similar to The event delegate must have exactly two parameters.. + + + + + Looks up a localized string similar to Remove method should take 1 parameter.. + + + + + Looks up a localized string similar to The first parameter of the event delegate must be assignable to '{0}'.. + + + + + Looks up a localized string similar to Remove method of a WinRT event should take an EventRegistrationToken.. + + + + + Looks up a localized string similar to Sequence contains more than one element.. + + + + + Looks up a localized string similar to Sequence contains more than one matching element.. + + + + + Looks up a localized string similar to Sequence contains no elements.. + + + + + Looks up a localized string similar to Sequence contains no matching element.. + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to The WinRT thread pool doesn't support creating periodic timers with a period below 1 millisecond.. + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to Expected Qbservable.ToQueryable.. + + + + + Looks up a localized string similar to Invalid expression tree type.. + + + + + Looks up a localized string similar to There is no method '{0}' on type '{1}' that matches the specified arguments.. + + + + + Extension of the interface compatible with async method return types. + + + This class implements a "task-like" type that can be used as the return type of an asynchronous + method in C# 7.0 and beyond. For example: + + async ITaskObservable<int> RxAsync() + { + var res = await Observable.Return(21).Delay(TimeSpan.FromSeconds(1)); + return res * 2; + } + + + The type of the elements in the sequence. + + + + Gets an awaiter that can be used to await the eventual completion of the observable sequence. + + An awaiter that can be used to await the eventual completion of the observable sequence. + + + + Interface representing an awaiter for an . + + The type of the elements in the sequence. + + + + Gets a Boolean indicating whether the observable sequence has completed. + + + + + Gets the result produced by the observable sequence. + + The result produced by the observable sequence. + + + + The System.Reactive.Threading.Tasks namespace contains helpers for the conversion between tasks and observable sequences. + + + + + Provides a set of static methods for converting tasks to observable sequences. + + + + + Returns an observable sequence that signals when the task completes. + + Task to convert to an observable sequence. + An observable sequence that produces a unit value when the task completes, or propagates the exception produced by the task. + is null. + If the specified task object supports cancellation, consider using instead. + + + + Returns an observable sequence that signals when the task completes. + + Task to convert to an observable sequence. + Scheduler on which to notify observers about completion, cancellation or failure. + An observable sequence that produces a unit value when the task completes, or propagates the exception produced by the task. + is null or is null. + If the specified task object supports cancellation, consider using instead. + + + + Returns an observable sequence that propagates the result of the task. + + The type of the result produced by the task. + Task to convert to an observable sequence. + An observable sequence that produces the task's result, or propagates the exception produced by the task. + is null. + If the specified task object supports cancellation, consider using instead. + + + + Returns an observable sequence that propagates the result of the task. + + The type of the result produced by the task. + Task to convert to an observable sequence. + Scheduler on which to notify observers about completion, cancellation or failure. + An observable sequence that produces the task's result, or propagates the exception produced by the task. + is null or is null. + If the specified task object supports cancellation, consider using instead. + + + + Returns a task that will receive the last value or the exception produced by the observable sequence. + + The type of the elements in the source sequence. + Observable sequence to convert to a task. + A task that will receive the last element or the exception produced by the observable sequence. + is null. + + + + Returns a task that will receive the last value or the exception produced by the observable sequence. + + The type of the elements in the source sequence. + Observable sequence to convert to a task. + The scheduler used for overriding where the task completion signals will be issued. + A task that will receive the last element or the exception produced by the observable sequence. + or is null. + + + + Returns a task that will receive the last value or the exception produced by the observable sequence. + + The type of the elements in the source sequence. + Observable sequence to convert to a task. + The state to use as the underlying task's AsyncState. + A task that will receive the last element or the exception produced by the observable sequence. + is null. + + + + Returns a task that will receive the last value or the exception produced by the observable sequence. + + The type of the elements in the source sequence. + Observable sequence to convert to a task. + The state to use as the underlying task's AsyncState. + The scheduler used for overriding where the task completion signals will be issued. + A task that will receive the last element or the exception produced by the observable sequence. + or is null. + + + + Returns a task that will receive the last value or the exception produced by the observable sequence. + + The type of the elements in the source sequence. + Observable sequence to convert to a task. + Cancellation token that can be used to cancel the task, causing unsubscription from the observable sequence. + A task that will receive the last element or the exception produced by the observable sequence. + is null. + + + + Returns a task that will receive the last value or the exception produced by the observable sequence. + + The type of the elements in the source sequence. + Observable sequence to convert to a task. + Cancellation token that can be used to cancel the task, causing unsubscription from the observable sequence. + The scheduler used for overriding where the task completion signals will be issued. + A task that will receive the last element or the exception produced by the observable sequence. + or is null. + + + + Returns a task that will receive the last value or the exception produced by the observable sequence. + + The type of the elements in the source sequence. + Observable sequence to convert to a task. + Cancellation token that can be used to cancel the task, causing unsubscription from the observable sequence. + The state to use as the underlying task's . + A task that will receive the last element or the exception produced by the observable sequence. + is null. + + + + Returns a task that will receive the last value or the exception produced by the observable sequence. + + The type of the elements in the source sequence. + Observable sequence to convert to a task. + Cancellation token that can be used to cancel the task, causing unsubscription from the observable sequence. + The state to use as the underlying task's . + The scheduler used for overriding where the task completion signals will be issued. + A task that will receive the last element or the exception produced by the observable sequence. + or is null. + + + + Represents a value associated with time interval information. + The time interval can represent the time it took to produce the value, the interval relative to a previous value, the value's delivery time relative to a base, etc. + + The type of the value being annotated with time interval information. + + + + Constructs a time interval value. + + The value to be annotated with a time interval. + Time interval associated with the value. + + + + Gets the value. + + + + + Gets the interval. + + + + + Deconstructs the time interval value into a value and a time interval. + + The value. + Time interval associated with the value. + + + + Determines whether the current value has the same and as a specified value. + + An object to compare to the current value. + true if both values have the same and ; otherwise, false. + + + + Determines whether the two specified values have the same and . + + The first value to compare. + The second value to compare. + true if the first value has the same and as the second value; otherwise, false. + + + + Determines whether the two specified values don't have the same and . + + The first value to compare. + The second value to compare. + true if the first value has a different or as the second value; otherwise, false. + + + + Determines whether the specified System.Object is equal to the current . + + The System.Object to compare with the current . + true if the specified System.Object is equal to the current ; otherwise, false. + + + + Returns the hash code for the current value. + + A hash code for the current value. + + + + Returns a string representation of the current value. + + String representation of the current value. + + + + Represents value with a timestamp on it. + The timestamp typically represents the time the value was received, using an IScheduler's clock to obtain the current time. + + The type of the value being timestamped. + + + + Constructs a timestamped value. + + The value to be annotated with a timestamp. + Timestamp associated with the value. + + + + Gets the value. + + + + + Gets the timestamp. + + + + + Deconstructs the timestamped value into a value and a timestamp. + + The value. + Timestamp associated with the value. + + + + Determines whether the current value has the same and as a specified value. + + An object to compare to the current value. + true if both values have the same and ; otherwise, false. + + + + Determines whether the two specified values have the same and . + + The first value to compare. + The second value to compare. + true if the first value has the same and as the second value; otherwise, false. + + + + Determines whether the two specified values don't have the same and . + + The first value to compare. + The second value to compare. + true if the first value has a different or as the second value; otherwise, false. + + + + Determines whether the specified System.Object is equal to the current . + + The System.Object to compare with the current . + true if the specified System.Object is equal to the current ; otherwise, false. + + + + Returns the hash code for the current value. + + A hash code for the current value. + + + + Returns a string representation of the current value. + + String representation of the current value. + + + + A helper class with a factory method for creating instances. + + + + + Creates an instance of a . This is syntactic sugar that uses type inference + to avoid specifying a type in a constructor call, which is very useful when using anonymous types. + + The value to be annotated with a timestamp. + Timestamp associated with the value. + Creates a new timestamped value. + + + + Represents a type with a single value. This type is often used to denote the successful completion of a void-returning method (C#) or a Sub procedure (Visual Basic). + + + + + Determines whether the specified value is equal to the current . Because has a single value, this always returns true. + + An object to compare to the current value. + Because has a single value, this always returns true. + + + + Determines whether the specified System.Object is equal to the current . + + The System.Object to compare with the current . + true if the specified System.Object is a value; otherwise, false. + + + + Returns the hash code for the current value. + + A hash code for the current value. + + + + Returns a string representation of the current value. + + String representation of the current value. + + + + Determines whether the two specified values are equal. Because has a single value, this always returns true. + + The first value to compare. + The second value to compare. + Because has a single value, this always returns true. + + + + Determines whether the two specified values are not equal. Because has a single value, this always returns false. + + The first value to compare. + The second value to compare. + Because has a single value, this always returns false. + + + + Gets the single value. + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to The current thread has no Dispatcher associated with it.. + + + + + Looks up a localized string similar to No current Window object found to obtain a CoreDispatcher from.. + + + + Specifies that null is allowed as an input even if the corresponding type disallows it. + + + Specifies that null is disallowed as an input even if the corresponding type allows it. + + + Specifies that an output may be null even if the corresponding type disallows it. + + + Specifies that an output will not be null even if the corresponding type allows it. Specifies that an input argument was not null when the call returns. + + + Specifies that when a method returns , the parameter may be null even if the corresponding type disallows it. + + + Initializes the attribute with the specified return value condition. + + The return value condition. If the method returns this value, the associated parameter may be null. + + + + Gets the return value condition. + + + Specifies that when a method returns , the parameter will not be null even if the corresponding type allows it. + + + Initializes the attribute with the specified return value condition. + + The return value condition. If the method returns this value, the associated parameter will not be null. + + + + Gets the return value condition. + + + Specifies that the output will be non-null if the named parameter is non-null. + + + Initializes the attribute with the associated parameter name. + + The associated parameter name. The output will be non-null if the argument to the parameter specified is non-null. + + + + Gets the associated parameter name. + + + Applied to a method that will never return under any circumstance. + + + Specifies that the method will not return if the associated Boolean parameter is passed the specified value. + + + Initializes the attribute with the specified parameter value. + + The condition parameter value. Code after the method will be considered unreachable by diagnostics if the argument to + the associated parameter matches this value. + + + + Gets the condition parameter value. + + + Specifies that the method or property will ensure that the listed field and property members have not-null values. + + + Initializes the attribute with a field or property member. + + The field or property member that is promised to be not-null. + + + + Initializes the attribute with the list of field and property members. + + The list of field and property members that are promised to be not-null. + + + + Gets field or property member names. + + + Specifies that the method or property will ensure that the listed field and property members have not-null values when returning with the specified return value condition. + + + Initializes the attribute with the specified return value condition and a field or property member. + + The return value condition. If the method returns this value, the associated parameter will not be null. + + + The field or property member that is promised to be not-null. + + + + Initializes the attribute with the specified return value condition and list of field and property members. + + The return value condition. If the method returns this value, the associated parameter will not be null. + + + The list of field and property members that are promised to be not-null. + + + + Gets the return value condition. + + + Gets field or property member names. + + + + Provides a set of static methods for subscribing delegates to observables. + + + + + Subscribes to the observable sequence without specifying any handlers. + This method can be used to evaluate the observable sequence for its side-effects only. + + The type of the elements in the source sequence. + Observable sequence to subscribe to. + object used to unsubscribe from the observable sequence. + is null. + + + + Subscribes an element handler to an observable sequence. + + The type of the elements in the source sequence. + Observable sequence to subscribe to. + Action to invoke for each element in the observable sequence. + object used to unsubscribe from the observable sequence. + or is null. + + + + Subscribes an element handler and an exception handler to an observable sequence. + + The type of the elements in the source sequence. + Observable sequence to subscribe to. + Action to invoke for each element in the observable sequence. + Action to invoke upon exceptional termination of the observable sequence. + object used to unsubscribe from the observable sequence. + or or is null. + + + + Subscribes an element handler and a completion handler to an observable sequence. + + The type of the elements in the source sequence. + Observable sequence to subscribe to. + Action to invoke for each element in the observable sequence. + Action to invoke upon graceful termination of the observable sequence. + object used to unsubscribe from the observable sequence. + or or is null. + + + + Subscribes an element handler, an exception handler, and a completion handler to an observable sequence. + + The type of the elements in the source sequence. + Observable sequence to subscribe to. + Action to invoke for each element in the observable sequence. + Action to invoke upon exceptional termination of the observable sequence. + Action to invoke upon graceful termination of the observable sequence. + object used to unsubscribe from the observable sequence. + or or or is null. + + + + Subscribes an observer to an observable sequence, using a to support unsubscription. + + The type of the elements in the source sequence. + Observable sequence to subscribe to. + Observer to subscribe to the sequence. + CancellationToken that can be signaled to unsubscribe from the source sequence. + or is null. + + + + Subscribes to the observable sequence without specifying any handlers, using a to support unsubscription. + This method can be used to evaluate the observable sequence for its side-effects only. + + The type of the elements in the source sequence. + Observable sequence to subscribe to. + CancellationToken that can be signaled to unsubscribe from the source sequence. + is null. + + + + Subscribes an element handler to an observable sequence, using a to support unsubscription. + + The type of the elements in the source sequence. + Observable sequence to subscribe to. + Action to invoke for each element in the observable sequence. + CancellationToken that can be signaled to unsubscribe from the source sequence. + or is null. + + + + Subscribes an element handler and an exception handler to an observable sequence, using a to support unsubscription. + + The type of the elements in the source sequence. + Observable sequence to subscribe to. + Action to invoke for each element in the observable sequence. + Action to invoke upon exceptional termination of the observable sequence. + CancellationToken that can be signaled to unsubscribe from the source sequence. + or or is null. + + + + Subscribes an element handler and a completion handler to an observable sequence, using a to support unsubscription. + + The type of the elements in the source sequence. + Observable sequence to subscribe to. + Action to invoke for each element in the observable sequence. + Action to invoke upon graceful termination of the observable sequence. + CancellationToken that can be signaled to unsubscribe from the source sequence. + or or is null. + + + + Subscribes an element handler, an exception handler, and a completion handler to an observable sequence, using a to support unsubscription. + + The type of the elements in the source sequence. + Observable sequence to subscribe to. + Action to invoke for each element in the observable sequence. + Action to invoke upon exceptional termination of the observable sequence. + Action to invoke upon graceful termination of the observable sequence. + CancellationToken that can be signaled to unsubscribe from the source sequence. + or or or is null. + + + + Subscribes to the specified source, re-routing synchronous exceptions during invocation of the method to the observer's channel. + This method is typically used when writing query operators. + + The type of the elements in the source sequence. + Observable sequence to subscribe to. + Observer that will be passed to the observable sequence, and that will be used for exception propagation. + object used to unsubscribe from the observable sequence. + or is null. + + + + Represents a builder for asynchronous methods that return a task-like . + + The type of the elements in the sequence. + + + + The compiler-generated asynchronous state machine representing the execution flow of the asynchronous + method whose return type is a task-like . + + + + + The underlying observable sequence representing the result produced by the asynchronous method. + + + + + Creates an instance of the struct. + + A new instance of the struct. + + + + Begins running the builder with the associated state machine. + + The type of the state machine. + The state machine instance, passed by reference. + is null. + + + + Associates the builder with the specified state machine. + + The state machine instance to associate with the builder. + is null. + The state machine was previously set. + + + + Marks the observable as successfully completed. + + The result to use to complete the observable sequence. + The observable has already completed. + + + + Marks the observable as failed and binds the specified exception to the observable sequence. + + The exception to bind to the observable sequence. + is null. + The observable has already completed. + + + + Gets the observable sequence for this builder. + + + + + Schedules the state machine to proceed to the next action when the specified awaiter completes. + + The type of the awaiter. + The type of the state machine. + The awaiter. + The state machine. + + + + Schedules the state machine to proceed to the next action when the specified awaiter completes. + + The type of the awaiter. + The type of the state machine. + The awaiter. + The state machine. + + + + Rethrows an exception that was thrown from an awaiter's OnCompleted methods. + + The exception to rethrow. + + + + Implementation of the IObservable<T> interface compatible with async method return types. + + + This class implements a "task-like" type that can be used as the return type of an asynchronous + method in C# 7.0 and beyond. For example: + + async Observable<int> RxAsync() + { + var res = await Observable.Return(21).Delay(TimeSpan.FromSeconds(1)); + return res * 2; + } + + + + + + The underlying observable sequence to subscribe to in case the asynchronous method did not + finish synchronously. + + + + + The result returned by the asynchronous method in case the method finished synchronously. + + + + + The exception thrown by the asynchronous method in case the method finished synchronously. + + + + + Creates a new for an asynchronous method that has not finished yet. + + + + + Creates a new for an asynchronous method that synchronously returned + the specified value. + + The result returned by the asynchronous method. + + + + Creates a new for an asynchronous method that synchronously threw + the specified . + + The exception thrown by the asynchronous method. + + + + Marks the observable as successfully completed. + + The result to use to complete the observable sequence. + The observable has already completed. + + + + Marks the observable as failed and binds the specified exception to the observable sequence. + + The exception to bind to the observable sequence. + is null. + The observable has already completed. + + + + Subscribes the given observer to the observable sequence. + + Observer that will receive notifications from the observable sequence. + Disposable object representing an observer's subscription to the observable sequence. + is null. + + + + Gets an awaiter that can be used to await the eventual completion of the observable sequence. + + An awaiter that can be used to await the eventual completion of the observable sequence. + + + + Gets a Boolean indicating whether the observable sequence has completed. + + + + + Gets the result produced by the observable sequence. + + The result produced by the observable sequence. + + + + Attaches the specified to the observable sequence. + + The continuation to attach. + + + diff --git a/Game/Assets/Supabase/System.Reactive.5.0.0/lib/net472/System.Reactive.xml.meta b/Game/Assets/Supabase/System.Reactive.5.0.0/lib/net472/System.Reactive.xml.meta new file mode 100644 index 0000000..f27fee7 --- /dev/null +++ b/Game/Assets/Supabase/System.Reactive.5.0.0/lib/net472/System.Reactive.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 6b0978eb7e2ef4d479b87bfe6499559a +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Reactive.5.0.0/lib/net5.0-windows10.0.19041.meta b/Game/Assets/Supabase/System.Reactive.5.0.0/lib/net5.0-windows10.0.19041.meta new file mode 100644 index 0000000..f76775f --- /dev/null +++ b/Game/Assets/Supabase/System.Reactive.5.0.0/lib/net5.0-windows10.0.19041.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 4eab047e90ba18a44a294e1b0110ef6a +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Reactive.5.0.0/lib/net5.0-windows10.0.19041/System.Reactive.dll b/Game/Assets/Supabase/System.Reactive.5.0.0/lib/net5.0-windows10.0.19041/System.Reactive.dll new file mode 100644 index 0000000..aaddd02 --- /dev/null +++ b/Game/Assets/Supabase/System.Reactive.5.0.0/lib/net5.0-windows10.0.19041/System.Reactive.dll @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1932e5f9161ee479b644a2e725a72ab26aaec2c6e188ebf17733298b417d59ad +size 1502672 diff --git a/Game/Assets/Supabase/System.Reactive.5.0.0/lib/net5.0-windows10.0.19041/System.Reactive.dll.meta b/Game/Assets/Supabase/System.Reactive.5.0.0/lib/net5.0-windows10.0.19041/System.Reactive.dll.meta new file mode 100644 index 0000000..a98cd31 --- /dev/null +++ b/Game/Assets/Supabase/System.Reactive.5.0.0/lib/net5.0-windows10.0.19041/System.Reactive.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: 30199f55a9ee603488e4b7c2b6da62fd +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Reactive.5.0.0/lib/net5.0-windows10.0.19041/System.Reactive.xml b/Game/Assets/Supabase/System.Reactive.5.0.0/lib/net5.0-windows10.0.19041/System.Reactive.xml new file mode 100644 index 0000000..8d294da --- /dev/null +++ b/Game/Assets/Supabase/System.Reactive.5.0.0/lib/net5.0-windows10.0.19041/System.Reactive.xml @@ -0,0 +1,28554 @@ + + + + System.Reactive + + + + + Class to create an instance from a delegate-based implementation of the method. + + The type of the elements in the sequence. + + + + Creates an observable sequence object from the specified subscription function. + + method implementation. + is null. + + + + Calls the subscription function that was supplied to the constructor. + + Observer to send notifications to. + Disposable object representing an observer's subscription to the observable sequence. + + + + Class to create an instance from delegate-based implementations of the On* methods. + + The type of the elements in the sequence. + + + + Creates an observer from the specified , , and actions. + + Observer's action implementation. + Observer's action implementation. + Observer's action implementation. + or or is null. + + + + Creates an observer from the specified action. + + Observer's action implementation. + is null. + + + + Creates an observer from the specified and actions. + + Observer's action implementation. + Observer's action implementation. + or is null. + + + + Creates an observer from the specified and actions. + + Observer's action implementation. + Observer's action implementation. + or is null. + + + + Calls the action implementing . + + Next element in the sequence. + + + + Calls the action implementing . + + The error that has occurred. + + + + Calls the action implementing . + + + + + This class fuses logic from ObserverBase, AnonymousObserver, and SafeObserver into one class. When an observer + needs to be safeguarded, an instance of this type can be created by SafeObserver.Create when it detects its + input is an AnonymousObserver, which is commonly used by end users when using the Subscribe extension methods + that accept delegates for the On* handlers. By doing the fusion, we make the call stack depth shorter which + helps debugging and some performance. + + + + + Asynchronous lock. + + + + + Queues the action for execution. If the caller acquires the lock and becomes the owner, + the queue is processed. If the lock is already owned, the action is queued and will get + processed by the owner. + + Action to queue for execution. + is null. + + + + Queues the action for execution. If the caller acquires the lock and becomes the owner, + the queue is processed. If the lock is already owned, the action is queued and will get + processed by the owner. + + Action to queue for execution. + The state to pass to the action when it gets invoked under the lock. + is null. + In case TState is a value type, this operation will involve boxing of . + However, this is often an improvement over the allocation of a closure object and a delegate. + + + + Clears the work items in the queue and drops further work being queued. + + + + + (Infrastructure) Concurrency abstraction layer. + + + + + Gets the current CAL. If no CAL has been set yet, it will be initialized to the default. + + + + + (Infrastructure) Concurrency abstraction layer interface. + + + This type is used by the Rx infrastructure and not meant for public consumption or implementation. + No guarantees are made about forward compatibility of the type's functionality and its usage. + + + + + Queues a method for execution at the specified relative time. + + Method to execute. + State to pass to the method. + Time to execute the method on. + Disposable object that can be used to stop the timer. + + + + Queues a method for periodic execution based on the specified period. + + Method to execute; should be safe for reentrancy. + Period for running the method periodically. + Disposable object that can be used to stop the timer. + + + + Queues a method for execution. + + Method to execute. + State to pass to the method. + Disposable object that can be used to cancel the queued method. + + + + Blocking sleep operation. + + Time to sleep. + + + + Starts a new stopwatch object. + + New stopwatch object; started at the time of the request. + + + + Gets whether long-running scheduling is supported. + + + + + Starts a new long-running thread. + + Method to execute. + State to pass to the method. + + + + Represents an object that schedules units of work on the current thread. + + Singleton instance of this type exposed through this static property. + + + + Gets the singleton instance of the current thread scheduler. + + + + + Gets a value that indicates whether the caller must call a Schedule method. + + + + + Gets a value that indicates whether the caller must call a Schedule method. + + + + + Schedules an action to be executed after dueTime. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + Relative time after which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Represents an object that schedules units of work on the platform's default scheduler. + + Singleton instance of this type exposed through this static property. + + + + Gets the singleton instance of the default scheduler. + + + + + Schedules an action to be executed. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Schedules an action to be executed after dueTime, using a System.Threading.Timer object. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + Relative time after which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Schedules a periodic piece of work, using a System.Threading.Timer object. + + The type of the state passed to the scheduled action. + Initial state passed to the action upon the first iteration. + Period for running the work periodically. + Action to be executed, potentially updating the state. + The disposable object used to cancel the scheduled recurring action (best effort). + is less than . + is null. + + + + Discovers scheduler services by interface type. + + Scheduler service interface type to discover. + Object implementing the requested service, if available; null otherwise. + + + + Represents an object that schedules units of work on a designated thread. + + + + + Counter for diagnostic purposes, to name the threads. + + + + + Thread factory function. + + + + + Stopwatch for timing free of absolute time dependencies. + + + + + Thread used by the event loop to run work items on. No work should be run on any other thread. + If ExitIfEmpty is set, the thread can quit and a new thread will be created when new work is scheduled. + + + + + Gate to protect data structures, including the work queue and the ready list. + + + + + Semaphore to count requests to re-evaluate the queue, from either Schedule requests or when a timer + expires and moves on to the next item in the queue. + + + + + Queue holding work items. Protected by the gate. + + + + + Queue holding items that are ready to be run as soon as possible. Protected by the gate. + + + + + Work item that will be scheduled next. Used upon reevaluation of the queue to check whether the next + item is still the same. If not, a new timer needs to be started (see below). + + + + + Disposable that always holds the timer to dispatch the first element in the queue. + + + + + Flag indicating whether the event loop should quit. When set, the event should be signaled as well to + wake up the event loop thread, which will subsequently abandon all work. + + + + + Creates an object that schedules units of work on a designated thread. + + + + + Creates an object that schedules units of work on a designated thread, using the specified factory to control thread creation options. + + Factory function for thread creation. + is null. + + + + Indicates whether the event loop thread is allowed to quit when no work is left. If new work + is scheduled afterwards, a new event loop thread is created. This property is used by the + NewThreadScheduler which uses an event loop for its recursive invocations. + + + + + Schedules an action to be executed after dueTime. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + Relative time after which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + is null. + The scheduler has been disposed and doesn't accept new work. + + + + Schedules a periodic piece of work on the designated thread. + + The type of the state passed to the scheduled action. + Initial state passed to the action upon the first iteration. + Period for running the work periodically. + Action to be executed, potentially updating the state. + The disposable object used to cancel the scheduled recurring action (best effort). + is null. + is less than . + The scheduler has been disposed and doesn't accept new work. + + + + Starts a new stopwatch object. + + New stopwatch object; started at the time of the request. + + + + Ends the thread associated with this scheduler. All remaining work in the scheduler queue is abandoned. + + + + + Ensures there is an event loop thread running. Should be called under the gate. + + + + + Event loop scheduled on the designated event loop thread. The loop is suspended/resumed using the event + which gets set by calls to Schedule, the next item timer, or calls to Dispose. + + + + + Base class for historical schedulers, which are virtual time schedulers that use for absolute time and for relative time. + + + + + Creates a new historical scheduler with the minimum value of as the initial clock value. + + + + + Creates a new historical scheduler with the specified initial clock value. + + Initial clock value. + + + + Creates a new historical scheduler with the specified initial clock value and absolute time comparer. + + Initial value for the clock. + Comparer to determine causality of events based on absolute time. + + + + Adds a relative time value to an absolute time value. + + Absolute time value. + Relative time value to add. + The resulting absolute time sum value. + + + + Converts the absolute time value to a value. + + Absolute time value to convert. + The corresponding value. + + + + Converts the value to a relative time value. + + value to convert. + The corresponding relative time value. + + + + Provides a virtual time scheduler that uses for absolute time and for relative time. + + + + + Creates a new historical scheduler with the minimum value of as the initial clock value. + + + + + Creates a new historical scheduler with the specified initial clock value. + + Initial value for the clock. + + + + Creates a new historical scheduler with the specified initial clock value. + + Initial value for the clock. + Comparer to determine causality of events based on absolute time. + is null. + + + + Gets the next scheduled item to be executed. + + The next scheduled item. + + + + Schedules an action to be executed at . + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + Absolute time at which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Represents an object that schedules units of work to run immediately on the current thread. + + Singleton instance of this type exposed through this static property. + + + + Gets the singleton instance of the immediate scheduler. + + + + + Schedules an action to be executed. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Schedules an action to be executed after dueTime. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + Relative time after which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Represents a work item that has been scheduled. + + Absolute time representation type. + + + + Gets the absolute time at which the item is due for invocation. + + + + + Invokes the work item. + + + + + Represents an object that schedules units of work. + + + + + Gets the scheduler's notion of current time. + + + + + Schedules an action to be executed. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + + + + Schedules an action to be executed after dueTime. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + Relative time after which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + + + + Schedules an action to be executed at dueTime. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + Absolute time at which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + + + + Scheduler with support for starting long-running tasks. + This type of scheduler can be used to run loops more efficiently instead of using recursive scheduling. + + + + + Schedules a long-running piece of work. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + + Notes to implementers + The returned disposable object should not prevent the work from starting, but only set the cancellation flag passed to the specified action. + + + + + Scheduler with support for running periodic tasks. + This type of scheduler can be used to run timers more efficiently instead of using recursive scheduling. + + + + + Schedules a periodic piece of work. + + The type of the state passed to the scheduled action. + Initial state passed to the action upon the first iteration. + Period for running the work periodically. + Action to be executed, potentially updating the state. + The disposable object used to cancel the scheduled recurring action (best effort). + + + + Abstraction for a stopwatch to compute time relative to a starting point. + + + + + Gets the time elapsed since the stopwatch object was obtained. + + + + + Provider for objects. + + + + + Starts a new stopwatch object. + + New stopwatch object; started at the time of the request. + + + + Abstract base class for machine-local schedulers, using the local system clock for time-based operations. + + + + + Gets the scheduler's notion of current time. + + + + + Schedules an action to be executed. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Schedules an action to be executed after dueTime. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + Relative time after which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + + + + Schedules an action to be executed at dueTime. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + Absolute time at which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Starts a new stopwatch object. + + New stopwatch object; started at the time of the request. + + Platform-specific scheduler implementations should reimplement + to provide a more efficient implementation (if available). + + + + + Discovers scheduler services by interface type. The base class implementation returns + requested services for each scheduler interface implemented by the derived class. For + more control over service discovery, derived types can override this method. + + Scheduler service interface type to discover. + Object implementing the requested service, if available; null otherwise. + + + + Gate to protect local scheduler queues. + + + + + Gate to protect queues and to synchronize scheduling decisions and system clock + change management. + + + + + Long term work queue. Contains work that's due beyond SHORTTERM, computed at the + time of enqueueing. + + + + + Disposable resource for the long term timer that will reevaluate and dispatch the + first item in the long term queue. A serial disposable is used to make "dispose + current and assign new" logic easier. The disposable itself is never disposed. + + + + + Item at the head of the long term queue for which the current long term timer is + running. Used to detect changes in the queue and decide whether we should replace + or can continue using the current timer (because no earlier long term work was + added to the queue). + + + + + Short term work queue. Contains work that's due soon, computed at the time of + enqueueing or upon reevaluation of the long term queue causing migration of work + items. This queue is kept in order to be able to relocate short term items back + to the long term queue in case a system clock change occurs. + + + + + Set of disposable handles to all of the current short term work Schedule calls, + allowing those to be cancelled upon a system clock change. + + + + + Threshold where an item is considered to be short term work or gets moved from + long term to short term. + + + + + Maximum error ratio for timer drift. We've seen machines with 10s drift on a + daily basis, which is in the order 10E-4, so we allow for extra margin here. + This value is used to calculate early arrival for the long term queue timer + that will reevaluate work for the short term queue. + + Example: -------------------------------...---------------------*-----$ + ^ ^ + | | + early due + 0.999 1.0 + + We also make the gap between early and due at least LONGTOSHORT so we have + enough time to transition work to short term and as a courtesy to the + destination scheduler to manage its queues etc. + + + + + Minimum threshold for the long term timer to fire before the queue is reevaluated + for short term work. This value is chosen to be less than SHORTTERM in order to + ensure the timer fires and has work to transition to the short term queue. + + + + + Threshold used to determine when a short term timer has fired too early compared + to the absolute due time. This provides a last chance protection against early + completion of scheduled work, which can happen in case of time adjustment in the + operating system (cf. GetSystemTimeAdjustment). + + + + + Longest interval supported by timers in the BCL. + + + + + Creates a new local scheduler. + + + + + Enqueues absolute time scheduled work in the timer queue or the short term work list. + + State to pass to the action. + Absolute time to run the work on. The timer queue is responsible to execute the work close to the specified time, also accounting for system clock changes. + Action to run, potentially recursing into the scheduler. + Disposable object to prevent the work from running. + + + + Schedule work that's due in the short term. This leads to relative scheduling calls to the + underlying scheduler for short TimeSpan values. If the system clock changes in the meantime, + the short term work is attempted to be cancelled and reevaluated. + + Work item to schedule in the short term. The caller is responsible to determine the work is indeed short term. + + + + Callback to process the next short term work item. + + Recursive scheduler supplied by the underlying scheduler. + Disposable used to identify the work the timer was triggered for (see code for usage). + Empty disposable. Recursive work cancellation is wired through the original WorkItem. + + + + Schedule work that's due on the long term. This leads to the work being queued up for + eventual transitioning to the short term work list. + + Work item to schedule on the long term. The caller is responsible to determine the work is indeed long term. + + + + Updates the long term timer which is responsible to transition work from the head of the + long term queue to the short term work list. + + Should be called under the scheduler lock. + + + + Evaluates the long term queue, transitioning short term work to the short term list, + and adjusting the new long term processing timer accordingly. + + + + + Callback invoked when a system clock change is observed in order to adjust and reevaluate + the internal scheduling queues. + + Currently not used. + Currently not used. + + + + Represents a work item in the absolute time scheduler. + + + This type is very similar to ScheduledItem, but we need a different Invoke signature to allow customization + of the target scheduler (e.g. when called in a recursive scheduling context, see ExecuteNextShortTermWorkItem). + + + + + Represents a work item that closes over scheduler invocation state. Subtyping is + used to have a common type for the scheduler queues. + + + + + Represents an object that schedules each unit of work on a separate thread. + + + + + Creates an object that schedules each unit of work on a separate thread. + + + + + Gets an instance of this scheduler that uses the default Thread constructor. + + + + + Creates an object that schedules each unit of work on a separate thread. + + Factory function for thread creation. + is null. + + + + Schedules an action to be executed after dueTime. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + Relative time after which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Schedules a long-running task by creating a new thread. Cancellation happens through polling. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Schedules a periodic piece of work by creating a new thread that goes to sleep when work has been dispatched and wakes up again at the next periodic due time. + + The type of the state passed to the scheduled action. + Initial state passed to the action upon the first iteration. + Period for running the work periodically. + Action to be executed, potentially updating the state. + The disposable object used to cancel the scheduled recurring action (best effort). + is null. + is less than . + + + + Starts a new stopwatch object. + + New stopwatch object; started at the time of the request. + + + + Abstract base class for scheduled work items. + + Absolute time representation type. + + + + Creates a new scheduled work item to run at the specified time. + + Absolute time at which the work item has to be executed. + Comparer used to compare work items based on their scheduled time. + is null. + + + + Gets the absolute time at which the item is due for invocation. + + + + + Invokes the work item. + + + + + Implement this method to perform the work item invocation, returning a disposable object for deep cancellation. + + Disposable object used to cancel the work item and/or derived work items. + + + + Compares the work item with another work item based on absolute time values. + + Work item to compare the current work item to. + Relative ordering between this and the specified work item. + The inequality operators are overloaded to provide results consistent with the implementation. Equality operators implement traditional reference equality semantics. + + + + Determines whether one specified object is due before a second specified object. + + The first object to compare. + The second object to compare. + true if the value of left is earlier than the value of right; otherwise, false. + This operator provides results consistent with the implementation. + + + + Determines whether one specified object is due before or at the same of a second specified object. + + The first object to compare. + The second object to compare. + true if the value of left is earlier than or simultaneous with the value of right; otherwise, false. + This operator provides results consistent with the implementation. + + + + Determines whether one specified object is due after a second specified object. + + The first object to compare. + The second object to compare. + true if the value of left is later than the value of right; otherwise, false. + This operator provides results consistent with the implementation. + + + + Determines whether one specified object is due after or at the same time of a second specified object. + + The first object to compare. + The second object to compare. + true if the value of left is later than or simultaneous with the value of right; otherwise, false. + This operator provides results consistent with the implementation. + + + + Determines whether two specified objects are equal. + + The first object to compare. + The second object to compare. + true if both are equal; otherwise, false. + This operator does not provide results consistent with the IComparable implementation. Instead, it implements reference equality. + + + + Determines whether two specified objects are inequal. + + The first object to compare. + The second object to compare. + true if both are inequal; otherwise, false. + This operator does not provide results consistent with the IComparable implementation. Instead, it implements reference equality. + + + + Determines whether a object is equal to the specified object. + + The object to compare to the current object. + true if the obj parameter is a object and is equal to the current object; otherwise, false. + + + + Returns the hash code for the current object. + + A 32-bit signed integer hash code. + + + + Cancels the work item by disposing the resource returned by as soon as possible. + + + + + Gets whether the work item has received a cancellation request. + + + + + Represents a scheduled work item based on the materialization of an IScheduler.Schedule method call. + + Absolute time representation type. + Type of the state passed to the scheduled action. + + + + Creates a materialized work item. + + Recursive scheduler to invoke the scheduled action with. + State to pass to the scheduled action. + Scheduled action. + Time at which to run the scheduled action. + Comparer used to compare work items based on their scheduled time. + or or is null. + + + + Creates a materialized work item. + + Recursive scheduler to invoke the scheduled action with. + State to pass to the scheduled action. + Scheduled action. + Time at which to run the scheduled action. + or is null. + + + + Invokes the scheduled action with the supplied recursive scheduler and state. + + Cancellation resource returned by the scheduled action. + + + + Provides a set of static properties to access commonly used schedulers. + + + + + Yields execution of the current work item on the scheduler to another work item on the scheduler. + The caller should await the result of calling Yield to schedule the remainder of the current work item (known as the continuation). + + Scheduler to yield work on. + Scheduler operation object to await in order to schedule the continuation. + is null. + + + + Yields execution of the current work item on the scheduler to another work item on the scheduler. + The caller should await the result of calling Yield to schedule the remainder of the current work item (known as the continuation). + + Scheduler to yield work on. + Cancellation token to cancel the continuation to run. + Scheduler operation object to await in order to schedule the continuation. + is null. + + + + Suspends execution of the current work item on the scheduler for the specified duration. + The caller should await the result of calling Sleep to schedule the remainder of the current work item (known as the continuation) after the specified duration. + + Scheduler to yield work on. + Time when the continuation should run. + Scheduler operation object to await in order to schedule the continuation. + is null. + + + + Suspends execution of the current work item on the scheduler for the specified duration. + The caller should await the result of calling Sleep to schedule the remainder of the current work item (known as the continuation) after the specified duration. + + Scheduler to yield work on. + Time when the continuation should run. + Cancellation token to cancel the continuation to run. + Scheduler operation object to await in order to schedule the continuation. + is null. + + + + Suspends execution of the current work item on the scheduler until the specified due time. + The caller should await the result of calling Sleep to schedule the remainder of the current work item (known as the continuation) at the specified due time. + + Scheduler to yield work on. + Time when the continuation should run. + Scheduler operation object to await in order to schedule the continuation. + is null. + + + + Suspends execution of the current work item on the scheduler until the specified due time. + The caller should await the result of calling Sleep to schedule the remainder of the current work item (known as the continuation) at the specified due time. + + Scheduler to yield work on. + Time when the continuation should run. + Cancellation token to cancel the continuation to run. + Scheduler operation object to await in order to schedule the continuation. + is null. + + + + Schedules work using an asynchronous method, allowing for cooperative scheduling in an imperative coding style. + + The type of the state passed to the scheduled action. + Scheduler to schedule work on. + State to pass to the asynchronous method. + Asynchronous method to run the work, using Yield and Sleep operations for cooperative scheduling and injection of cancellation points. + Disposable object that allows to cancel outstanding work on cooperative cancellation points or through the cancellation token passed to the asynchronous method. + or is null. + + + + Schedules work using an asynchronous method, allowing for cooperative scheduling in an imperative coding style. + + The type of the state passed to the scheduled action. + Scheduler to schedule work on. + State to pass to the asynchronous method. + Asynchronous method to run the work, using Yield and Sleep operations for cooperative scheduling and injection of cancellation points. + Disposable object that allows to cancel outstanding work on cooperative cancellation points or through the cancellation token passed to the asynchronous method. + or is null. + + + + Schedules work using an asynchronous method, allowing for cooperative scheduling in an imperative coding style. + + Scheduler to schedule work on. + Asynchronous method to run the work, using Yield and Sleep operations for cooperative scheduling and injection of cancellation points. + Disposable object that allows to cancel outstanding work on cooperative cancellation points or through the cancellation token passed to the asynchronous method. + or is null. + + + + Schedules work using an asynchronous method, allowing for cooperative scheduling in an imperative coding style. + + Scheduler to schedule work on. + Asynchronous method to run the work, using Yield and Sleep operations for cooperative scheduling and injection of cancellation points. + Disposable object that allows to cancel outstanding work on cooperative cancellation points or through the cancellation token passed to the asynchronous method. + or is null. + + + + Schedules work using an asynchronous method, allowing for cooperative scheduling in an imperative coding style. + + The type of the state passed to the scheduled action. + Scheduler to schedule work on. + State to pass to the asynchronous method. + Relative time after which to execute the action. + Asynchronous method to run the work, using Yield and Sleep operations for cooperative scheduling and injection of cancellation points. + Disposable object that allows to cancel outstanding work on cooperative cancellation points or through the cancellation token passed to the asynchronous method. + or is null. + + + + Schedules work using an asynchronous method, allowing for cooperative scheduling in an imperative coding style. + + The type of the state passed to the scheduled action. + Scheduler to schedule work on. + State to pass to the asynchronous method. + Relative time after which to execute the action. + Asynchronous method to run the work, using Yield and Sleep operations for cooperative scheduling and injection of cancellation points. + Disposable object that allows to cancel outstanding work on cooperative cancellation points or through the cancellation token passed to the asynchronous method. + or is null. + + + + Schedules work using an asynchronous method, allowing for cooperative scheduling in an imperative coding style. + + Scheduler to schedule work on. + Relative time after which to execute the action. + Asynchronous method to run the work, using Yield and Sleep operations for cooperative scheduling and injection of cancellation points. + Disposable object that allows to cancel outstanding work on cooperative cancellation points or through the cancellation token passed to the asynchronous method. + or is null. + + + + Schedules work using an asynchronous method, allowing for cooperative scheduling in an imperative coding style. + + Scheduler to schedule work on. + Relative time after which to execute the action. + Asynchronous method to run the work, using Yield and Sleep operations for cooperative scheduling and injection of cancellation points. + Disposable object that allows to cancel outstanding work on cooperative cancellation points or through the cancellation token passed to the asynchronous method. + or is null. + + + + Schedules work using an asynchronous method, allowing for cooperative scheduling in an imperative coding style. + + The type of the state passed to the scheduled action. + Scheduler to schedule work on. + State to pass to the asynchronous method. + Absolute time at which to execute the action. + Asynchronous method to run the work, using Yield and Sleep operations for cooperative scheduling and injection of cancellation points. + Disposable object that allows to cancel outstanding work on cooperative cancellation points or through the cancellation token passed to the asynchronous method. + or is null. + + + + Schedules work using an asynchronous method, allowing for cooperative scheduling in an imperative coding style. + + The type of the state passed to the scheduled action. + Scheduler to schedule work on. + State to pass to the asynchronous method. + Absolute time at which to execute the action. + Asynchronous method to run the work, using Yield and Sleep operations for cooperative scheduling and injection of cancellation points. + Disposable object that allows to cancel outstanding work on cooperative cancellation points or through the cancellation token passed to the asynchronous method. + or is null. + + + + Schedules work using an asynchronous method, allowing for cooperative scheduling in an imperative coding style. + + Scheduler to schedule work on. + Absolute time at which to execute the action. + Asynchronous method to run the work, using Yield and Sleep operations for cooperative scheduling and injection of cancellation points. + Disposable object that allows to cancel outstanding work on cooperative cancellation points or through the cancellation token passed to the asynchronous method. + or is null. + + + + Schedules work using an asynchronous method, allowing for cooperative scheduling in an imperative coding style. + + Scheduler to schedule work on. + Absolute time at which to execute the action. + Asynchronous method to run the work, using Yield and Sleep operations for cooperative scheduling and injection of cancellation points. + Disposable object that allows to cancel outstanding work on cooperative cancellation points or through the cancellation token passed to the asynchronous method. + or is null. + + + + Gets the current time according to the local machine's system clock. + + + + + Normalizes the specified value to a positive value. + + The value to normalize. + The specified TimeSpan value if it is zero or positive; otherwise, . + + + + Gets a scheduler that schedules work immediately on the current thread. + + + + + Gets a scheduler that schedules work as soon as possible on the current thread. + + + + + Gets a scheduler that schedules work on the platform's default scheduler. + + + + + Gets a scheduler that schedules work on the thread pool. + + + + + Gets a scheduler that schedules work on a new thread using default thread creation options. + + + + + Gets a scheduler that schedules work on Task Parallel Library (TPL) task pool using the default TaskScheduler. + + + + + Schedules an action to be executed recursively. + + Scheduler to execute the recursive action on. + Action to execute recursively. The parameter passed to the action is used to trigger recursive scheduling of the action. + The disposable object used to cancel the scheduled action (best effort). + or is null. + + + + Schedules an action to be executed recursively. + + The type of the state passed to the scheduled action. + Scheduler to execute the recursive action on. + State passed to the action to be executed. + Action to execute recursively. The last parameter passed to the action is used to trigger recursive scheduling of the action, passing in recursive invocation state. + The disposable object used to cancel the scheduled action (best effort). + or is null. + + + + Schedules an action to be executed recursively after a specified relative due time. + + Scheduler to execute the recursive action on. + Action to execute recursively. The parameter passed to the action is used to trigger recursive scheduling of the action at the specified relative time. + Relative time after which to execute the action for the first time. + The disposable object used to cancel the scheduled action (best effort). + or is null. + + + + Schedules an action to be executed recursively after a specified relative due time. + + The type of the state passed to the scheduled action. + Scheduler to execute the recursive action on. + State passed to the action to be executed. + Action to execute recursively. The last parameter passed to the action is used to trigger recursive scheduling of the action, passing in the recursive due time and invocation state. + Relative time after which to execute the action for the first time. + The disposable object used to cancel the scheduled action (best effort). + or is null. + + + + Schedules an action to be executed recursively at a specified absolute due time. + + Scheduler to execute the recursive action on. + Action to execute recursively. The parameter passed to the action is used to trigger recursive scheduling of the action at the specified absolute time. + Absolute time at which to execute the action for the first time. + The disposable object used to cancel the scheduled action (best effort). + or is null. + + + + Schedules an action to be executed recursively at a specified absolute due time. + + The type of the state passed to the scheduled action. + Scheduler to execute the recursive action on. + State passed to the action to be executed. + Action to execute recursively. The last parameter passed to the action is used to trigger recursive scheduling of the action, passing in the recursive due time and invocation state. + Absolute time at which to execute the action for the first time. + The disposable object used to cancel the scheduled action (best effort). + or is null. + + + + Returns the implementation of the specified scheduler, or null if no such implementation is available. + + Scheduler to get the implementation for. + The scheduler's implementation if available; null otherwise. + + This helper method is made available for query operator authors in order to discover scheduler services by using the required + IServiceProvider pattern, which allows for interception or redefinition of scheduler services. + + + + + Returns the implementation of the specified scheduler, or null if no such implementation is available. + + Scheduler to get the implementation for. + The scheduler's implementation if available; null otherwise. + + + This helper method is made available for query operator authors in order to discover scheduler services by using the required + IServiceProvider pattern, which allows for interception or redefinition of scheduler services. + + + Consider using in case a stopwatch is required, but use of emulation stopwatch based + on the scheduler's clock is acceptable. Use of this method is recommended for best-effort use of the stopwatch provider + scheduler service, where the caller falls back to not using stopwatches if this facility wasn't found. + + + + + + Returns the implementation of the specified scheduler, or null if no such implementation is available. + + Scheduler to get the implementation for. + The scheduler's implementation if available; null otherwise. + + + This helper method is made available for query operator authors in order to discover scheduler services by using the required + IServiceProvider pattern, which allows for interception or redefinition of scheduler services. + + + Consider using the extension methods for in case periodic scheduling + is required and emulation of periodic behavior using other scheduler services is desirable. Use of this method is recommended + for best-effort use of the periodic scheduling service, where the caller falls back to not using periodic scheduling if this + facility wasn't found. + + + + + + Schedules a periodic piece of work by dynamically discovering the scheduler's capabilities. + If the scheduler supports periodic scheduling, the request will be forwarded to the periodic scheduling implementation. + If the scheduler provides stopwatch functionality, the periodic task will be emulated using recursive scheduling with a stopwatch to correct for time slippage. + Otherwise, the periodic task will be emulated using recursive scheduling. + + The type of the state passed to the scheduled action. + The scheduler to run periodic work on. + Initial state passed to the action upon the first iteration. + Period for running the work periodically. + Action to be executed, potentially updating the state. + The disposable object used to cancel the scheduled recurring action (best effort). + or is null. + is less than . + + + + Schedules a periodic piece of work by dynamically discovering the scheduler's capabilities. + If the scheduler supports periodic scheduling, the request will be forwarded to the periodic scheduling implementation. + If the scheduler provides stopwatch functionality, the periodic task will be emulated using recursive scheduling with a stopwatch to correct for time slippage. + Otherwise, the periodic task will be emulated using recursive scheduling. + + The type of the state passed to the scheduled action. + Scheduler to execute the action on. + State passed to the action to be executed. + Period for running the work periodically. + Action to be executed. + The disposable object used to cancel the scheduled recurring action (best effort). + or is null. + is less than . + + + + Schedules a periodic piece of work by dynamically discovering the scheduler's capabilities. + If the scheduler supports periodic scheduling, the request will be forwarded to the periodic scheduling implementation. + If the scheduler provides stopwatch functionality, the periodic task will be emulated using recursive scheduling with a stopwatch to correct for time slippage. + Otherwise, the periodic task will be emulated using recursive scheduling. + + Scheduler to execute the action on. + Period for running the work periodically. + Action to be executed. + The disposable object used to cancel the scheduled recurring action (best effort). + or is null. + is less than . + + + + Starts a new stopwatch object by dynamically discovering the scheduler's capabilities. + If the scheduler provides stopwatch functionality, the request will be forwarded to the stopwatch provider implementation. + Otherwise, the stopwatch will be emulated using the scheduler's notion of absolute time. + + Scheduler to obtain a stopwatch for. + New stopwatch object; started at the time of the request. + is null. + The resulting stopwatch object can have non-monotonic behavior. + + + + Schedules an action to be executed. + + Scheduler to execute the action on. + Action to execute. + The disposable object used to cancel the scheduled action (best effort). + or is null. + + + + Schedules an action to be executed. + + Scheduler to execute the action on. + A state object to be passed to . + Action to execute. + The disposable object used to cancel the scheduled action (best effort). + or is null. + + + + Schedules an action to be executed. + + Scheduler to execute the action on. + A state object to be passed to . + Action to execute. + The disposable object used to cancel the scheduled action (best effort). + or is null. + + + + Schedules an action to be executed after the specified relative due time. + + Scheduler to execute the action on. + Action to execute. + Relative time after which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + or is null. + + + + Schedules an action to be executed after the specified relative due time. + + Scheduler to execute the action on. + Action to execute. + A state object to be passed to . + Relative time after which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + or is null. + + + + Schedules an action to be executed after the specified relative due time. + + Scheduler to execute the action on. + Action to execute. + A state object to be passed to . + Relative time after which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + or is null. + + + + Schedules an action to be executed at the specified absolute due time. + + Scheduler to execute the action on. + Action to execute. + Absolute time at which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + or is null. + + + + Schedules an action to be executed after the specified relative due time. + + Scheduler to execute the action on. + Action to execute. + A state object to be passed to . + Relative time after which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + or is null. + + + + Schedules an action to be executed after the specified relative due time. + + Scheduler to execute the action on. + Action to execute. + A state object to be passed to . + Relative time after which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + or is null. + + + + Schedules an action to be executed. + + Scheduler to execute the action on. + Action to execute. + The disposable object used to cancel the scheduled action (best effort). + or is null. + + + + Returns a scheduler that represents the original scheduler, without any of its interface-based optimizations (e.g. long running scheduling). + + Scheduler to disable all optimizations for. + Proxy to the original scheduler but without any optimizations enabled. + is null. + + + + Returns a scheduler that represents the original scheduler, without the specified set of interface-based optimizations (e.g. long running scheduling). + + Scheduler to disable the specified optimizations for. + Types of the optimization interfaces that have to be disabled. + Proxy to the original scheduler but without the specified optimizations enabled. + or is null. + + + + Returns a scheduler that wraps the original scheduler, adding exception handling for scheduled actions. + + Type of the exception to check for. + Scheduler to apply an exception filter for. + Handler that's run if an exception is caught. The exception will be rethrown if the handler returns false. + Wrapper around the original scheduler, enforcing exception handling. + or is null. + + + + Represents an awaitable scheduler operation. Awaiting the object causes the continuation to be posted back to the originating scheduler's work queue. + + + + + Controls whether the continuation is run on the originating synchronization context (false by default). + + true to run the continuation on the captured synchronization context; false otherwise (default). + Scheduler operation object with configured await behavior. + + + + Gets an awaiter for the scheduler operation, used to post back the continuation. + + Awaiter for the scheduler operation. + + + + (Infrastructure) Scheduler operation awaiter type used by the code generated for C# await and Visual Basic Await expressions. + + + + + Indicates whether the scheduler operation has completed. Returns false unless cancellation was already requested. + + + + + Completes the scheduler operation, throwing an OperationCanceledException in case cancellation was requested. + + + + + Registers the continuation with the scheduler operation. + + Continuation to be run on the originating scheduler. + + + + Efficient scheduler queue that maintains scheduled items sorted by absolute time. + + Absolute time representation type. + This type is not thread safe; users should ensure proper synchronization. + + + + Creates a new scheduler queue with a default initial capacity. + + + + + Creates a new scheduler queue with the specified initial capacity. + + Initial capacity of the scheduler queue. + is less than zero. + + + + Gets the number of scheduled items in the scheduler queue. + + + + + Enqueues the specified work item to be scheduled. + + Work item to be scheduled. + + + + Removes the specified work item from the scheduler queue. + + Work item to be removed from the scheduler queue. + true if the item was found; false otherwise. + + + + Dequeues the next work item from the scheduler queue. + + Next work item in the scheduler queue (removed). + + + + Peeks the next work item in the scheduler queue. + + Next work item in the scheduler queue (not removed). + + + + Provides basic synchronization and scheduling services for observable sequences. + + + + + Wraps the source sequence in order to run its subscription and unsubscription logic on the specified scheduler. + + The type of the elements in the source sequence. + Source sequence. + Scheduler to perform subscription and unsubscription actions on. + The source sequence whose subscriptions and unsubscriptions happen on the specified scheduler. + or is null. + + Only the side-effects of subscribing to the source sequence and disposing subscriptions to the source sequence are run on the specified scheduler. + In order to invoke observer callbacks on the specified scheduler, e.g. to offload callback processing to a dedicated thread, use . + + + + + Wraps the source sequence in order to run its subscription and unsubscription logic on the specified synchronization context. + + The type of the elements in the source sequence. + Source sequence. + Synchronization context to perform subscription and unsubscription actions on. + The source sequence whose subscriptions and unsubscriptions happen on the specified synchronization context. + or is null. + + Only the side-effects of subscribing to the source sequence and disposing subscriptions to the source sequence are run on the specified synchronization context. + In order to invoke observer callbacks on the specified synchronization context, e.g. to post callbacks to a UI thread represented by the synchronization context, use . + + + + + Wraps the source sequence in order to run its observer callbacks on the specified scheduler. + + The type of the elements in the source sequence. + Source sequence. + Scheduler to notify observers on. + The source sequence whose observations happen on the specified scheduler. + or is null. + + + + Wraps the source sequence in order to run its observer callbacks on the specified synchronization context. + + The type of the elements in the source sequence. + Source sequence. + Synchronization context to notify observers on. + The source sequence whose observations happen on the specified synchronization context. + or is null. + + + + Wraps the source sequence in order to ensure observer callbacks are properly serialized. + + The type of the elements in the source sequence. + Source sequence. + The source sequence whose outgoing calls to observers are synchronized. + is null. + + + + Wraps the source sequence in order to ensure observer callbacks are synchronized using the specified gate object. + + The type of the elements in the source sequence. + Source sequence. + Gate object to synchronize each observer call on. + The source sequence whose outgoing calls to observers are synchronized on the given gate object. + or is null. + + + + The new ObserveOn operator run with an IScheduler in a lock-free manner. + + + + + The new ObserveOn operator run with an ISchedulerLongRunning in a mostly lock-free manner. + + + + + Represents an object that schedules units of work on a provided . + + + + + Creates an object that schedules units of work on the provided . + + Synchronization context to schedule units of work on. + is null. + + + + Creates an object that schedules units of work on the provided . + + Synchronization context to schedule units of work on. + Configures whether scheduling always posts to the synchronization context, regardless whether the caller is on the same synchronization context. + is null. + + + + Schedules an action to be executed. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Schedules an action to be executed after dueTime. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + Relative time after which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Represents an object that schedules units of work on the Task Parallel Library (TPL) task pool. + + Instance of this type using the default TaskScheduler to schedule work on the TPL task pool. + + + + Creates an object that schedules units of work using the provided . + + Task factory used to create tasks to run units of work. + is null. + + + + Gets an instance of this scheduler that uses the default . + + + + + Schedules an action to be executed. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Schedules an action to be executed after dueTime. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + Relative time after which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Schedules a long-running task by creating a new task using TaskCreationOptions.LongRunning. Cancellation happens through polling. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Gets a new stopwatch object. + + New stopwatch object; started at the time of the request. + + + + Schedules a periodic piece of work by running a platform-specific timer to create tasks periodically. + + The type of the state passed to the scheduled action. + Initial state passed to the action upon the first iteration. + Period for running the work periodically. + Action to be executed, potentially updating the state. + The disposable object used to cancel the scheduled recurring action (best effort). + is null. + is less than . + + + + Represents an object that schedules units of work on the CLR thread pool. + + Singleton instance of this type exposed through this static property. + + + + Gets the singleton instance of the CLR thread pool scheduler. + + + + + Schedules an action to be executed. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Schedules an action to be executed after dueTime, using a System.Threading.Timer object. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + Relative time after which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Schedules a long-running task by creating a new thread. Cancellation happens through polling. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Starts a new stopwatch object. + + New stopwatch object; started at the time of the request. + + + + Schedules a periodic piece of work, using a System.Threading.Timer object. + + The type of the state passed to the scheduled action. + Initial state passed to the action upon the first iteration. + Period for running the work periodically. + Action to be executed, potentially updating the state. + The disposable object used to cancel the scheduled recurring action (best effort). + is null. + is less than zero. + + + + Base class for virtual time schedulers. + + Absolute time representation type. + Relative time representation type. + + + + Creates a new virtual time scheduler with the default value of TAbsolute as the initial clock value. + + + + + Creates a new virtual time scheduler with the specified initial clock value and absolute time comparer. + + Initial value for the clock. + Comparer to determine causality of events based on absolute time. + is null. + + + + Adds a relative time value to an absolute time value. + + Absolute time value. + Relative time value to add. + The resulting absolute time sum value. + + + + Converts the absolute time value to a DateTimeOffset value. + + Absolute time value to convert. + The corresponding DateTimeOffset value. + + + + Converts the TimeSpan value to a relative time value. + + TimeSpan value to convert. + The corresponding relative time value. + + + + Gets whether the scheduler is enabled to run work. + + + + + Gets the comparer used to compare absolute time values. + + + + + Schedules an action to be executed at dueTime. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Absolute time at which to execute the action. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + + + + Schedules an action to be executed at dueTime. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Relative time after which to execute the action. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + + + + Schedules an action to be executed. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Schedules an action to be executed after dueTime. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Relative time after which to execute the action. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Schedules an action to be executed at dueTime. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Absolute time at which to execute the action. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Starts the virtual time scheduler. + + + + + Stops the virtual time scheduler. + + + + + Advances the scheduler's clock to the specified time, running all work till that point. + + Absolute time to advance the scheduler's clock to. + is in the past. + The scheduler is already running. VirtualTimeScheduler doesn't support running nested work dispatch loops. To simulate time slippage while running work on the scheduler, use . + + + + Advances the scheduler's clock by the specified relative time, running all work scheduled for that timespan. + + Relative time to advance the scheduler's clock by. + is negative. + The scheduler is already running. VirtualTimeScheduler doesn't support running nested work dispatch loops. To simulate time slippage while running work on the scheduler, use . + + + + Advances the scheduler's clock by the specified relative time. + + Relative time to advance the scheduler's clock by. + is negative. + + + + Gets the scheduler's absolute time clock value. + + + + + Gets the scheduler's notion of current time. + + + + + Gets the next scheduled item to be executed. + + The next scheduled item. + + + + Discovers scheduler services by interface type. The base class implementation supports + only the IStopwatchProvider service. To influence service discovery - such as adding + support for other scheduler services - derived types can override this method. + + Scheduler service interface type to discover. + Object implementing the requested service, if available; null otherwise. + + + + Starts a new stopwatch object. + + New stopwatch object; started at the time of the request. + + + + Base class for virtual time schedulers using a priority queue for scheduled items. + + Absolute time representation type. + Relative time representation type. + + + + Creates a new virtual time scheduler with the default value of TAbsolute as the initial clock value. + + + + + Creates a new virtual time scheduler. + + Initial value for the clock. + Comparer to determine causality of events based on absolute time. + is null. + + + + Gets the next scheduled item to be executed. + + The next scheduled item. + + + + Schedules an action to be executed at dueTime. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + Absolute time at which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Provides a set of extension methods for virtual time scheduling. + + + + + Schedules an action to be executed at . + + Absolute time representation type. + Relative time representation type. + Scheduler to execute the action on. + Relative time after which to execute the action. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + or is null. + + + + Schedules an action to be executed at . + + Absolute time representation type. + Relative time representation type. + Scheduler to execute the action on. + Absolute time at which to execute the action. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + or is null. + + + + The System.Reactive.Concurrency namespace contains interfaces and classes that provide the scheduler infrastructure used by Reactive Extensions to construct and + process event streams. Schedulers are used to parameterize the concurrency introduced by query operators, provide means to virtualize time, to process historical data, + and to write unit tests for functionality built using Reactive Extensions constructs. + + + + + Represents an object that schedules units of work on a . + + + This scheduler type is typically used indirectly through the and methods that use the current CoreDispatcher. + + + + + Constructs a that schedules units of work on the given . + + Dispatcher to schedule work on. + is null. + + + + Constructs a that schedules units of work on the given with the given priority. + + Dispatcher to schedule work on. + Priority for scheduled units of work. + is null. + + + + Gets the scheduler that schedules work on the associated with the current Window. + + + + + Gets the associated with the . + + + + + Gets the priority at which work is scheduled. + + + + + Schedules an action to be executed on the dispatcher. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Schedules an action to be executed after on the dispatcher, using a object. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + Relative time after which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Schedules a periodic piece of work on the dispatcher, using a object. + + The type of the state passed to the scheduled action. + Initial state passed to the action upon the first iteration. + Period for running the work periodically. + Action to be executed, potentially updating the state. + The disposable object used to cancel the scheduled recurring action (best effort). + is null. + is less than . + + + + Represents an object that schedules units of work on the message loop associated with a Windows Forms control. + + + + + Constructs a ControlScheduler that schedules units of work on the message loop associated with the specified Windows Forms control. + + Windows Forms control to get the message loop from. + is null. + + This scheduler type is typically used indirectly through the and method overloads that take a Windows Forms control. + + + + + Gets the control associated with the ControlScheduler. + + + + + Schedules an action to be executed on the message loop associated with the control. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Schedules an action to be executed after dueTime on the message loop associated with the control, using a Windows Forms Timer object. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + Relative time after which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Schedules a periodic piece of work on the message loop associated with the control, using a Windows Forms Timer object. + + The type of the state passed to the scheduled action. + Initial state passed to the action upon the first iteration. + Period for running the work periodically. + Action to be executed, potentially updating the state. + The disposable object used to cancel the scheduled recurring action (best effort). + is null. + is less than one millisecond. + + + + Represents an object that schedules units of work on a . + + + This scheduler type is typically used indirectly through the and methods that use the Dispatcher on the calling thread. + + + + + Gets the scheduler that schedules work on the current . + + + + + Gets the scheduler that schedules work on the for the current thread. + + + + + Constructs a that schedules units of work on the given . + + to schedule work on. + is null. + + + + Constructs a that schedules units of work on the given at the given priority. + + to schedule work on. + Priority at which units of work are scheduled. + is null. + + + + Gets the associated with the . + + + + + Gets the priority at which work items will be dispatched. + + + + + Schedules an action to be executed on the dispatcher. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Schedules an action to be executed after on the dispatcher, using a object. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + Relative time after which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Schedules a periodic piece of work on the dispatcher, using a object. + + The type of the state passed to the scheduled action. + Initial state passed to the action upon the first iteration. + Period for running the work periodically. + Action to be executed, potentially updating the state. + The disposable object used to cancel the scheduled recurring action (best effort). + is null. + is less than . + + + + Represents an Action-based disposable. + + + + + Constructs a new disposable with the given action used for disposal. + + Disposal action which will be run upon calling Dispose. + + + + Gets a value that indicates whether the object is disposed. + + + + + Calls the disposal action if and only if the current instance hasn't been disposed yet. + + + + + Represents a Action-based disposable that can hold onto some state. + + + + + Constructs a new disposable with the given action used for disposal. + + The state to be passed to the disposal action. + Disposal action which will be run upon calling Dispose. + + + + Gets a value that indicates whether the object is disposed. + + + + + Calls the disposal action if and only if the current instance hasn't been disposed yet. + + + + + Represents a disposable resource that can be checked for disposal status. + + + + + Initializes a new instance of the class. + + + + + Gets a value that indicates whether the object is disposed. + + + + + Sets the status to disposed, which can be observer through the property. + + + + + Represents a disposable resource that has an associated that will be set to the cancellation requested state upon disposal. + + + + + Initializes a new instance of the class that uses an existing . + + used for cancellation. + is null. + + + + Initializes a new instance of the class that uses a new . + + + + + Gets the used by this . + + + + + Cancels the underlying . + + + + + Gets a value that indicates whether the object is disposed. + + + + + Represents a group of disposable resources that are disposed together. + + + + + Initializes a new instance of the class with no disposables contained by it initially. + + + + + Initializes a new instance of the class with the specified number of disposables. + + The number of disposables that the new CompositeDisposable can initially store. + is less than zero. + + + + Initializes a new instance of the class from a group of disposables. + + Disposables that will be disposed together. + is null. + Any of the disposables in the collection is null. + + + + Initializes a new instance of the class from a group of disposables. + + Disposables that will be disposed together. + is null. + Any of the disposables in the collection is null. + + + + Gets the number of disposables contained in the . + + + + + Adds a disposable to the or disposes the disposable if the is disposed. + + Disposable to add. + is null. + + + + Removes and disposes the first occurrence of a disposable from the . + + Disposable to remove. + true if found; false otherwise. + is null. + + + + Disposes all disposables in the group and removes them from the group. + + + + + Removes and disposes all disposables from the , but does not dispose the . + + + + + Determines whether the contains a specific disposable. + + Disposable to search for. + true if the disposable was found; otherwise, false. + is null. + + + + Copies the disposables contained in the to an array, starting at a particular array index. + + Array to copy the contained disposables to. + Target index at which to copy the first disposable of the group. + is null. + is less than zero. -or - is larger than or equal to the array length. + + + + Always returns false. + + + + + Returns an enumerator that iterates through the . + + An enumerator to iterate over the disposables. + + + + Returns an enumerator that iterates through the . + + An enumerator to iterate over the disposables. + + + + Gets a value that indicates whether the object is disposed. + + + + + An empty enumerator for the + method to avoid allocation on disposed or empty composites. + + + + + An enumerator for an array of disposables. + + + + + Represents a disposable resource whose disposal invocation will be posted to the specified . + + + + + Initializes a new instance of the class that uses the specified on which to dispose the specified disposable resource. + + Context to perform disposal on. + Disposable whose Dispose operation to run on the given synchronization context. + or is null. + + + + Gets the provided . + + + + + Gets a value that indicates whether the object is disposed. + + + + + Disposes the underlying disposable on the provided . + + + + + Provides a set of static methods for creating objects. + + + + + Represents a disposable that does nothing on disposal. + + + + + Singleton default disposable. + + + + + Does nothing. + + + + + Gets the disposable that does nothing when disposed. + + + + + Creates a disposable object that invokes the specified action when disposed. + + Action to run during the first call to . The action is guaranteed to be run at most once. + The disposable object that runs the given action upon disposal. + is null. + + + + Creates a disposable object that invokes the specified action when disposed. + + The state to be passed to the action. + Action to run during the first call to . The action is guaranteed to be run at most once. + The disposable object that runs the given action upon disposal. + is null. + + + + Gets the value stored in or a null if + was already disposed. + + + + + Gets the value stored in or a no-op-Disposable if + was already disposed. + + + + + Tries to assign to . + + A value indicating the outcome of the operation. + + + + Tries to assign to . If + is not disposed and is assigned a different value, it will not be disposed. + + true if was successfully assigned to . + false has been disposed. + + + + Tries to assign to . If + is not disposed and is assigned a different value, it will be disposed. + + true if was successfully assigned to . + false has been disposed. + + + + Disposes . + + + + + Disposable resource with disposal state tracking. + + + + + Gets a value that indicates whether the object is disposed. + + + + + Represents a disposable resource whose underlying disposable resource can be swapped for another disposable resource. + + + + + Initializes a new instance of the class with no current underlying disposable. + + + + + Gets a value that indicates whether the object is disposed. + + + + + Gets or sets the underlying disposable. After disposal, the result of getting this property is undefined. + + If the has already been disposed, assignment to this property causes immediate disposal of the given disposable object. + + + + Disposes the underlying disposable as well as all future replacements. + + + + + Represents a disposable resource whose underlying disposable resource can be swapped for another disposable resource. + + + + + Gets a value that indicates whether the object is disposed. + + + + + Gets or sets the underlying disposable. After disposal, the result of getting this property is undefined. + + If the has already been disposed, assignment to this property causes immediate disposal of the given disposable object. + + + + Disposes the underlying disposable as well as all future replacements. + + + + + Represents a disposable resource that only disposes its underlying disposable resource when all dependent disposable objects have been disposed. + + + + + Holds the number of active child disposables and the + indicator bit (31) if the main _disposable has been marked + for disposition. + + + + + Initializes a new instance of the class with the specified disposable. + + Underlying disposable. + is null. + + + + Initializes a new instance of the class with the specified disposable. + + Underlying disposable. + Indicates whether subsequent calls to should throw when this instance is disposed. + is null. + + + + Gets a value that indicates whether the object is disposed. + + + + + Returns a dependent disposable that when disposed decreases the refcount on the underlying disposable. + + A dependent disposable contributing to the reference count that manages the underlying disposable's lifetime. + This instance has been disposed and is configured to throw in this case by . + + + + Disposes the underlying disposable only when all dependent disposables have been disposed. + + + + + Represents a disposable resource whose disposal invocation will be scheduled on the specified . + + + + + Initializes a new instance of the class that uses an on which to dispose the disposable. + + Scheduler where the disposable resource will be disposed on. + Disposable resource to dispose on the given scheduler. + or is null. + + + + Gets the scheduler where the disposable resource will be disposed on. + + + + + Gets the underlying disposable. After disposal, the result is undefined. + + + + + Gets a value that indicates whether the object is disposed. + + + + + Disposes the wrapped disposable on the provided scheduler. + + + + + Represents a disposable resource whose underlying disposable resource can be replaced by another disposable resource, causing automatic disposal of the previous underlying disposable resource. + + + + + Initializes a new instance of the class. + + + + + Gets a value that indicates whether the object is disposed. + + + + + Gets or sets the underlying disposable. + + If the SerialDisposable has already been disposed, assignment to this property causes immediate disposal of the given disposable object. Assigning this property disposes the previous disposable object. + + + + Disposes the underlying disposable as well as all future replacements. + + + + + Represents a disposable resource whose underlying disposable resource can be replaced by another disposable resource, causing automatic disposal of the previous underlying disposable resource. + + + + + Gets a value that indicates whether the object is disposed. + + + + + Gets or sets the underlying disposable. + + If the SerialDisposable has already been disposed, assignment to this property causes immediate disposal of the given disposable object. Assigning this property disposes the previous disposable object. + + + + Disposes the underlying disposable as well as all future replacements. + + + + + Represents a disposable resource which only allows a single assignment of its underlying disposable resource. + If an underlying disposable resource has already been set, future attempts to set the underlying disposable resource will throw an . + + + + + Initializes a new instance of the class. + + + + + Gets a value that indicates whether the object is disposed. + + + + + Gets or sets the underlying disposable. After disposal, the result of getting this property is undefined. + + Thrown if the has already been assigned to. + + + + Disposes the underlying disposable. + + + + + Represents a disposable resource which only allows a single assignment of its underlying disposable resource. + If an underlying disposable resource has already been set, future attempts to set the underlying disposable resource will throw an . + + + + + Gets a value that indicates whether the object is disposed. + + + + + Gets or sets the underlying disposable. After disposal, the result of getting this property is undefined. + + Thrown if the has already been assigned to. + + + + Disposes the underlying disposable. + + + + + Represents a group of disposable resources that are disposed together. + + + + + Creates a new group containing two disposable resources that are disposed together. + + The first disposable resource to add to the group. + The second disposable resource to add to the group. + Group of disposable resources that are disposed together. + + + + Creates a new group of disposable resources that are disposed together. + + Disposable resources to add to the group. + Group of disposable resources that are disposed together. + + + + Creates a group of disposable resources that are disposed together + and without copying or checking for nulls inside the group. + + The array of disposables that is trusted + to not contain nulls and gives no need to defensively copy it. + Group of disposable resources that are disposed together. + + + + Creates a new group of disposable resources that are disposed together. + + Disposable resources to add to the group. + Group of disposable resources that are disposed together. + + + + Disposes all disposables in the group. + + + + + Gets a value that indicates whether the object is disposed. + + + + + A stable composite that doesn't do defensive copy of + the input disposable array nor checks it for null. + + + + + The System.Reactive.Disposables namespace contains interfaces and classes that provide a compositional set of constructs used to deal with resource and subscription + management in Reactive Extensions. Those types are used extensively within the implementation of Reactive Extensions and are useful when writing custom query operators or + schedulers. + + + + + Provides access to the platform enlightenments used by other Rx libraries to improve system performance and + runtime efficiency. While Rx can run without platform enlightenments loaded, it's recommended to deploy the + System.Reactive.PlatformServices assembly with your application and call during + application startup to ensure enlightenments are properly loaded. + + + + + Ensures that the calling assembly has a reference to the System.Reactive.PlatformServices assembly with + platform enlightenments. If no reference is made from the user code, it's possible for the build process + to drop the deployment of System.Reactive.PlatformServices, preventing its runtime discovery. + + + true if the loaded enlightenment provider matches the provided defined in the current assembly; false + otherwise. When a custom enlightenment provider is installed by the host, false will be returned. + + + + + (Infrastructure) Provider for platform-specific framework enlightenments. + + + + + (Infrastructure) Tries to gets the specified service. + + Service type. + Optional set of arguments. + Service instance or null if not found. + + + + (Infrastructure) Services to rethrow exceptions. + + + This type is used by the Rx infrastructure and not meant for public consumption or implementation. + No guarantees are made about forward compatibility of the type's functionality and its usage. + + + + + Rethrows the specified exception. + + Exception to rethrow. + + + + (Infrastructure) Provides access to the host's lifecycle management services. + + + + + Event that gets raised when the host suspends the application. + + + + + Event that gets raised when the host resumes the application. + + + + + Adds a reference to the host lifecycle manager, causing it to be sending notifications. + + + + + Removes a reference to the host lifecycle manager, causing it to stop sending notifications + if the removed reference was the last one. + + + + + (Infrastructure) Provides notifications about the host's lifecycle events. + + + + + Event that gets raised when the host suspends. + + + + + Event that gets raised when the host resumes. + + + + + (Infrastructure) Event arguments for host suspension events. + + + + + (Infrastructure) Event arguments for host resumption events. + + + + + (Infrastructure) Interface for enlightenment providers. + + + This type is used by the Rx infrastructure and not meant for public consumption or implementation. + No guarantees are made about forward compatibility of the type's functionality and its usage. + + + + + (Infrastructure) Tries to gets the specified service. + + Service type. + Optional set of arguments. + Service instance or null if not found. + + + + (Infrastructure) Provider for platform-specific framework enlightenments. + + + This type is used by the Rx infrastructure and not meant for public consumption or implementation. + + + + + (Infrastructure) Gets the current enlightenment provider. If none is loaded yet, accessing this property triggers provider resolution. + + + This member is used by the Rx infrastructure and not meant for public consumption or implementation. + + + + + (Infrastructure) Provides access to local system clock services. + + + This type is used by the Rx infrastructure and not meant for public consumption or implementation. + No guarantees are made about forward compatibility of the type's functionality and its usage. + + + + + Gets the local system clock time. + + + + + Adds a reference to the system clock monitor, causing it to be sending notifications. + + Thrown when the system doesn't support sending clock change notifications. + + + + Removes a reference to the system clock monitor, causing it to stop sending notifications + if the removed reference was the last one. + + + + + (Infrastructure) Provides access to the local system clock. + + + This type is used by the Rx infrastructure and not meant for public consumption or implementation. + No guarantees are made about forward compatibility of the type's functionality and its usage. + + + + + Gets the current time. + + + + + (Infrastructure) Provides a mechanism to notify local schedulers about system clock changes. + + + This type is used by the Rx infrastructure and not meant for public consumption or implementation. + No guarantees are made about forward compatibility of the type's functionality and its usage. + + + + + Event that gets raised when a system clock change is detected. + + + + + (Infrastructure) Event arguments for system clock change notifications. + + + This type is used by the Rx infrastructure and not meant for public consumption or implementation. + No guarantees are made about forward compatibility of the type's functionality and its usage. + + + + + Creates a new system clock notification object with unknown old and new times. + + + + + Creates a new system clock notification object with the specified old and new times. + + Time before the system clock changed, or DateTimeOffset.MinValue if not known. + Time after the system clock changed, or DateTimeOffset.MaxValue if not known. + + + + Gets the time before the system clock changed, or DateTimeOffset.MinValue if not known. + + + + + Gets the time after the system clock changed, or DateTimeOffset.MaxValue if not known. + + + + + (Infrastructure) Provides access to the local system clock. + + + + + Gets the current time. + + + + + (Infrastructure) Monitors for system clock changes based on a periodic timer. + + + + + Use the Unix milliseconds for the current time + so it can be atomically read/written without locking. + + + + + Creates a new monitor for system clock changes with the specified polling frequency. + + Polling frequency for system clock changes. + + + + Event that gets raised when a system clock change is detected. + + + + + The System.Reactive.PlatformServices namespace contains interfaces and classes used by the runtime infrastructure of Reactive Extensions. + Those are not intended to be used directly from user code and are subject to change in future releases of the product. + + + + + Represents a .NET event invocation consisting of the weakly typed object that raised the event and the data that was generated by the event. + + The type of the event data generated by the event. + + + + Creates a new data representation instance of a .NET event invocation with the given sender and event data. + + The sender object that raised the event. + The event data that was generated by the event. + + + + Represents a .NET event invocation consisting of the strongly typed object that raised the event and the data that was generated by the event. + + The type of the sender that raised the event. + The type of the event data generated by the event. + + + + Creates a new data representation instance of a .NET event invocation with the given sender and event data. + + The sender object that raised the event. + The event data that was generated by the event. + + + + Gets the sender object that raised the event. + + + + + Gets the event data that was generated by the event. + + + + + Deconstructs the event pattern value into a sender and event data. + + The sender object that raised the event. + The event data that was generated by the event. + + + + Determines whether the current object represents the same event as a specified object. + + An object to compare to the current object. + true if both objects represent the same event; otherwise, false. + + + + Determines whether the specified System.Object is equal to the current . + + The System.Object to compare with the current . + true if the specified System.Object is equal to the current ; otherwise, false. + + + + Returns the hash code for the current instance. + + A hash code for the current instance. + + + + Determines whether two specified objects represent the same event. + + The first to compare, or null. + The second to compare, or null. + true if both objects represent the same event; otherwise, false. + + + + Determines whether two specified objects represent a different event. + + The first to compare, or null. + The second to compare, or null. + true if both objects don't represent the same event; otherwise, false. + + + + Base class for classes that expose an observable sequence as a well-known event pattern (sender, event arguments). + Contains functionality to maintain a map of event handler delegates to observable sequence subscriptions. Subclasses + should only add an event with custom add and remove methods calling into the base class's operations. + + The type of the sender that raises the event. + The type of the event data generated by the event. + + + + Creates a new event pattern source. + + Source sequence to expose as an event. + Delegate used to invoke the event for each element of the sequence. + or is null. + + + + Adds the specified event handler, causing a subscription to the underlying source. + + Event handler to add. The same delegate should be passed to the operation in order to remove the event handler. + Invocation delegate to raise the event in the derived class. + or is null. + + + + Removes the specified event handler, causing a disposal of the corresponding subscription to the underlying source that was created during the operation. + + Event handler to remove. This should be the same delegate as one that was passed to the operation. + is null. + + + + Marks the program elements that are experimental. This class cannot be inherited. + + + + + Represents a .NET event invocation consisting of the strongly typed object that raised the event and the data that was generated by the event. + + + The type of the sender that raised the event. + This type parameter is covariant. That is, you can use either the type you specified or any type that is more derived. For more information about covariance and contravariance, see Covariance and Contravariance in Generics. + + + The type of the event data generated by the event. + This type parameter is covariant. That is, you can use either the type you specified or any type that is more derived. For more information about covariance and contravariance, see Covariance and Contravariance in Generics. + + + + + Gets the sender object that raised the event. + + + + + Gets the event data that was generated by the event. + + + + + Represents a data stream signaling its elements by means of an event. + + The type of the event data generated by the event. + + + + Event signaling the next element in the data stream. + + + + + Represents a data stream signaling its elements by means of an event. + + + The type of the event data generated by the event. + This type parameter is covariant. That is, you can use either the type you specified or any type that is more derived. For more information about covariance and contravariance, see Covariance and Contravariance in Generics. + + + + + Event signaling the next element in the data stream. + + + + + Utility methods to handle lock-free combining of Exceptions + as well as hosting a terminal-exception indicator for + lock-free termination support. + + + + + The singleton instance of the exception indicating a terminal state, + DO NOT LEAK or signal this via OnError! + + + + + Tries to atomically set the Exception on the given field if it is + still null. + + The target field to try to set atomically. + The exception to set, not null (not verified). + True if the operation succeeded, false if the target was not null. + + + + Utility methods for dealing with serializing OnXXX signals + for an IObserver where concurrent OnNext is still not allowed + but concurrent OnError/OnCompleted may happen. + This serialization case is generally lower overhead than + a full SerializedObserver wrapper and doesn't need + allocation. + + + + + Signals the given item to the observer in a serialized fashion + allowing a concurrent OnError or OnCompleted emission to be delayed until + the observer.OnNext returns. + Do not call OnNext from multiple threads as it may lead to ignored items. + Use a full SerializedObserver wrapper for merging multiple sequences. + + The element type of the observer. + The observer to signal events in a serialized fashion. + The item to signal. + Indicates there is an emission going on currently. + The field containing an error or terminal indicator. + + + + Signals the given exception to the observer. If there is a concurrent + OnNext emission is happening, saves the exception into the given field + otherwise to be picked up by . + This method can be called concurrently with itself and the other methods of this + helper class but only one terminal signal may actually win. + + The element type of the observer. + The observer to signal events in a serialized fashion. + The exception to signal sooner or later. + Indicates there is an emission going on currently. + The field containing an error or terminal indicator. + + + + Signals OnCompleted on the observer. If there is a concurrent + OnNext emission happening, the error field will host a special + terminal exception signal to be picked up by once it finishes with OnNext and signal the + OnCompleted as well. + This method can be called concurrently with itself and the other methods of this + helper class but only one terminal signal may actually win. + + The element type of the observer. + The observer to signal events in a serialized fashion. + Indicates there is an emission going on currently. + The field containing an error or terminal indicator. + + + + Base interface for observers that can dispose of a resource on a terminal notification + or when disposed itself. + + + + + + Interface with variance annotation; allows for better type checking when detecting capabilities in SubscribeSafe. + + Type of the resulting sequence's elements. + + + + Base class for implementation of query operators, providing performance benefits over the use of Observable.Create. + + Type of the resulting sequence's elements. + + + + Publicly visible Subscribe method. + + Observer to send notifications on. The implementation of a producer must ensure the correct message grammar on the observer. + IDisposable to cancel the subscription. This causes the underlying sink to be notified of unsubscription, causing it to prevent further messages from being sent to the observer. + + + + Core implementation of the query operator, called upon a new subscription to the producer object. + + Observer to send notifications on. The implementation of a producer must ensure the correct message grammar on the observer. + Disposable representing all the resources and/or subscriptions the operator uses to process events. + The observer passed in to this method is not protected using auto-detach behavior upon an OnError or OnCompleted call. The implementation must ensure proper resource disposal and enforce the message grammar. + + + + Publicly visible Subscribe method. + + Observer to send notifications on. The implementation of a producer must ensure the correct message grammar on the observer. + IDisposable to cancel the subscription. This causes the underlying sink to be notified of unsubscription, causing it to prevent further messages from being sent to the observer. + + + + Core implementation of the query operator, called upon a new subscription to the producer object. + + The sink object. + + + + Represents an observable sequence of elements that have a common key. + + + The type of the key shared by all elements in the group. + This type parameter is covariant. That is, you can use either the type you specified or any type that is more derived. For more information about covariance and contravariance, see Covariance and Contravariance in Generics. + + + The type of the elements in the group. + This type parameter is covariant. That is, you can use either the type you specified or any type that is more derived. For more information about covariance and contravariance, see Covariance and Contravariance in Generics. + + + + + Gets the common key. + + + + + Provides functionality to evaluate queries against a specific data source wherein the type of the data is known. + + + The type of the data in the data source. + This type parameter is covariant. That is, you can use either the type you specified or any type that is more derived. For more information about covariance and contravariance, see Covariance and Contravariance in Generics. + + + + + Provides functionality to evaluate queries against a specific data source wherein the type of the data is not specified. + + + + + Gets the type of the element(s) that are returned when the expression tree associated with this instance of IQbservable is executed. + + + + + Gets the expression tree that is associated with the instance of IQbservable. + + + + + Gets the query provider that is associated with this data source. + + + + + Defines methods to create and execute queries that are described by an IQbservable object. + + + + + Constructs an object that can evaluate the query represented by a specified expression tree. + + The type of the elements of the that is returned. + Expression tree representing the query. + IQbservable object that can evaluate the given query expression. + + + + Internal interface describing the LINQ to Events query language. + + + + + Internal interface describing the LINQ to Events query language. + + + + + Attribute applied to static classes providing expression tree forms of query methods, + mapping those to the corresponding methods for local query execution on the specified + target class type. + + + + + Creates a new mapping to the specified local execution query method implementation type. + + Type with query methods for local execution. + + + + Gets the type with the implementation of local query methods. + + + + + Provides a set of static methods for writing in-memory queries over observable sequences. + + + + + Applies an accumulator function over an observable sequence, returning the result of the aggregation as a single element in the result sequence. The specified seed value is used as the initial accumulator value. + For aggregation behavior with incremental intermediate results, see . + + The type of the elements in the source sequence. + The type of the result of the aggregation. + An observable sequence to aggregate over. + The initial accumulator value. + An accumulator function to be invoked on each element. + An observable sequence containing a single element with the final accumulator value. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Applies an accumulator function over an observable sequence, returning the result of the aggregation as a single element in the result sequence. The specified seed value is used as the initial accumulator value, + and the specified result selector function is used to select the result value. + + The type of the elements in the source sequence. + The type of the accumulator value. + The type of the resulting value. + An observable sequence to aggregate over. + The initial accumulator value. + An accumulator function to be invoked on each element. + A function to transform the final accumulator value into the result value. + An observable sequence containing a single element with the final accumulator value. + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Applies an accumulator function over an observable sequence, returning the result of the aggregation as a single element in the result sequence. + For aggregation behavior with incremental intermediate results, see . + + The type of the elements in the source sequence and the result of the aggregation. + An observable sequence to aggregate over. + An accumulator function to be invoked on each element. + An observable sequence containing a single element with the final accumulator value. + or is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Determines whether all elements of an observable sequence satisfy a condition. + + The type of the elements in the source sequence. + An observable sequence whose elements to apply the predicate to. + A function to test each element for a condition. + An observable sequence containing a single element determining whether all elements in the source sequence pass the test in the specified predicate. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Determines whether an observable sequence contains any elements. + + The type of the elements in the source sequence. + An observable sequence to check for non-emptiness. + An observable sequence containing a single element determining whether the source sequence contains any elements. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Determines whether any element of an observable sequence satisfies a condition. + + The type of the elements in the source sequence. + An observable sequence whose elements to apply the predicate to. + A function to test each element for a condition. + An observable sequence containing a single element determining whether any elements in the source sequence pass the test in the specified predicate. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values. + + A sequence of values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values. + is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values. + + A sequence of values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values. + is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values. + + A sequence of values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values. + is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values. + + A sequence of values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values. + is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values. + + A sequence of values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values. + is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of nullable values. + + A sequence of nullable values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of nullable values. + + A sequence of nullable values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of nullable values. + + A sequence of nullable values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of nullable values. + + A sequence of nullable values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + (Asynchronous) The sum of the elements in the source sequence is larger than . + + + + Computes the average of an observable sequence of nullable values. + + A sequence of nullable values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values. + or is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values. + or is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values. + or is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values. + or is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values. + or is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + or is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + or is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + or is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + or is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + or is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Determines whether an observable sequence contains a specified element by using the default equality comparer. + + The type of the elements in the source sequence. + An observable sequence in which to locate a value. + The value to locate in the source sequence. + An observable sequence containing a single element determining whether the source sequence contains an element that has the specified value. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Determines whether an observable sequence contains a specified element by using a specified System.Collections.Generic.IEqualityComparer{T}. + + The type of the elements in the source sequence. + An observable sequence in which to locate a value. + The value to locate in the source sequence. + An equality comparer to compare elements. + An observable sequence containing a single element determining whether the source sequence contains an element that has the specified value. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns an observable sequence containing an that represents the total number of elements in an observable sequence. + + The type of the elements in the source sequence. + An observable sequence that contains elements to be counted. + An observable sequence containing a single element with the number of elements in the input sequence. + is null. + (Asynchronous) The number of elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns an observable sequence containing an that represents how many elements in the specified observable sequence satisfy a condition. + + The type of the elements in the source sequence. + An observable sequence that contains elements to be counted. + A function to test each element for a condition. + An observable sequence containing a single element with a number that represents how many elements in the input sequence satisfy the condition in the predicate function. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the element at a specified index in a sequence. + + The type of the elements in the source sequence. + Observable sequence to return the element from. + The zero-based index of the element to retrieve. + An observable sequence that produces the element at the specified position in the source sequence. + is null. + is less than zero. + (Asynchronous) is greater than or equal to the number of elements in the source sequence. + + + + Returns the element at a specified index in a sequence or a default value if the index is out of range. + + The type of the elements in the source sequence. + Observable sequence to return the element from. + The zero-based index of the element to retrieve. + An observable sequence that produces the element at the specified position in the source sequence, or a default value if the index is outside the bounds of the source sequence. + is null. + is less than zero. + + + + Returns the first element of an observable sequence. + + The type of the elements in the source sequence. + Source observable sequence. + Sequence containing the first element in the observable sequence. + is null. + (Asynchronous) The source sequence is empty. + + + + Returns the first element of an observable sequence that satisfies the condition in the predicate. + + The type of the elements in the source sequence. + Source observable sequence. + A predicate function to evaluate for elements in the source sequence. + Sequence containing the first element in the observable sequence that satisfies the condition in the predicate. + or is null. + (Asynchronous) No element satisfies the condition in the predicate. -or- The source sequence is empty. + + + + Returns the first element of an observable sequence, or a default value if no such element exists. + + The type of the elements in the source sequence. + Source observable sequence. + Sequence containing the first element in the observable sequence, or a default value if no such element exists. + is null. + + + + Returns the first element of an observable sequence that satisfies the condition in the predicate, or a default value if no such element exists. + + The type of the elements in the source sequence. + Source observable sequence. + A predicate function to evaluate for elements in the source sequence. + Sequence containing the first element in the observable sequence that satisfies the condition in the predicate, or a default value if no such element exists. + or is null. + + + + Determines whether an observable sequence is empty. + + The type of the elements in the source sequence. + An observable sequence to check for emptiness. + An observable sequence containing a single element determining whether the source sequence is empty. + is null. + + + + Returns the last element of an observable sequence. + + The type of the elements in the source sequence. + Source observable sequence. + Sequence containing the last element in the observable sequence. + is null. + (Asynchronous) The source sequence is empty. + + + + Returns the last element of an observable sequence that satisfies the condition in the predicate. + + The type of the elements in the source sequence. + Source observable sequence. + A predicate function to evaluate for elements in the source sequence. + Sequence containing the last element in the observable sequence that satisfies the condition in the predicate. + or is null. + (Asynchronous) No element satisfies the condition in the predicate. -or- The source sequence is empty. + + + + Returns the last element of an observable sequence, or a default value if no such element exists. + + The type of the elements in the source sequence. + Source observable sequence. + Sequence containing the last element in the observable sequence, or a default value if no such element exists. + is null. + + + + Returns the last element of an observable sequence that satisfies the condition in the predicate, or a default value if no such element exists. + + The type of the elements in the source sequence. + Source observable sequence. + A predicate function to evaluate for elements in the source sequence. + Sequence containing the last element in the observable sequence that satisfies the condition in the predicate, or a default value if no such element exists. + or is null. + + + + Returns an observable sequence containing an that represents the total number of elements in an observable sequence. + + The type of the elements in the source sequence. + An observable sequence that contains elements to be counted. + An observable sequence containing a single element with the number of elements in the input sequence. + is null. + (Asynchronous) The number of elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns an observable sequence containing an that represents how many elements in the specified observable sequence satisfy a condition. + + The type of the elements in the source sequence. + An observable sequence that contains elements to be counted. + A function to test each element for a condition. + An observable sequence containing a single element with a number that represents how many elements in the input sequence satisfy the condition in the predicate function. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum element in an observable sequence. + + The type of the elements in the source sequence. + An observable sequence to determine the maximum element of. + An observable sequence containing a single element with the maximum element in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence according to the specified comparer. + + The type of the elements in the source sequence. + An observable sequence to determine the maximum element of. + Comparer used to compare elements. + An observable sequence containing a single element with the maximum element in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of values. + + A sequence of values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of values. + + A sequence of values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of values. + + A sequence of values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of values. + + A sequence of values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of values. + + A sequence of values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum value. + + The type of the elements in the source sequence. + The type of the objects derived from the elements in the source sequence to determine the maximum of. + An observable sequence to determine the minimum element of. + A transform function to apply to each element. + An observable sequence containing a single element with the value that corresponds to the maximum element in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum value according to the specified comparer. + + The type of the elements in the source sequence. + The type of the objects derived from the elements in the source sequence to determine the maximum of. + An observable sequence to determine the minimum element of. + A transform function to apply to each element. + Comparer used to compare elements. + An observable sequence containing a single element with the value that corresponds to the maximum element in the source sequence. + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the elements in an observable sequence with the maximum key value. + + The type of the elements in the source sequence. + The type of the key computed for each element in the source sequence. + An observable sequence to get the maximum elements for. + Key selector function. + An observable sequence containing a list of zero or more elements that have a maximum key value. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the elements in an observable sequence with the maximum key value according to the specified comparer. + + The type of the elements in the source sequence. + The type of the key computed for each element in the source sequence. + An observable sequence to get the maximum elements for. + Key selector function. + Comparer used to compare key values. + An observable sequence containing a list of zero or more elements that have a maximum key value. + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum element in an observable sequence. + + The type of the elements in the source sequence. + An observable sequence to determine the minimum element of. + An observable sequence containing a single element with the minimum element in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum element in an observable sequence according to the specified comparer. + + The type of the elements in the source sequence. + An observable sequence to determine the minimum element of. + Comparer used to compare elements. + An observable sequence containing a single element with the minimum element in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of values. + + A sequence of values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of values. + + A sequence of values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of values. + + A sequence of values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of values. + + A sequence of values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of values. + + A sequence of values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum value. + + The type of the elements in the source sequence. + The type of the objects derived from the elements in the source sequence to determine the minimum of. + An observable sequence to determine the minimum element of. + A transform function to apply to each element. + An observable sequence containing a single element with the value that corresponds to the minimum element in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum value according to the specified comparer. + + The type of the elements in the source sequence. + The type of the objects derived from the elements in the source sequence to determine the minimum of. + An observable sequence to determine the minimum element of. + A transform function to apply to each element. + Comparer used to compare elements. + An observable sequence containing a single element with the value that corresponds to the minimum element in the source sequence. + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the elements in an observable sequence with the minimum key value. + + The type of the elements in the source sequence. + The type of the key computed for each element in the source sequence. + An observable sequence to get the minimum elements for. + Key selector function. + An observable sequence containing a list of zero or more elements that have a minimum key value. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the elements in an observable sequence with the minimum key value according to the specified comparer. + + The type of the elements in the source sequence. + The type of the key computed for each element in the source sequence. + An observable sequence to get the minimum elements for. + Key selector function. + Comparer used to compare key values. + An observable sequence containing a list of zero or more elements that have a minimum key value. + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Determines whether two sequences are equal by comparing the elements pairwise. + + The type of the elements in the source sequence. + First observable sequence to compare. + Second observable sequence to compare. + An observable sequence that contains a single element which indicates whether both sequences are of equal length and their corresponding elements are equal according to the default equality comparer for their type. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Determines whether two sequences are equal by comparing the elements pairwise using a specified equality comparer. + + The type of the elements in the source sequence. + First observable sequence to compare. + Second observable sequence to compare. + Comparer used to compare elements of both sequences. + An observable sequence that contains a single element which indicates whether both sequences are of equal length and their corresponding elements are equal according to the specified equality comparer. + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Determines whether an observable and enumerable sequence are equal by comparing the elements pairwise. + + The type of the elements in the source sequence. + First observable sequence to compare. + Second observable sequence to compare. + An observable sequence that contains a single element which indicates whether both sequences are of equal length and their corresponding elements are equal according to the default equality comparer for their type. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Determines whether an observable and enumerable sequence are equal by comparing the elements pairwise using a specified equality comparer. + + The type of the elements in the source sequence. + First observable sequence to compare. + Second observable sequence to compare. + Comparer used to compare elements of both sequences. + An observable sequence that contains a single element which indicates whether both sequences are of equal length and their corresponding elements are equal according to the specified equality comparer. + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the only element of an observable sequence, and reports an exception if there is not exactly one element in the observable sequence. + + The type of the elements in the source sequence. + Source observable sequence. + Sequence containing the single element in the observable sequence. + is null. + (Asynchronous) The source sequence contains more than one element. -or- The source sequence is empty. + + + + Returns the only element of an observable sequence that satisfies the condition in the predicate, and reports an exception if there is not exactly one element in the observable sequence. + + The type of the elements in the source sequence. + Source observable sequence. + A predicate function to evaluate for elements in the source sequence. + Sequence containing the single element in the observable sequence that satisfies the condition in the predicate. + or is null. + (Asynchronous) No element satisfies the condition in the predicate. -or- More than one element satisfies the condition in the predicate. -or- The source sequence is empty. + + + + Returns the only element of an observable sequence, or a default value if the observable sequence is empty; this method reports an exception if there is more than one element in the observable sequence. + + The type of the elements in the source sequence. + Source observable sequence. + Sequence containing the single element in the observable sequence, or a default value if no such element exists. + is null. + (Asynchronous) The source sequence contains more than one element. + + + + Returns the only element of an observable sequence that matches the predicate, or a default value if no such element exists; this method reports an exception if there is more than one element in the observable sequence. + + The type of the elements in the source sequence. + Source observable sequence. + A predicate function to evaluate for elements in the source sequence. + Sequence containing the single element in the observable sequence that satisfies the condition in the predicate, or a default value if no such element exists. + or is null. + (Asynchronous) The sequence contains more than one element that satisfies the condition in the predicate. + + + + Computes the sum of a sequence of values. + + A sequence of values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of values. + + A sequence of values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of values. + + A sequence of values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + is null. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of values. + + A sequence of values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + is null. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of values. + + A sequence of values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + is null. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values. + + A sequence of nullable values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values. + + A sequence of nullable values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values. + + A sequence of nullable values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + is null. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values. + + A sequence of nullable values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + is null. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values. + + A sequence of nullable values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + is null. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + or is null. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + or is null. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + or is null. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + or is null. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + or is null. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + or is null. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates an array from an observable sequence. + + The type of the elements in the source sequence. + The source observable sequence to get an array of elements for. + An observable sequence containing a single element with an array containing all the elements of the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates a dictionary from an observable sequence according to a specified key selector function. + + The type of the elements in the source sequence. + The type of the dictionary key computed for each element in the source sequence. + An observable sequence to create a dictionary for. + A function to extract a key from each element. + An observable sequence containing a single element with a dictionary mapping unique key values onto the corresponding source sequence's element. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates a dictionary from an observable sequence according to a specified key selector function, and a comparer. + + The type of the elements in the source sequence. + The type of the dictionary key computed for each element in the source sequence. + An observable sequence to create a dictionary for. + A function to extract a key from each element. + An equality comparer to compare keys. + An observable sequence containing a single element with a dictionary mapping unique key values onto the corresponding source sequence's element. + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates a dictionary from an observable sequence according to a specified key selector function, and an element selector function. + + The type of the elements in the source sequence. + The type of the dictionary key computed for each element in the source sequence. + The type of the dictionary value computed for each element in the source sequence. + An observable sequence to create a dictionary for. + A function to extract a key from each element. + A transform function to produce a result element value from each element. + An observable sequence containing a single element with a dictionary mapping unique key values onto the corresponding source sequence's element. + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates a dictionary from an observable sequence according to a specified key selector function, a comparer, and an element selector function. + + The type of the elements in the source sequence. + The type of the dictionary key computed for each element in the source sequence. + The type of the dictionary value computed for each element in the source sequence. + An observable sequence to create a dictionary for. + A function to extract a key from each element. + A transform function to produce a result element value from each element. + An equality comparer to compare keys. + An observable sequence containing a single element with a dictionary mapping unique key values onto the corresponding source sequence's element. + or or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates a list from an observable sequence. + + The type of the elements in the source sequence. + The source observable sequence to get a list of elements for. + An observable sequence containing a single element with a list containing all the elements of the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates a lookup from an observable sequence according to a specified key selector function. + + The type of the elements in the source sequence. + The type of the lookup key computed for each element in the source sequence. + An observable sequence to create a lookup for. + A function to extract a key from each element. + An observable sequence containing a single element with a lookup mapping unique key values onto the corresponding source sequence's elements. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates a lookup from an observable sequence according to a specified key selector function, and a comparer. + + The type of the elements in the source sequence. + The type of the lookup key computed for each element in the source sequence. + An observable sequence to create a lookup for. + A function to extract a key from each element. + An equality comparer to compare keys. + An observable sequence containing a single element with a lookup mapping unique key values onto the corresponding source sequence's elements. + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates a lookup from an observable sequence according to a specified key selector function, and an element selector function. + + The type of the elements in the source sequence. + The type of the lookup key computed for each element in the source sequence. + The type of the lookup value computed for each element in the source sequence. + An observable sequence to create a lookup for. + A function to extract a key from each element. + A transform function to produce a result element value from each element. + An observable sequence containing a single element with a lookup mapping unique key values onto the corresponding source sequence's elements. + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates a lookup from an observable sequence according to a specified key selector function, a comparer, and an element selector function. + + The type of the elements in the source sequence. + The type of the lookup key computed for each element in the source sequence. + The type of the lookup value computed for each element in the source sequence. + An observable sequence to create a lookup for. + A function to extract a key from each element. + A transform function to produce a result element value from each element. + An equality comparer to compare keys. + An observable sequence containing a single element with a lookup mapping unique key values onto the corresponding source sequence's elements. + or or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The type of the eleventh argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The type of the eleventh argument passed to the begin delegate. + The type of the twelfth argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The type of the eleventh argument passed to the begin delegate. + The type of the twelfth argument passed to the begin delegate. + The type of the thirteenth argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The type of the eleventh argument passed to the begin delegate. + The type of the twelfth argument passed to the begin delegate. + The type of the thirteenth argument passed to the begin delegate. + The type of the fourteenth argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The type of the eleventh argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The type of the eleventh argument passed to the begin delegate. + The type of the twelfth argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The type of the eleventh argument passed to the begin delegate. + The type of the twelfth argument passed to the begin delegate. + The type of the thirteenth argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The type of the eleventh argument passed to the begin delegate. + The type of the twelfth argument passed to the begin delegate. + The type of the thirteenth argument passed to the begin delegate. + The type of the fourteenth argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Invokes the specified function asynchronously, surfacing the result through an observable sequence. + + The type of the result returned by the function. + Function to run asynchronously. + An observable sequence exposing the function's result value, or an exception. + is null. + + + The function is called immediately, not during the subscription of the resulting sequence. + Multiple subscriptions to the resulting sequence can observe the function's result. + + + + + + Invokes the specified function asynchronously on the specified scheduler, surfacing the result through an observable sequence + + The type of the result returned by the function. + Function to run asynchronously. + Scheduler to run the function on. + An observable sequence exposing the function's result value, or an exception. + or is null. + + + The function is called immediately, not during the subscription of the resulting sequence. + Multiple subscriptions to the resulting sequence can observe the function's result. + + + + + + Invokes the asynchronous function, surfacing the result through an observable sequence. + + The type of the result returned by the asynchronous function. + Asynchronous function to run. + An observable sequence exposing the function's result value, or an exception. + is null. + + + The function is started immediately, not during the subscription of the resulting sequence. + Multiple subscriptions to the resulting sequence can observe the function's result. + + + + + + Invokes the asynchronous function, surfacing the result through an observable sequence. + + The type of the result returned by the asynchronous function. + Asynchronous function to run. + Scheduler on which to notify observers. + An observable sequence exposing the function's result value, or an exception. + is null or is null. + + + The function is started immediately, not during the subscription of the resulting sequence. + Multiple subscriptions to the resulting sequence can observe the function's result. + + + + + + Invokes the asynchronous function, surfacing the result through an observable sequence. + The CancellationToken is shared by all subscriptions on the resulting observable sequence. See the remarks section for more information. + + The type of the result returned by the asynchronous function. + Asynchronous function to run. + An observable sequence exposing the function's result value, or an exception. + is null. + + + The function is started immediately, not during the subscription of the resulting sequence. + Multiple subscriptions to the resulting sequence can observe the function's result. + + If any subscription to the resulting sequence is disposed, the CancellationToken is set. The observer associated to the disposed + subscription won't see the TaskCanceledException, but other observers will. You can protect against this using the Catch operator. + Be careful when handing out the resulting sequence because of this behavior. The most common use is to have a single subscription + to the resulting sequence, which controls the CancellationToken state. Alternatively, you can control subscription behavior using + multicast operators. + + + + + + + Invokes the asynchronous function, surfacing the result through an observable sequence. + The CancellationToken is shared by all subscriptions on the resulting observable sequence. See the remarks section for more information. + + The type of the result returned by the asynchronous function. + Asynchronous function to run. + Scheduler on which to notify observers. + An observable sequence exposing the function's result value, or an exception. + is null or is null. + + + The function is started immediately, not during the subscription of the resulting sequence. + Multiple subscriptions to the resulting sequence can observe the function's result. + + If any subscription to the resulting sequence is disposed, the CancellationToken is set. The observer associated to the disposed + subscription won't see the TaskCanceledException, but other observers will. You can protect against this using the Catch operator. + Be careful when handing out the resulting sequence because of this behavior. The most common use is to have a single subscription + to the resulting sequence, which controls the CancellationToken state. Alternatively, you can control subscription behavior using + multicast operators. + + + + + + + Invokes the action asynchronously, surfacing the result through an observable sequence. + + Action to run asynchronously. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + is null. + + + The action is called immediately, not during the subscription of the resulting sequence. + Multiple subscriptions to the resulting sequence can observe the action's outcome. + + + + + + Invokes the action asynchronously on the specified scheduler, surfacing the result through an observable sequence. + + Action to run asynchronously. + Scheduler to run the action on. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + or is null. + + + The action is called immediately, not during the subscription of the resulting sequence. + Multiple subscriptions to the resulting sequence can observe the action's outcome. + + + + + + Invokes the asynchronous action, surfacing the result through an observable sequence. + + Asynchronous action to run. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + is null. + + + The action is started immediately, not during the subscription of the resulting sequence. + Multiple subscriptions to the resulting sequence can observe the action's outcome. + + + + + + Invokes the asynchronous action, surfacing the result through an observable sequence. + + Asynchronous action to run. + Scheduler on which to notify observers. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + is null or is null. + + + The action is started immediately, not during the subscription of the resulting sequence. + Multiple subscriptions to the resulting sequence can observe the action's outcome. + + + + + + Invokes the asynchronous action, surfacing the result through an observable sequence. + The CancellationToken is shared by all subscriptions on the resulting observable sequence. See the remarks section for more information. + + Asynchronous action to run. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + is null. + + + The action is started immediately, not during the subscription of the resulting sequence. + Multiple subscriptions to the resulting sequence can observe the action's outcome. + + If any subscription to the resulting sequence is disposed, the CancellationToken is set. The observer associated to the disposed + subscription won't see the TaskCanceledException, but other observers will. You can protect against this using the Catch operator. + Be careful when handing out the resulting sequence because of this behavior. The most common use is to have a single subscription + to the resulting sequence, which controls the CancellationToken state. Alternatively, you can control subscription behavior using + multicast operators. + + + + + + + Invokes the asynchronous action, surfacing the result through an observable sequence. + The CancellationToken is shared by all subscriptions on the resulting observable sequence. See the remarks section for more information. + + Asynchronous action to run. + Scheduler on which to notify observers. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + is null or is null. + + + The action is started immediately, not during the subscription of the resulting sequence. + Multiple subscriptions to the resulting sequence can observe the action's outcome. + + If any subscription to the resulting sequence is disposed, the CancellationToken is set. The observer associated to the disposed + subscription won't see the TaskCanceledException, but other observers will. You can protect against this using the Catch operator. + Be careful when handing out the resulting sequence because of this behavior. The most common use is to have a single subscription + to the resulting sequence, which controls the CancellationToken state. Alternatively, you can control subscription behavior using + multicast operators. + + + + + + + Converts an asynchronous function into an observable sequence. Each subscription to the resulting sequence causes the function to be started. + + The type of the result returned by the asynchronous function. + Asynchronous function to convert. + An observable sequence exposing the result of invoking the function, or an exception. + is null. + + + + Converts an asynchronous function into an observable sequence. Each subscription to the resulting sequence causes the function to be started. + + The type of the result returned by the asynchronous function. + Asynchronous function to convert. + Scheduler on which to notify observers. + An observable sequence exposing the result of invoking the function, or an exception. + is null or is null. + + + + Converts an asynchronous function into an observable sequence. Each subscription to the resulting sequence causes the function to be started. + The CancellationToken passed to the asynchronous function is tied to the observable sequence's subscription that triggered the function's invocation and can be used for best-effort cancellation. + + The type of the result returned by the asynchronous function. + Asynchronous function to convert. + An observable sequence exposing the result of invoking the function, or an exception. + is null. + When a subscription to the resulting sequence is disposed, the CancellationToken that was fed to the asynchronous function will be signaled. + + + + Converts an asynchronous function into an observable sequence. Each subscription to the resulting sequence causes the function to be started. + The CancellationToken passed to the asynchronous function is tied to the observable sequence's subscription that triggered the function's invocation and can be used for best-effort cancellation. + + The type of the result returned by the asynchronous function. + Asynchronous function to convert. + Scheduler on which to notify observers. + An observable sequence exposing the result of invoking the function, or an exception. + is null or is null. + When a subscription to the resulting sequence is disposed, the CancellationToken that was fed to the asynchronous function will be signaled. + + + + Converts an asynchronous action into an observable sequence. Each subscription to the resulting sequence causes the action to be started. + + Asynchronous action to convert. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + is null. + + + + Converts an asynchronous action into an observable sequence. Each subscription to the resulting sequence causes the action to be started. + + Asynchronous action to convert. + Scheduler on which to notify observers. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + is null or is null. + + + + Converts an asynchronous action into an observable sequence. Each subscription to the resulting sequence causes the action to be started. + The CancellationToken passed to the asynchronous action is tied to the observable sequence's subscription that triggered the action's invocation and can be used for best-effort cancellation. + + Asynchronous action to convert. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + When a subscription to the resulting sequence is disposed, the CancellationToken that was fed to the asynchronous function will be signaled. + is null. + + + + Converts an asynchronous action into an observable sequence. Each subscription to the resulting sequence causes the action to be started. + The CancellationToken passed to the asynchronous action is tied to the observable sequence's subscription that triggered the action's invocation and can be used for best-effort cancellation. + + Asynchronous action to convert. + Scheduler on which to notify observers. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + When a subscription to the resulting sequence is disposed, the CancellationToken that was fed to the asynchronous function will be signaled. + is null or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + The type of the first argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + The type of the first argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the thirteenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the thirteenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the thirteenth argument passed to the function. + The type of the fourteenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the thirteenth argument passed to the function. + The type of the fourteenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the thirteenth argument passed to the function. + The type of the fourteenth argument passed to the function. + The type of the fifteenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the thirteenth argument passed to the function. + The type of the fourteenth argument passed to the function. + The type of the fifteenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the thirteenth argument passed to the function. + The type of the fourteenth argument passed to the function. + The type of the fifteenth argument passed to the function. + The type of the sixteenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the thirteenth argument passed to the function. + The type of the fourteenth argument passed to the function. + The type of the fifteenth argument passed to the function. + The type of the sixteenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Action to convert to an asynchronous action. + Asynchronous action. + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + The type of the first argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + The type of the first argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + The type of the thirteenth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + The type of the thirteenth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + The type of the thirteenth argument passed to the action. + The type of the fourteenth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + The type of the thirteenth argument passed to the action. + The type of the fourteenth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + The type of the thirteenth argument passed to the action. + The type of the fourteenth argument passed to the action. + The type of the fifteenth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + The type of the thirteenth argument passed to the action. + The type of the fourteenth argument passed to the action. + The type of the fifteenth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + The type of the thirteenth argument passed to the action. + The type of the fourteenth argument passed to the action. + The type of the fifteenth argument passed to the action. + The type of the sixteenth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + The type of the thirteenth argument passed to the action. + The type of the fourteenth argument passed to the action. + The type of the fifteenth argument passed to the action. + The type of the sixteenth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + or is null. + + + + Gets an awaiter that returns the last value of the observable sequence or throws an exception if the sequence is empty. + This operation subscribes to the observable sequence, making it hot. + + The type of the elements in the source sequence. + Source sequence to await. + Object that can be awaited. + is null. + + + + Gets an awaiter that returns the last value of the observable sequence or throws an exception if the sequence is empty. + This operation subscribes and connects to the observable sequence, making it hot. + + The type of the elements in the source sequence. + Source sequence to await. + Object that can be awaited. + is null. + + + + Gets an awaiter that returns the last value of the observable sequence or throws an exception if the sequence is empty. + This operation subscribes to the observable sequence, making it hot. The supplied CancellationToken can be used to cancel the subscription. + + The type of the elements in the source sequence. + Source sequence to await. + Cancellation token. + Object that can be awaited. + is null. + + + + Gets an awaiter that returns the last value of the observable sequence or throws an exception if the sequence is empty. + This operation subscribes and connects to the observable sequence, making it hot. The supplied CancellationToken can be used to cancel the subscription and connection. + + The type of the elements in the source sequence. + Source sequence to await. + Cancellation token. + Object that can be awaited. + is null. + + + + Multicasts the source sequence notifications through the specified subject to the resulting connectable observable. Upon connection of the + connectable observable, the subject is subscribed to the source exactly one, and messages are forwarded to the observers registered with + the connectable observable. For specializations with fixed subject types, see Publish, PublishLast, and Replay. + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be pushed into the specified subject. + Subject to push source elements into. + A connectable observable sequence that upon connection causes the source sequence to push results into the specified subject. + or is null. + + + + Multicasts the source sequence notifications through an instantiated subject into all uses of the sequence within a selector function. Each + subscription to the resulting sequence causes a separate multicast invocation, exposing the sequence resulting from the selector function's + invocation. For specializations with fixed subject types, see Publish, PublishLast, and Replay. + + The type of the elements in the source sequence. + The type of the elements produced by the intermediate subject. + The type of the elements in the result sequence. + Source sequence which will be multicasted in the specified selector function. + Factory function to create an intermediate subject through which the source sequence's elements will be multicast to the selector function. + Selector function which can use the multicasted source sequence subject to the policies enforced by the created subject. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + or or is null. + + + + Returns a connectable observable sequence that shares a single subscription to the underlying sequence. + This operator is a specialization of Multicast using a regular . + + The type of the elements in the source sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + A connectable observable sequence that shares a single subscription to the underlying sequence. + is null. + Subscribers will receive all notifications of the source from the time of the subscription on. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence. + This operator is a specialization of Multicast using a regular . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all notifications of the source from the time of the subscription on. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + or is null. + + + + + Returns a connectable observable sequence that shares a single subscription to the underlying sequence and starts with initialValue. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Initial value received by observers upon subscription. + A connectable observable sequence that shares a single subscription to the underlying sequence. + is null. + Subscribers will receive immediately receive the initial value, followed by all notifications of the source from the time of the subscription on. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence and starts with initialValue. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive immediately receive the initial value, followed by all notifications of the source from the time of the subscription on. + Initial value received by observers upon subscription. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + or is null. + + + + + Returns a connectable observable sequence that shares a single subscription to the underlying sequence containing only the last notification. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + A connectable observable sequence that shares a single subscription to the underlying sequence. + is null. + Subscribers will only receive the last notification of the source. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence containing only the last notification. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will only receive the last notification of the source. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + or is null. + + + + + Returns an observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + + The type of the elements in the source sequence. + Connectable observable sequence. + An observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + is null. + + + + Returns an observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + + The type of the elements in the source sequence. + Connectable observable sequence. + The time span that should be waited before possibly unsubscribing from the connectable observable. + An observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + is null. + + + + Returns an observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + + The type of the elements in the source sequence. + Connectable observable sequence. + The time span that should be waited before possibly unsubscribing from the connectable observable. + The scheduler to use for delayed unsubscription. + An observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + is null. + + + + Returns an observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + + The type of the elements in the source sequence. + Connectable observable sequence. + The minimum number of observers required to subscribe before establishing the connection to the source. + An observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + is null. + is non-positive. + + + + Returns an observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + + The type of the elements in the source sequence. + Connectable observable sequence. + The minimum number of observers required to subscribe before establishing the connection to the source. + The time span that should be waited before possibly unsubscribing from the connectable observable. + An observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + is null. + is non-positive. + + + + Returns an observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + + The type of the elements in the source sequence. + Connectable observable sequence. + The minimum number of observers required to subscribe before establishing the connection to the source. + The time span that should be waited before possibly unsubscribing from the connectable observable. + The scheduler to use for delayed unsubscription. + An observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + is null. + is non-positive. + + + + Automatically connect the upstream IConnectableObservable at most once when the + specified number of IObservers have subscribed to this IObservable. + + The type of the elements in the source sequence. + Connectable observable sequence. + The number of observers required to subscribe before the connection to source happens, non-positive value will trigger an immediate subscription. + If not null, the connection's IDisposable is provided to it. + An observable sequence that connects to the source at most once when the given number of observers have subscribed to it. + is null. + + + + Returns a connectable observable sequence that shares a single subscription to the underlying sequence replaying all notifications. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + A connectable observable sequence that shares a single subscription to the underlying sequence. + is null. + Subscribers will receive all the notifications of the source. + + + + + Returns a connectable observable sequence that shares a single subscription to the underlying sequence replaying all notifications. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Scheduler where connected observers will be invoked on. + A connectable observable sequence that shares a single subscription to the underlying sequence. + or is null. + Subscribers will receive all the notifications of the source. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying all notifications. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all the notifications of the source. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + or is null. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying all notifications. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all the notifications of the source. + Scheduler where connected observers within the selector function will be invoked on. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + or or is null. + + + + + Returns a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum time length for the replay buffer. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Maximum time length of the replay buffer. + A connectable observable sequence that shares a single subscription to the underlying sequence. + is null. + is less than TimeSpan.Zero. + Subscribers will receive all the notifications of the source subject to the specified replay buffer trimming policy. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum time length for the replay buffer. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all the notifications of the source subject to the specified replay buffer trimming policy. + Maximum time length of the replay buffer. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + or is null. + is less than TimeSpan.Zero. + + + + + Returns a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum time length for the replay buffer. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Maximum time length of the replay buffer. + Scheduler where connected observers will be invoked on. + A connectable observable sequence that shares a single subscription to the underlying sequence. + or is null. + is less than TimeSpan.Zero. + Subscribers will receive all the notifications of the source subject to the specified replay buffer trimming policy. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum time length for the replay buffer. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all the notifications of the source subject to the specified replay buffer trimming policy. + Maximum time length of the replay buffer. + Scheduler where connected observers within the selector function will be invoked on. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + or or is null. + is less than TimeSpan.Zero. + + + + + Returns a connectable observable sequence that shares a single subscription to the underlying sequence replaying bufferSize notifications. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Maximum element count of the replay buffer. + Scheduler where connected observers will be invoked on. + A connectable observable sequence that shares a single subscription to the underlying sequence. + or is null. + is less than zero. + Subscribers will receive all the notifications of the source subject to the specified replay buffer trimming policy. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum element count for the replay buffer. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all the notifications of the source subject to the specified replay buffer trimming policy. + Maximum element count of the replay buffer. + Scheduler where connected observers within the selector function will be invoked on. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + or or is null. + is less than zero. + + + + + Returns a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum element count for the replay buffer. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Maximum element count of the replay buffer. + A connectable observable sequence that shares a single subscription to the underlying sequence. + is null. + is less than zero. + Subscribers will receive all the notifications of the source subject to the specified replay buffer trimming policy. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum element count for the replay buffer. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all the notifications of the source subject to the specified replay buffer trimming policy. + Maximum element count of the replay buffer. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + or is null. + is less than zero. + + + + + Returns a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum time length and element count for the replay buffer. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Maximum element count of the replay buffer. + Maximum time length of the replay buffer. + A connectable observable sequence that shares a single subscription to the underlying sequence. + is null. + is less than zero. + is less than TimeSpan.Zero. + Subscribers will receive all the notifications of the source subject to the specified replay buffer trimming policy. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum time length and element count for the replay buffer. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all the notifications of the source subject to the specified replay buffer trimming policy. + Maximum element count of the replay buffer. + Maximum time length of the replay buffer. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + or is null. + is less than zero. + is less than TimeSpan.Zero. + + + + + Returns a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum time length and element count for the replay buffer. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Maximum element count of the replay buffer. + Maximum time length of the replay buffer. + Scheduler where connected observers will be invoked on. + A connectable observable sequence that shares a single subscription to the underlying sequence. + or is null. + is less than zero. + is less than TimeSpan.Zero. + Subscribers will receive all the notifications of the source subject to the specified replay buffer trimming policy. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum time length and element count for the replay buffer. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all the notifications of the source subject to the specified replay buffer trimming policy. + Maximum element count of the replay buffer. + Maximum time length of the replay buffer. + Scheduler where connected observers within the selector function will be invoked on. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + or or is null. + is less than zero. + is less than TimeSpan.Zero. + + + + + Produces an enumerable sequence of consecutive (possibly empty) chunks of the source sequence. + + The type of the elements in the source sequence. + Source observable sequence. + The enumerable sequence that returns consecutive (possibly empty) chunks upon each iteration. + is null. + + + + Produces an enumerable sequence that returns elements collected/aggregated from the source sequence between consecutive iterations. + + The type of the elements in the source sequence. + The type of the elements produced by the merge operation during collection. + Source observable sequence. + Factory to create a new collector object. + Merges a sequence element with the current collector. + The enumerable sequence that returns collected/aggregated elements from the source sequence upon each iteration. + or or is null. + + + + Produces an enumerable sequence that returns elements collected/aggregated from the source sequence between consecutive iterations. + + The type of the elements in the source sequence. + The type of the elements produced by the merge operation during collection. + Source observable sequence. + Factory to create the initial collector object. + Merges a sequence element with the current collector. + Factory to replace the current collector by a new collector. + The enumerable sequence that returns collected/aggregated elements from the source sequence upon each iteration. + or or or is null. + + + + Returns the first element of an observable sequence. + + The type of the elements in the source sequence. + Source observable sequence. + The first element in the observable sequence. + is null. + The source sequence is empty. + + + + + Returns the first element of an observable sequence that satisfies the condition in the predicate. + + The type of the elements in the source sequence. + Source observable sequence. + A predicate function to evaluate for elements in the source sequence. + The first element in the observable sequence that satisfies the condition in the predicate. + or is null. + No element satisfies the condition in the predicate. -or- The source sequence is empty. + + + + + Returns the first element of an observable sequence, or a default value if no such element exists. + + The type of the elements in the source sequence. + Source observable sequence. + The first element in the observable sequence, or a default value if no such element exists. + is null. + + + + + Returns the first element of an observable sequence that satisfies the condition in the predicate, or a default value if no such element exists. + + The type of the elements in the source sequence. + Source observable sequence. + A predicate function to evaluate for elements in the source sequence. + The first element in the observable sequence that satisfies the condition in the predicate, or a default value if no such element exists. + or is null. + + + + + Invokes an action for each element in the observable sequence, and blocks until the sequence is terminated. + + The type of the elements in the source sequence. + Source sequence. + Action to invoke for each element in the observable sequence. + or is null. + Because of its blocking nature, this operator is mainly used for testing. + + + + Invokes an action for each element in the observable sequence, incorporating the element's index, and blocks until the sequence is terminated. + + The type of the elements in the source sequence. + Source sequence. + Action to invoke for each element in the observable sequence. + or is null. + Because of its blocking nature, this operator is mainly used for testing. + + + + Returns an enumerator that enumerates all values of the observable sequence. + + The type of the elements in the source sequence. + An observable sequence to get an enumerator for. + The enumerator that can be used to enumerate over the elements in the observable sequence. + is null. + + + + Returns the last element of an observable sequence. + + The type of the elements in the source sequence. + Source observable sequence. + The last element in the observable sequence. + is null. + The source sequence is empty. + + + + + Returns the last element of an observable sequence that satisfies the condition in the predicate. + + The type of the elements in the source sequence. + Source observable sequence. + A predicate function to evaluate for elements in the source sequence. + The last element in the observable sequence that satisfies the condition in the predicate. + or is null. + No element satisfies the condition in the predicate. -or- The source sequence is empty. + + + + + Returns the last element of an observable sequence, or a default value if no such element exists. + + The type of the elements in the source sequence. + Source observable sequence. + The last element in the observable sequence, or a default value if no such element exists. + is null. + + + + + Returns the last element of an observable sequence that satisfies the condition in the predicate, or a default value if no such element exists. + + The type of the elements in the source sequence. + Source observable sequence. + A predicate function to evaluate for elements in the source sequence. + The last element in the observable sequence that satisfies the condition in the predicate, or a default value if no such element exists. + or is null. + + + + + Returns an enumerable sequence whose enumeration returns the latest observed element in the source observable sequence. + Enumerators on the resulting sequence will never produce the same element repeatedly, and will block until the next element becomes available. + + The type of the elements in the source sequence. + Source observable sequence. + The enumerable sequence that returns the last sampled element upon each iteration and subsequently blocks until the next element in the observable source sequence becomes available. + + + + Returns an enumerable sequence whose enumeration returns the most recently observed element in the source observable sequence, using the specified initial value in case no element has been sampled yet. + Enumerators on the resulting sequence never block and can produce the same element repeatedly. + + The type of the elements in the source sequence. + Source observable sequence. + Initial value that will be yielded by the enumerable sequence if no element has been sampled yet. + The enumerable sequence that returns the last sampled element upon each iteration. + is null. + + + + Returns an enumerable sequence whose enumeration blocks until the next element in the source observable sequence becomes available. + Enumerators on the resulting sequence will block until the next element becomes available. + + The type of the elements in the source sequence. + Source observable sequence. + The enumerable sequence that blocks upon each iteration until the next element in the observable source sequence becomes available. + is null. + + + + Returns the only element of an observable sequence, and throws an exception if there is not exactly one element in the observable sequence. + + The type of the elements in the source sequence. + Source observable sequence. + The single element in the observable sequence. + is null. + The source sequence contains more than one element. -or- The source sequence is empty. + + + + + Returns the only element of an observable sequence that satisfies the condition in the predicate, and throws an exception if there is not exactly one element matching the predicate in the observable sequence. + + The type of the elements in the source sequence. + Source observable sequence. + A predicate function to evaluate for elements in the source sequence. + The single element in the observable sequence that satisfies the condition in the predicate. + or is null. + No element satisfies the condition in the predicate. -or- More than one element satisfies the condition in the predicate. -or- The source sequence is empty. + + + + + Returns the only element of an observable sequence, or a default value if the observable sequence is empty; this method throws an exception if there is more than one element in the observable sequence. + + The type of the elements in the source sequence. + Source observable sequence. + The single element in the observable sequence, or a default value if no such element exists. + is null. + The source sequence contains more than one element. + + + + + Returns the only element of an observable sequence that satisfies the condition in the predicate, or a default value if no such element exists; this method throws an exception if there is more than one element matching the predicate in the observable sequence. + + The type of the elements in the source sequence. + Source observable sequence. + A predicate function to evaluate for elements in the source sequence. + The single element in the observable sequence that satisfies the condition in the predicate, or a default value if no such element exists. + or is null. + The sequence contains more than one element that satisfies the condition in the predicate. + + + + + Waits for the observable sequence to complete and returns the last element of the sequence. + If the sequence terminates with an OnError notification, the exception is thrown. + + The type of the elements in the source sequence. + Source observable sequence. + The last element in the observable sequence. + is null. + The source sequence is empty. + + + + Wraps the source sequence in order to run its observer callbacks on the specified scheduler. + + The type of the elements in the source sequence. + Source sequence. + Scheduler to notify observers on. + The source sequence whose observations happen on the specified scheduler. + or is null. + + This only invokes observer callbacks on a scheduler. In case the subscription and/or unsubscription actions have side-effects + that require to be run on a scheduler, use . + + + + + Wraps the source sequence in order to run its observer callbacks on the specified synchronization context. + + The type of the elements in the source sequence. + Source sequence. + Synchronization context to notify observers on. + The source sequence whose observations happen on the specified synchronization context. + or is null. + + This only invokes observer callbacks on a synchronization context. In case the subscription and/or unsubscription actions have side-effects + that require to be run on a synchronization context, use . + + + + + Wraps the source sequence in order to run its subscription and unsubscription logic on the specified scheduler. This operation is not commonly used; + see the remarks section for more information on the distinction between SubscribeOn and ObserveOn. + + The type of the elements in the source sequence. + Source sequence. + Scheduler to perform subscription and unsubscription actions on. + The source sequence whose subscriptions and unsubscriptions happen on the specified scheduler. + or is null. + + This only performs the side-effects of subscription and unsubscription on the specified scheduler. In order to invoke observer + callbacks on a scheduler, use . + + + + + Wraps the source sequence in order to run its subscription and unsubscription logic on the specified synchronization context. This operation is not commonly used; + see the remarks section for more information on the distinction between SubscribeOn and ObserveOn. + + The type of the elements in the source sequence. + Source sequence. + Synchronization context to perform subscription and unsubscription actions on. + The source sequence whose subscriptions and unsubscriptions happen on the specified synchronization context. + or is null. + + This only performs the side-effects of subscription and unsubscription on the specified synchronization context. In order to invoke observer + callbacks on a synchronization context, use . + + + + + Synchronizes the observable sequence such that observer notifications cannot be delivered concurrently. + This overload is useful to "fix" an observable sequence that exhibits concurrent callbacks on individual observers, which is invalid behavior for the query processor. + + The type of the elements in the source sequence. + Source sequence. + The source sequence whose outgoing calls to observers are synchronized. + is null. + + It's invalid behavior - according to the observer grammar - for a sequence to exhibit concurrent callbacks on a given observer. + This operator can be used to "fix" a source that doesn't conform to this rule. + + + + + Synchronizes the observable sequence such that observer notifications cannot be delivered concurrently, using the specified gate object. + This overload is useful when writing n-ary query operators, in order to prevent concurrent callbacks from different sources by synchronizing on a common gate object. + + The type of the elements in the source sequence. + Source sequence. + Gate object to synchronize each observer call on. + The source sequence whose outgoing calls to observers are synchronized on the given gate object. + or is null. + + + + Subscribes an observer to an enumerable sequence. + + The type of the elements in the source sequence. + Enumerable sequence to subscribe to. + Observer that will receive notifications from the enumerable sequence. + Disposable object that can be used to unsubscribe the observer from the enumerable + or is null. + + + + Subscribes an observer to an enumerable sequence, using the specified scheduler to run the enumeration loop. + + The type of the elements in the source sequence. + Enumerable sequence to subscribe to. + Observer that will receive notifications from the enumerable sequence. + Scheduler to perform the enumeration on. + Disposable object that can be used to unsubscribe the observer from the enumerable + or or is null. + + + + Converts an observable sequence to an enumerable sequence. + + The type of the elements in the source sequence. + An observable sequence to convert to an enumerable sequence. + The enumerable sequence containing the elements in the observable sequence. + is null. + + + + Exposes an observable sequence as an object with an -based .NET event. + + Observable source sequence. + The event source object. + is null. + + + + Exposes an observable sequence as an object with an -based .NET event. + + The type of the elements in the source sequence. + Observable source sequence. + The event source object. + is null. + + + + Exposes an observable sequence as an object with a .NET event, conforming to the standard .NET event pattern. + + The type of the event data generated by the event. + Observable source sequence. + The event source object. + is null. + + + + Converts an enumerable sequence to an observable sequence. + + The type of the elements in the source sequence. + Enumerable sequence to convert to an observable sequence. + The observable sequence whose elements are pulled from the given enumerable sequence. + is null. + + + + Converts an enumerable sequence to an observable sequence, using the specified scheduler to run the enumeration loop. + + The type of the elements in the source sequence. + Enumerable sequence to convert to an observable sequence. + Scheduler to run the enumeration of the input sequence on. + The observable sequence whose elements are pulled from the given enumerable sequence. + or is null. + + + + Creates an observable sequence from a specified Subscribe method implementation. + + The type of the elements in the produced sequence. + Implementation of the resulting observable sequence's Subscribe method. + The observable sequence with the specified implementation for the Subscribe method. + is null. + + Use of this operator is preferred over manual implementation of the interface. In case + you need a type implementing rather than an anonymous implementation, consider using + the abstract base class. + + + + + Creates an observable sequence from a specified Subscribe method implementation. + + The type of the elements in the produced sequence. + Implementation of the resulting observable sequence's Subscribe method, returning an Action delegate that will be wrapped in an IDisposable. + The observable sequence with the specified implementation for the Subscribe method. + is null. + + Use of this operator is preferred over manual implementation of the interface. In case + you need a type implementing rather than an anonymous implementation, consider using + the abstract base class. + + + + + Creates an observable sequence from a specified cancellable asynchronous Subscribe method. + The CancellationToken passed to the asynchronous Subscribe method is tied to the returned disposable subscription, allowing best-effort cancellation. + + The type of the elements in the produced sequence. + Asynchronous method used to produce elements. + The observable sequence surfacing the elements produced by the asynchronous method. + is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + When a subscription to the resulting sequence is disposed, the CancellationToken that was fed to the asynchronous subscribe function will be signaled. + + + + Creates an observable sequence from a specified asynchronous Subscribe method. + + The type of the elements in the produced sequence. + Asynchronous method used to produce elements. + The observable sequence surfacing the elements produced by the asynchronous method. + is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + + + + Creates an observable sequence from a specified cancellable asynchronous Subscribe method. + The CancellationToken passed to the asynchronous Subscribe method is tied to the returned disposable subscription, allowing best-effort cancellation. + + The type of the elements in the produced sequence. + Asynchronous method used to implement the resulting sequence's Subscribe method. + The observable sequence with the specified implementation for the Subscribe method. + is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + When a subscription to the resulting sequence is disposed, the CancellationToken that was fed to the asynchronous subscribe function will be signaled. + + + + Creates an observable sequence from a specified asynchronous Subscribe method. + + The type of the elements in the produced sequence. + Asynchronous method used to implement the resulting sequence's Subscribe method. + The observable sequence with the specified implementation for the Subscribe method. + is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + + + + Creates an observable sequence from a specified cancellable asynchronous Subscribe method. + The CancellationToken passed to the asynchronous Subscribe method is tied to the returned disposable subscription, allowing best-effort cancellation. + + The type of the elements in the produced sequence. + Asynchronous method used to implement the resulting sequence's Subscribe method, returning an Action delegate that will be wrapped in an IDisposable. + The observable sequence with the specified implementation for the Subscribe method. + is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + When a subscription to the resulting sequence is disposed, the CancellationToken that was fed to the asynchronous subscribe function will be signaled. + + + + Creates an observable sequence from a specified asynchronous Subscribe method. + + The type of the elements in the produced sequence. + Asynchronous method used to implement the resulting sequence's Subscribe method, returning an Action delegate that will be wrapped in an IDisposable. + The observable sequence with the specified implementation for the Subscribe method. + is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + + + + Returns an observable sequence that invokes the specified factory function whenever a new observer subscribes. + + The type of the elements in the sequence returned by the factory function, and in the resulting sequence. + Observable factory function to invoke for each observer that subscribes to the resulting sequence. + An observable sequence whose observers trigger an invocation of the given observable factory function. + is null. + + + + Returns an observable sequence that starts the specified asynchronous factory function whenever a new observer subscribes. + + The type of the elements in the sequence returned by the factory function, and in the resulting sequence. + Asynchronous factory function to start for each observer that subscribes to the resulting sequence. + An observable sequence whose observers trigger the given asynchronous observable factory function to be started. + is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + + + + Returns an observable sequence that starts the specified cancellable asynchronous factory function whenever a new observer subscribes. + The CancellationToken passed to the asynchronous factory function is tied to the returned disposable subscription, allowing best-effort cancellation. + + The type of the elements in the sequence returned by the factory function, and in the resulting sequence. + Asynchronous factory function to start for each observer that subscribes to the resulting sequence. + An observable sequence whose observers trigger the given asynchronous observable factory function to be started. + is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + When a subscription to the resulting sequence is disposed, the CancellationToken that was fed to the asynchronous observable factory function will be signaled. + + + + Returns an empty observable sequence. + + The type used for the type parameter of the resulting sequence. + An observable sequence with no elements. + + + + Returns an empty observable sequence. + + The type used for the type parameter of the resulting sequence. + Object solely used to infer the type of the type parameter. This parameter is typically used when creating a sequence of anonymously typed elements. + An observable sequence with no elements. + + + + Returns an empty observable sequence, using the specified scheduler to send out the single OnCompleted message. + + The type used for the type parameter of the resulting sequence. + Scheduler to send the termination call on. + An observable sequence with no elements. + is null. + + + + Returns an empty observable sequence, using the specified scheduler to send out the single OnCompleted message. + + The type used for the type parameter of the resulting sequence. + Scheduler to send the termination call on. + Object solely used to infer the type of the type parameter. This parameter is typically used when creating a sequence of anonymously typed elements. + An observable sequence with no elements. + is null. + + + + Generates an observable sequence by running a state-driven loop producing the sequence's elements. + + The type of the state used in the generator loop. + The type of the elements in the produced sequence. + Initial state. + Condition to terminate generation (upon returning false). + Iteration step function. + Selector function for results produced in the sequence. + The generated sequence. + or or is null. + + + + Generates an observable sequence by running a state-driven loop producing the sequence's elements, using the specified scheduler to send out observer messages. + + The type of the state used in the generator loop. + The type of the elements in the produced sequence. + Initial state. + Condition to terminate generation (upon returning false). + Iteration step function. + Selector function for results produced in the sequence. + Scheduler on which to run the generator loop. + The generated sequence. + or or or is null. + + + + Returns a non-terminating observable sequence, which can be used to denote an infinite duration (e.g. when using reactive joins). + + The type used for the type parameter of the resulting sequence. + An observable sequence whose observers will never get called. + + + + Returns a non-terminating observable sequence, which can be used to denote an infinite duration (e.g. when using reactive joins). + + The type used for the type parameter of the resulting sequence. + Object solely used to infer the type of the type parameter. This parameter is typically used when creating a sequence of anonymously typed elements. + An observable sequence whose observers will never get called. + + + + Generates an observable sequence of integral numbers within a specified range. + + The value of the first integer in the sequence. + The number of sequential integers to generate. + An observable sequence that contains a range of sequential integral numbers. + is less than zero. -or- + - 1 is larger than . + + + + Generates an observable sequence of integral numbers within a specified range, using the specified scheduler to send out observer messages. + + The value of the first integer in the sequence. + The number of sequential integers to generate. + Scheduler to run the generator loop on. + An observable sequence that contains a range of sequential integral numbers. + is less than zero. -or- + - 1 is larger than . + is null. + + + + Generates an observable sequence that repeats the given element infinitely. + + The type of the element that will be repeated in the produced sequence. + Element to repeat. + An observable sequence that repeats the given element infinitely. + + + + Generates an observable sequence that repeats the given element infinitely, using the specified scheduler to send out observer messages. + + The type of the element that will be repeated in the produced sequence. + Element to repeat. + Scheduler to run the producer loop on. + An observable sequence that repeats the given element infinitely. + is null. + + + + Generates an observable sequence that repeats the given element the specified number of times. + + The type of the element that will be repeated in the produced sequence. + Element to repeat. + Number of times to repeat the element. + An observable sequence that repeats the given element the specified number of times. + is less than zero. + + + + Generates an observable sequence that repeats the given element the specified number of times, using the specified scheduler to send out observer messages. + + The type of the element that will be repeated in the produced sequence. + Element to repeat. + Number of times to repeat the element. + Scheduler to run the producer loop on. + An observable sequence that repeats the given element the specified number of times. + is less than zero. + is null. + + + + Returns an observable sequence that contains a single element. + + The type of the element that will be returned in the produced sequence. + Single element in the resulting observable sequence. + An observable sequence containing the single specified element. + + + + Returns an observable sequence that contains a single element, using the specified scheduler to send out observer messages. + + The type of the element that will be returned in the produced sequence. + Single element in the resulting observable sequence. + Scheduler to send the single element on. + An observable sequence containing the single specified element. + is null. + + + + Returns an observable sequence that terminates with an exception. + + The type used for the type parameter of the resulting sequence. + Exception object used for the sequence's termination. + The observable sequence that terminates exceptionally with the specified exception object. + is null. + + + + Returns an observable sequence that terminates with an exception. + + The type used for the type parameter of the resulting sequence. + Exception object used for the sequence's termination. + Object solely used to infer the type of the type parameter. This parameter is typically used when creating a sequence of anonymously typed elements. + The observable sequence that terminates exceptionally with the specified exception object. + is null. + + + + Returns an observable sequence that terminates with an exception, using the specified scheduler to send out the single OnError message. + + The type used for the type parameter of the resulting sequence. + Exception object used for the sequence's termination. + Scheduler to send the exceptional termination call on. + The observable sequence that terminates exceptionally with the specified exception object. + or is null. + + + + Returns an observable sequence that terminates with an exception, using the specified scheduler to send out the single OnError message. + + The type used for the type parameter of the resulting sequence. + Exception object used for the sequence's termination. + Scheduler to send the exceptional termination call on. + Object solely used to infer the type of the type parameter. This parameter is typically used when creating a sequence of anonymously typed elements. + The observable sequence that terminates exceptionally with the specified exception object. + or is null. + + + + Constructs an observable sequence that depends on a resource object, whose lifetime is tied to the resulting observable sequence's lifetime. + + The type of the elements in the produced sequence. + The type of the resource used during the generation of the resulting sequence. Needs to implement . + Factory function to obtain a resource object. + Factory function to obtain an observable sequence that depends on the obtained resource. + An observable sequence whose lifetime controls the lifetime of the dependent resource object. + or is null. + + + + Constructs an observable sequence that depends on a resource object, whose lifetime is tied to the resulting observable sequence's lifetime. The resource is obtained and used through asynchronous methods. + The CancellationToken passed to the asynchronous methods is tied to the returned disposable subscription, allowing best-effort cancellation at any stage of the resource acquisition or usage. + + The type of the elements in the produced sequence. + The type of the resource used during the generation of the resulting sequence. Needs to implement . + Asynchronous factory function to obtain a resource object. + Asynchronous factory function to obtain an observable sequence that depends on the obtained resource. + An observable sequence whose lifetime controls the lifetime of the dependent resource object. + or is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + When a subscription to the resulting sequence is disposed, the CancellationToken that was fed to the asynchronous resource factory and observable factory functions will be signaled. + + + + Converts a .NET event, conforming to the standard .NET event pattern based on , to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on , to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on a supplied event delegate type, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + The delegate type of the event to be converted. + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on a supplied event delegate type, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + The delegate type of the event to be converted. + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on , to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + The delegate type of the event to be converted. + The type of the event data generated by the event. + A function used to convert the given event handler to a delegate compatible with the underlying .NET event. The resulting delegate is used in calls to the addHandler and removeHandler action parameters. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on , to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + The delegate type of the event to be converted. + The type of the event data generated by the event. + A function used to convert the given event handler to a delegate compatible with the underlying .NET event. The resulting delegate is used in calls to the addHandler and removeHandler action parameters. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on a supplied event delegate type with a strongly typed sender parameter, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + The delegate type of the event to be converted. + The type of the sender that raises the event. + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on a supplied event delegate type with a strongly typed sender parameter, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + The delegate type of the event to be converted. + The type of the sender that raises the event. + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on , to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on , to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts an instance .NET event, conforming to the standard .NET event pattern with an parameter, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the target object type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Object instance that exposes the event to convert. + Name of the event to convert. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts an instance .NET event, conforming to the standard .NET event pattern with an parameter, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the target object type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Object instance that exposes the event to convert. + Name of the event to convert. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts an instance .NET event, conforming to the standard .NET event pattern with strongly typed event arguments, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the target object type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + The type of the event data generated by the event. + Object instance that exposes the event to convert. + Name of the event to convert. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. -or- The event's second argument type is not assignable to TEventArgs. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts an instance .NET event, conforming to the standard .NET event pattern with strongly typed event arguments, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the target object type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + The type of the event data generated by the event. + Object instance that exposes the event to convert. + Name of the event to convert. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. -or- The event's second argument type is not assignable to TEventArgs. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts an instance .NET event, conforming to the standard .NET event pattern with a strongly typed sender and strongly typed event arguments, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the target object type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + The type of the sender that raises the event. + The type of the event data generated by the event. + Object instance that exposes the event to convert. + Name of the event to convert. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. -or- The event's first argument type is not assignable to TSender. -or- The event's second argument type is not assignable to TEventArgs. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts an instance .NET event, conforming to the standard .NET event pattern with a strongly typed sender and strongly typed event arguments, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the target object type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + The type of the sender that raises the event. + The type of the event data generated by the event. + Object instance that exposes the event to convert. + Name of the event to convert. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. -or- The event's first argument type is not assignable to TSender. -or- The event's second argument type is not assignable to TEventArgs. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a static .NET event, conforming to the standard .NET event pattern with an parameter, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the specified type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Type that exposes the static event to convert. + Name of the event to convert. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a static .NET event, conforming to the standard .NET event pattern with an parameter, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the specified type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Type that exposes the static event to convert. + Name of the event to convert. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a static .NET event, conforming to the standard .NET event pattern with strongly typed event arguments, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the specified type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + The type of the event data generated by the event. + Type that exposes the static event to convert. + Name of the event to convert. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. -or- The event's second argument type is not assignable to TEventArgs. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a static .NET event, conforming to the standard .NET event pattern with strongly typed event arguments, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the specified type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + The type of the event data generated by the event. + Type that exposes the static event to convert. + Name of the event to convert. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. -or- The event's second argument type is not assignable to TEventArgs. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a static .NET event, conforming to the standard .NET event pattern with a strongly typed sender and strongly typed event arguments, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the specified type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + The type of the sender that raises the event. + The type of the event data generated by the event. + Type that exposes the static event to convert. + Name of the event to convert. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. -or- The event's first argument type is not assignable to TSender. -or- The event's second argument type is not assignable to TEventArgs. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a static .NET event, conforming to the standard .NET event pattern with a strongly typed sender and strongly typed event arguments, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the specified type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + The type of the sender that raises the event. + The type of the event data generated by the event. + Type that exposes the static event to convert. + Name of the event to convert. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. -or- The event's first argument type is not assignable to TSender. -or- The event's second argument type is not assignable to TEventArgs. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a .NET event to an observable sequence, using a conversion function to obtain the event delegate. Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events conforming to the standard .NET event pattern, use any of the FromEventPattern overloads instead. + + The delegate type of the event to be converted. + The type of the event data generated by the event. + A function used to convert the given event handler to a delegate compatible with the underlying .NET event. The resulting delegate is used in calls to the addHandler and removeHandler action parameters. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains the event argument objects passed to the invocations of the underlying .NET event. + or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEvent, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEvent, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEvent calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a .NET event to an observable sequence, using a conversion function to obtain the event delegate. Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events conforming to the standard .NET event pattern, use any of the FromEventPattern overloads instead. + + The delegate type of the event to be converted. + The type of the event data generated by the event. + A function used to convert the given event handler to a delegate compatible with the underlying .NET event. The resulting delegate is used in calls to the addHandler and removeHandler action parameters. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains the event argument objects passed to the invocations of the underlying .NET event. + or or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEvent calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEvent that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a .NET event to an observable sequence, using a supplied event delegate type. Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events conforming to the standard .NET event pattern, use any of the FromEventPattern overloads instead. + + The delegate type of the event to be converted. + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains the event argument objects passed to the invocations of the underlying .NET event. + or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEvent, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEvent, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEvent calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a .NET event to an observable sequence, using a supplied event delegate type. Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events conforming to the standard .NET event pattern, use any of the FromEventPattern overloads instead. + + The delegate type of the event to be converted. + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains the event argument objects passed to the invocations of the underlying .NET event. + or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEvent calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEvent that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a generic Action-based .NET event to an observable sequence. Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events conforming to the standard .NET event pattern, use any of the FromEventPattern overloads instead. + + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains the event argument objects passed to the invocations of the underlying .NET event. + or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEvent, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEvent, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEvent calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a generic Action-based .NET event to an observable sequence. Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events conforming to the standard .NET event pattern, use any of the FromEventPattern overloads instead. + + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains the event argument objects passed to the invocations of the underlying .NET event. + or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEvent calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEvent that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts an Action-based .NET event to an observable sequence. Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events conforming to the standard .NET event pattern, use any of the FromEventPattern overloads instead. + + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains the event argument objects passed to the invocations of the underlying .NET event. + or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEvent, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEvent, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEvent calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts an Action-based .NET event to an observable sequence. Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events conforming to the standard .NET event pattern, use any of the FromEventPattern overloads instead. + + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains the event argument objects passed to the invocations of the underlying .NET event. + or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEvent calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEvent that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Invokes an action for each element in the observable sequence, and returns a Task object that will get signaled when the sequence terminates. + + The type of the elements in the source sequence. + Source sequence. + Action to invoke for each element in the observable sequence. + Task that signals the termination of the sequence. + or is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + + + + Invokes an action for each element in the observable sequence, and returns a Task object that will get signaled when the sequence terminates. + The loop can be quit prematurely by setting the specified cancellation token. + + The type of the elements in the source sequence. + Source sequence. + Action to invoke for each element in the observable sequence. + Cancellation token used to stop the loop. + Task that signals the termination of the sequence. + or is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + + + + Invokes an action for each element in the observable sequence, incorporating the element's index, and returns a Task object that will get signaled when the sequence terminates. + + The type of the elements in the source sequence. + Source sequence. + Action to invoke for each element in the observable sequence. + Task that signals the termination of the sequence. + or is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + + + + Invokes an action for each element in the observable sequence, incorporating the element's index, and returns a Task object that will get signaled when the sequence terminates. + The loop can be quit prematurely by setting the specified cancellation token. + + The type of the elements in the source sequence. + Source sequence. + Action to invoke for each element in the observable sequence. + Cancellation token used to stop the loop. + Task that signals the termination of the sequence. + or is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + + + + Uses to determine which source in to return, choosing if no match is found. + + The type of the value returned by the selector function, used to look up the resulting source. + The type of the elements in the result sequence. + Selector function invoked to determine the source to lookup in the dictionary. + Dictionary of sources to select from based on the invocation result. + Default source to select in case no matching source in is found. + The observable sequence retrieved from the dictionary based on the invocation result, or if no match is found. + or or is null. + + + + Uses to determine which source in to return, choosing an empty sequence on the specified scheduler if no match is found. + + The type of the value returned by the selector function, used to look up the resulting source. + The type of the elements in the result sequence. + Selector function invoked to determine the source to lookup in the dictionary. + Dictionary of sources to select from based on the invocation result. + Scheduler to generate an empty sequence on in case no matching source in is found. + The observable sequence retrieved from the dictionary based on the invocation result, or an empty sequence if no match is found. + or or is null. + + + + Uses to determine which source in to return, choosing an empty sequence if no match is found. + + The type of the value returned by the selector function, used to look up the resulting source. + The type of the elements in the result sequence. + Selector function invoked to determine the source to lookup in the dictionary. + Dictionary of sources to select from based on the invocation result. + The observable sequence retrieved from the dictionary based on the invocation result, or an empty sequence if no match is found. + or is null. + + + + Repeats the given as long as the specified holds, where the is evaluated after each repeated completed. + + The type of the elements in the source sequence. + Source to repeat as long as the function evaluates to true. + Condition that will be evaluated upon the completion of an iteration through the , to determine whether repetition of the source is required. + The observable sequence obtained by concatenating the sequence as long as the holds. + or is null. + + + + Concatenates the observable sequences obtained by running the for each element in the given enumerable . + + The type of the elements in the enumerable source sequence. + The type of the elements in the observable result sequence. + Enumerable source for which each element will be mapped onto an observable source that will be concatenated in the result sequence. + Function to select an observable source for each element in the . + The observable sequence obtained by concatenating the sources returned by for each element in the . + or is null. + + + + If the specified evaluates true, select the sequence. Otherwise, select the sequence. + + The type of the elements in the result sequence. + Condition evaluated to decide which sequence to return. + Sequence returned in case evaluates true. + Sequence returned in case evaluates false. + if evaluates true; otherwise. + or or is null. + + + + If the specified evaluates true, select the sequence. Otherwise, return an empty sequence. + + The type of the elements in the result sequence. + Condition evaluated to decide which sequence to return. + Sequence returned in case evaluates true. + if evaluates true; an empty sequence otherwise. + or is null. + + + + If the specified evaluates true, select the sequence. Otherwise, return an empty sequence generated on the specified scheduler. + + The type of the elements in the result sequence. + Condition evaluated to decide which sequence to return. + Sequence returned in case evaluates true. + Scheduler to generate an empty sequence on in case evaluates false. + if evaluates true; an empty sequence otherwise. + or or is null. + + + + Repeats the given as long as the specified holds, where the is evaluated before each repeated is subscribed to. + + The type of the elements in the source sequence. + Source to repeat as long as the function evaluates to true. + Condition that will be evaluated before subscription to the , to determine whether repetition of the source is required. + The observable sequence obtained by concatenating the sequence as long as the holds. + or is null. + + + + Creates a pattern that matches when both observable sequences have an available element. + + The type of the elements in the left sequence. + The type of the elements in the right sequence. + Observable sequence to match with the right sequence. + Observable sequence to match with the left sequence. + Pattern object that matches when both observable sequences have an available element. + or is null. + + + + Matches when the observable sequence has an available element and projects the element by invoking the selector function. + + The type of the elements in the source sequence. + The type of the elements in the result sequence, returned by the selector function. + Observable sequence to apply the selector on. + Selector that will be invoked for elements in the source sequence. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + or is null. + + + + Joins together the results from several patterns. + + The type of the elements in the result sequence, obtained from the specified patterns. + A series of plans created by use of the Then operator on patterns. + An observable sequence with the results from matching several patterns. + is null. + + + + Joins together the results from several patterns. + + The type of the elements in the result sequence, obtained from the specified patterns. + A series of plans created by use of the Then operator on patterns. + An observable sequence with the results form matching several patterns. + is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Fourteenth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the fifteenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Fourteenth observable source. + Fifteenth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or or or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the fifteenth source sequence. + The type of the elements in the sixteenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Fourteenth observable source. + Fifteenth observable source. + Sixteenth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or or or or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Propagates the observable sequence that reacts first. + + The type of the elements in the source sequences. + First observable sequence. + Second observable sequence. + An observable sequence that surfaces either of the given sequences, whichever reacted first. + or is null. + + + + Propagates the observable sequence that reacts first. + + The type of the elements in the source sequences. + Observable sources competing to react first. + An observable sequence that surfaces any of the given sequences, whichever reacted first. + is null. + + + + Propagates the observable sequence that reacts first. + + The type of the elements in the source sequences. + Observable sources competing to react first. + An observable sequence that surfaces any of the given sequences, whichever reacted first. + is null. + + + + Projects each element of an observable sequence into consecutive non-overlapping buffers. + + The type of the elements in the source sequence, and in the lists in the result sequence. + The type of the elements in the sequences indicating buffer closing events. + Source sequence to produce buffers over. + A function invoked to define the boundaries of the produced buffers. A new buffer is started when the previous one is closed. + An observable sequence of buffers. + or is null. + + + + Projects each element of an observable sequence into zero or more buffers. + + The type of the elements in the source sequence, and in the lists in the result sequence. + The type of the elements in the sequence indicating buffer opening events, also passed to the closing selector to obtain a sequence of buffer closing events. + The type of the elements in the sequences indicating buffer closing events. + Source sequence to produce buffers over. + Observable sequence whose elements denote the creation of new buffers. + A function invoked to define the closing of each produced buffer. + An observable sequence of buffers. + or or is null. + + + + Projects each element of an observable sequence into consecutive non-overlapping buffers. + + The type of the elements in the source sequence, and in the lists in the result sequence. + The type of the elements in the sequences indicating buffer boundary events. + Source sequence to produce buffers over. + Sequence of buffer boundary markers. The current buffer is closed and a new buffer is opened upon receiving a boundary marker. + An observable sequence of buffers. + or is null. + + + + Continues an observable sequence that is terminated by an exception of the specified type with the observable sequence produced by the handler. + + The type of the elements in the source sequence and sequences returned by the exception handler function. + The type of the exception to catch and handle. Needs to derive from . + Source sequence. + Exception handler function, producing another observable sequence. + An observable sequence containing the source sequence's elements, followed by the elements produced by the handler's resulting observable sequence in case an exception occurred. + or is null. + + + + Continues an observable sequence that is terminated by an exception with the next observable sequence. + + The type of the elements in the source sequence and handler sequence. + First observable sequence whose exception (if any) is caught. + Second observable sequence used to produce results when an error occurred in the first sequence. + An observable sequence containing the first sequence's elements, followed by the elements of the second sequence in case an exception occurred. + or is null. + + + + Continues an observable sequence that is terminated by an exception with the next observable sequence. + + The type of the elements in the source and handler sequences. + Observable sequences to catch exceptions for. + An observable sequence containing elements from consecutive source sequences until a source sequence terminates successfully. + is null. + + + + Continues an observable sequence that is terminated by an exception with the next observable sequence. + + The type of the elements in the source and handler sequences. + Observable sequences to catch exceptions for. + An observable sequence containing elements from consecutive source sequences until a source sequence terminates successfully. + is null. + + + + Merges two observable sequences into one observable sequence by using the selector function whenever one of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Function to invoke whenever either of the sources produces an element. + An observable sequence containing the result of combining elements of both sources using the specified result selector function. + or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the source sequences. + The type of the elements in the result sequence, returned by the selector function. + Observable sources. + Function to invoke whenever any of the sources produces an element. For efficiency, the input list is reused after the selector returns. Either aggregate or copy the values during the function call. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by emitting a list with the latest source elements whenever any of the observable sequences produces an element. + + The type of the elements in the source sequences, and in the lists in the result sequence. + Observable sources. + An observable sequence containing lists of the latest elements of the sources. + is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by emitting a list with the latest source elements whenever any of the observable sequences produces an element. + + The type of the elements in the source sequences, and in the lists in the result sequence. + Observable sources. + An observable sequence containing lists of the latest elements of the sources. + is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Concatenates the second observable sequence to the first observable sequence upon successful termination of the first. + + The type of the elements in the source sequences. + First observable sequence. + Second observable sequence. + An observable sequence that contains the elements of the first sequence, followed by those of the second the sequence. + or is null. + + + + Concatenates all of the specified observable sequences, as long as the previous observable sequence terminated successfully. + + The type of the elements in the source sequences. + Observable sequences to concatenate. + An observable sequence that contains the elements of each given sequence, in sequential order. + is null. + + + + Concatenates all observable sequences in the given enumerable sequence, as long as the previous observable sequence terminated successfully. + + The type of the elements in the source sequences. + Observable sequences to concatenate. + An observable sequence that contains the elements of each given sequence, in sequential order. + is null. + + + + Concatenates all inner observable sequences, as long as the previous observable sequence terminated successfully. + + The type of the elements in the source sequences. + Observable sequence of inner observable sequences. + An observable sequence that contains the elements of each observed inner sequence, in sequential order. + is null. + + + + Concatenates all task results, as long as the previous task terminated successfully. + + The type of the results produced by the tasks. + Observable sequence of tasks. + An observable sequence that contains the results of each task, in sequential order. + is null. + If the tasks support cancellation, consider manual conversion of the tasks using , followed by a concatenation operation using . + + + + Merges elements from all inner observable sequences into a single observable sequence. + + The type of the elements in the source sequences. + Observable sequence of inner observable sequences. + The observable sequence that merges the elements of the inner sequences. + is null. + + + + Merges results from all source tasks into a single observable sequence. + + The type of the results produced by the source tasks. + Observable sequence of tasks. + The observable sequence that merges the results of the source tasks. + is null. + If the tasks support cancellation, consider manual conversion of the tasks using , followed by a merge operation using . + + + + Merges elements from all inner observable sequences into a single observable sequence, limiting the number of concurrent subscriptions to inner sequences. + + The type of the elements in the source sequences. + Observable sequence of inner observable sequences. + Maximum number of inner observable sequences being subscribed to concurrently. + The observable sequence that merges the elements of the inner sequences. + is null. + is less than or equal to zero. + + + + Merges elements from all observable sequences in the given enumerable sequence into a single observable sequence, limiting the number of concurrent subscriptions to inner sequences. + + The type of the elements in the source sequences. + Enumerable sequence of observable sequences. + Maximum number of observable sequences being subscribed to concurrently. + The observable sequence that merges the elements of the observable sequences. + is null. + is less than or equal to zero. + + + + Merges elements from all observable sequences in the given enumerable sequence into a single observable sequence, limiting the number of concurrent subscriptions to inner sequences, and using the specified scheduler for enumeration of and subscription to the sources. + + The type of the elements in the source sequences. + Enumerable sequence of observable sequences. + Maximum number of observable sequences being subscribed to concurrently. + Scheduler to run the enumeration of the sequence of sources on. + The observable sequence that merges the elements of the observable sequences. + or is null. + is less than or equal to zero. + + + + Merges elements from two observable sequences into a single observable sequence. + + The type of the elements in the source sequences. + First observable sequence. + Second observable sequence. + The observable sequence that merges the elements of the given sequences. + or is null. + + + + Merges elements from two observable sequences into a single observable sequence, using the specified scheduler for enumeration of and subscription to the sources. + + The type of the elements in the source sequences. + First observable sequence. + Second observable sequence. + Scheduler used to introduce concurrency for making subscriptions to the given sequences. + The observable sequence that merges the elements of the given sequences. + or or is null. + + + + Merges elements from all of the specified observable sequences into a single observable sequence. + + The type of the elements in the source sequences. + Observable sequences. + The observable sequence that merges the elements of the observable sequences. + is null. + + + + Merges elements from all of the specified observable sequences into a single observable sequence, using the specified scheduler for enumeration of and subscription to the sources. + + The type of the elements in the source sequences. + Observable sequences. + Scheduler to run the enumeration of the sequence of sources on. + The observable sequence that merges the elements of the observable sequences. + or is null. + + + + Merges elements from all observable sequences in the given enumerable sequence into a single observable sequence. + + The type of the elements in the source sequences. + Enumerable sequence of observable sequences. + The observable sequence that merges the elements of the observable sequences. + is null. + + + + Merges elements from all observable sequences in the given enumerable sequence into a single observable sequence, using the specified scheduler for enumeration of and subscription to the sources. + + The type of the elements in the source sequences. + Enumerable sequence of observable sequences. + Scheduler to run the enumeration of the sequence of sources on. + The observable sequence that merges the elements of the observable sequences. + or is null. + + + + Concatenates the second observable sequence to the first observable sequence upon successful or exceptional termination of the first. + + The type of the elements in the source sequences. + First observable sequence whose exception (if any) is caught. + Second observable sequence used to produce results after the first sequence terminates. + An observable sequence that concatenates the first and second sequence, even if the first sequence terminates exceptionally. + or is null. + + + + Concatenates all of the specified observable sequences, even if the previous observable sequence terminated exceptionally. + + The type of the elements in the source sequences. + Observable sequences to concatenate. + An observable sequence that concatenates the source sequences, even if a sequence terminates exceptionally. + is null. + + + + Concatenates all observable sequences in the given enumerable sequence, even if the previous observable sequence terminated exceptionally. + + The type of the elements in the source sequences. + Observable sequences to concatenate. + An observable sequence that concatenates the source sequences, even if a sequence terminates exceptionally. + is null. + + + + Returns the elements from the source observable sequence only after the other observable sequence produces an element. + Starting from Rx.NET 4.0, this will subscribe to before subscribing to + so in case emits an element right away, elements from are not missed. + + The type of the elements in the source sequence. + The type of the elements in the other sequence that indicates the end of skip behavior. + Source sequence to propagate elements for. + Observable sequence that triggers propagation of elements of the source sequence. + An observable sequence containing the elements of the source sequence starting from the point the other sequence triggered propagation. + or is null. + + + + Transforms an observable sequence of observable sequences into an observable sequence + producing values only from the most recent observable sequence. + Each time a new inner observable sequence is received, unsubscribe from the + previous inner observable sequence. + + The type of the elements in the source sequences. + Observable sequence of inner observable sequences. + The observable sequence that at any point in time produces the elements of the most recent inner observable sequence that has been received. + is null. + + + + Transforms an observable sequence of tasks into an observable sequence + producing values only from the most recent observable sequence. + Each time a new task is received, the previous task's result is ignored. + + The type of the results produced by the source tasks. + Observable sequence of tasks. + The observable sequence that at any point in time produces the result of the most recent task that has been received. + is null. + If the tasks support cancellation, consider manual conversion of the tasks using , followed by a switch operation using . + + + + Returns the elements from the source observable sequence until the other observable sequence produces an element. + + The type of the elements in the source sequence. + The type of the elements in the other sequence that indicates the end of take behavior. + Source sequence to propagate elements for. + Observable sequence that terminates propagation of elements of the source sequence. + An observable sequence containing the elements of the source sequence up to the point the other sequence interrupted further propagation. + or is null. + + + + Relays elements from the source observable sequence and calls the predicate after an + emission to check if the sequence should stop after that specific item. + + The type of the elements in the source and result sequences. + The source sequence to relay elements of. + Called after each upstream item has been emitted with + that upstream item and should return true to indicate the sequence should + complete. + The observable sequence with the source elements until the stop predicate returns true. + + The following sequence will stop after the value 5 has been encountered: + + Observable.Range(1, 10) + .TakeUntil(item => item == 5) + .Subscribe(Console.WriteLine); + + + If or is null. + + + + Projects each element of an observable sequence into consecutive non-overlapping windows. + + The type of the elements in the source sequence, and in the windows in the result sequence. + The type of the elements in the sequences indicating window closing events. + Source sequence to produce windows over. + A function invoked to define the boundaries of the produced windows. A new window is started when the previous one is closed. + An observable sequence of windows. + or is null. + + + + Projects each element of an observable sequence into zero or more windows. + + The type of the elements in the source sequence, and in the windows in the result sequence. + The type of the elements in the sequence indicating window opening events, also passed to the closing selector to obtain a sequence of window closing events. + The type of the elements in the sequences indicating window closing events. + Source sequence to produce windows over. + Observable sequence whose elements denote the creation of new windows. + A function invoked to define the closing of each produced window. + An observable sequence of windows. + or or is null. + + + + Projects each element of an observable sequence into consecutive non-overlapping windows. + + The type of the elements in the source sequence, and in the windows in the result sequence. + The type of the elements in the sequences indicating window boundary events. + Source sequence to produce windows over. + Sequence of window boundary markers. The current window is closed and a new window is opened upon receiving a boundary marker. + An observable sequence of windows. + or is null. + + + + Merges two observable sequences into one observable sequence by combining each element from the first source with the latest element from the second source, if any. + Starting from Rx.NET 4.0, this will subscribe to before subscribing to to have a latest element readily available + in case emits an element right away. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Function to invoke for each element from the first source combined with the latest element from the second source, if any. + An observable sequence containing the result of combining each element of the first source with the latest element from the second source, if any, using the specified result selector function. + or or is null. + + + + Merges two observable sequences into one observable sequence by combining their elements in a pairwise fashion. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Function to invoke for each consecutive pair of elements from the first and second source. + An observable sequence containing the result of pairwise combining the elements of the first and second source using the specified result selector function. + or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the source sequences. + The type of the elements in the result sequence, returned by the selector function. + Observable sources. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or is null. + + + + Merges the specified observable sequences into one observable sequence by emitting a list with the elements of the observable sequences at corresponding indexes. + + The type of the elements in the source sequences, and in the lists in the result sequence. + Observable sources. + An observable sequence containing lists of elements at corresponding indexes. + is null. + + + + Merges the specified observable sequences into one observable sequence by emitting a list with the elements of the observable sequences at corresponding indexes. + + The type of the elements in the source sequences, and in the lists in the result sequence. + Observable sources. + An observable sequence containing lists of elements at corresponding indexes. + is null. + + + + Merges an observable sequence and an enumerable sequence into one observable sequence by using the selector function. + + The type of the elements in the first observable source sequence. + The type of the elements in the second enumerable source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second enumerable source. + Function to invoke for each consecutive pair of elements from the first and second source. + An observable sequence containing the result of pairwise combining the elements of the first and second source using the specified result selector function. + or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Fourteenth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the fifteenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Fourteenth observable source. + Fifteenth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the fifteenth source sequence. + The type of the elements in the sixteenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Fourteenth observable source. + Fifteenth observable source. + Sixteenth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or or or or or or or or or or is null. + + + + Append a value to an observable sequence. + + The type of the elements in the source sequence. + Source sequence to append the value to. + Value to append to the specified sequence. + The source sequence appended with the specified value. + is null. + + + + Append a value to an observable sequence. + + The type of the elements in the source sequence. + Source sequence to append the value to. + Value to append to the specified sequence. + Scheduler to emit the append values on. + The source sequence appended with the specified value. + is null. + + + + Hides the identity of an observable sequence. + + The type of the elements in the source sequence. + An observable sequence whose identity to hide. + An observable sequence that hides the identity of the source sequence. + is null. + + + + Projects each element of an observable sequence into consecutive non-overlapping buffers which are produced based on element count information. + + The type of the elements in the source sequence, and in the lists in the result sequence. + Source sequence to produce buffers over. + Length of each buffer. + An observable sequence of buffers. + is null. + is less than or equal to zero. + + + + Projects each element of an observable sequence into zero or more buffers which are produced based on element count information. + + The type of the elements in the source sequence, and in the lists in the result sequence. + Source sequence to produce buffers over. + Length of each buffer. + Number of elements to skip between creation of consecutive buffers. + An observable sequence of buffers. + is null. + or is less than or equal to zero. + + + + Dematerializes the explicit notification values of an observable sequence as implicit notifications. + + The type of the elements materialized in the source sequence notification objects. + An observable sequence containing explicit notification values which have to be turned into implicit notifications. + An observable sequence exhibiting the behavior corresponding to the source sequence's notification values. + is null. + + + + Returns an observable sequence that contains only distinct contiguous elements. + + The type of the elements in the source sequence. + An observable sequence to retain distinct contiguous elements for. + An observable sequence only containing the distinct contiguous elements from the source sequence. + is null. + + + + Returns an observable sequence that contains only distinct contiguous elements according to the comparer. + + The type of the elements in the source sequence. + An observable sequence to retain distinct contiguous elements for. + Equality comparer for source elements. + An observable sequence only containing the distinct contiguous elements from the source sequence. + or is null. + + + + Returns an observable sequence that contains only distinct contiguous elements according to the keySelector. + + The type of the elements in the source sequence. + The type of the discriminator key computed for each element in the source sequence. + An observable sequence to retain distinct contiguous elements for, based on a computed key value. + A function to compute the comparison key for each element. + An observable sequence only containing the distinct contiguous elements, based on a computed key value, from the source sequence. + or is null. + + + + Returns an observable sequence that contains only distinct contiguous elements according to the keySelector and the comparer. + + The type of the elements in the source sequence. + The type of the discriminator key computed for each element in the source sequence. + An observable sequence to retain distinct contiguous elements for, based on a computed key value. + A function to compute the comparison key for each element. + Equality comparer for computed key values. + An observable sequence only containing the distinct contiguous elements, based on a computed key value, from the source sequence. + or or is null. + + + + Invokes an action for each element in the observable sequence, and propagates all observer messages through the result sequence. + This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + + The type of the elements in the source sequence. + Source sequence. + Action to invoke for each element in the observable sequence. + The source sequence with the side-effecting behavior applied. + or is null. + + + + Invokes an action for each element in the observable sequence and invokes an action upon graceful termination of the observable sequence. + This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + + The type of the elements in the source sequence. + Source sequence. + Action to invoke for each element in the observable sequence. + Action to invoke upon graceful termination of the observable sequence. + The source sequence with the side-effecting behavior applied. + or or is null. + + + + Invokes an action for each element in the observable sequence and invokes an action upon exceptional termination of the observable sequence. + This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + + The type of the elements in the source sequence. + Source sequence. + Action to invoke for each element in the observable sequence. + Action to invoke upon exceptional termination of the observable sequence. + The source sequence with the side-effecting behavior applied. + or or is null. + + + + Invokes an action for each element in the observable sequence and invokes an action upon graceful or exceptional termination of the observable sequence. + This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + + The type of the elements in the source sequence. + Source sequence. + Action to invoke for each element in the observable sequence. + Action to invoke upon exceptional termination of the observable sequence. + Action to invoke upon graceful termination of the observable sequence. + The source sequence with the side-effecting behavior applied. + or or or is null. + + + + Invokes the observer's methods for each message in the source sequence. + This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + + The type of the elements in the source sequence. + Source sequence. + Observer whose methods to invoke as part of the source sequence's observation. + The source sequence with the side-effecting behavior applied. + or is null. + + + + Invokes a specified action after the source observable sequence terminates gracefully or exceptionally. + + The type of the elements in the source sequence. + Source sequence. + Action to invoke after the source observable sequence terminates. + Source sequence with the action-invoking termination behavior applied. + or is null. + + + + Ignores all elements in an observable sequence leaving only the termination messages. + + The type of the elements in the source sequence. + Source sequence. + An empty observable sequence that signals termination, successful or exceptional, of the source sequence. + is null. + + + + Materializes the implicit notifications of an observable sequence as explicit notification values. + + The type of the elements in the source sequence. + An observable sequence to get notification values for. + An observable sequence containing the materialized notification values from the source sequence. + is null. + + + + Prepend a value to an observable sequence. + + The type of the elements in the source sequence. + Source sequence to prepend the value to. + Value to prepend to the specified sequence. + The source sequence prepended with the specified value. + is null. + + + + Prepend a value to an observable sequence. + + The type of the elements in the source sequence. + Source sequence to prepend the value to. + Value to prepend to the specified sequence. + Scheduler to emit the prepend values on. + The source sequence prepended with the specified value. + is null. + + + + Repeats the observable sequence indefinitely. + + The type of the elements in the source sequence. + Observable sequence to repeat. + The observable sequence producing the elements of the given sequence repeatedly and sequentially. + is null. + + + + Repeats the observable sequence a specified number of times. + + The type of the elements in the source sequence. + Observable sequence to repeat. + Number of times to repeat the sequence. + The observable sequence producing the elements of the given sequence repeatedly. + is null. + is less than zero. + + + + Repeatedly resubscribes to the source observable after a normal completion and when the observable + returned by a handler produces an arbitrary item. + + The type of the elements in the source sequence. + The arbitrary element type signaled by the handler observable. + Observable sequence to keep repeating when it successfully terminates. + The function that is called for each observer and takes an observable sequence objects. + It should return an observable of arbitrary items that should signal that arbitrary item in + response to receiving the completion signal from the source observable. If this observable signals + a terminal event, the sequence is terminated with that signal instead. + An observable sequence producing the elements of the given sequence repeatedly while each repetition terminates successfully. + is null. + is null. + + + + Repeats the source observable sequence until it successfully terminates. + + The type of the elements in the source sequence. + Observable sequence to repeat until it successfully terminates. + An observable sequence producing the elements of the given sequence repeatedly until it terminates successfully. + is null. + + + + Repeats the source observable sequence the specified number of times or until it successfully terminates. + + The type of the elements in the source sequence. + Observable sequence to repeat until it successfully terminates. + Number of times to repeat the sequence. + An observable sequence producing the elements of the given sequence repeatedly until it terminates successfully. + is null. + is less than zero. + + + + Retries (resubscribes to) the source observable after a failure and when the observable + returned by a handler produces an arbitrary item. + + The type of the elements in the source sequence. + The arbitrary element type signaled by the handler observable. + Observable sequence to repeat until it successfully terminates. + The function that is called for each observer and takes an observable sequence of + errors. It should return an observable of arbitrary items that should signal that arbitrary item in + response to receiving the failure Exception from the source observable. If this observable signals + a terminal event, the sequence is terminated with that signal instead. + An observable sequence producing the elements of the given sequence repeatedly until it terminates successfully. + is null. + is null. + + + + Applies an accumulator function over an observable sequence and returns each intermediate result. The specified seed value is used as the initial accumulator value. + For aggregation behavior with no intermediate results, see . + + The type of the elements in the source sequence. + The type of the result of the aggregation. + An observable sequence to accumulate over. + The initial accumulator value. + An accumulator function to be invoked on each element. + An observable sequence containing the accumulated values. + or is null. + + + + Applies an accumulator function over an observable sequence and returns each intermediate result. + For aggregation behavior with no intermediate results, see . + + The type of the elements in the source sequence and the result of the aggregation. + An observable sequence to accumulate over. + An accumulator function to be invoked on each element. + An observable sequence containing the accumulated values. + or is null. + + + + Bypasses a specified number of elements at the end of an observable sequence. + + The type of the elements in the source sequence. + Source sequence. + Number of elements to bypass at the end of the source sequence. + An observable sequence containing the source sequence elements except for the bypassed ones at the end. + is null. + is less than zero. + + This operator accumulates a queue with a length enough to store the first elements. As more elements are + received, elements are taken from the front of the queue and produced on the result sequence. This causes elements to be delayed. + + + + + Prepends a sequence of values to an observable sequence. + + The type of the elements in the source sequence. + Source sequence to prepend values to. + Values to prepend to the specified sequence. + The source sequence prepended with the specified values. + or is null. + + + + Prepends a sequence of values to an observable sequence. + + The type of the elements in the source sequence. + Source sequence to prepend values to. + Values to prepend to the specified sequence. + The source sequence prepended with the specified values. + or is null. + + + + Prepends a sequence of values to an observable sequence. + + The type of the elements in the source sequence. + Source sequence to prepend values to. + Scheduler to emit the prepended values on. + Values to prepend to the specified sequence. + The source sequence prepended with the specified values. + or or is null. + + + + Prepends a sequence of values to an observable sequence. + + The type of the elements in the source sequence. + Source sequence to prepend values to. + Scheduler to emit the prepended values on. + Values to prepend to the specified sequence. + The source sequence prepended with the specified values. + or or is null. + + + + Returns a specified number of contiguous elements from the end of an observable sequence. + + The type of the elements in the source sequence. + Source sequence. + Number of elements to take from the end of the source sequence. + An observable sequence containing the specified number of elements from the end of the source sequence. + is null. + is less than zero. + + This operator accumulates a buffer with a length enough to store elements elements. Upon completion of + the source sequence, this buffer is drained on the result sequence. This causes the elements to be delayed. + + + + + Returns a specified number of contiguous elements from the end of an observable sequence, using the specified scheduler to drain the queue. + + The type of the elements in the source sequence. + Source sequence. + Number of elements to take from the end of the source sequence. + Scheduler used to drain the queue upon completion of the source sequence. + An observable sequence containing the specified number of elements from the end of the source sequence. + or is null. + is less than zero. + + This operator accumulates a buffer with a length enough to store elements elements. Upon completion of + the source sequence, this buffer is drained on the result sequence. This causes the elements to be delayed. + + + + + Returns a list with the specified number of contiguous elements from the end of an observable sequence. + + The type of the elements in the source sequence. + Source sequence. + Number of elements to take from the end of the source sequence. + An observable sequence containing a single list with the specified number of elements from the end of the source sequence. + is null. + is less than zero. + + This operator accumulates a buffer with a length enough to store elements. Upon completion of the + source sequence, this buffer is produced on the result sequence. + + + + + Projects each element of an observable sequence into consecutive non-overlapping windows which are produced based on element count information. + + The type of the elements in the source sequence, and in the windows in the result sequence. + Source sequence to produce windows over. + Length of each window. + An observable sequence of windows. + is null. + is less than or equal to zero. + + + + Projects each element of an observable sequence into zero or more windows which are produced based on element count information. + + The type of the elements in the source sequence, and in the windows in the result sequence. + Source sequence to produce windows over. + Length of each window. + Number of elements to skip between creation of consecutive windows. + An observable sequence of windows. + is null. + or is less than or equal to zero. + + + + Converts the elements of an observable sequence to the specified type. + + The type to convert the elements in the source sequence to. + The observable sequence that contains the elements to be converted. + An observable sequence that contains each element of the source sequence converted to the specified type. + is null. + + + + Returns the elements of the specified sequence or the type parameter's default value in a singleton sequence if the sequence is empty. + + The type of the elements in the source sequence (if any), whose default value will be taken if the sequence is empty. + The sequence to return a default value for if it is empty. + An observable sequence that contains the default value for the TSource type if the source is empty; otherwise, the elements of the source itself. + is null. + + + + Returns the elements of the specified sequence or the specified value in a singleton sequence if the sequence is empty. + + The type of the elements in the source sequence (if any), and the specified default value which will be taken if the sequence is empty. + The sequence to return the specified value for if it is empty. + The value to return if the sequence is empty. + An observable sequence that contains the specified default value if the source is empty; otherwise, the elements of the source itself. + is null. + + + + Returns an observable sequence that contains only distinct elements. + + The type of the elements in the source sequence. + An observable sequence to retain distinct elements for. + An observable sequence only containing the distinct elements from the source sequence. + is null. + Usage of this operator should be considered carefully due to the maintenance of an internal lookup structure which can grow large. + + + + Returns an observable sequence that contains only distinct elements according to the comparer. + + The type of the elements in the source sequence. + An observable sequence to retain distinct elements for. + Equality comparer for source elements. + An observable sequence only containing the distinct elements from the source sequence. + or is null. + Usage of this operator should be considered carefully due to the maintenance of an internal lookup structure which can grow large. + + + + Returns an observable sequence that contains only distinct elements according to the keySelector. + + The type of the elements in the source sequence. + The type of the discriminator key computed for each element in the source sequence. + An observable sequence to retain distinct elements for. + A function to compute the comparison key for each element. + An observable sequence only containing the distinct elements, based on a computed key value, from the source sequence. + or is null. + Usage of this operator should be considered carefully due to the maintenance of an internal lookup structure which can grow large. + + + + Returns an observable sequence that contains only distinct elements according to the keySelector and the comparer. + + The type of the elements in the source sequence. + The type of the discriminator key computed for each element in the source sequence. + An observable sequence to retain distinct elements for. + A function to compute the comparison key for each element. + Equality comparer for source elements. + An observable sequence only containing the distinct elements, based on a computed key value, from the source sequence. + or or is null. + Usage of this operator should be considered carefully due to the maintenance of an internal lookup structure which can grow large. + + + + Groups the elements of an observable sequence according to a specified key selector function. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + An observable sequence whose elements to group. + A function to extract the key for each element. + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + or is null. + + + + Groups the elements of an observable sequence according to a specified key selector function and comparer. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + An observable sequence whose elements to group. + A function to extract the key for each element. + An equality comparer to compare keys with. + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + or or is null. + + + + Groups the elements of an observable sequence and selects the resulting elements by using a specified function. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements within the groups computed for each element in the source sequence. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to map each source element to an element in an observable group. + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + or or is null. + + + + Groups the elements of an observable sequence according to a specified key selector function and comparer and selects the resulting elements by using a specified function. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements within the groups computed for each element in the source sequence. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to map each source element to an element in an observable group. + An equality comparer to compare keys with. + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + or or or is null. + + + + Groups the elements of an observable sequence with the specified initial capacity according to a specified key selector function. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + An observable sequence whose elements to group. + A function to extract the key for each element. + The initial number of elements that the underlying dictionary can contain. + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + or is null. + is less than 0. + + + + Groups the elements of an observable sequence with the specified initial capacity according to a specified key selector function and comparer. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + An observable sequence whose elements to group. + A function to extract the key for each element. + The initial number of elements that the underlying dictionary can contain. + An equality comparer to compare keys with. + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + or or is null. + is less than 0. + + + + Groups the elements of an observable sequence with the specified initial capacity and selects the resulting elements by using a specified function. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements within the groups computed for each element in the source sequence. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to map each source element to an element in an observable group. + The initial number of elements that the underlying dictionary can contain. + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + or or is null. + is less than 0. + + + + Groups the elements of an observable sequence with the specified initial capacity according to a specified key selector function and comparer and selects the resulting elements by using a specified function. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements within the groups computed for each element in the source sequence. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to map each source element to an element in an observable group. + The initial number of elements that the underlying dictionary can contain. + An equality comparer to compare keys with. + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + or or or is null. + is less than 0. + + + + Groups the elements of an observable sequence according to a specified key selector function and comparer and selects the resulting elements by using a specified function. + A duration selector function is used to control the lifetime of groups. When a group expires, it receives an OnCompleted notification. When a new element with the same + key value as a reclaimed group occurs, the group will be reborn with a new lifetime request. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements within the groups computed for each element in the source sequence. + The type of the elements in the duration sequences obtained for each group to denote its lifetime. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to map each source element to an element in an observable group. + A function to signal the expiration of a group. + An equality comparer to compare keys with. + + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + If a group's lifetime expires, a new group with the same key value can be created once an element with such a key value is encountered. + + or or or or is null. + + + + Groups the elements of an observable sequence according to a specified key selector function and selects the resulting elements by using a specified function. + A duration selector function is used to control the lifetime of groups. When a group expires, it receives an OnCompleted notification. When a new element with the same + key value as a reclaimed group occurs, the group will be reborn with a new lifetime request. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements within the groups computed for each element in the source sequence. + The type of the elements in the duration sequences obtained for each group to denote its lifetime. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to map each source element to an element in an observable group. + A function to signal the expiration of a group. + + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + If a group's lifetime expires, a new group with the same key value can be created once an element with such a key value is encountered. + + or or or is null. + + + + Groups the elements of an observable sequence according to a specified key selector function and comparer. + A duration selector function is used to control the lifetime of groups. When a group expires, it receives an OnCompleted notification. When a new element with the same + key value as a reclaimed group occurs, the group will be reborn with a new lifetime request. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements in the duration sequences obtained for each group to denote its lifetime. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to signal the expiration of a group. + An equality comparer to compare keys with. + + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + If a group's lifetime expires, a new group with the same key value can be created once an element with such a key value is encountered. + + or or or is null. + + + + Groups the elements of an observable sequence according to a specified key selector function. + A duration selector function is used to control the lifetime of groups. When a group expires, it receives an OnCompleted notification. When a new element with the same + key value as a reclaimed group occurs, the group will be reborn with a new lifetime request. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements in the duration sequences obtained for each group to denote its lifetime. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to signal the expiration of a group. + + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + If a group's lifetime expires, a new group with the same key value can be created once an element with such a key value is encountered. + + or or is null. + + + + Groups the elements of an observable sequence with the specified initial capacity according to a specified key selector function and comparer and selects the resulting elements by using a specified function. + A duration selector function is used to control the lifetime of groups. When a group expires, it receives an OnCompleted notification. When a new element with the same + key value as a reclaimed group occurs, the group will be reborn with a new lifetime request. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements within the groups computed for each element in the source sequence. + The type of the elements in the duration sequences obtained for each group to denote its lifetime. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to map each source element to an element in an observable group. + A function to signal the expiration of a group. + The initial number of elements that the underlying dictionary can contain. + An equality comparer to compare keys with. + + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + If a group's lifetime expires, a new group with the same key value can be created once an element with such a key value is encountered. + + or or or or is null. + is less than 0. + + + + Groups the elements of an observable sequence with the specified initial capacity according to a specified key selector function and selects the resulting elements by using a specified function. + A duration selector function is used to control the lifetime of groups. When a group expires, it receives an OnCompleted notification. When a new element with the same + key value as a reclaimed group occurs, the group will be reborn with a new lifetime request. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements within the groups computed for each element in the source sequence. + The type of the elements in the duration sequences obtained for each group to denote its lifetime. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to map each source element to an element in an observable group. + A function to signal the expiration of a group. + The initial number of elements that the underlying dictionary can contain. + + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + If a group's lifetime expires, a new group with the same key value can be created once an element with such a key value is encountered. + + or or or is null. + is less than 0. + + + + Groups the elements of an observable sequence with the specified initial capacity according to a specified key selector function and comparer. + A duration selector function is used to control the lifetime of groups. When a group expires, it receives an OnCompleted notification. When a new element with the same + key value as a reclaimed group occurs, the group will be reborn with a new lifetime request. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements in the duration sequences obtained for each group to denote its lifetime. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to signal the expiration of a group. + The initial number of elements that the underlying dictionary can contain. + An equality comparer to compare keys with. + + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + If a group's lifetime expires, a new group with the same key value can be created once an element with such a key value is encountered. + + or or or is null. + is less than 0. + + + + Groups the elements of an observable sequence with the specified initial capacity according to a specified key selector function. + A duration selector function is used to control the lifetime of groups. When a group expires, it receives an OnCompleted notification. When a new element with the same + key value as a reclaimed group occurs, the group will be reborn with a new lifetime request. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements in the duration sequences obtained for each group to denote its lifetime. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to signal the expiration of a group. + The initial number of elements that the underlying dictionary can contain. + + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + If a group's lifetime expires, a new group with the same key value can be created once an element with such a key value is encountered. + + or or is null. + is less than 0. + + + + Correlates the elements of two sequences based on overlapping durations, and groups the results. + + The type of the elements in the left source sequence. + The type of the elements in the right source sequence. + The type of the elements in the duration sequence denoting the computed duration of each element in the left source sequence. + The type of the elements in the duration sequence denoting the computed duration of each element in the right source sequence. + The type of the elements in the result sequence, obtained by invoking the result selector function for source elements with overlapping duration. + The left observable sequence to join elements for. + The right observable sequence to join elements for. + A function to select the duration of each element of the left observable sequence, used to determine overlap. + A function to select the duration of each element of the right observable sequence, used to determine overlap. + A function invoked to compute a result element for any element of the left sequence with overlapping elements from the right observable sequence. + An observable sequence that contains result elements computed from source elements that have an overlapping duration. + or or or or is null. + + + + Correlates the elements of two sequences based on overlapping durations. + + The type of the elements in the left source sequence. + The type of the elements in the right source sequence. + The type of the elements in the duration sequence denoting the computed duration of each element in the left source sequence. + The type of the elements in the duration sequence denoting the computed duration of each element in the right source sequence. + The type of the elements in the result sequence, obtained by invoking the result selector function for source elements with overlapping duration. + The left observable sequence to join elements for. + The right observable sequence to join elements for. + A function to select the duration of each element of the left observable sequence, used to determine overlap. + A function to select the duration of each element of the right observable sequence, used to determine overlap. + A function invoked to compute a result element for any two overlapping elements of the left and right observable sequences. + An observable sequence that contains result elements computed from source elements that have an overlapping duration. + or or or or is null. + + + + Filters the elements of an observable sequence based on the specified type. + + The type to filter the elements in the source sequence on. + The observable sequence that contains the elements to be filtered. + An observable sequence that contains elements from the input sequence of type TResult. + is null. + + + + Projects each element of an observable sequence into a new form. + + The type of the elements in the source sequence. + The type of the elements in the result sequence, obtained by running the selector function for each element in the source sequence. + A sequence of elements to invoke a transform function on. + A transform function to apply to each source element. + An observable sequence whose elements are the result of invoking the transform function on each element of source. + or is null. + + + + Projects each element of an observable sequence into a new form by incorporating the element's index. + + The type of the elements in the source sequence. + The type of the elements in the result sequence, obtained by running the selector function for each element in the source sequence. + A sequence of elements to invoke a transform function on. + A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + An observable sequence whose elements are the result of invoking the transform function on each element of source. + or is null. + + + + Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the other sequence and the elements in the result sequence. + An observable sequence of elements to project. + An observable sequence to project each element from the source sequence onto. + An observable sequence whose elements are the result of projecting each source element onto the other sequence and merging all the resulting sequences together. + or is null. + + + + Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected inner sequences and the elements in the merged result sequence. + An observable sequence of elements to project. + A transform function to apply to each element. + An observable sequence whose elements are the result of invoking the one-to-many transform function on each element of the input sequence. + or is null. + + + + Projects each element of an observable sequence to an observable sequence by incorporating the element's index and merges the resulting observable sequences into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected inner sequences and the elements in the merged result sequence. + An observable sequence of elements to project. + A transform function to apply to each element; the second parameter of the function represents the index of the source element. + An observable sequence whose elements are the result of invoking the one-to-many transform function on each element of the input sequence. + or is null. + + + + Projects each element of an observable sequence to a task and merges all of the task results into one observable sequence. + + The type of the elements in the source sequence. + The type of the result produced by the projected tasks and the elements in the merged result sequence. + An observable sequence of elements to project. + A transform function to apply to each element. + An observable sequence whose elements are the result of the tasks executed for each element of the input sequence. + This overload supports composition of observable sequences and tasks, without requiring manual conversion of the tasks to observable sequences using . + or is null. + + + + Projects each element of an observable sequence to a task by incorporating the element's index and merges all of the task results into one observable sequence. + + The type of the elements in the source sequence. + The type of the result produced by the projected tasks and the elements in the merged result sequence. + An observable sequence of elements to project. + A transform function to apply to each element; the second parameter of the function represents the index of the source element. + An observable sequence whose elements are the result of the tasks executed for each element of the input sequence. + This overload supports composition of observable sequences and tasks, without requiring manual conversion of the tasks to observable sequences using . + or is null. + + + + Projects each element of an observable sequence to a task with cancellation support and merges all of the task results into one observable sequence. + + The type of the elements in the source sequence. + The type of the result produced by the projected tasks and the elements in the merged result sequence. + An observable sequence of elements to project. + A transform function to apply to each element. + An observable sequence whose elements are the result of the tasks executed for each element of the input sequence. + This overload supports composition of observable sequences and tasks, without requiring manual conversion of the tasks to observable sequences using . + or is null. + + + + Projects each element of an observable sequence to a task by incorporating the element's index with cancellation support and merges all of the task results into one observable sequence. + + The type of the elements in the source sequence. + The type of the result produced by the projected tasks and the elements in the merged result sequence. + An observable sequence of elements to project. + A transform function to apply to each element; the second parameter of the function represents the index of the source element. + An observable sequence whose elements are the result of the tasks executed for each element of the input sequence. + This overload supports composition of observable sequences and tasks, without requiring manual conversion of the tasks to observable sequences using . + or is null. + + + + Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected intermediate sequences. + The type of the elements in the result sequence, obtained by using the selector to combine source sequence elements with their corresponding intermediate sequence elements. + An observable sequence of elements to project. + A transform function to apply to each element. + A transform function to apply to each element of the intermediate sequence. + An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + or or is null. + + + + Projects each element of an observable sequence to an observable sequence by incorporating the element's index, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected intermediate sequences. + The type of the elements in the result sequence, obtained by using the selector to combine source sequence elements with their corresponding intermediate sequence elements. + An observable sequence of elements to project. + A transform function to apply to each element; the second parameter of the function represents the index of the source element. + A transform function to apply to each element of the intermediate sequence; the second parameter of the function represents the index of the source element and the fourth parameter represents the index of the intermediate element. + An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + or or is null. + + + + Projects each element of an observable sequence to a task, invokes the result selector for the source element and the task result, and merges the results into one observable sequence. + + The type of the elements in the source sequence. + The type of the results produced by the projected intermediate tasks. + The type of the elements in the result sequence, obtained by using the selector to combine source sequence elements with their corresponding intermediate task results. + An observable sequence of elements to project. + A transform function to apply to each element. + A transform function to apply to each element of the intermediate sequence. + An observable sequence whose elements are the result of obtaining a task for each element of the input sequence and then mapping the task's result and its corresponding source element to a result element. + or or is null. + This overload supports using LINQ query comprehension syntax in C# and Visual Basic to compose observable sequences and tasks, without requiring manual conversion of the tasks to observable sequences using . + + + + Projects each element of an observable sequence to a task by incorporating the element's index, invokes the result selector for the source element and the task result, and merges the results into one observable sequence. + + The type of the elements in the source sequence. + The type of the results produced by the projected intermediate tasks. + The type of the elements in the result sequence, obtained by using the selector to combine source sequence elements with their corresponding intermediate task results. + An observable sequence of elements to project. + A transform function to apply to each element; the second parameter of the function represents the index of the source element. + A transform function to apply to each element of the intermediate sequence; the second parameter of the function represents the index of the source element. + An observable sequence whose elements are the result of obtaining a task for each element of the input sequence and then mapping the task's result and its corresponding source element to a result element. + or or is null. + This overload supports using LINQ query comprehension syntax in C# and Visual Basic to compose observable sequences and tasks, without requiring manual conversion of the tasks to observable sequences using . + + + + Projects each element of an observable sequence to a task with cancellation support, invokes the result selector for the source element and the task result, and merges the results into one observable sequence. + + The type of the elements in the source sequence. + The type of the results produced by the projected intermediate tasks. + The type of the elements in the result sequence, obtained by using the selector to combine source sequence elements with their corresponding intermediate task results. + An observable sequence of elements to project. + A transform function to apply to each element. + A transform function to apply to each element of the intermediate sequence. + An observable sequence whose elements are the result of obtaining a task for each element of the input sequence and then mapping the task's result and its corresponding source element to a result element. + or or is null. + This overload supports using LINQ query comprehension syntax in C# and Visual Basic to compose observable sequences and tasks, without requiring manual conversion of the tasks to observable sequences using . + + + + Projects each element of an observable sequence to a task by incorporating the element's index with cancellation support, invokes the result selector for the source element and the task result, and merges the results into one observable sequence. + + The type of the elements in the source sequence. + The type of the results produced by the projected intermediate tasks. + The type of the elements in the result sequence, obtained by using the selector to combine source sequence elements with their corresponding intermediate task results. + An observable sequence of elements to project. + A transform function to apply to each element; the second parameter of the function represents the index of the source element. + A transform function to apply to each element of the intermediate sequence; the second parameter of the function represents the index of the source element. + An observable sequence whose elements are the result of obtaining a task for each element of the input sequence and then mapping the task's result and its corresponding source element to a result element. + or or is null. + This overload supports using LINQ query comprehension syntax in C# and Visual Basic to compose observable sequences and tasks, without requiring manual conversion of the tasks to observable sequences using . + + + + Projects each notification of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected inner sequences and the elements in the merged result sequence. + An observable sequence of notifications to project. + A transform function to apply to each element. + A transform function to apply when an error occurs in the source sequence. + A transform function to apply when the end of the source sequence is reached. + An observable sequence whose elements are the result of invoking the one-to-many transform function corresponding to each notification in the input sequence. + or or or is null. + + + + Projects each notification of an observable sequence to an observable sequence by incorporating the element's index and merges the resulting observable sequences into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected inner sequences and the elements in the merged result sequence. + An observable sequence of notifications to project. + A transform function to apply to each element; the second parameter of the function represents the index of the source element. + A transform function to apply when an error occurs in the source sequence. + A transform function to apply when the end of the source sequence is reached. + An observable sequence whose elements are the result of invoking the one-to-many transform function corresponding to each notification in the input sequence. + or or or is null. + + + + Projects each element of an observable sequence to an enumerable sequence and concatenates the resulting enumerable sequences into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected inner enumerable sequences and the elements in the merged result sequence. + An observable sequence of elements to project. + A transform function to apply to each element. + An observable sequence whose elements are the result of invoking the one-to-many transform function on each element of the input sequence. + or is null. + The projected sequences are enumerated synchronously within the OnNext call of the source sequence. In order to do a concurrent, non-blocking merge, change the selector to return an observable sequence obtained using the conversion. + + + + Projects each element of an observable sequence to an enumerable sequence by incorporating the element's index and concatenates the resulting enumerable sequences into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected inner enumerable sequences and the elements in the merged result sequence. + An observable sequence of elements to project. + A transform function to apply to each element; the second parameter of the function represents the index of the source element. + An observable sequence whose elements are the result of invoking the one-to-many transform function on each element of the input sequence. + or is null. + The projected sequences are enumerated synchronously within the OnNext call of the source sequence. In order to do a concurrent, non-blocking merge, change the selector to return an observable sequence obtained using the conversion. + + + + Projects each element of an observable sequence to an enumerable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected intermediate enumerable sequences. + The type of the elements in the result sequence, obtained by using the selector to combine source sequence elements with their corresponding intermediate sequence elements. + An observable sequence of elements to project. + A transform function to apply to each element. + A transform function to apply to each element of the intermediate sequence. + An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + or or is null. + The projected sequences are enumerated synchronously within the OnNext call of the source sequence. In order to do a concurrent, non-blocking merge, change the selector to return an observable sequence obtained using the conversion. + + + + Projects each element of an observable sequence to an enumerable sequence by incorporating the element's index, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected intermediate enumerable sequences. + The type of the elements in the result sequence, obtained by using the selector to combine source sequence elements with their corresponding intermediate sequence elements. + An observable sequence of elements to project. + A transform function to apply to each element; the second parameter of the function represents the index of the source element. + A transform function to apply to each element of the intermediate sequence; the second parameter of the function represents the index of the source element and the fourth parameter represents the index of the intermediate element. + An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + or or is null. + The projected sequences are enumerated synchronously within the OnNext call of the source sequence. In order to do a concurrent, non-blocking merge, change the selector to return an observable sequence obtained using the conversion. + + + + Bypasses a specified number of elements in an observable sequence and then returns the remaining elements. + + The type of the elements in the source sequence. + The sequence to take elements from. + The number of elements to skip before returning the remaining elements. + An observable sequence that contains the elements that occur after the specified index in the input sequence. + is null. + is less than zero. + + + + Bypasses elements in an observable sequence as long as a specified condition is true and then returns the remaining elements. + + The type of the elements in the source sequence. + An observable sequence to return elements from. + A function to test each element for a condition. + An observable sequence that contains the elements from the input sequence starting at the first element in the linear series that does not pass the test specified by predicate. + or is null. + + + + Bypasses elements in an observable sequence as long as a specified condition is true and then returns the remaining elements. + The element's index is used in the logic of the predicate function. + + The type of the elements in the source sequence. + An observable sequence to return elements from. + A function to test each element for a condition; the second parameter of the function represents the index of the source element. + An observable sequence that contains the elements from the input sequence starting at the first element in the linear series that does not pass the test specified by predicate. + or is null. + + + + Returns a specified number of contiguous elements from the start of an observable sequence. + + The type of the elements in the source sequence. + The sequence to take elements from. + The number of elements to return. + An observable sequence that contains the specified number of elements from the start of the input sequence. + is null. + is less than zero. + + + + Returns a specified number of contiguous elements from the start of an observable sequence, using the specified scheduler for the edge case of Take(0). + + The type of the elements in the source sequence. + The sequence to take elements from. + The number of elements to return. + Scheduler used to produce an OnCompleted message in case count is set to 0. + An observable sequence that contains the specified number of elements from the start of the input sequence. + or is null. + is less than zero. + + + + Returns elements from an observable sequence as long as a specified condition is true. + + The type of the elements in the source sequence. + A sequence to return elements from. + A function to test each element for a condition. + An observable sequence that contains the elements from the input sequence that occur before the element at which the test no longer passes. + or is null. + + + + Returns elements from an observable sequence as long as a specified condition is true. + The element's index is used in the logic of the predicate function. + + The type of the elements in the source sequence. + A sequence to return elements from. + A function to test each element for a condition; the second parameter of the function represents the index of the source element. + An observable sequence that contains the elements from the input sequence that occur before the element at which the test no longer passes. + or is null. + + + + Filters the elements of an observable sequence based on a predicate. + + The type of the elements in the source sequence. + An observable sequence whose elements to filter. + A function to test each source element for a condition. + An observable sequence that contains elements from the input sequence that satisfy the condition. + or is null. + + + + Filters the elements of an observable sequence based on a predicate by incorporating the element's index. + + The type of the elements in the source sequence. + An observable sequence whose elements to filter. + A function to test each source element for a condition; the second parameter of the function represents the index of the source element. + An observable sequence that contains elements from the input sequence that satisfy the condition. + or is null. + + + + Projects each element of an observable sequence into consecutive non-overlapping buffers which are produced based on timing information. + + The type of the elements in the source sequence, and in the lists in the result sequence. + Source sequence to produce buffers over. + Length of each buffer. + An observable sequence of buffers. + is null. + is less than TimeSpan.Zero. + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create buffers as fast as it can. + Because all source sequence elements end up in one of the buffers, some buffers won't have a zero time span. This is a side-effect of the asynchrony introduced + by the scheduler, where the action to close the current buffer and to create a new buffer may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Projects each element of an observable sequence into consecutive non-overlapping buffers which are produced based on timing information, using the specified scheduler to run timers. + + The type of the elements in the source sequence, and in the lists in the result sequence. + Source sequence to produce buffers over. + Length of each buffer. + Scheduler to run buffering timers on. + An observable sequence of buffers. + or is null. + is less than TimeSpan.Zero. + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create buffers as fast as it can. + Because all source sequence elements end up in one of the buffers, some buffers won't have a zero time span. This is a side-effect of the asynchrony introduced + by the scheduler, where the action to close the current buffer and to create a new buffer may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Projects each element of an observable sequence into zero or more buffers which are produced based on timing information. + + The type of the elements in the source sequence, and in the lists in the result sequence. + Source sequence to produce buffers over. + Length of each buffer. + Interval between creation of consecutive buffers. + An observable sequence of buffers. + is null. + or is less than TimeSpan.Zero. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create buffers with minimum duration + length. However, some buffers won't have a zero time span. This is a side-effect of the asynchrony introduced by the scheduler, where the action to close the + current buffer may not execute immediately, despite the TimeSpan.Zero due time. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create buffers as fast as it can. + However, this doesn't mean all buffers will start at the beginning of the source sequence. This is a side-effect of the asynchrony introduced by the scheduler, + where the action to create a new buffer may not execute immediately, despite the TimeSpan.Zero due time. + + + + + + Projects each element of an observable sequence into zero or more buffers which are produced based on timing information, using the specified scheduler to run timers. + + The type of the elements in the source sequence, and in the lists in the result sequence. + Source sequence to produce buffers over. + Length of each buffer. + Interval between creation of consecutive buffers. + Scheduler to run buffering timers on. + An observable sequence of buffers. + or is null. + or is less than TimeSpan.Zero. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create buffers with minimum duration + length. However, some buffers won't have a zero time span. This is a side-effect of the asynchrony introduced by the scheduler, where the action to close the + current buffer may not execute immediately, despite the TimeSpan.Zero due time. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create buffers as fast as it can. + However, this doesn't mean all buffers will start at the beginning of the source sequence. This is a side-effect of the asynchrony introduced by the scheduler, + where the action to create a new buffer may not execute immediately, despite the TimeSpan.Zero due time. + + + + + + Projects each element of an observable sequence into a buffer that's sent out when either it's full or a given amount of time has elapsed. + A useful real-world analogy of this overload is the behavior of a ferry leaving the dock when all seats are taken, or at the scheduled time of departure, whichever event occurs first. + + The type of the elements in the source sequence, and in the lists in the result sequence. + Source sequence to produce buffers over. + Maximum time length of a window. + Maximum element count of a window. + An observable sequence of buffers. + is null. + is less than TimeSpan.Zero. -or- is less than or equal to zero. + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create buffers as fast as it can. + Because all source sequence elements end up in one of the buffers, some buffers won't have a zero time span. This is a side-effect of the asynchrony introduced + by the scheduler, where the action to close the current buffer and to create a new buffer may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Projects each element of an observable sequence into a buffer that's sent out when either it's full or a given amount of time has elapsed, using the specified scheduler to run timers. + A useful real-world analogy of this overload is the behavior of a ferry leaving the dock when all seats are taken, or at the scheduled time of departure, whichever event occurs first. + + The type of the elements in the source sequence, and in the lists in the result sequence. + Source sequence to produce buffers over. + Maximum time length of a buffer. + Maximum element count of a buffer. + Scheduler to run buffering timers on. + An observable sequence of buffers. + or is null. + is less than TimeSpan.Zero. -or- is less than or equal to zero. + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create buffers as fast as it can. + Because all source sequence elements end up in one of the buffers, some buffers won't have a zero time span. This is a side-effect of the asynchrony introduced + by the scheduler, where the action to close the current buffer and to create a new buffer may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Time shifts the observable sequence by the specified relative time duration. + The relative time intervals between the values are preserved. + + The type of the elements in the source sequence. + Source sequence to delay values for. + Relative time by which to shift the observable sequence. If this value is equal to TimeSpan.Zero, the scheduler will dispatch observer callbacks as soon as possible. + Time-shifted sequence. + is null. + is less than TimeSpan.Zero. + + + This operator is less efficient than DelaySubscription because it records all notifications and time-delays those. This allows for immediate propagation of errors. + + + Observer callbacks for the resulting sequence will be run on the default scheduler. This effect is similar to using ObserveOn. + + + Exceptions signaled by the source sequence through an OnError callback are forwarded immediately to the result sequence. Any OnNext notifications that were in the queue at the point of the OnError callback will be dropped. + In order to delay error propagation, consider using the Observable.Materialize and Observable.Dematerialize operators, or use DelaySubscription. + + + + + + Time shifts the observable sequence by the specified relative time duration, using the specified scheduler to run timers. + The relative time intervals between the values are preserved. + + The type of the elements in the source sequence. + Source sequence to delay values for. + Relative time by which to shift the observable sequence. If this value is equal to TimeSpan.Zero, the scheduler will dispatch observer callbacks as soon as possible. + Scheduler to run the delay timers on. + Time-shifted sequence. + or is null. + is less than TimeSpan.Zero. + + + This operator is less efficient than DelaySubscription because it records all notifications and time-delays those. This allows for immediate propagation of errors. + + + Observer callbacks for the resulting sequence will be run on the specified scheduler. This effect is similar to using ObserveOn. + + + Exceptions signaled by the source sequence through an OnError callback are forwarded immediately to the result sequence. Any OnNext notifications that were in the queue at the point of the OnError callback will be dropped. + + + Exceptions signaled by the source sequence through an OnError callback are forwarded immediately to the result sequence. Any OnNext notifications that were in the queue at the point of the OnError callback will be dropped. + In order to delay error propagation, consider using the Observable.Materialize and Observable.Dematerialize operators, or use DelaySubscription. + + + + + + Time shifts the observable sequence to start propagating notifications at the specified absolute time. + The relative time intervals between the values are preserved. + + The type of the elements in the source sequence. + Source sequence to delay values for. + Absolute time used to shift the observable sequence; the relative time shift gets computed upon subscription. If this value is less than or equal to DateTimeOffset.UtcNow, the scheduler will dispatch observer callbacks as soon as possible. + Time-shifted sequence. + is null. + + + This operator is less efficient than DelaySubscription because it records all notifications and time-delays those. This allows for immediate propagation of errors. + + + Observer callbacks for the resulting sequence will be run on the default scheduler. This effect is similar to using ObserveOn. + + + Exceptions signaled by the source sequence through an OnError callback are forwarded immediately to the result sequence. Any OnNext notifications that were in the queue at the point of the OnError callback will be dropped. + In order to delay error propagation, consider using the Observable.Materialize and Observable.Dematerialize operators, or use DelaySubscription. + + + + + + Time shifts the observable sequence to start propagating notifications at the specified absolute time, using the specified scheduler to run timers. + The relative time intervals between the values are preserved. + + The type of the elements in the source sequence. + Source sequence to delay values for. + Absolute time used to shift the observable sequence; the relative time shift gets computed upon subscription. If this value is less than or equal to DateTimeOffset.UtcNow, the scheduler will dispatch observer callbacks as soon as possible. + Scheduler to run the delay timers on. + Time-shifted sequence. + or is null. + + + This operator is less efficient than DelaySubscription because it records all notifications and time-delays those. This allows for immediate propagation of errors. + + + Observer callbacks for the resulting sequence will be run on the specified scheduler. This effect is similar to using ObserveOn. + + + Exceptions signaled by the source sequence through an OnError callback are forwarded immediately to the result sequence. Any OnNext notifications that were in the queue at the point of the OnError callback will be dropped. + In order to delay error propagation, consider using the Observable.Materialize and Observable.Dematerialize operators, or use DelaySubscription. + + + + + + Time shifts the observable sequence based on a delay selector function for each element. + + The type of the elements in the source sequence. + The type of the elements in the delay sequences used to denote the delay duration of each element in the source sequence. + Source sequence to delay values for. + Selector function to retrieve a sequence indicating the delay for each given element. + Time-shifted sequence. + or is null. + + + + Time shifts the observable sequence based on a subscription delay and a delay selector function for each element. + + The type of the elements in the source sequence. + The type of the elements in the delay sequences used to denote the delay duration of each element in the source sequence. + Source sequence to delay values for. + Sequence indicating the delay for the subscription to the source. + Selector function to retrieve a sequence indicating the delay for each given element. + Time-shifted sequence. + or or is null. + + + + Time shifts the observable sequence by delaying the subscription with the specified relative time duration. + + The type of the elements in the source sequence. + Source sequence to delay subscription for. + Relative time shift of the subscription. + Time-shifted sequence. + is null. + is less than TimeSpan.Zero. + + + This operator is more efficient than Delay but postpones all side-effects of subscription and affects error propagation timing. + + + The side-effects of subscribing to the source sequence will be run on the default scheduler. Observer callbacks will not be affected. + + + + + + Time shifts the observable sequence by delaying the subscription with the specified relative time duration, using the specified scheduler to run timers. + + The type of the elements in the source sequence. + Source sequence to delay subscription for. + Relative time shift of the subscription. + Scheduler to run the subscription delay timer on. + Time-shifted sequence. + or is null. + is less than TimeSpan.Zero. + + + This operator is more efficient than Delay but postpones all side-effects of subscription and affects error propagation timing. + + + The side-effects of subscribing to the source sequence will be run on the specified scheduler. Observer callbacks will not be affected. + + + + + + Time shifts the observable sequence by delaying the subscription to the specified absolute time. + + The type of the elements in the source sequence. + Source sequence to delay subscription for. + Absolute time to perform the subscription at. + Time-shifted sequence. + is null. + + + This operator is more efficient than Delay but postpones all side-effects of subscription and affects error propagation timing. + + + The side-effects of subscribing to the source sequence will be run on the default scheduler. Observer callbacks will not be affected. + + + + + + Time shifts the observable sequence by delaying the subscription to the specified absolute time, using the specified scheduler to run timers. + + The type of the elements in the source sequence. + Source sequence to delay subscription for. + Absolute time to perform the subscription at. + Scheduler to run the subscription delay timer on. + Time-shifted sequence. + or is null. + + + This operator is more efficient than Delay but postpones all side-effects of subscription and affects error propagation timing. + + + The side-effects of subscribing to the source sequence will be run on the specified scheduler. Observer callbacks will not be affected. + + + + + + Generates an observable sequence by running a state-driven and temporal loop producing the sequence's elements. + + The type of the state used in the generator loop. + The type of the elements in the produced sequence. + Initial state. + Condition to terminate generation (upon returning false). + Iteration step function. + Selector function for results produced in the sequence. + Time selector function to control the speed of values being produced each iteration. + The generated sequence. + or or or is null. + + + + Generates an observable sequence by running a state-driven and temporal loop producing the sequence's elements, using the specified scheduler to run timers and to send out observer messages. + + The type of the state used in the generator loop. + The type of the elements in the produced sequence. + Initial state. + Condition to terminate generation (upon returning false). + Iteration step function. + Selector function for results produced in the sequence. + Time selector function to control the speed of values being produced each iteration. + Scheduler on which to run the generator loop. + The generated sequence. + or or or or is null. + + + + Generates an observable sequence by running a state-driven and temporal loop producing the sequence's elements. + + The type of the state used in the generator loop. + The type of the elements in the produced sequence. + Initial state. + Condition to terminate generation (upon returning false). + Iteration step function. + Selector function for results produced in the sequence. + Time selector function to control the speed of values being produced each iteration. + The generated sequence. + or or or is null. + + + + Generates an observable sequence by running a state-driven and temporal loop producing the sequence's elements, using the specified scheduler to run timers and to send out observer messages. + + The type of the state used in the generator loop. + The type of the elements in the produced sequence. + Initial state. + Condition to terminate generation (upon returning false). + Iteration step function. + Selector function for results produced in the sequence. + Time selector function to control the speed of values being produced each iteration. + Scheduler on which to run the generator loop. + The generated sequence. + or or or or is null. + + + + Returns an observable sequence that produces a value after each period. + + Period for producing the values in the resulting sequence. If this value is equal to TimeSpan.Zero, the timer will recur as fast as possible. + An observable sequence that produces a value after each period. + is less than TimeSpan.Zero. + + Intervals are measured between the start of subsequent notifications, not between the end of the previous and the start of the next notification. + If the observer takes longer than the interval period to handle the message, the subsequent notification will be delivered immediately after the + current one has been handled. In case you need to control the time between the end and the start of consecutive notifications, consider using the + + operator instead. + + + + + Returns an observable sequence that produces a value after each period, using the specified scheduler to run timers and to send out observer messages. + + Period for producing the values in the resulting sequence. If this value is equal to TimeSpan.Zero, the timer will recur as fast as possible. + Scheduler to run the timer on. + An observable sequence that produces a value after each period. + is less than TimeSpan.Zero. + is null. + + Intervals are measured between the start of subsequent notifications, not between the end of the previous and the start of the next notification. + If the observer takes longer than the interval period to handle the message, the subsequent notification will be delivered immediately after the + current one has been handled. In case you need to control the time between the end and the start of consecutive notifications, consider using the + + operator instead. + + + + + Samples the observable sequence at each interval. + Upon each sampling tick, the latest element (if any) in the source sequence during the last sampling interval is sent to the resulting sequence. + + The type of the elements in the source sequence. + Source sequence to sample. + Interval at which to sample. If this value is equal to TimeSpan.Zero, the scheduler will continuously sample the stream. + Sampled observable sequence. + is null. + is less than TimeSpan.Zero. + + Specifying a TimeSpan.Zero value for doesn't guarantee all source sequence elements will be preserved. This is a side-effect + of the asynchrony introduced by the scheduler, where the sampling action may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Samples the observable sequence at each interval, using the specified scheduler to run sampling timers. + Upon each sampling tick, the latest element (if any) in the source sequence during the last sampling interval is sent to the resulting sequence. + + The type of the elements in the source sequence. + Source sequence to sample. + Interval at which to sample. If this value is equal to TimeSpan.Zero, the scheduler will continuously sample the stream. + Scheduler to run the sampling timer on. + Sampled observable sequence. + or is null. + is less than TimeSpan.Zero. + + Specifying a TimeSpan.Zero value for doesn't guarantee all source sequence elements will be preserved. This is a side-effect + of the asynchrony introduced by the scheduler, where the sampling action may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Samples the source observable sequence using a sampler observable sequence producing sampling ticks. + Upon each sampling tick, the latest element (if any) in the source sequence during the last sampling interval is sent to the resulting sequence. + + The type of the elements in the source sequence. + The type of the elements in the sampling sequence. + Source sequence to sample. + Sampling tick sequence. + Sampled observable sequence. + or is null. + + + + Skips elements for the specified duration from the start of the observable source sequence. + + The type of the elements in the source sequence. + Source sequence to skip elements for. + Duration for skipping elements from the start of the sequence. + An observable sequence with the elements skipped during the specified duration from the start of the source sequence. + is null. + is less than TimeSpan.Zero. + + + Specifying a TimeSpan.Zero value for doesn't guarantee no elements will be dropped from the start of the source sequence. + This is a side-effect of the asynchrony introduced by the scheduler, where the action that causes callbacks from the source sequence to be forwarded + may not execute immediately, despite the TimeSpan.Zero due time. + + + Errors produced by the source sequence are always forwarded to the result sequence, even if the error occurs before the . + + + + + + Skips elements for the specified duration from the start of the observable source sequence, using the specified scheduler to run timers. + + The type of the elements in the source sequence. + Source sequence to skip elements for. + Duration for skipping elements from the start of the sequence. + Scheduler to run the timer on. + An observable sequence with the elements skipped during the specified duration from the start of the source sequence. + or is null. + is less than TimeSpan.Zero. + + + Specifying a TimeSpan.Zero value for doesn't guarantee no elements will be dropped from the start of the source sequence. + This is a side-effect of the asynchrony introduced by the scheduler, where the action that causes callbacks from the source sequence to be forwarded + may not execute immediately, despite the TimeSpan.Zero due time. + + + Errors produced by the source sequence are always forwarded to the result sequence, even if the error occurs before the . + + + + + + Skips elements for the specified duration from the end of the observable source sequence. + + The type of the elements in the source sequence. + Source sequence to skip elements for. + Duration for skipping elements from the end of the sequence. + An observable sequence with the elements skipped during the specified duration from the end of the source sequence. + is null. + is less than TimeSpan.Zero. + + This operator accumulates a queue with a length enough to store elements received during the initial window. + As more elements are received, elements older than the specified are taken from the queue and produced on the + result sequence. This causes elements to be delayed with . + + + + + Skips elements for the specified duration from the end of the observable source sequence, using the specified scheduler to run timers. + + The type of the elements in the source sequence. + Source sequence to skip elements for. + Duration for skipping elements from the end of the sequence. + Scheduler to run the timer on. + An observable sequence with the elements skipped during the specified duration from the end of the source sequence. + or is null. + is less than TimeSpan.Zero. + + This operator accumulates a queue with a length enough to store elements received during the initial window. + As more elements are received, elements older than the specified are taken from the queue and produced on the + result sequence. This causes elements to be delayed with . + + + + + Skips elements from the observable source sequence until the specified start time. + + The type of the elements in the source sequence. + Source sequence to skip elements for. + Time to start taking elements from the source sequence. If this value is less than or equal to DateTimeOffset.UtcNow, no elements will be skipped. + An observable sequence with the elements skipped until the specified start time. + is null. + + Errors produced by the source sequence are always forwarded to the result sequence, even if the error occurs before the . + + + + + Skips elements from the observable source sequence until the specified start time, using the specified scheduler to run timers. + + The type of the elements in the source sequence. + Source sequence to skip elements for. + Time to start taking elements from the source sequence. If this value is less than or equal to DateTimeOffset.UtcNow, no elements will be skipped. + Scheduler to run the timer on. + An observable sequence with the elements skipped until the specified start time. + or is null. + + Errors produced by the source sequence are always forwarded to the result sequence, even if the error occurs before the . + + + + + Takes elements for the specified duration from the start of the observable source sequence. + + The type of the elements in the source sequence. + Source sequence to take elements from. + Duration for taking elements from the start of the sequence. + An observable sequence with the elements taken during the specified duration from the start of the source sequence. + is null. + is less than TimeSpan.Zero. + + Specifying a TimeSpan.Zero value for doesn't guarantee an empty sequence will be returned. This is a side-effect + of the asynchrony introduced by the scheduler, where the action that stops forwarding callbacks from the source sequence may not execute + immediately, despite the TimeSpan.Zero due time. + + + + + Takes elements for the specified duration from the start of the observable source sequence, using the specified scheduler to run timers. + + The type of the elements in the source sequence. + Source sequence to take elements from. + Duration for taking elements from the start of the sequence. + Scheduler to run the timer on. + An observable sequence with the elements taken during the specified duration from the start of the source sequence. + or is null. + is less than TimeSpan.Zero. + + Specifying a TimeSpan.Zero value for doesn't guarantee an empty sequence will be returned. This is a side-effect + of the asynchrony introduced by the scheduler, where the action that stops forwarding callbacks from the source sequence may not execute + immediately, despite the TimeSpan.Zero due time. + + + + + Returns elements within the specified duration from the end of the observable source sequence. + + The type of the elements in the source sequence. + Source sequence to take elements from. + Duration for taking elements from the end of the sequence. + An observable sequence with the elements taken during the specified duration from the end of the source sequence. + is null. + is less than TimeSpan.Zero. + + This operator accumulates a buffer with a length enough to store elements for any window during the lifetime of + the source sequence. Upon completion of the source sequence, this buffer is drained on the result sequence. This causes the result elements + to be delayed with . + + + + + Returns elements within the specified duration from the end of the observable source sequence, using the specified scheduler to run timers. + + The type of the elements in the source sequence. + Source sequence to take elements from. + Duration for taking elements from the end of the sequence. + Scheduler to run the timer on. + An observable sequence with the elements taken during the specified duration from the end of the source sequence. + or is null. + is less than TimeSpan.Zero. + + This operator accumulates a buffer with a length enough to store elements for any window during the lifetime of + the source sequence. Upon completion of the source sequence, this buffer is drained on the result sequence. This causes the result elements + to be delayed with . + + + + + Returns elements within the specified duration from the end of the observable source sequence, using the specified schedulers to run timers and to drain the collected elements. + + The type of the elements in the source sequence. + Source sequence to take elements from. + Duration for taking elements from the end of the sequence. + Scheduler to run the timer on. + Scheduler to drain the collected elements. + An observable sequence with the elements taken during the specified duration from the end of the source sequence. + or or is null. + is less than TimeSpan.Zero. + + This operator accumulates a buffer with a length enough to store elements for any window during the lifetime of + the source sequence. Upon completion of the source sequence, this buffer is drained on the result sequence. This causes the result elements + to be delayed with . + + + + + Returns a list with the elements within the specified duration from the end of the observable source sequence. + + The type of the elements in the source sequence. + Source sequence to take elements from. + Duration for taking elements from the end of the sequence. + An observable sequence containing a single list with the elements taken during the specified duration from the end of the source sequence. + is null. + is less than TimeSpan.Zero. + + This operator accumulates a buffer with a length enough to store elements for any window during the lifetime of + the source sequence. Upon completion of the source sequence, this buffer is produced on the result sequence. + + + + + Returns a list with the elements within the specified duration from the end of the observable source sequence, using the specified scheduler to run timers. + + The type of the elements in the source sequence. + Source sequence to take elements from. + Duration for taking elements from the end of the sequence. + Scheduler to run the timer on. + An observable sequence containing a single list with the elements taken during the specified duration from the end of the source sequence. + or is null. + is less than TimeSpan.Zero. + + This operator accumulates a buffer with a length enough to store elements for any window during the lifetime of + the source sequence. Upon completion of the source sequence, this buffer is produced on the result sequence. + + + + + Takes elements for the specified duration until the specified end time. + + The type of the elements in the source sequence. + Source sequence to take elements from. + Time to stop taking elements from the source sequence. If this value is less than or equal to DateTimeOffset.UtcNow, the result stream will complete immediately. + An observable sequence with the elements taken until the specified end time. + is null. + + + + Takes elements for the specified duration until the specified end time, using the specified scheduler to run timers. + + The type of the elements in the source sequence. + Source sequence to take elements from. + Time to stop taking elements from the source sequence. If this value is less than or equal to DateTimeOffset.UtcNow, the result stream will complete immediately. + Scheduler to run the timer on. + An observable sequence with the elements taken until the specified end time. + or is null. + + + + Ignores elements from an observable sequence which are followed by another element within a specified relative time duration. + + The type of the elements in the source sequence. + Source sequence to throttle. + Throttling duration for each element. + The throttled sequence. + is null. + is less than TimeSpan.Zero. + + + This operator throttles the source sequence by holding on to each element for the duration specified in . If another + element is produced within this time window, the element is dropped and a new timer is started for the current element, repeating this whole + process. For streams that never have gaps larger than or equal to between elements, the resulting stream won't + produce any elements. In order to reduce the volume of a stream whilst guaranteeing the periodic production of elements, consider using the + Observable.Sample set of operators. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing throttling timers to be scheduled + that are due immediately. However, this doesn't guarantee all elements will be retained in the result sequence. This is a side-effect of the + asynchrony introduced by the scheduler, where the action to forward the current element may not execute immediately, despite the TimeSpan.Zero + due time. In such cases, the next element may arrive before the scheduler gets a chance to run the throttling action. + + + + + + Ignores elements from an observable sequence which are followed by another element within a specified relative time duration, using the specified scheduler to run throttling timers. + + The type of the elements in the source sequence. + Source sequence to throttle. + Throttling duration for each element. + Scheduler to run the throttle timers on. + The throttled sequence. + or is null. + is less than TimeSpan.Zero. + + + This operator throttles the source sequence by holding on to each element for the duration specified in . If another + element is produced within this time window, the element is dropped and a new timer is started for the current element, repeating this whole + process. For streams that never have gaps larger than or equal to between elements, the resulting stream won't + produce any elements. In order to reduce the volume of a stream whilst guaranteeing the periodic production of elements, consider using the + Observable.Sample set of operators. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing throttling timers to be scheduled + that are due immediately. However, this doesn't guarantee all elements will be retained in the result sequence. This is a side-effect of the + asynchrony introduced by the scheduler, where the action to forward the current element may not execute immediately, despite the TimeSpan.Zero + due time. In such cases, the next element may arrive before the scheduler gets a chance to run the throttling action. + + + + + + Ignores elements from an observable sequence which are followed by another value within a computed throttle duration. + + The type of the elements in the source sequence. + The type of the elements in the throttle sequences selected for each element in the source sequence. + Source sequence to throttle. + Selector function to retrieve a sequence indicating the throttle duration for each given element. + The throttled sequence. + or is null. + + This operator throttles the source sequence by holding on to each element for the duration denoted by . + If another element is produced within this time window, the element is dropped and a new timer is started for the current element, repeating this + whole process. For streams where the duration computed by applying the to each element overlaps with + the occurrence of the successor element, the resulting stream won't produce any elements. In order to reduce the volume of a stream whilst + guaranteeing the periodic production of elements, consider using the Observable.Sample set of operators. + + + + + Records the time interval between consecutive elements in an observable sequence. + + The type of the elements in the source sequence. + Source sequence to record time intervals for. + An observable sequence with time interval information on elements. + is null. + + + + Records the time interval between consecutive elements in an observable sequence, using the specified scheduler to compute time intervals. + + The type of the elements in the source sequence. + Source sequence to record time intervals for. + Scheduler used to compute time intervals. + An observable sequence with time interval information on elements. + or is null. + + + + Applies a timeout policy for each element in the observable sequence. + If the next element isn't received within the specified timeout duration starting from its predecessor, a TimeoutException is propagated to the observer. + + The type of the elements in the source sequence. + Source sequence to perform a timeout for. + Maximum duration between values before a timeout occurs. + The source sequence with a TimeoutException in case of a timeout. + is null. + is less than TimeSpan.Zero. + (Asynchronous) If no element is produced within from the previous element. + + + In case you only want to timeout on the first element, consider using the + operator applied to the source sequence and a delayed sequence. Alternatively, the general-purpose overload + of Timeout, can be used. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing timeout timers to be scheduled that are due + immediately. However, this doesn't guarantee a timeout will occur, even for the first element. This is a side-effect of the asynchrony introduced by the + scheduler, where the action to propagate a timeout may not execute immediately, despite the TimeSpan.Zero due time. In such cases, the next element may + arrive before the scheduler gets a chance to run the timeout action. + + + + + + Applies a timeout policy for each element in the observable sequence, using the specified scheduler to run timeout timers. + If the next element isn't received within the specified timeout duration starting from its predecessor, a TimeoutException is propagated to the observer. + + The type of the elements in the source sequence. + Source sequence to perform a timeout for. + Maximum duration between values before a timeout occurs. + Scheduler to run the timeout timers on. + The source sequence with a TimeoutException in case of a timeout. + or is null. + is less than TimeSpan.Zero. + (Asynchronous) If no element is produced within from the previous element. + + + In case you only want to timeout on the first element, consider using the + operator applied to the source sequence and a delayed sequence. Alternatively, the general-purpose overload + of Timeout, can be used. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing timeout timers to be scheduled that are due + immediately. However, this doesn't guarantee a timeout will occur, even for the first element. This is a side-effect of the asynchrony introduced by the + scheduler, where the action to propagate a timeout may not execute immediately, despite the TimeSpan.Zero due time. In such cases, the next element may + arrive before the scheduler gets a chance to run the timeout action. + + + + + + Applies a timeout policy for each element in the observable sequence. + If the next element isn't received within the specified timeout duration starting from its predecessor, the other observable sequence is used to produce future messages from that point on. + + The type of the elements in the source sequence and the other sequence used upon a timeout. + Source sequence to perform a timeout for. + Maximum duration between values before a timeout occurs. + Sequence to return in case of a timeout. + The source sequence switching to the other sequence in case of a timeout. + or is null. + is less than TimeSpan.Zero. + + + In case you only want to timeout on the first element, consider using the + operator applied to the source sequence and a delayed sequence. Alternatively, the general-purpose overload + of Timeout, can be used. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing timeout timers to be scheduled that are due + immediately. However, this doesn't guarantee a timeout will occur, even for the first element. This is a side-effect of the asynchrony introduced by the + scheduler, where the action to propagate a timeout may not execute immediately, despite the TimeSpan.Zero due time. In such cases, the next element may + arrive before the scheduler gets a chance to run the timeout action. + + + + + + Applies a timeout policy for each element in the observable sequence, using the specified scheduler to run timeout timers. + If the next element isn't received within the specified timeout duration starting from its predecessor, the other observable sequence is used to produce future messages from that point on. + + The type of the elements in the source sequence and the other sequence used upon a timeout. + Source sequence to perform a timeout for. + Maximum duration between values before a timeout occurs. + Sequence to return in case of a timeout. + Scheduler to run the timeout timers on. + The source sequence switching to the other sequence in case of a timeout. + or or is null. + is less than TimeSpan.Zero. + + + In case you only want to timeout on the first element, consider using the + operator applied to the source sequence and a delayed sequence. Alternatively, the general-purpose overload + of Timeout, can be used. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing timeout timers to be scheduled that are due + immediately. However, this doesn't guarantee a timeout will occur, even for the first element. This is a side-effect of the asynchrony introduced by the + scheduler, where the action to propagate a timeout may not execute immediately, despite the TimeSpan.Zero due time. In such cases, the next element may + arrive before the scheduler gets a chance to run the timeout action. + + + + + + Applies a timeout policy to the observable sequence based on an absolute time. + If the sequence doesn't terminate before the specified absolute due time, a TimeoutException is propagated to the observer. + + The type of the elements in the source sequence. + Source sequence to perform a timeout for. + Time when a timeout occurs. If this value is less than or equal to DateTimeOffset.UtcNow, the timeout occurs immediately. + The source sequence with a TimeoutException in case of a timeout. + is null. + (Asynchronous) If the sequence hasn't terminated before . + + In case you only want to timeout on the first element, consider using the + operator applied to the source sequence and a delayed sequence. Alternatively, the general-purpose overload + of Timeout, can be used. + + + + + Applies a timeout policy to the observable sequence based on an absolute time, using the specified scheduler to run timeout timers. + If the sequence doesn't terminate before the specified absolute due time, a TimeoutException is propagated to the observer. + + The type of the elements in the source sequence. + Source sequence to perform a timeout for. + Time when a timeout occurs. If this value is less than or equal to DateTimeOffset.UtcNow, the timeout occurs immediately. + Scheduler to run the timeout timers on. + The source sequence with a TimeoutException in case of a timeout. + or is null. + (Asynchronous) If the sequence hasn't terminated before . + + In case you only want to timeout on the first element, consider using the + operator applied to the source sequence and a delayed sequence. Alternatively, the general-purpose overload + of Timeout, can be used. + + + + + Applies a timeout policy to the observable sequence based on an absolute time. + If the sequence doesn't terminate before the specified absolute due time, the other observable sequence is used to produce future messages from that point on. + + The type of the elements in the source sequence and the other sequence used upon a timeout. + Source sequence to perform a timeout for. + Time when a timeout occurs. If this value is less than or equal to DateTimeOffset.UtcNow, the timeout occurs immediately. + Sequence to return in case of a timeout. + The source sequence switching to the other sequence in case of a timeout. + or is null. + + In case you only want to timeout on the first element, consider using the + operator applied to the source sequence and a delayed sequence. Alternatively, the general-purpose overload + of Timeout, can be used. + + + + + Applies a timeout policy to the observable sequence based on an absolute time, using the specified scheduler to run timeout timers. + If the sequence doesn't terminate before the specified absolute due time, the other observable sequence is used to produce future messages from that point on. + + The type of the elements in the source sequence and the other sequence used upon a timeout. + Source sequence to perform a timeout for. + Time when a timeout occurs. If this value is less than or equal to DateTimeOffset.UtcNow, the timeout occurs immediately. + Sequence to return in case of a timeout. + Scheduler to run the timeout timers on. + The source sequence switching to the other sequence in case of a timeout. + or or is null. + + In case you only want to timeout on the first element, consider using the + operator applied to the source sequence and a delayed sequence. Alternatively, the general-purpose overload + of Timeout, can be used. + + + + + Applies a timeout policy to the observable sequence based on a timeout duration computed for each element. + If the next element isn't received within the computed duration starting from its predecessor, a TimeoutException is propagated to the observer. + + The type of the elements in the source sequence. + The type of the elements in the timeout sequences used to indicate the timeout duration for each element in the source sequence. + Source sequence to perform a timeout for. + Selector to retrieve an observable sequence that represents the timeout between the current element and the next element. + The source sequence with a TimeoutException in case of a timeout. + or is null. + + + + Applies a timeout policy to the observable sequence based on a timeout duration computed for each element. + If the next element isn't received within the computed duration starting from its predecessor, the other observable sequence is used to produce future messages from that point on. + + The type of the elements in the source sequence and the other sequence used upon a timeout. + The type of the elements in the timeout sequences used to indicate the timeout duration for each element in the source sequence. + Source sequence to perform a timeout for. + Selector to retrieve an observable sequence that represents the timeout between the current element and the next element. + Sequence to return in case of a timeout. + The source sequence switching to the other sequence in case of a timeout. + or or is null. + + + + Applies a timeout policy to the observable sequence based on an initial timeout duration for the first element, and a timeout duration computed for each subsequent element. + If the next element isn't received within the computed duration starting from its predecessor, a TimeoutException is propagated to the observer. + + The type of the elements in the source sequence. + The type of the elements in the timeout sequences used to indicate the timeout duration for each element in the source sequence. + Source sequence to perform a timeout for. + Observable sequence that represents the timeout for the first element. + Selector to retrieve an observable sequence that represents the timeout between the current element and the next element. + The source sequence with a TimeoutException in case of a timeout. + or or is null. + + + + Applies a timeout policy to the observable sequence based on an initial timeout duration for the first element, and a timeout duration computed for each subsequent element. + If the next element isn't received within the computed duration starting from its predecessor, the other observable sequence is used to produce future messages from that point on. + + The type of the elements in the source sequence and the other sequence used upon a timeout. + The type of the elements in the timeout sequences used to indicate the timeout duration for each element in the source sequence. + Source sequence to perform a timeout for. + Observable sequence that represents the timeout for the first element. + Selector to retrieve an observable sequence that represents the timeout between the current element and the next element. + Sequence to return in case of a timeout. + The source sequence switching to the other sequence in case of a timeout. + or or or is null. + + + + Returns an observable sequence that produces a single value after the specified relative due time has elapsed. + + Relative time at which to produce the value. If this value is less than or equal to TimeSpan.Zero, the timer will fire as soon as possible. + An observable sequence that produces a value after the due time has elapsed. + + + + Returns an observable sequence that produces a single value at the specified absolute due time. + + Absolute time at which to produce the value. If this value is less than or equal to DateTimeOffset.UtcNow, the timer will fire as soon as possible. + An observable sequence that produces a value at due time. + + + + Returns an observable sequence that periodically produces a value after the specified initial relative due time has elapsed. + + Relative time at which to produce the first value. If this value is less than or equal to TimeSpan.Zero, the timer will fire as soon as possible. + Period to produce subsequent values. If this value is equal to TimeSpan.Zero, the timer will recur as fast as possible. + An observable sequence that produces a value after due time has elapsed and then after each period. + is less than TimeSpan.Zero. + + + + Returns an observable sequence that periodically produces a value starting at the specified initial absolute due time. + + Absolute time at which to produce the first value. If this value is less than or equal to DateTimeOffset.UtcNow, the timer will fire as soon as possible. + Period to produce subsequent values. If this value is equal to TimeSpan.Zero, the timer will recur as fast as possible. + An observable sequence that produces a value at due time and then after each period. + is less than TimeSpan.Zero. + + + + Returns an observable sequence that produces a single value after the specified relative due time has elapsed, using the specified scheduler to run the timer. + + Relative time at which to produce the value. If this value is less than or equal to TimeSpan.Zero, the timer will fire as soon as possible. + Scheduler to run the timer on. + An observable sequence that produces a value after the due time has elapsed. + is null. + + + + Returns an observable sequence that produces a single value at the specified absolute due time, using the specified scheduler to run the timer. + + Absolute time at which to produce the value. If this value is less than or equal to DateTimeOffset.UtcNow, the timer will fire as soon as possible. + Scheduler to run the timer on. + An observable sequence that produces a value at due time. + is null. + + + + Returns an observable sequence that periodically produces a value after the specified initial relative due time has elapsed, using the specified scheduler to run timers. + + Relative time at which to produce the first value. If this value is less than or equal to TimeSpan.Zero, the timer will fire as soon as possible. + Period to produce subsequent values. If this value is equal to TimeSpan.Zero, the timer will recur as fast as possible. + Scheduler to run timers on. + An observable sequence that produces a value after due time has elapsed and then each period. + is less than TimeSpan.Zero. + is null. + + + + Returns an observable sequence that periodically produces a value starting at the specified initial absolute due time, using the specified scheduler to run timers. + + Absolute time at which to produce the first value. If this value is less than or equal to DateTimeOffset.UtcNow, the timer will fire as soon as possible. + Period to produce subsequent values. If this value is equal to TimeSpan.Zero, the timer will recur as fast as possible. + Scheduler to run timers on. + An observable sequence that produces a value at due time and then after each period. + is less than TimeSpan.Zero. + is null. + + + + Timestamps each element in an observable sequence using the local system clock. + + The type of the elements in the source sequence. + Source sequence to timestamp elements for. + An observable sequence with timestamp information on elements. + is null. + + + + Timestamp each element in an observable sequence using the clock of the specified scheduler. + + The type of the elements in the source sequence. + Source sequence to timestamp elements for. + Scheduler used to compute timestamps. + An observable sequence with timestamp information on elements. + or is null. + + + + Projects each element of an observable sequence into consecutive non-overlapping windows which are produced based on timing information. + + The type of the elements in the source sequence, and in the windows in the result sequence. + Source sequence to produce windows over. + Length of each window. + The sequence of windows. + is null. + is less than TimeSpan.Zero. + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create windows as fast as it can. + Because all source sequence elements end up in one of the windows, some windows won't have a zero time span. This is a side-effect of the asynchrony introduced + by the scheduler, where the action to close the current window and to create a new window may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Projects each element of an observable sequence into consecutive non-overlapping windows which are produced based on timing information, using the specified scheduler to run timers. + + The type of the elements in the source sequence, and in the windows in the result sequence. + Source sequence to produce windows over. + Length of each window. + Scheduler to run windowing timers on. + An observable sequence of windows. + or is null. + is less than TimeSpan.Zero. + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create windows as fast as it can. + Because all source sequence elements end up in one of the windows, some windows won't have a zero time span. This is a side-effect of the asynchrony introduced + by the scheduler, where the action to close the current window and to create a new window may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Projects each element of an observable sequence into zero or more windows which are produced based on timing information. + + The type of the elements in the source sequence, and in the windows in the result sequence. + Source sequence to produce windows over. + Length of each window. + Interval between creation of consecutive windows. + An observable sequence of windows. + is null. + or is less than TimeSpan.Zero. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create windows with minimum duration + length. However, some windows won't have a zero time span. This is a side-effect of the asynchrony introduced by the scheduler, where the action to close the + current window may not execute immediately, despite the TimeSpan.Zero due time. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create windows as fast as it can. + However, this doesn't mean all windows will start at the beginning of the source sequence. This is a side-effect of the asynchrony introduced by the scheduler, + where the action to create a new window may not execute immediately, despite the TimeSpan.Zero due time. + + + + + + Projects each element of an observable sequence into zero or more windows which are produced based on timing information, using the specified scheduler to run timers. + + The type of the elements in the source sequence, and in the windows in the result sequence. + Source sequence to produce windows over. + Length of each window. + Interval between creation of consecutive windows. + Scheduler to run windowing timers on. + An observable sequence of windows. + or is null. + or is less than TimeSpan.Zero. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create windows with minimum duration + length. However, some windows won't have a zero time span. This is a side-effect of the asynchrony introduced by the scheduler, where the action to close the + current window may not execute immediately, despite the TimeSpan.Zero due time. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create windows as fast as it can. + However, this doesn't mean all windows will start at the beginning of the source sequence. This is a side-effect of the asynchrony introduced by the scheduler, + where the action to create a new window may not execute immediately, despite the TimeSpan.Zero due time. + + + + + + Projects each element of an observable sequence into a window that is completed when either it's full or a given amount of time has elapsed. + A useful real-world analogy of this overload is the behavior of a ferry leaving the dock when all seats are taken, or at the scheduled time of departure, whichever event occurs first. + + The type of the elements in the source sequence, and in the windows in the result sequence. + Source sequence to produce windows over. + Maximum time length of a window. + Maximum element count of a window. + An observable sequence of windows. + is null. + is less than TimeSpan.Zero. -or- is less than or equal to zero. + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create windows as fast as it can. + Because all source sequence elements end up in one of the windows, some windows won't have a zero time span. This is a side-effect of the asynchrony introduced + by the scheduler, where the action to close the current window and to create a new window may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Projects each element of an observable sequence into a window that is completed when either it's full or a given amount of time has elapsed, using the specified scheduler to run timers. + A useful real-world analogy of this overload is the behavior of a ferry leaving the dock when all seats are taken, or at the scheduled time of departure, whichever event occurs first. + + The type of the elements in the source sequence, and in the windows in the result sequence. + Source sequence to produce windows over. + Maximum time length of a window. + Maximum element count of a window. + Scheduler to run windowing timers on. + An observable sequence of windows. + or is null. + is less than TimeSpan.Zero. -or- is less than or equal to zero. + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create windows as fast as it can. + Because all source sequence elements end up in one of the windows, some windows won't have a zero time span. This is a side-effect of the asynchrony introduced + by the scheduler, where the action to close the current window and to create a new window may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Provides a set of static methods for writing in-memory queries over observable sequences. + + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + First observable source. + Second observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + First observable source. + Second observable source. + Third observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or is null. + + + + Merges two observable sequences into one observable sequence by combining each element from the first source with the latest element from the second source, if any. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + First observable source. + Second observable source. + An observable sequence containing the result of combining each element of the first source with the latest element from the second source, if any, as a tuple value. + or is null. + + + + Merges an observable sequence and an enumerable sequence into one observable sequence of tuple values. + + The type of the elements in the first observable source sequence. + The type of the elements in the second enumerable source sequence. + First observable source. + Second enumerable source. + An observable sequence containing the result of pairwise combining the elements of the first and second source as a tuple value. + or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + First observable source. + Second observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + First observable source. + Second observable source. + Third observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or is null. + + + + Subscribes to each observable sequence returned by the iteratorMethod in sequence and returns the observable sequence of values sent to the observer given to the iteratorMethod. + + The type of the elements in the produced sequence. + Iterator method that produces elements in the resulting sequence by calling the given observer. + An observable sequence obtained by running the iterator and returning the elements that were sent to the observer. + is null. + + + + Subscribes to each observable sequence returned by the iteratorMethod in sequence and produces a Unit value on the resulting sequence for each step of the iteration. + + Iterator method that drives the resulting observable sequence. + An observable sequence obtained by running the iterator and returning Unit values for each iteration step. + is null. + + + + Expands an observable sequence by recursively invoking selector, using the specified scheduler to enumerate the queue of obtained sequences. + + The type of the elements in the source sequence and each of the recursively expanded sources obtained by running the selector function. + Source sequence with the initial elements. + Selector function to invoke for each produced element, resulting in another sequence to which the selector will be invoked recursively again. + Scheduler on which to perform the expansion by enumerating the internal queue of obtained sequences. + An observable sequence containing all the elements produced by the recursive expansion. + or or is null. + + + + Expands an observable sequence by recursively invoking selector. + + The type of the elements in the source sequence and each of the recursively expanded sources obtained by running the selector function. + Source sequence with the initial elements. + Selector function to invoke for each produced element, resulting in another sequence to which the selector will be invoked recursively again. + An observable sequence containing all the elements produced by the recursive expansion. + or is null. + + + + Runs two observable sequences in parallel and combines their last elements. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable sequence. + Second observable sequence. + Result selector function to invoke with the last elements of both sequences. + An observable sequence with the result of calling the selector function with the last elements of both input sequences. + or or is null. + + + + Runs all specified observable sequences in parallel and collects their last elements. + + The type of the elements in the source sequences. + Observable sequence to collect the last elements for. + An observable sequence with an array collecting the last elements of all the input sequences. + is null. + + + + Runs all observable sequences in the enumerable sources sequence in parallel and collect their last elements. + + The type of the elements in the source sequences. + Observable sequence to collect the last elements for. + An observable sequence with an array collecting the last elements of all the input sequences. + is null. + + + + Returns an observable sequence that is the result of invoking the selector on the source sequence, without sharing subscriptions. + This operator allows for a fluent style of writing queries that use the same sequence multiple times. + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence that will be shared in the selector function. + Selector function which can use the source sequence as many times as needed, without sharing subscriptions to the source sequence. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + or is null. + + + + Comonadic bind operator. + + + + + Comonadic bind operator. + + + + + Immediately subscribes to source and retains the elements in the observable sequence. + + The type of the elements in the source sequence. + Source sequence. + Object that's both an observable sequence and a list which can be used to access the source sequence's elements. + is null. + + + + Provides a set of static methods for writing queries over observable sequences, allowing translation to a target query language. + + + + + Gets the local query provider which will retarget Qbservable-based queries to the corresponding Observable-based query for in-memory execution upon subscription. + + + + + Converts an in-memory observable sequence into an sequence with an expression tree representing the source sequence. + + The type of the elements in the source sequence. + Source sequence. + sequence representing the given observable source sequence. + is null. + + + + Returns the input typed as an . + This operator is used to separate the part of the query that's captured as an expression tree from the part that's executed locally. + + The type of the elements in the source sequence. + An sequence to convert to an sequence. + The original source object, but typed as an . + is null. + + + + Converts an enumerable sequence to an observable sequence. + + The type of the elements in the source sequence. + Enumerable sequence to convert to an observable sequence. + The observable sequence whose elements are pulled from the given enumerable sequence. + is null. + This operator requires the source's object (see ) to implement . + + + + Converts an enumerable sequence to an observable sequence, using the specified scheduler to run the enumeration loop. + + The type of the elements in the source sequence. + Enumerable sequence to convert to an observable sequence. + Scheduler to run the enumeration of the input sequence on. + The observable sequence whose elements are pulled from the given enumerable sequence. + or is null. + This operator requires the source's object (see ) to implement . + + + + Applies an accumulator function over an observable sequence, returning the result of the aggregation as a single element in the result sequence. + For aggregation behavior with incremental intermediate results, see . + + The type of the elements in the source sequence and the result of the aggregation. + An observable sequence to aggregate over. + An accumulator function to be invoked on each element. + An observable sequence containing a single element with the final accumulator value. + + or is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Applies an accumulator function over an observable sequence, returning the result of the aggregation as a single element in the result sequence. The specified seed value is used as the initial accumulator value. + For aggregation behavior with incremental intermediate results, see . + + The type of the elements in the source sequence. + The type of the result of the aggregation. + An observable sequence to aggregate over. + The initial accumulator value. + An accumulator function to be invoked on each element. + An observable sequence containing a single element with the final accumulator value. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Applies an accumulator function over an observable sequence, returning the result of the aggregation as a single element in the result sequence. The specified seed value is used as the initial accumulator value, + and the specified result selector function is used to select the result value. + + The type of the elements in the source sequence. + The type of the accumulator value. + The type of the resulting value. + An observable sequence to aggregate over. + The initial accumulator value. + An accumulator function to be invoked on each element. + A function to transform the final accumulator value into the result value. + An observable sequence containing a single element with the final accumulator value. + + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Determines whether all elements of an observable sequence satisfy a condition. + + The type of the elements in the source sequence. + An observable sequence whose elements to apply the predicate to. + A function to test each element for a condition. + An observable sequence containing a single element determining whether all elements in the source sequence pass the test in the specified predicate. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Propagates the observable sequence that reacts first. + + The type of the elements in the source sequences. + First observable sequence. + Second observable sequence. + An observable sequence that surfaces either of the given sequences, whichever reacted first. + + or is null. + + + + Propagates the observable sequence that reacts first. + + Query provider used to construct the data source. + The type of the elements in the source sequences. + Observable sources competing to react first. + An observable sequence that surfaces any of the given sequences, whichever reacted first. + + is null. + + + + Propagates the observable sequence that reacts first. + + Query provider used to construct the data source. + The type of the elements in the source sequences. + Observable sources competing to react first. + An observable sequence that surfaces any of the given sequences, whichever reacted first. + + is null. + + + + Determines whether an observable sequence contains any elements. + + The type of the elements in the source sequence. + An observable sequence to check for non-emptiness. + An observable sequence containing a single element determining whether the source sequence contains any elements. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Determines whether any element of an observable sequence satisfies a condition. + + The type of the elements in the source sequence. + An observable sequence whose elements to apply the predicate to. + A function to test each element for a condition. + An observable sequence containing a single element determining whether any elements in the source sequence pass the test in the specified predicate. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Append a value to an observable sequence. + + The type of the elements in the source sequence. + Source sequence to append the value to. + Value to append to the specified sequence. + The source sequence appended with the specified value. + + is null. + + + + Append a value to an observable sequence. + + The type of the elements in the source sequence. + Source sequence to append the value to. + Value to append to the specified sequence. + Scheduler to emit the append values on. + The source sequence appended with the specified value. + + is null. + + + + Automatically connect the upstream IConnectableObservable at most once when the + specified number of IObservers have subscribed to this IObservable. + + Query provider used to construct the data source. + The type of the elements in the source sequence. + Connectable observable sequence. + The number of observers required to subscribe before the connection to source happens, non-positive value will trigger an immediate subscription. + If not null, the connection's IDisposable is provided to it. + An observable sequence that connects to the source at most once when the given number of observers have subscribed to it. + + is null. + + + + Computes the average of an observable sequence of values. + + A sequence of values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values. + + is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values. + + A sequence of values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values. + + is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values. + + A sequence of values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values. + + is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values. + + A sequence of values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values. + + is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of nullable values. + + A sequence of nullable values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + + is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of nullable values. + + A sequence of nullable values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + + is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of nullable values. + + A sequence of nullable values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + + is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + (Asynchronous) The sum of the elements in the source sequence is larger than . + + + + Computes the average of an observable sequence of nullable values. + + A sequence of nullable values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + + is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of nullable values. + + A sequence of nullable values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + + is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values. + + A sequence of values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values. + + is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values. + + or is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values. + + or is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values. + + or is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values. + + or is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values. + + or is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + + or is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + + or is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + + or is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + + or is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + + or is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Projects each element of an observable sequence into consecutive non-overlapping buffers which are produced based on element count information. + + The type of the elements in the source sequence, and in the lists in the result sequence. + Source sequence to produce buffers over. + Length of each buffer. + An observable sequence of buffers. + + is null. + + is less than or equal to zero. + + + + Projects each element of an observable sequence into zero or more buffers which are produced based on element count information. + + The type of the elements in the source sequence, and in the lists in the result sequence. + Source sequence to produce buffers over. + Length of each buffer. + Number of elements to skip between creation of consecutive buffers. + An observable sequence of buffers. + + is null. + + or is less than or equal to zero. + + + + Projects each element of an observable sequence into consecutive non-overlapping buffers which are produced based on timing information. + + The type of the elements in the source sequence, and in the lists in the result sequence. + Source sequence to produce buffers over. + Length of each buffer. + An observable sequence of buffers. + + is null. + + is less than TimeSpan.Zero. + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create buffers as fast as it can. + Because all source sequence elements end up in one of the buffers, some buffers won't have a zero time span. This is a side-effect of the asynchrony introduced + by the scheduler, where the action to close the current buffer and to create a new buffer may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Projects each element of an observable sequence into a buffer that's sent out when either it's full or a given amount of time has elapsed. + A useful real-world analogy of this overload is the behavior of a ferry leaving the dock when all seats are taken, or at the scheduled time of departure, whichever event occurs first. + + The type of the elements in the source sequence, and in the lists in the result sequence. + Source sequence to produce buffers over. + Maximum time length of a window. + Maximum element count of a window. + An observable sequence of buffers. + + is null. + + is less than TimeSpan.Zero. -or- is less than or equal to zero. + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create buffers as fast as it can. + Because all source sequence elements end up in one of the buffers, some buffers won't have a zero time span. This is a side-effect of the asynchrony introduced + by the scheduler, where the action to close the current buffer and to create a new buffer may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Projects each element of an observable sequence into a buffer that's sent out when either it's full or a given amount of time has elapsed, using the specified scheduler to run timers. + A useful real-world analogy of this overload is the behavior of a ferry leaving the dock when all seats are taken, or at the scheduled time of departure, whichever event occurs first. + + The type of the elements in the source sequence, and in the lists in the result sequence. + Source sequence to produce buffers over. + Maximum time length of a buffer. + Maximum element count of a buffer. + Scheduler to run buffering timers on. + An observable sequence of buffers. + + or is null. + + is less than TimeSpan.Zero. -or- is less than or equal to zero. + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create buffers as fast as it can. + Because all source sequence elements end up in one of the buffers, some buffers won't have a zero time span. This is a side-effect of the asynchrony introduced + by the scheduler, where the action to close the current buffer and to create a new buffer may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Projects each element of an observable sequence into consecutive non-overlapping buffers which are produced based on timing information, using the specified scheduler to run timers. + + The type of the elements in the source sequence, and in the lists in the result sequence. + Source sequence to produce buffers over. + Length of each buffer. + Scheduler to run buffering timers on. + An observable sequence of buffers. + + or is null. + + is less than TimeSpan.Zero. + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create buffers as fast as it can. + Because all source sequence elements end up in one of the buffers, some buffers won't have a zero time span. This is a side-effect of the asynchrony introduced + by the scheduler, where the action to close the current buffer and to create a new buffer may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Projects each element of an observable sequence into zero or more buffers which are produced based on timing information. + + The type of the elements in the source sequence, and in the lists in the result sequence. + Source sequence to produce buffers over. + Length of each buffer. + Interval between creation of consecutive buffers. + An observable sequence of buffers. + + is null. + + or is less than TimeSpan.Zero. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create buffers with minimum duration + length. However, some buffers won't have a zero time span. This is a side-effect of the asynchrony introduced by the scheduler, where the action to close the + current buffer may not execute immediately, despite the TimeSpan.Zero due time. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create buffers as fast as it can. + However, this doesn't mean all buffers will start at the beginning of the source sequence. This is a side-effect of the asynchrony introduced by the scheduler, + where the action to create a new buffer may not execute immediately, despite the TimeSpan.Zero due time. + + + + + + Projects each element of an observable sequence into zero or more buffers which are produced based on timing information, using the specified scheduler to run timers. + + The type of the elements in the source sequence, and in the lists in the result sequence. + Source sequence to produce buffers over. + Length of each buffer. + Interval between creation of consecutive buffers. + Scheduler to run buffering timers on. + An observable sequence of buffers. + + or is null. + + or is less than TimeSpan.Zero. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create buffers with minimum duration + length. However, some buffers won't have a zero time span. This is a side-effect of the asynchrony introduced by the scheduler, where the action to close the + current buffer may not execute immediately, despite the TimeSpan.Zero due time. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create buffers as fast as it can. + However, this doesn't mean all buffers will start at the beginning of the source sequence. This is a side-effect of the asynchrony introduced by the scheduler, + where the action to create a new buffer may not execute immediately, despite the TimeSpan.Zero due time. + + + + + + Projects each element of an observable sequence into consecutive non-overlapping buffers. + + The type of the elements in the source sequence, and in the lists in the result sequence. + The type of the elements in the sequences indicating buffer boundary events. + Source sequence to produce buffers over. + Sequence of buffer boundary markers. The current buffer is closed and a new buffer is opened upon receiving a boundary marker. + An observable sequence of buffers. + + or is null. + + + + Projects each element of an observable sequence into consecutive non-overlapping buffers. + + The type of the elements in the source sequence, and in the lists in the result sequence. + The type of the elements in the sequences indicating buffer closing events. + Source sequence to produce buffers over. + A function invoked to define the boundaries of the produced buffers. A new buffer is started when the previous one is closed. + An observable sequence of buffers. + + or is null. + + + + Projects each element of an observable sequence into zero or more buffers. + + The type of the elements in the source sequence, and in the lists in the result sequence. + The type of the elements in the sequence indicating buffer opening events, also passed to the closing selector to obtain a sequence of buffer closing events. + The type of the elements in the sequences indicating buffer closing events. + Source sequence to produce buffers over. + Observable sequence whose elements denote the creation of new buffers. + A function invoked to define the closing of each produced buffer. + An observable sequence of buffers. + + or or is null. + + + + Uses to determine which source in to return, choosing an empty sequence if no match is found. + + Query provider used to construct the data source. + The type of the value returned by the selector function, used to look up the resulting source. + The type of the elements in the result sequence. + Selector function invoked to determine the source to lookup in the dictionary. + Dictionary of sources to select from based on the invocation result. + The observable sequence retrieved from the dictionary based on the invocation result, or an empty sequence if no match is found. + + or is null. + + + + Uses to determine which source in to return, choosing if no match is found. + + Query provider used to construct the data source. + The type of the value returned by the selector function, used to look up the resulting source. + The type of the elements in the result sequence. + Selector function invoked to determine the source to lookup in the dictionary. + Dictionary of sources to select from based on the invocation result. + Default source to select in case no matching source in is found. + The observable sequence retrieved from the dictionary based on the invocation result, or if no match is found. + + or or is null. + + + + Uses to determine which source in to return, choosing an empty sequence on the specified scheduler if no match is found. + + Query provider used to construct the data source. + The type of the value returned by the selector function, used to look up the resulting source. + The type of the elements in the result sequence. + Selector function invoked to determine the source to lookup in the dictionary. + Dictionary of sources to select from based on the invocation result. + Scheduler to generate an empty sequence on in case no matching source in is found. + The observable sequence retrieved from the dictionary based on the invocation result, or an empty sequence if no match is found. + + or or is null. + + + + Converts the elements of an observable sequence to the specified type. + + The type to convert the elements in the source sequence to. + The observable sequence that contains the elements to be converted. + An observable sequence that contains each element of the source sequence converted to the specified type. + + is null. + + + + Continues an observable sequence that is terminated by an exception with the next observable sequence. + + The type of the elements in the source sequence and handler sequence. + First observable sequence whose exception (if any) is caught. + Second observable sequence used to produce results when an error occurred in the first sequence. + An observable sequence containing the first sequence's elements, followed by the elements of the second sequence in case an exception occurred. + + or is null. + + + + Continues an observable sequence that is terminated by an exception with the next observable sequence. + + Query provider used to construct the data source. + The type of the elements in the source and handler sequences. + Observable sequences to catch exceptions for. + An observable sequence containing elements from consecutive source sequences until a source sequence terminates successfully. + + is null. + + + + Continues an observable sequence that is terminated by an exception with the next observable sequence. + + Query provider used to construct the data source. + The type of the elements in the source and handler sequences. + Observable sequences to catch exceptions for. + An observable sequence containing elements from consecutive source sequences until a source sequence terminates successfully. + + is null. + + + + Continues an observable sequence that is terminated by an exception of the specified type with the observable sequence produced by the handler. + + The type of the elements in the source sequence and sequences returned by the exception handler function. + The type of the exception to catch and handle. Needs to derive from . + Source sequence. + Exception handler function, producing another observable sequence. + An observable sequence containing the source sequence's elements, followed by the elements produced by the handler's resulting observable sequence in case an exception occurred. + + or is null. + + + + Produces an enumerable sequence of consecutive (possibly empty) chunks of the source sequence. + + The type of the elements in the source sequence. + Source observable sequence. + The enumerable sequence that returns consecutive (possibly empty) chunks upon each iteration. + + is null. + This operator requires the source's object (see ) to implement . + + + + Produces an enumerable sequence that returns elements collected/aggregated from the source sequence between consecutive iterations. + + The type of the elements in the source sequence. + The type of the elements produced by the merge operation during collection. + Source observable sequence. + Factory to create the initial collector object. + Merges a sequence element with the current collector. + Factory to replace the current collector by a new collector. + The enumerable sequence that returns collected/aggregated elements from the source sequence upon each iteration. + + or or or is null. + This operator requires the source's object (see ) to implement . + + + + Produces an enumerable sequence that returns elements collected/aggregated from the source sequence between consecutive iterations. + + The type of the elements in the source sequence. + The type of the elements produced by the merge operation during collection. + Source observable sequence. + Factory to create a new collector object. + Merges a sequence element with the current collector. + The enumerable sequence that returns collected/aggregated elements from the source sequence upon each iteration. + + or or is null. + This operator requires the source's object (see ) to implement . + + + + Merges the specified observable sequences into one observable sequence by emitting a list with the latest source elements whenever any of the observable sequences produces an element. + + Query provider used to construct the data source. + The type of the elements in the source sequences, and in the lists in the result sequence. + Observable sources. + An observable sequence containing lists of the latest elements of the sources. + + is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by emitting a list with the latest source elements whenever any of the observable sequences produces an element. + + Query provider used to construct the data source. + The type of the elements in the source sequences, and in the lists in the result sequence. + Observable sources. + An observable sequence containing lists of the latest elements of the sources. + + is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + Query provider used to construct the data source. + The type of the elements in the source sequences. + The type of the elements in the result sequence, returned by the selector function. + Observable sources. + Function to invoke whenever any of the sources produces an element. For efficiency, the input list is reused after the selector returns. Either aggregate or copy the values during the function call. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges two observable sequences into one observable sequence by using the selector function whenever one of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Function to invoke whenever either of the sources produces an element. + An observable sequence containing the result of combining elements of both sources using the specified result selector function. + + or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Fourteenth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the fifteenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Fourteenth observable source. + Fifteenth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or or or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the fifteenth source sequence. + The type of the elements in the sixteenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Fourteenth observable source. + Fifteenth observable source. + Sixteenth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or or or or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Concatenates the second observable sequence to the first observable sequence upon successful termination of the first. + + The type of the elements in the source sequences. + First observable sequence. + Second observable sequence. + An observable sequence that contains the elements of the first sequence, followed by those of the second the sequence. + + or is null. + + + + Concatenates all of the specified observable sequences, as long as the previous observable sequence terminated successfully. + + Query provider used to construct the data source. + The type of the elements in the source sequences. + Observable sequences to concatenate. + An observable sequence that contains the elements of each given sequence, in sequential order. + + is null. + + + + Concatenates all observable sequences in the given enumerable sequence, as long as the previous observable sequence terminated successfully. + + Query provider used to construct the data source. + The type of the elements in the source sequences. + Observable sequences to concatenate. + An observable sequence that contains the elements of each given sequence, in sequential order. + + is null. + + + + Concatenates all inner observable sequences, as long as the previous observable sequence terminated successfully. + + The type of the elements in the source sequences. + Observable sequence of inner observable sequences. + An observable sequence that contains the elements of each observed inner sequence, in sequential order. + + is null. + + + + Concatenates all task results, as long as the previous task terminated successfully. + + The type of the results produced by the tasks. + Observable sequence of tasks. + An observable sequence that contains the results of each task, in sequential order. + + is null. + If the tasks support cancellation, consider manual conversion of the tasks using , followed by a concatenation operation using . + + + + Determines whether an observable sequence contains a specified element by using the default equality comparer. + + The type of the elements in the source sequence. + An observable sequence in which to locate a value. + The value to locate in the source sequence. + An observable sequence containing a single element determining whether the source sequence contains an element that has the specified value. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Determines whether an observable sequence contains a specified element by using a specified System.Collections.Generic.IEqualityComparer{T}. + + The type of the elements in the source sequence. + An observable sequence in which to locate a value. + The value to locate in the source sequence. + An equality comparer to compare elements. + An observable sequence containing a single element determining whether the source sequence contains an element that has the specified value. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns an observable sequence containing an that represents the total number of elements in an observable sequence. + + The type of the elements in the source sequence. + An observable sequence that contains elements to be counted. + An observable sequence containing a single element with the number of elements in the input sequence. + + is null. + (Asynchronous) The number of elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns an observable sequence containing an that represents how many elements in the specified observable sequence satisfy a condition. + + The type of the elements in the source sequence. + An observable sequence that contains elements to be counted. + A function to test each element for a condition. + An observable sequence containing a single element with a number that represents how many elements in the input sequence satisfy the condition in the predicate function. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates an observable sequence from a specified Subscribe method implementation. + + Query provider used to construct the data source. + The type of the elements in the produced sequence. + Implementation of the resulting observable sequence's Subscribe method. + The observable sequence with the specified implementation for the Subscribe method. + + is null. + + Use of this operator is preferred over manual implementation of the interface. In case + you need a type implementing rather than an anonymous implementation, consider using + the abstract base class. + + + + + Creates an observable sequence from a specified Subscribe method implementation. + + Query provider used to construct the data source. + The type of the elements in the produced sequence. + Implementation of the resulting observable sequence's Subscribe method, returning an Action delegate that will be wrapped in an IDisposable. + The observable sequence with the specified implementation for the Subscribe method. + + is null. + + Use of this operator is preferred over manual implementation of the interface. In case + you need a type implementing rather than an anonymous implementation, consider using + the abstract base class. + + + + + Creates an observable sequence from a specified cancellable asynchronous Subscribe method. + The CancellationToken passed to the asynchronous Subscribe method is tied to the returned disposable subscription, allowing best-effort cancellation. + + Query provider used to construct the data source. + The type of the elements in the produced sequence. + Asynchronous method used to produce elements. + The observable sequence surfacing the elements produced by the asynchronous method. + + is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + When a subscription to the resulting sequence is disposed, the CancellationToken that was fed to the asynchronous subscribe function will be signaled. + + + + Creates an observable sequence from a specified asynchronous Subscribe method. + + Query provider used to construct the data source. + The type of the elements in the produced sequence. + Asynchronous method used to produce elements. + The observable sequence surfacing the elements produced by the asynchronous method. + + is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + + + + Creates an observable sequence from a specified cancellable asynchronous Subscribe method. + The CancellationToken passed to the asynchronous Subscribe method is tied to the returned disposable subscription, allowing best-effort cancellation. + + Query provider used to construct the data source. + The type of the elements in the produced sequence. + Asynchronous method used to implement the resulting sequence's Subscribe method. + The observable sequence with the specified implementation for the Subscribe method. + + is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + When a subscription to the resulting sequence is disposed, the CancellationToken that was fed to the asynchronous subscribe function will be signaled. + + + + Creates an observable sequence from a specified asynchronous Subscribe method. + + Query provider used to construct the data source. + The type of the elements in the produced sequence. + Asynchronous method used to implement the resulting sequence's Subscribe method. + The observable sequence with the specified implementation for the Subscribe method. + + is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + + + + Creates an observable sequence from a specified cancellable asynchronous Subscribe method. + The CancellationToken passed to the asynchronous Subscribe method is tied to the returned disposable subscription, allowing best-effort cancellation. + + Query provider used to construct the data source. + The type of the elements in the produced sequence. + Asynchronous method used to implement the resulting sequence's Subscribe method, returning an Action delegate that will be wrapped in an IDisposable. + The observable sequence with the specified implementation for the Subscribe method. + + is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + When a subscription to the resulting sequence is disposed, the CancellationToken that was fed to the asynchronous subscribe function will be signaled. + + + + Creates an observable sequence from a specified asynchronous Subscribe method. + + Query provider used to construct the data source. + The type of the elements in the produced sequence. + Asynchronous method used to implement the resulting sequence's Subscribe method, returning an Action delegate that will be wrapped in an IDisposable. + The observable sequence with the specified implementation for the Subscribe method. + + is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + + + + Returns the elements of the specified sequence or the type parameter's default value in a singleton sequence if the sequence is empty. + + The type of the elements in the source sequence (if any), whose default value will be taken if the sequence is empty. + The sequence to return a default value for if it is empty. + An observable sequence that contains the default value for the TSource type if the source is empty; otherwise, the elements of the source itself. + + is null. + + + + Returns the elements of the specified sequence or the specified value in a singleton sequence if the sequence is empty. + + The type of the elements in the source sequence (if any), and the specified default value which will be taken if the sequence is empty. + The sequence to return the specified value for if it is empty. + The value to return if the sequence is empty. + An observable sequence that contains the specified default value if the source is empty; otherwise, the elements of the source itself. + + is null. + + + + Returns an observable sequence that invokes the specified factory function whenever a new observer subscribes. + + Query provider used to construct the data source. + The type of the elements in the sequence returned by the factory function, and in the resulting sequence. + Observable factory function to invoke for each observer that subscribes to the resulting sequence. + An observable sequence whose observers trigger an invocation of the given observable factory function. + + is null. + + + + Returns an observable sequence that starts the specified asynchronous factory function whenever a new observer subscribes. + + Query provider used to construct the data source. + The type of the elements in the sequence returned by the factory function, and in the resulting sequence. + Asynchronous factory function to start for each observer that subscribes to the resulting sequence. + An observable sequence whose observers trigger the given asynchronous observable factory function to be started. + + is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + + + + Returns an observable sequence that starts the specified cancellable asynchronous factory function whenever a new observer subscribes. + The CancellationToken passed to the asynchronous factory function is tied to the returned disposable subscription, allowing best-effort cancellation. + + Query provider used to construct the data source. + The type of the elements in the sequence returned by the factory function, and in the resulting sequence. + Asynchronous factory function to start for each observer that subscribes to the resulting sequence. + An observable sequence whose observers trigger the given asynchronous observable factory function to be started. + + is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + When a subscription to the resulting sequence is disposed, the CancellationToken that was fed to the asynchronous observable factory function will be signaled. + + + + Time shifts the observable sequence to start propagating notifications at the specified absolute time. + The relative time intervals between the values are preserved. + + The type of the elements in the source sequence. + Source sequence to delay values for. + Absolute time used to shift the observable sequence; the relative time shift gets computed upon subscription. If this value is less than or equal to DateTimeOffset.UtcNow, the scheduler will dispatch observer callbacks as soon as possible. + Time-shifted sequence. + + is null. + + + This operator is less efficient than DelaySubscription because it records all notifications and time-delays those. This allows for immediate propagation of errors. + + + Observer callbacks for the resulting sequence will be run on the default scheduler. This effect is similar to using ObserveOn. + + + Exceptions signaled by the source sequence through an OnError callback are forwarded immediately to the result sequence. Any OnNext notifications that were in the queue at the point of the OnError callback will be dropped. + In order to delay error propagation, consider using the Observable.Materialize and Observable.Dematerialize operators, or use DelaySubscription. + + + + + + Time shifts the observable sequence to start propagating notifications at the specified absolute time, using the specified scheduler to run timers. + The relative time intervals between the values are preserved. + + The type of the elements in the source sequence. + Source sequence to delay values for. + Absolute time used to shift the observable sequence; the relative time shift gets computed upon subscription. If this value is less than or equal to DateTimeOffset.UtcNow, the scheduler will dispatch observer callbacks as soon as possible. + Scheduler to run the delay timers on. + Time-shifted sequence. + + or is null. + + + This operator is less efficient than DelaySubscription because it records all notifications and time-delays those. This allows for immediate propagation of errors. + + + Observer callbacks for the resulting sequence will be run on the specified scheduler. This effect is similar to using ObserveOn. + + + Exceptions signaled by the source sequence through an OnError callback are forwarded immediately to the result sequence. Any OnNext notifications that were in the queue at the point of the OnError callback will be dropped. + In order to delay error propagation, consider using the Observable.Materialize and Observable.Dematerialize operators, or use DelaySubscription. + + + + + + Time shifts the observable sequence by the specified relative time duration. + The relative time intervals between the values are preserved. + + The type of the elements in the source sequence. + Source sequence to delay values for. + Relative time by which to shift the observable sequence. If this value is equal to TimeSpan.Zero, the scheduler will dispatch observer callbacks as soon as possible. + Time-shifted sequence. + + is null. + + is less than TimeSpan.Zero. + + + This operator is less efficient than DelaySubscription because it records all notifications and time-delays those. This allows for immediate propagation of errors. + + + Observer callbacks for the resulting sequence will be run on the default scheduler. This effect is similar to using ObserveOn. + + + Exceptions signaled by the source sequence through an OnError callback are forwarded immediately to the result sequence. Any OnNext notifications that were in the queue at the point of the OnError callback will be dropped. + In order to delay error propagation, consider using the Observable.Materialize and Observable.Dematerialize operators, or use DelaySubscription. + + + + + + Time shifts the observable sequence by the specified relative time duration, using the specified scheduler to run timers. + The relative time intervals between the values are preserved. + + The type of the elements in the source sequence. + Source sequence to delay values for. + Relative time by which to shift the observable sequence. If this value is equal to TimeSpan.Zero, the scheduler will dispatch observer callbacks as soon as possible. + Scheduler to run the delay timers on. + Time-shifted sequence. + + or is null. + + is less than TimeSpan.Zero. + + + This operator is less efficient than DelaySubscription because it records all notifications and time-delays those. This allows for immediate propagation of errors. + + + Observer callbacks for the resulting sequence will be run on the specified scheduler. This effect is similar to using ObserveOn. + + + Exceptions signaled by the source sequence through an OnError callback are forwarded immediately to the result sequence. Any OnNext notifications that were in the queue at the point of the OnError callback will be dropped. + + + Exceptions signaled by the source sequence through an OnError callback are forwarded immediately to the result sequence. Any OnNext notifications that were in the queue at the point of the OnError callback will be dropped. + In order to delay error propagation, consider using the Observable.Materialize and Observable.Dematerialize operators, or use DelaySubscription. + + + + + + Time shifts the observable sequence based on a delay selector function for each element. + + The type of the elements in the source sequence. + The type of the elements in the delay sequences used to denote the delay duration of each element in the source sequence. + Source sequence to delay values for. + Selector function to retrieve a sequence indicating the delay for each given element. + Time-shifted sequence. + + or is null. + + + + Time shifts the observable sequence based on a subscription delay and a delay selector function for each element. + + The type of the elements in the source sequence. + The type of the elements in the delay sequences used to denote the delay duration of each element in the source sequence. + Source sequence to delay values for. + Sequence indicating the delay for the subscription to the source. + Selector function to retrieve a sequence indicating the delay for each given element. + Time-shifted sequence. + + or or is null. + + + + Time shifts the observable sequence by delaying the subscription to the specified absolute time. + + The type of the elements in the source sequence. + Source sequence to delay subscription for. + Absolute time to perform the subscription at. + Time-shifted sequence. + + is null. + + + This operator is more efficient than Delay but postpones all side-effects of subscription and affects error propagation timing. + + + The side-effects of subscribing to the source sequence will be run on the default scheduler. Observer callbacks will not be affected. + + + + + + Time shifts the observable sequence by delaying the subscription to the specified absolute time, using the specified scheduler to run timers. + + The type of the elements in the source sequence. + Source sequence to delay subscription for. + Absolute time to perform the subscription at. + Scheduler to run the subscription delay timer on. + Time-shifted sequence. + + or is null. + + + This operator is more efficient than Delay but postpones all side-effects of subscription and affects error propagation timing. + + + The side-effects of subscribing to the source sequence will be run on the specified scheduler. Observer callbacks will not be affected. + + + + + + Time shifts the observable sequence by delaying the subscription with the specified relative time duration. + + The type of the elements in the source sequence. + Source sequence to delay subscription for. + Relative time shift of the subscription. + Time-shifted sequence. + + is null. + + is less than TimeSpan.Zero. + + + This operator is more efficient than Delay but postpones all side-effects of subscription and affects error propagation timing. + + + The side-effects of subscribing to the source sequence will be run on the default scheduler. Observer callbacks will not be affected. + + + + + + Time shifts the observable sequence by delaying the subscription with the specified relative time duration, using the specified scheduler to run timers. + + The type of the elements in the source sequence. + Source sequence to delay subscription for. + Relative time shift of the subscription. + Scheduler to run the subscription delay timer on. + Time-shifted sequence. + + or is null. + + is less than TimeSpan.Zero. + + + This operator is more efficient than Delay but postpones all side-effects of subscription and affects error propagation timing. + + + The side-effects of subscribing to the source sequence will be run on the specified scheduler. Observer callbacks will not be affected. + + + + + + Dematerializes the explicit notification values of an observable sequence as implicit notifications. + + The type of the elements materialized in the source sequence notification objects. + An observable sequence containing explicit notification values which have to be turned into implicit notifications. + An observable sequence exhibiting the behavior corresponding to the source sequence's notification values. + + is null. + + + + Returns an observable sequence that contains only distinct elements. + + The type of the elements in the source sequence. + An observable sequence to retain distinct elements for. + An observable sequence only containing the distinct elements from the source sequence. + + is null. + Usage of this operator should be considered carefully due to the maintenance of an internal lookup structure which can grow large. + + + + Returns an observable sequence that contains only distinct elements according to the comparer. + + The type of the elements in the source sequence. + An observable sequence to retain distinct elements for. + Equality comparer for source elements. + An observable sequence only containing the distinct elements from the source sequence. + + or is null. + Usage of this operator should be considered carefully due to the maintenance of an internal lookup structure which can grow large. + + + + Returns an observable sequence that contains only distinct elements according to the keySelector. + + The type of the elements in the source sequence. + The type of the discriminator key computed for each element in the source sequence. + An observable sequence to retain distinct elements for. + A function to compute the comparison key for each element. + An observable sequence only containing the distinct elements, based on a computed key value, from the source sequence. + + or is null. + Usage of this operator should be considered carefully due to the maintenance of an internal lookup structure which can grow large. + + + + Returns an observable sequence that contains only distinct elements according to the keySelector and the comparer. + + The type of the elements in the source sequence. + The type of the discriminator key computed for each element in the source sequence. + An observable sequence to retain distinct elements for. + A function to compute the comparison key for each element. + Equality comparer for source elements. + An observable sequence only containing the distinct elements, based on a computed key value, from the source sequence. + + or or is null. + Usage of this operator should be considered carefully due to the maintenance of an internal lookup structure which can grow large. + + + + Returns an observable sequence that contains only distinct contiguous elements. + + The type of the elements in the source sequence. + An observable sequence to retain distinct contiguous elements for. + An observable sequence only containing the distinct contiguous elements from the source sequence. + + is null. + + + + Returns an observable sequence that contains only distinct contiguous elements according to the comparer. + + The type of the elements in the source sequence. + An observable sequence to retain distinct contiguous elements for. + Equality comparer for source elements. + An observable sequence only containing the distinct contiguous elements from the source sequence. + + or is null. + + + + Returns an observable sequence that contains only distinct contiguous elements according to the keySelector. + + The type of the elements in the source sequence. + The type of the discriminator key computed for each element in the source sequence. + An observable sequence to retain distinct contiguous elements for, based on a computed key value. + A function to compute the comparison key for each element. + An observable sequence only containing the distinct contiguous elements, based on a computed key value, from the source sequence. + + or is null. + + + + Returns an observable sequence that contains only distinct contiguous elements according to the keySelector and the comparer. + + The type of the elements in the source sequence. + The type of the discriminator key computed for each element in the source sequence. + An observable sequence to retain distinct contiguous elements for, based on a computed key value. + A function to compute the comparison key for each element. + Equality comparer for computed key values. + An observable sequence only containing the distinct contiguous elements, based on a computed key value, from the source sequence. + + or or is null. + + + + Invokes the observer's methods for each message in the source sequence. + This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + + The type of the elements in the source sequence. + Source sequence. + Observer whose methods to invoke as part of the source sequence's observation. + The source sequence with the side-effecting behavior applied. + + or is null. + + + + Invokes an action for each element in the observable sequence, and propagates all observer messages through the result sequence. + This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + + The type of the elements in the source sequence. + Source sequence. + Action to invoke for each element in the observable sequence. + The source sequence with the side-effecting behavior applied. + + or is null. + + + + Invokes an action for each element in the observable sequence and invokes an action upon graceful termination of the observable sequence. + This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + + The type of the elements in the source sequence. + Source sequence. + Action to invoke for each element in the observable sequence. + Action to invoke upon graceful termination of the observable sequence. + The source sequence with the side-effecting behavior applied. + + or or is null. + + + + Invokes an action for each element in the observable sequence and invokes an action upon exceptional termination of the observable sequence. + This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + + The type of the elements in the source sequence. + Source sequence. + Action to invoke for each element in the observable sequence. + Action to invoke upon exceptional termination of the observable sequence. + The source sequence with the side-effecting behavior applied. + + or or is null. + + + + Invokes an action for each element in the observable sequence and invokes an action upon graceful or exceptional termination of the observable sequence. + This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + + The type of the elements in the source sequence. + Source sequence. + Action to invoke for each element in the observable sequence. + Action to invoke upon exceptional termination of the observable sequence. + Action to invoke upon graceful termination of the observable sequence. + The source sequence with the side-effecting behavior applied. + + or or or is null. + + + + Repeats the given as long as the specified holds, where the is evaluated after each repeated completed. + + The type of the elements in the source sequence. + Source to repeat as long as the function evaluates to true. + Condition that will be evaluated upon the completion of an iteration through the , to determine whether repetition of the source is required. + The observable sequence obtained by concatenating the sequence as long as the holds. + + or is null. + + + + Returns the element at a specified index in a sequence. + + The type of the elements in the source sequence. + Observable sequence to return the element from. + The zero-based index of the element to retrieve. + An observable sequence that produces the element at the specified position in the source sequence. + + is null. + + is less than zero. + (Asynchronous) is greater than or equal to the number of elements in the source sequence. + + + + Returns the element at a specified index in a sequence or a default value if the index is out of range. + + The type of the elements in the source sequence. + Observable sequence to return the element from. + The zero-based index of the element to retrieve. + An observable sequence that produces the element at the specified position in the source sequence, or a default value if the index is outside the bounds of the source sequence. + + is null. + + is less than zero. + + + + Returns an empty observable sequence. + + Query provider used to construct the data source. + The type used for the type parameter of the resulting sequence. + An observable sequence with no elements. + + + + Returns an empty observable sequence, using the specified scheduler to send out the single OnCompleted message. + + Query provider used to construct the data source. + The type used for the type parameter of the resulting sequence. + Scheduler to send the termination call on. + An observable sequence with no elements. + + is null. + + + + Returns an empty observable sequence, using the specified scheduler to send out the single OnCompleted message. + + Query provider used to construct the data source. + The type used for the type parameter of the resulting sequence. + Scheduler to send the termination call on. + Object solely used to infer the type of the type parameter. This parameter is typically used when creating a sequence of anonymously typed elements. + An observable sequence with no elements. + + is null. + + + + Returns an empty observable sequence. + + Query provider used to construct the data source. + The type used for the type parameter of the resulting sequence. + Object solely used to infer the type of the type parameter. This parameter is typically used when creating a sequence of anonymously typed elements. + An observable sequence with no elements. + + + + Invokes a specified action after the source observable sequence terminates gracefully or exceptionally. + + The type of the elements in the source sequence. + Source sequence. + Action to invoke after the source observable sequence terminates. + Source sequence with the action-invoking termination behavior applied. + + or is null. + + + + Returns the first element of an observable sequence. + + The type of the elements in the source sequence. + Source observable sequence. + Sequence containing the first element in the observable sequence. + + is null. + (Asynchronous) The source sequence is empty. + + + + Returns the first element of an observable sequence that satisfies the condition in the predicate. + + The type of the elements in the source sequence. + Source observable sequence. + A predicate function to evaluate for elements in the source sequence. + Sequence containing the first element in the observable sequence that satisfies the condition in the predicate. + + or is null. + (Asynchronous) No element satisfies the condition in the predicate. -or- The source sequence is empty. + + + + Returns the first element of an observable sequence, or a default value if no such element exists. + + The type of the elements in the source sequence. + Source observable sequence. + Sequence containing the first element in the observable sequence, or a default value if no such element exists. + + is null. + + + + Returns the first element of an observable sequence that satisfies the condition in the predicate, or a default value if no such element exists. + + The type of the elements in the source sequence. + Source observable sequence. + A predicate function to evaluate for elements in the source sequence. + Sequence containing the first element in the observable sequence that satisfies the condition in the predicate, or a default value if no such element exists. + + or is null. + + + + Concatenates the observable sequences obtained by running the for each element in the given enumerable . + + Query provider used to construct the data source. + The type of the elements in the enumerable source sequence. + The type of the elements in the observable result sequence. + Enumerable source for which each element will be mapped onto an observable source that will be concatenated in the result sequence. + Function to select an observable source for each element in the . + The observable sequence obtained by concatenating the sources returned by for each element in the . + + or is null. + + + + Converts to asynchronous action into an observable sequence. Each subscription to the resulting sequence causes the action to be started. + + Query provider used to construct the data source. + Asynchronous action to convert. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + + is null. + + + + Converts to asynchronous action into an observable sequence. Each subscription to the resulting sequence causes the action to be started. + + Query provider used to construct the data source. + Asynchronous action to convert. + Scheduler on which to notify observers. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + + is null or is null. + + + + Converts to asynchronous action into an observable sequence. Each subscription to the resulting sequence causes the action to be started. + The CancellationToken passed to the asynchronous action is tied to the observable sequence's subscription that triggered the action's invocation and can be used for best-effort cancellation. + + Query provider used to construct the data source. + Asynchronous action to convert. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + When a subscription to the resulting sequence is disposed, the CancellationToken that was fed to the asynchronous function will be signaled. + + is null. + + + + Converts to asynchronous action into an observable sequence. Each subscription to the resulting sequence causes the action to be started. + The CancellationToken passed to the asynchronous action is tied to the observable sequence's subscription that triggered the action's invocation and can be used for best-effort cancellation. + + Query provider used to construct the data source. + Asynchronous action to convert. + Scheduler on which to notify observers. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + When a subscription to the resulting sequence is disposed, the CancellationToken that was fed to the asynchronous function will be signaled. + + is null or is null. + + + + Converts to asynchronous function into an observable sequence. Each subscription to the resulting sequence causes the function to be started. + + Query provider used to construct the data source. + The type of the result returned by the asynchronous function. + Asynchronous function to convert. + An observable sequence exposing the result of invoking the function, or an exception. + + is null. + + + + Converts to asynchronous function into an observable sequence. Each subscription to the resulting sequence causes the function to be started. + The CancellationToken passed to the asynchronous function is tied to the observable sequence's subscription that triggered the function's invocation and can be used for best-effort cancellation. + + Query provider used to construct the data source. + The type of the result returned by the asynchronous function. + Asynchronous function to convert. + An observable sequence exposing the result of invoking the function, or an exception. + + is null. + When a subscription to the resulting sequence is disposed, the CancellationToken that was fed to the asynchronous function will be signaled. + + + + Converts to asynchronous function into an observable sequence. Each subscription to the resulting sequence causes the function to be started. + + Query provider used to construct the data source. + The type of the result returned by the asynchronous function. + Asynchronous function to convert. + Scheduler on which to notify observers. + An observable sequence exposing the result of invoking the function, or an exception. + + is null or is null. + + + + Converts to asynchronous function into an observable sequence. Each subscription to the resulting sequence causes the function to be started. + The CancellationToken passed to the asynchronous function is tied to the observable sequence's subscription that triggered the function's invocation and can be used for best-effort cancellation. + + Query provider used to construct the data source. + The type of the result returned by the asynchronous function. + Asynchronous function to convert. + Scheduler on which to notify observers. + An observable sequence exposing the result of invoking the function, or an exception. + + is null or is null. + When a subscription to the resulting sequence is disposed, the CancellationToken that was fed to the asynchronous function will be signaled. + + + + Converts an Action-based .NET event to an observable sequence. Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events conforming to the standard .NET event pattern, use any of the FromEventPattern overloads instead. + + Query provider used to construct the data source. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains the event argument objects passed to the invocations of the underlying .NET event. + + or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEvent, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEvent, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEvent calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts an Action-based .NET event to an observable sequence. Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events conforming to the standard .NET event pattern, use any of the FromEventPattern overloads instead. + + Query provider used to construct the data source. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains the event argument objects passed to the invocations of the underlying .NET event. + + or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEvent calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEvent that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a .NET event to an observable sequence, using a supplied event delegate type. Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events conforming to the standard .NET event pattern, use any of the FromEventPattern overloads instead. + + Query provider used to construct the data source. + The delegate type of the event to be converted. + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains the event argument objects passed to the invocations of the underlying .NET event. + + or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEvent, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEvent, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEvent calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a .NET event to an observable sequence, using a supplied event delegate type. Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events conforming to the standard .NET event pattern, use any of the FromEventPattern overloads instead. + + Query provider used to construct the data source. + The delegate type of the event to be converted. + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains the event argument objects passed to the invocations of the underlying .NET event. + + or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEvent calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEvent that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a .NET event to an observable sequence, using a conversion function to obtain the event delegate. Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events conforming to the standard .NET event pattern, use any of the FromEventPattern overloads instead. + + Query provider used to construct the data source. + The delegate type of the event to be converted. + The type of the event data generated by the event. + A function used to convert the given event handler to a delegate compatible with the underlying .NET event. The resulting delegate is used in calls to the addHandler and removeHandler action parameters. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains the event argument objects passed to the invocations of the underlying .NET event. + + or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEvent, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEvent, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEvent calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a .NET event to an observable sequence, using a conversion function to obtain the event delegate. Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events conforming to the standard .NET event pattern, use any of the FromEventPattern overloads instead. + + Query provider used to construct the data source. + The delegate type of the event to be converted. + The type of the event data generated by the event. + A function used to convert the given event handler to a delegate compatible with the underlying .NET event. The resulting delegate is used in calls to the addHandler and removeHandler action parameters. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains the event argument objects passed to the invocations of the underlying .NET event. + + or or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEvent calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEvent that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a generic Action-based .NET event to an observable sequence. Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events conforming to the standard .NET event pattern, use any of the FromEventPattern overloads instead. + + Query provider used to construct the data source. + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains the event argument objects passed to the invocations of the underlying .NET event. + + or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEvent, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEvent, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEvent calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a generic Action-based .NET event to an observable sequence. Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events conforming to the standard .NET event pattern, use any of the FromEventPattern overloads instead. + + Query provider used to construct the data source. + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains the event argument objects passed to the invocations of the underlying .NET event. + + or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEvent calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEvent that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on , to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on , to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts an instance .NET event, conforming to the standard .NET event pattern with an parameter, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the target object type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + Object instance that exposes the event to convert. + Name of the event to convert. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts an instance .NET event, conforming to the standard .NET event pattern with an parameter, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the target object type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + Object instance that exposes the event to convert. + Name of the event to convert. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a static .NET event, conforming to the standard .NET event pattern with an parameter, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the specified type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + Type that exposes the static event to convert. + Name of the event to convert. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a static .NET event, conforming to the standard .NET event pattern with an parameter, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the specified type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + Type that exposes the static event to convert. + Name of the event to convert. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on a supplied event delegate type, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + The delegate type of the event to be converted. + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on a supplied event delegate type, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + The delegate type of the event to be converted. + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on , to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + The delegate type of the event to be converted. + The type of the event data generated by the event. + A function used to convert the given event handler to a delegate compatible with the underlying .NET event. The resulting delegate is used in calls to the addHandler and removeHandler action parameters. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on , to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + The delegate type of the event to be converted. + The type of the event data generated by the event. + A function used to convert the given event handler to a delegate compatible with the underlying .NET event. The resulting delegate is used in calls to the addHandler and removeHandler action parameters. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on a supplied event delegate type with a strongly typed sender parameter, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + The delegate type of the event to be converted. + The type of the sender that raises the event. + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on a supplied event delegate type with a strongly typed sender parameter, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + The delegate type of the event to be converted. + The type of the sender that raises the event. + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on , to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on , to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts an instance .NET event, conforming to the standard .NET event pattern with strongly typed event arguments, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the target object type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + The type of the event data generated by the event. + Object instance that exposes the event to convert. + Name of the event to convert. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. -or- The event's second argument type is not assignable to TEventArgs. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts an instance .NET event, conforming to the standard .NET event pattern with strongly typed event arguments, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the target object type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + The type of the event data generated by the event. + Object instance that exposes the event to convert. + Name of the event to convert. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. -or- The event's second argument type is not assignable to TEventArgs. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a static .NET event, conforming to the standard .NET event pattern with strongly typed event arguments, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the specified type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + The type of the event data generated by the event. + Type that exposes the static event to convert. + Name of the event to convert. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. -or- The event's second argument type is not assignable to TEventArgs. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a static .NET event, conforming to the standard .NET event pattern with strongly typed event arguments, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the specified type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + The type of the event data generated by the event. + Type that exposes the static event to convert. + Name of the event to convert. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. -or- The event's second argument type is not assignable to TEventArgs. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts an instance .NET event, conforming to the standard .NET event pattern with a strongly typed sender and strongly typed event arguments, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the target object type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + The type of the sender that raises the event. + The type of the event data generated by the event. + Object instance that exposes the event to convert. + Name of the event to convert. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. -or- The event's first argument type is not assignable to TSender. -or- The event's second argument type is not assignable to TEventArgs. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts an instance .NET event, conforming to the standard .NET event pattern with a strongly typed sender and strongly typed event arguments, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the target object type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + The type of the sender that raises the event. + The type of the event data generated by the event. + Object instance that exposes the event to convert. + Name of the event to convert. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. -or- The event's first argument type is not assignable to TSender. -or- The event's second argument type is not assignable to TEventArgs. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a static .NET event, conforming to the standard .NET event pattern with a strongly typed sender and strongly typed event arguments, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the specified type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + The type of the sender that raises the event. + The type of the event data generated by the event. + Type that exposes the static event to convert. + Name of the event to convert. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. -or- The event's first argument type is not assignable to TSender. -or- The event's second argument type is not assignable to TEventArgs. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a static .NET event, conforming to the standard .NET event pattern with a strongly typed sender and strongly typed event arguments, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the specified type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + The type of the sender that raises the event. + The type of the event data generated by the event. + Type that exposes the static event to convert. + Name of the event to convert. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. -or- The event's first argument type is not assignable to TSender. -or- The event's second argument type is not assignable to TEventArgs. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Generates an observable sequence by running a state-driven loop producing the sequence's elements. + + Query provider used to construct the data source. + The type of the state used in the generator loop. + The type of the elements in the produced sequence. + Initial state. + Condition to terminate generation (upon returning false). + Iteration step function. + Selector function for results produced in the sequence. + The generated sequence. + + or or is null. + + + + Generates an observable sequence by running a state-driven loop producing the sequence's elements, using the specified scheduler to send out observer messages. + + Query provider used to construct the data source. + The type of the state used in the generator loop. + The type of the elements in the produced sequence. + Initial state. + Condition to terminate generation (upon returning false). + Iteration step function. + Selector function for results produced in the sequence. + Scheduler on which to run the generator loop. + The generated sequence. + + or or or is null. + + + + Generates an observable sequence by running a state-driven and temporal loop producing the sequence's elements. + + Query provider used to construct the data source. + The type of the state used in the generator loop. + The type of the elements in the produced sequence. + Initial state. + Condition to terminate generation (upon returning false). + Iteration step function. + Selector function for results produced in the sequence. + Time selector function to control the speed of values being produced each iteration. + The generated sequence. + + or or or is null. + + + + Generates an observable sequence by running a state-driven and temporal loop producing the sequence's elements. + + Query provider used to construct the data source. + The type of the state used in the generator loop. + The type of the elements in the produced sequence. + Initial state. + Condition to terminate generation (upon returning false). + Iteration step function. + Selector function for results produced in the sequence. + Time selector function to control the speed of values being produced each iteration. + The generated sequence. + + or or or is null. + + + + Generates an observable sequence by running a state-driven and temporal loop producing the sequence's elements, using the specified scheduler to run timers and to send out observer messages. + + Query provider used to construct the data source. + The type of the state used in the generator loop. + The type of the elements in the produced sequence. + Initial state. + Condition to terminate generation (upon returning false). + Iteration step function. + Selector function for results produced in the sequence. + Time selector function to control the speed of values being produced each iteration. + Scheduler on which to run the generator loop. + The generated sequence. + + or or or or is null. + + + + Generates an observable sequence by running a state-driven and temporal loop producing the sequence's elements, using the specified scheduler to run timers and to send out observer messages. + + Query provider used to construct the data source. + The type of the state used in the generator loop. + The type of the elements in the produced sequence. + Initial state. + Condition to terminate generation (upon returning false). + Iteration step function. + Selector function for results produced in the sequence. + Time selector function to control the speed of values being produced each iteration. + Scheduler on which to run the generator loop. + The generated sequence. + + or or or or is null. + + + + Groups the elements of an observable sequence according to a specified key selector function. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + An observable sequence whose elements to group. + A function to extract the key for each element. + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + + or is null. + + + + Groups the elements of an observable sequence with the specified initial capacity according to a specified key selector function. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + An observable sequence whose elements to group. + A function to extract the key for each element. + The initial number of elements that the underlying dictionary can contain. + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + + or is null. + + is less than 0. + + + + Groups the elements of an observable sequence with the specified initial capacity according to a specified key selector function and comparer. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + An observable sequence whose elements to group. + A function to extract the key for each element. + The initial number of elements that the underlying dictionary can contain. + An equality comparer to compare keys with. + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + + or or is null. + + is less than 0. + + + + Groups the elements of an observable sequence according to a specified key selector function and comparer. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + An observable sequence whose elements to group. + A function to extract the key for each element. + An equality comparer to compare keys with. + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + + or or is null. + + + + Groups the elements of an observable sequence and selects the resulting elements by using a specified function. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements within the groups computed for each element in the source sequence. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to map each source element to an element in an observable group. + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + + or or is null. + + + + Groups the elements of an observable sequence with the specified initial capacity and selects the resulting elements by using a specified function. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements within the groups computed for each element in the source sequence. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to map each source element to an element in an observable group. + The initial number of elements that the underlying dictionary can contain. + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + + or or is null. + + is less than 0. + + + + Groups the elements of an observable sequence with the specified initial capacity according to a specified key selector function and comparer and selects the resulting elements by using a specified function. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements within the groups computed for each element in the source sequence. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to map each source element to an element in an observable group. + The initial number of elements that the underlying dictionary can contain. + An equality comparer to compare keys with. + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + + or or or is null. + + is less than 0. + + + + Groups the elements of an observable sequence according to a specified key selector function and comparer and selects the resulting elements by using a specified function. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements within the groups computed for each element in the source sequence. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to map each source element to an element in an observable group. + An equality comparer to compare keys with. + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + + or or or is null. + + + + Groups the elements of an observable sequence according to a specified key selector function. + A duration selector function is used to control the lifetime of groups. When a group expires, it receives an OnCompleted notification. When a new element with the same + key value as a reclaimed group occurs, the group will be reborn with a new lifetime request. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements in the duration sequences obtained for each group to denote its lifetime. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to signal the expiration of a group. + + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + If a group's lifetime expires, a new group with the same key value can be created once an element with such a key value is encountered. + + + or or is null. + + + + Groups the elements of an observable sequence with the specified initial capacity according to a specified key selector function. + A duration selector function is used to control the lifetime of groups. When a group expires, it receives an OnCompleted notification. When a new element with the same + key value as a reclaimed group occurs, the group will be reborn with a new lifetime request. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements in the duration sequences obtained for each group to denote its lifetime. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to signal the expiration of a group. + The initial number of elements that the underlying dictionary can contain. + + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + If a group's lifetime expires, a new group with the same key value can be created once an element with such a key value is encountered. + + + or or is null. + + is less than 0. + + + + Groups the elements of an observable sequence with the specified initial capacity according to a specified key selector function and comparer. + A duration selector function is used to control the lifetime of groups. When a group expires, it receives an OnCompleted notification. When a new element with the same + key value as a reclaimed group occurs, the group will be reborn with a new lifetime request. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements in the duration sequences obtained for each group to denote its lifetime. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to signal the expiration of a group. + The initial number of elements that the underlying dictionary can contain. + An equality comparer to compare keys with. + + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + If a group's lifetime expires, a new group with the same key value can be created once an element with such a key value is encountered. + + + or or or is null. + + is less than 0. + + + + Groups the elements of an observable sequence according to a specified key selector function and comparer. + A duration selector function is used to control the lifetime of groups. When a group expires, it receives an OnCompleted notification. When a new element with the same + key value as a reclaimed group occurs, the group will be reborn with a new lifetime request. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements in the duration sequences obtained for each group to denote its lifetime. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to signal the expiration of a group. + An equality comparer to compare keys with. + + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + If a group's lifetime expires, a new group with the same key value can be created once an element with such a key value is encountered. + + + or or or is null. + + + + Groups the elements of an observable sequence according to a specified key selector function and selects the resulting elements by using a specified function. + A duration selector function is used to control the lifetime of groups. When a group expires, it receives an OnCompleted notification. When a new element with the same + key value as a reclaimed group occurs, the group will be reborn with a new lifetime request. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements within the groups computed for each element in the source sequence. + The type of the elements in the duration sequences obtained for each group to denote its lifetime. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to map each source element to an element in an observable group. + A function to signal the expiration of a group. + + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + If a group's lifetime expires, a new group with the same key value can be created once an element with such a key value is encountered. + + + or or or is null. + + + + Groups the elements of an observable sequence with the specified initial capacity according to a specified key selector function and selects the resulting elements by using a specified function. + A duration selector function is used to control the lifetime of groups. When a group expires, it receives an OnCompleted notification. When a new element with the same + key value as a reclaimed group occurs, the group will be reborn with a new lifetime request. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements within the groups computed for each element in the source sequence. + The type of the elements in the duration sequences obtained for each group to denote its lifetime. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to map each source element to an element in an observable group. + A function to signal the expiration of a group. + The initial number of elements that the underlying dictionary can contain. + + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + If a group's lifetime expires, a new group with the same key value can be created once an element with such a key value is encountered. + + + or or or is null. + + is less than 0. + + + + Groups the elements of an observable sequence with the specified initial capacity according to a specified key selector function and comparer and selects the resulting elements by using a specified function. + A duration selector function is used to control the lifetime of groups. When a group expires, it receives an OnCompleted notification. When a new element with the same + key value as a reclaimed group occurs, the group will be reborn with a new lifetime request. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements within the groups computed for each element in the source sequence. + The type of the elements in the duration sequences obtained for each group to denote its lifetime. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to map each source element to an element in an observable group. + A function to signal the expiration of a group. + The initial number of elements that the underlying dictionary can contain. + An equality comparer to compare keys with. + + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + If a group's lifetime expires, a new group with the same key value can be created once an element with such a key value is encountered. + + + or or or or is null. + + is less than 0. + + + + Groups the elements of an observable sequence according to a specified key selector function and comparer and selects the resulting elements by using a specified function. + A duration selector function is used to control the lifetime of groups. When a group expires, it receives an OnCompleted notification. When a new element with the same + key value as a reclaimed group occurs, the group will be reborn with a new lifetime request. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements within the groups computed for each element in the source sequence. + The type of the elements in the duration sequences obtained for each group to denote its lifetime. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to map each source element to an element in an observable group. + A function to signal the expiration of a group. + An equality comparer to compare keys with. + + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + If a group's lifetime expires, a new group with the same key value can be created once an element with such a key value is encountered. + + + or or or or is null. + + + + Correlates the elements of two sequences based on overlapping durations, and groups the results. + + The type of the elements in the left source sequence. + The type of the elements in the right source sequence. + The type of the elements in the duration sequence denoting the computed duration of each element in the left source sequence. + The type of the elements in the duration sequence denoting the computed duration of each element in the right source sequence. + The type of the elements in the result sequence, obtained by invoking the result selector function for source elements with overlapping duration. + The left observable sequence to join elements for. + The right observable sequence to join elements for. + A function to select the duration of each element of the left observable sequence, used to determine overlap. + A function to select the duration of each element of the right observable sequence, used to determine overlap. + A function invoked to compute a result element for any element of the left sequence with overlapping elements from the right observable sequence. + An observable sequence that contains result elements computed from source elements that have an overlapping duration. + + or or or or is null. + + + + If the specified evaluates true, select the sequence. Otherwise, return an empty sequence. + + Query provider used to construct the data source. + The type of the elements in the result sequence. + Condition evaluated to decide which sequence to return. + Sequence returned in case evaluates true. + + if evaluates true; an empty sequence otherwise. + + or is null. + + + + If the specified evaluates true, select the sequence. Otherwise, select the sequence. + + Query provider used to construct the data source. + The type of the elements in the result sequence. + Condition evaluated to decide which sequence to return. + Sequence returned in case evaluates true. + Sequence returned in case evaluates false. + + if evaluates true; otherwise. + + or or is null. + + + + If the specified evaluates true, select the sequence. Otherwise, return an empty sequence generated on the specified scheduler. + + Query provider used to construct the data source. + The type of the elements in the result sequence. + Condition evaluated to decide which sequence to return. + Sequence returned in case evaluates true. + Scheduler to generate an empty sequence on in case evaluates false. + + if evaluates true; an empty sequence otherwise. + + or or is null. + + + + Ignores all elements in an observable sequence leaving only the termination messages. + + The type of the elements in the source sequence. + Source sequence. + An empty observable sequence that signals termination, successful or exceptional, of the source sequence. + + is null. + + + + Returns an observable sequence that produces a value after each period. + + Query provider used to construct the data source. + Period for producing the values in the resulting sequence. If this value is equal to TimeSpan.Zero, the timer will recur as fast as possible. + An observable sequence that produces a value after each period. + + is less than TimeSpan.Zero. + + Intervals are measured between the start of subsequent notifications, not between the end of the previous and the start of the next notification. + If the observer takes longer than the interval period to handle the message, the subsequent notification will be delivered immediately after the + current one has been handled. In case you need to control the time between the end and the start of consecutive notifications, consider using the + + operator instead. + + + + + Returns an observable sequence that produces a value after each period, using the specified scheduler to run timers and to send out observer messages. + + Query provider used to construct the data source. + Period for producing the values in the resulting sequence. If this value is equal to TimeSpan.Zero, the timer will recur as fast as possible. + Scheduler to run the timer on. + An observable sequence that produces a value after each period. + + is less than TimeSpan.Zero. + + is null. + + Intervals are measured between the start of subsequent notifications, not between the end of the previous and the start of the next notification. + If the observer takes longer than the interval period to handle the message, the subsequent notification will be delivered immediately after the + current one has been handled. In case you need to control the time between the end and the start of consecutive notifications, consider using the + + operator instead. + + + + + Determines whether an observable sequence is empty. + + The type of the elements in the source sequence. + An observable sequence to check for emptiness. + An observable sequence containing a single element determining whether the source sequence is empty. + + is null. + + + + Correlates the elements of two sequences based on overlapping durations. + + The type of the elements in the left source sequence. + The type of the elements in the right source sequence. + The type of the elements in the duration sequence denoting the computed duration of each element in the left source sequence. + The type of the elements in the duration sequence denoting the computed duration of each element in the right source sequence. + The type of the elements in the result sequence, obtained by invoking the result selector function for source elements with overlapping duration. + The left observable sequence to join elements for. + The right observable sequence to join elements for. + A function to select the duration of each element of the left observable sequence, used to determine overlap. + A function to select the duration of each element of the right observable sequence, used to determine overlap. + A function invoked to compute a result element for any two overlapping elements of the left and right observable sequences. + An observable sequence that contains result elements computed from source elements that have an overlapping duration. + + or or or or is null. + + + + Returns the last element of an observable sequence. + + The type of the elements in the source sequence. + Source observable sequence. + Sequence containing the last element in the observable sequence. + + is null. + (Asynchronous) The source sequence is empty. + + + + Returns the last element of an observable sequence that satisfies the condition in the predicate. + + The type of the elements in the source sequence. + Source observable sequence. + A predicate function to evaluate for elements in the source sequence. + Sequence containing the last element in the observable sequence that satisfies the condition in the predicate. + + or is null. + (Asynchronous) No element satisfies the condition in the predicate. -or- The source sequence is empty. + + + + Returns the last element of an observable sequence, or a default value if no such element exists. + + The type of the elements in the source sequence. + Source observable sequence. + Sequence containing the last element in the observable sequence, or a default value if no such element exists. + + is null. + + + + Returns the last element of an observable sequence that satisfies the condition in the predicate, or a default value if no such element exists. + + The type of the elements in the source sequence. + Source observable sequence. + A predicate function to evaluate for elements in the source sequence. + Sequence containing the last element in the observable sequence that satisfies the condition in the predicate, or a default value if no such element exists. + + or is null. + + + + Returns an enumerable sequence whose enumeration returns the latest observed element in the source observable sequence. + Enumerators on the resulting sequence will never produce the same element repeatedly, and will block until the next element becomes available. + + The type of the elements in the source sequence. + Source observable sequence. + The enumerable sequence that returns the last sampled element upon each iteration and subsequently blocks until the next element in the observable source sequence becomes available. + This operator requires the source's object (see ) to implement . + + + + Returns an observable sequence containing an that represents the total number of elements in an observable sequence. + + The type of the elements in the source sequence. + An observable sequence that contains elements to be counted. + An observable sequence containing a single element with the number of elements in the input sequence. + + is null. + (Asynchronous) The number of elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns an observable sequence containing an that represents how many elements in the specified observable sequence satisfy a condition. + + The type of the elements in the source sequence. + An observable sequence that contains elements to be counted. + A function to test each element for a condition. + An observable sequence containing a single element with a number that represents how many elements in the input sequence satisfy the condition in the predicate function. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Materializes the implicit notifications of an observable sequence as explicit notification values. + + The type of the elements in the source sequence. + An observable sequence to get notification values for. + An observable sequence containing the materialized notification values from the source sequence. + + is null. + + + + Returns the maximum value in an observable sequence of values. + + A sequence of values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of values. + + A sequence of values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of values. + + A sequence of values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of values. + + A sequence of values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of values. + + A sequence of values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum element in an observable sequence. + + The type of the elements in the source sequence. + An observable sequence to determine the maximum element of. + An observable sequence containing a single element with the maximum element in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence according to the specified comparer. + + The type of the elements in the source sequence. + An observable sequence to determine the maximum element of. + Comparer used to compare elements. + An observable sequence containing a single element with the maximum element in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum value. + + The type of the elements in the source sequence. + The type of the objects derived from the elements in the source sequence to determine the maximum of. + An observable sequence to determine the minimum element of. + A transform function to apply to each element. + An observable sequence containing a single element with the value that corresponds to the maximum element in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum value according to the specified comparer. + + The type of the elements in the source sequence. + The type of the objects derived from the elements in the source sequence to determine the maximum of. + An observable sequence to determine the minimum element of. + A transform function to apply to each element. + Comparer used to compare elements. + An observable sequence containing a single element with the value that corresponds to the maximum element in the source sequence. + + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the elements in an observable sequence with the maximum key value. + + The type of the elements in the source sequence. + The type of the key computed for each element in the source sequence. + An observable sequence to get the maximum elements for. + Key selector function. + An observable sequence containing a list of zero or more elements that have a maximum key value. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the elements in an observable sequence with the maximum key value according to the specified comparer. + + The type of the elements in the source sequence. + The type of the key computed for each element in the source sequence. + An observable sequence to get the maximum elements for. + Key selector function. + Comparer used to compare key values. + An observable sequence containing a list of zero or more elements that have a maximum key value. + + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Merges elements from two observable sequences into a single observable sequence. + + The type of the elements in the source sequences. + First observable sequence. + Second observable sequence. + The observable sequence that merges the elements of the given sequences. + + or is null. + + + + Merges elements from two observable sequences into a single observable sequence, using the specified scheduler for enumeration of and subscription to the sources. + + The type of the elements in the source sequences. + First observable sequence. + Second observable sequence. + Scheduler used to introduce concurrency for making subscriptions to the given sequences. + The observable sequence that merges the elements of the given sequences. + + or or is null. + + + + Merges elements from all of the specified observable sequences into a single observable sequence, using the specified scheduler for enumeration of and subscription to the sources. + + Query provider used to construct the data source. + The type of the elements in the source sequences. + Observable sequences. + Scheduler to run the enumeration of the sequence of sources on. + The observable sequence that merges the elements of the observable sequences. + + or is null. + + + + Merges elements from all inner observable sequences into a single observable sequence. + + The type of the elements in the source sequences. + Observable sequence of inner observable sequences. + The observable sequence that merges the elements of the inner sequences. + + is null. + + + + Merges results from all source tasks into a single observable sequence. + + The type of the results produced by the source tasks. + Observable sequence of tasks. + The observable sequence that merges the results of the source tasks. + + is null. + If the tasks support cancellation, consider manual conversion of the tasks using , followed by a merge operation using . + + + + Merges elements from all of the specified observable sequences into a single observable sequence. + + Query provider used to construct the data source. + The type of the elements in the source sequences. + Observable sequences. + The observable sequence that merges the elements of the observable sequences. + + is null. + + + + Merges elements from all observable sequences in the given enumerable sequence into a single observable sequence. + + Query provider used to construct the data source. + The type of the elements in the source sequences. + Enumerable sequence of observable sequences. + The observable sequence that merges the elements of the observable sequences. + + is null. + + + + Merges elements from all inner observable sequences into a single observable sequence, limiting the number of concurrent subscriptions to inner sequences. + + The type of the elements in the source sequences. + Observable sequence of inner observable sequences. + Maximum number of inner observable sequences being subscribed to concurrently. + The observable sequence that merges the elements of the inner sequences. + + is null. + + is less than or equal to zero. + + + + Merges elements from all observable sequences in the given enumerable sequence into a single observable sequence, limiting the number of concurrent subscriptions to inner sequences. + + Query provider used to construct the data source. + The type of the elements in the source sequences. + Enumerable sequence of observable sequences. + Maximum number of observable sequences being subscribed to concurrently. + The observable sequence that merges the elements of the observable sequences. + + is null. + + is less than or equal to zero. + + + + Merges elements from all observable sequences in the given enumerable sequence into a single observable sequence, limiting the number of concurrent subscriptions to inner sequences, and using the specified scheduler for enumeration of and subscription to the sources. + + Query provider used to construct the data source. + The type of the elements in the source sequences. + Enumerable sequence of observable sequences. + Maximum number of observable sequences being subscribed to concurrently. + Scheduler to run the enumeration of the sequence of sources on. + The observable sequence that merges the elements of the observable sequences. + + or is null. + + is less than or equal to zero. + + + + Merges elements from all observable sequences in the given enumerable sequence into a single observable sequence, using the specified scheduler for enumeration of and subscription to the sources. + + Query provider used to construct the data source. + The type of the elements in the source sequences. + Enumerable sequence of observable sequences. + Scheduler to run the enumeration of the sequence of sources on. + The observable sequence that merges the elements of the observable sequences. + + or is null. + + + + Returns the minimum value in an observable sequence of values. + + A sequence of values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of values. + + A sequence of values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of values. + + A sequence of values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of values. + + A sequence of values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of values. + + A sequence of values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum element in an observable sequence. + + The type of the elements in the source sequence. + An observable sequence to determine the minimum element of. + An observable sequence containing a single element with the minimum element in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum element in an observable sequence according to the specified comparer. + + The type of the elements in the source sequence. + An observable sequence to determine the minimum element of. + Comparer used to compare elements. + An observable sequence containing a single element with the minimum element in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum value. + + The type of the elements in the source sequence. + The type of the objects derived from the elements in the source sequence to determine the minimum of. + An observable sequence to determine the minimum element of. + A transform function to apply to each element. + An observable sequence containing a single element with the value that corresponds to the minimum element in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum value according to the specified comparer. + + The type of the elements in the source sequence. + The type of the objects derived from the elements in the source sequence to determine the minimum of. + An observable sequence to determine the minimum element of. + A transform function to apply to each element. + Comparer used to compare elements. + An observable sequence containing a single element with the value that corresponds to the minimum element in the source sequence. + + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the elements in an observable sequence with the minimum key value. + + The type of the elements in the source sequence. + The type of the key computed for each element in the source sequence. + An observable sequence to get the minimum elements for. + Key selector function. + An observable sequence containing a list of zero or more elements that have a minimum key value. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the elements in an observable sequence with the minimum key value according to the specified comparer. + + The type of the elements in the source sequence. + The type of the key computed for each element in the source sequence. + An observable sequence to get the minimum elements for. + Key selector function. + Comparer used to compare key values. + An observable sequence containing a list of zero or more elements that have a minimum key value. + + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns an enumerable sequence whose enumeration returns the most recently observed element in the source observable sequence, using the specified initial value in case no element has been sampled yet. + Enumerators on the resulting sequence never block and can produce the same element repeatedly. + + The type of the elements in the source sequence. + Source observable sequence. + Initial value that will be yielded by the enumerable sequence if no element has been sampled yet. + The enumerable sequence that returns the last sampled element upon each iteration. + + is null. + This operator requires the source's object (see ) to implement . + + + + Multicasts the source sequence notifications through an instantiated subject into all uses of the sequence within a selector function. Each + subscription to the resulting sequence causes a separate multicast invocation, exposing the sequence resulting from the selector function's + invocation. For specializations with fixed subject types, see Publish, PublishLast, and Replay. + + The type of the elements in the source sequence. + The type of the elements produced by the intermediate subject. + The type of the elements in the result sequence. + Source sequence which will be multicasted in the specified selector function. + Factory function to create an intermediate subject through which the source sequence's elements will be multicast to the selector function. + Selector function which can use the multicasted source sequence subject to the policies enforced by the created subject. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + + or or is null. + + + + Returns a non-terminating observable sequence, which can be used to denote an infinite duration (e.g. when using reactive joins). + + Query provider used to construct the data source. + The type used for the type parameter of the resulting sequence. + An observable sequence whose observers will never get called. + + + + Returns a non-terminating observable sequence, which can be used to denote an infinite duration (e.g. when using reactive joins). + + Query provider used to construct the data source. + The type used for the type parameter of the resulting sequence. + Object solely used to infer the type of the type parameter. This parameter is typically used when creating a sequence of anonymously typed elements. + An observable sequence whose observers will never get called. + + + + Returns an enumerable sequence whose enumeration blocks until the next element in the source observable sequence becomes available. + Enumerators on the resulting sequence will block until the next element becomes available. + + The type of the elements in the source sequence. + Source observable sequence. + The enumerable sequence that blocks upon each iteration until the next element in the observable source sequence becomes available. + + is null. + This operator requires the source's object (see ) to implement . + + + + Wraps the source sequence in order to run its observer callbacks on the specified synchronization context. + + The type of the elements in the source sequence. + Source sequence. + Synchronization context to notify observers on. + The source sequence whose observations happen on the specified synchronization context. + + or is null. + + This only invokes observer callbacks on a synchronization context. In case the subscription and/or unsubscription actions have side-effects + that require to be run on a synchronization context, use . + + + + + Wraps the source sequence in order to run its observer callbacks on the specified scheduler. + + The type of the elements in the source sequence. + Source sequence. + Scheduler to notify observers on. + The source sequence whose observations happen on the specified scheduler. + + or is null. + + This only invokes observer callbacks on a scheduler. In case the subscription and/or unsubscription actions have side-effects + that require to be run on a scheduler, use . + + + + + Filters the elements of an observable sequence based on the specified type. + + The type to filter the elements in the source sequence on. + The observable sequence that contains the elements to be filtered. + An observable sequence that contains elements from the input sequence of type TResult. + + is null. + + + + Concatenates the second observable sequence to the first observable sequence upon successful or exceptional termination of the first. + + The type of the elements in the source sequences. + First observable sequence whose exception (if any) is caught. + Second observable sequence used to produce results after the first sequence terminates. + An observable sequence that concatenates the first and second sequence, even if the first sequence terminates exceptionally. + + or is null. + + + + Concatenates all of the specified observable sequences, even if the previous observable sequence terminated exceptionally. + + Query provider used to construct the data source. + The type of the elements in the source sequences. + Observable sequences to concatenate. + An observable sequence that concatenates the source sequences, even if a sequence terminates exceptionally. + + is null. + + + + Concatenates all observable sequences in the given enumerable sequence, even if the previous observable sequence terminated exceptionally. + + Query provider used to construct the data source. + The type of the elements in the source sequences. + Observable sequences to concatenate. + An observable sequence that concatenates the source sequences, even if a sequence terminates exceptionally. + + is null. + + + + Prepend a value to an observable sequence. + + The type of the elements in the source sequence. + Source sequence to prepend the value to. + Value to prepend to the specified sequence. + The source sequence prepended with the specified value. + + is null. + + + + Prepend a value to an observable sequence. + + The type of the elements in the source sequence. + Source sequence to prepend the value to. + Value to prepend to the specified sequence. + Scheduler to emit the prepend values on. + The source sequence prepended with the specified value. + + is null. + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence. + This operator is a specialization of Multicast using a regular . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all notifications of the source from the time of the subscription on. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + + or is null. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence and starts with initialValue. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive immediately receive the initial value, followed by all notifications of the source from the time of the subscription on. + Initial value received by observers upon subscription. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + + or is null. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence containing only the last notification. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will only receive the last notification of the source. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + + or is null. + + + + + Generates an observable sequence of integral numbers within a specified range. + + Query provider used to construct the data source. + The value of the first integer in the sequence. + The number of sequential integers to generate. + An observable sequence that contains a range of sequential integral numbers. + + is less than zero. -or- + - 1 is larger than . + + + + Generates an observable sequence of integral numbers within a specified range, using the specified scheduler to send out observer messages. + + Query provider used to construct the data source. + The value of the first integer in the sequence. + The number of sequential integers to generate. + Scheduler to run the generator loop on. + An observable sequence that contains a range of sequential integral numbers. + + is less than zero. -or- + - 1 is larger than . + + is null. + + + + Returns an observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + + Query provider used to construct the data source. + The type of the elements in the source sequence. + Connectable observable sequence. + An observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + + is null. + + + + Returns an observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + + Query provider used to construct the data source. + The type of the elements in the source sequence. + Connectable observable sequence. + The time span that should be waited before possibly unsubscribing from the connectable observable. + An observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + + is null. + + + + Returns an observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + + Query provider used to construct the data source. + The type of the elements in the source sequence. + Connectable observable sequence. + The time span that should be waited before possibly unsubscribing from the connectable observable. + The scheduler to use for delayed unsubscription. + An observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + + is null. + + + + Returns an observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + + Query provider used to construct the data source. + The type of the elements in the source sequence. + Connectable observable sequence. + The minimum number of observers required to subscribe before establishing the connection to the source. + An observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + + is null. + is non-positive. + + + + Returns an observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + + Query provider used to construct the data source. + The type of the elements in the source sequence. + Connectable observable sequence. + The minimum number of observers required to subscribe before establishing the connection to the source. + The time span that should be waited before possibly unsubscribing from the connectable observable. + An observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + + is null. + is non-positive. + + + + Returns an observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + + Query provider used to construct the data source. + The type of the elements in the source sequence. + Connectable observable sequence. + The minimum number of observers required to subscribe before establishing the connection to the source. + The time span that should be waited before possibly unsubscribing from the connectable observable. + The scheduler to use for delayed unsubscription. + An observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + + is null. + is non-positive. + + + + Generates an observable sequence that repeats the given element infinitely. + + Query provider used to construct the data source. + The type of the element that will be repeated in the produced sequence. + Element to repeat. + An observable sequence that repeats the given element infinitely. + + + + Generates an observable sequence that repeats the given element the specified number of times. + + Query provider used to construct the data source. + The type of the element that will be repeated in the produced sequence. + Element to repeat. + Number of times to repeat the element. + An observable sequence that repeats the given element the specified number of times. + + is less than zero. + + + + Generates an observable sequence that repeats the given element the specified number of times, using the specified scheduler to send out observer messages. + + Query provider used to construct the data source. + The type of the element that will be repeated in the produced sequence. + Element to repeat. + Number of times to repeat the element. + Scheduler to run the producer loop on. + An observable sequence that repeats the given element the specified number of times. + + is less than zero. + + is null. + + + + Generates an observable sequence that repeats the given element infinitely, using the specified scheduler to send out observer messages. + + Query provider used to construct the data source. + The type of the element that will be repeated in the produced sequence. + Element to repeat. + Scheduler to run the producer loop on. + An observable sequence that repeats the given element infinitely. + + is null. + + + + Repeats the observable sequence indefinitely. + + The type of the elements in the source sequence. + Observable sequence to repeat. + The observable sequence producing the elements of the given sequence repeatedly and sequentially. + + is null. + + + + Repeats the observable sequence a specified number of times. + + The type of the elements in the source sequence. + Observable sequence to repeat. + Number of times to repeat the sequence. + The observable sequence producing the elements of the given sequence repeatedly. + + is null. + + is less than zero. + + + + Repeatedly resubscribes to the source observable after a normal completion and when the observable + returned by a handler produces an arbitrary item. + + The type of the elements in the source sequence. + The arbitrary element type signaled by the handler observable. + Observable sequence to keep repeating when it successfully terminates. + The function that is called for each observer and takes an observable sequence objects. + It should return an observable of arbitrary items that should signal that arbitrary item in + response to receiving the completion signal from the source observable. If this observable signals + a terminal event, the sequence is terminated with that signal instead. + An observable sequence producing the elements of the given sequence repeatedly while each repetition terminates successfully. + is null. + is null. + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying all notifications. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all the notifications of the source. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + + or is null. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum element count for the replay buffer. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all the notifications of the source subject to the specified replay buffer trimming policy. + Maximum element count of the replay buffer. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + + or is null. + + is less than zero. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum element count for the replay buffer. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all the notifications of the source subject to the specified replay buffer trimming policy. + Maximum element count of the replay buffer. + Scheduler where connected observers within the selector function will be invoked on. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + + or or is null. + + is less than zero. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum time length and element count for the replay buffer. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all the notifications of the source subject to the specified replay buffer trimming policy. + Maximum element count of the replay buffer. + Maximum time length of the replay buffer. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + + or is null. + + is less than zero. + + is less than TimeSpan.Zero. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum time length and element count for the replay buffer. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all the notifications of the source subject to the specified replay buffer trimming policy. + Maximum element count of the replay buffer. + Maximum time length of the replay buffer. + Scheduler where connected observers within the selector function will be invoked on. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + + or or is null. + + is less than zero. + + is less than TimeSpan.Zero. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying all notifications. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all the notifications of the source. + Scheduler where connected observers within the selector function will be invoked on. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + + or or is null. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum time length for the replay buffer. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all the notifications of the source subject to the specified replay buffer trimming policy. + Maximum time length of the replay buffer. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + + or is null. + + is less than TimeSpan.Zero. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum time length for the replay buffer. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all the notifications of the source subject to the specified replay buffer trimming policy. + Maximum time length of the replay buffer. + Scheduler where connected observers within the selector function will be invoked on. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + + or or is null. + + is less than TimeSpan.Zero. + + + + + Repeats the source observable sequence until it successfully terminates. + + The type of the elements in the source sequence. + Observable sequence to repeat until it successfully terminates. + An observable sequence producing the elements of the given sequence repeatedly until it terminates successfully. + + is null. + + + + Repeats the source observable sequence the specified number of times or until it successfully terminates. + + The type of the elements in the source sequence. + Observable sequence to repeat until it successfully terminates. + Number of times to repeat the sequence. + An observable sequence producing the elements of the given sequence repeatedly until it terminates successfully. + + is null. + + is less than zero. + + + + Retries (resubscribes to) the source observable after a failure and when the observable + returned by a handler produces an arbitrary item. + + The type of the elements in the source sequence. + The arbitrary element type signaled by the handler observable. + Observable sequence to repeat until it successfully terminates. + The function that is called for each observer and takes an observable sequence of + errors. It should return an observable of arbitrary items that should signal that arbitrary item in + response to receiving the failure Exception from the source observable. If this observable signals + a terminal event, the sequence is terminated with that signal instead. + An observable sequence producing the elements of the given sequence repeatedly until it terminates successfully. + + is null. + + is null. + + + + Returns an observable sequence that contains a single element. + + Query provider used to construct the data source. + The type of the element that will be returned in the produced sequence. + Single element in the resulting observable sequence. + An observable sequence containing the single specified element. + + + + Returns an observable sequence that contains a single element, using the specified scheduler to send out observer messages. + + Query provider used to construct the data source. + The type of the element that will be returned in the produced sequence. + Single element in the resulting observable sequence. + Scheduler to send the single element on. + An observable sequence containing the single specified element. + + is null. + + + + Samples the observable sequence at each interval. + Upon each sampling tick, the latest element (if any) in the source sequence during the last sampling interval is sent to the resulting sequence. + + The type of the elements in the source sequence. + Source sequence to sample. + Interval at which to sample. If this value is equal to TimeSpan.Zero, the scheduler will continuously sample the stream. + Sampled observable sequence. + + is null. + + is less than TimeSpan.Zero. + + Specifying a TimeSpan.Zero value for doesn't guarantee all source sequence elements will be preserved. This is a side-effect + of the asynchrony introduced by the scheduler, where the sampling action may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Samples the observable sequence at each interval, using the specified scheduler to run sampling timers. + Upon each sampling tick, the latest element (if any) in the source sequence during the last sampling interval is sent to the resulting sequence. + + The type of the elements in the source sequence. + Source sequence to sample. + Interval at which to sample. If this value is equal to TimeSpan.Zero, the scheduler will continuously sample the stream. + Scheduler to run the sampling timer on. + Sampled observable sequence. + + or is null. + + is less than TimeSpan.Zero. + + Specifying a TimeSpan.Zero value for doesn't guarantee all source sequence elements will be preserved. This is a side-effect + of the asynchrony introduced by the scheduler, where the sampling action may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Samples the source observable sequence using a sampler observable sequence producing sampling ticks. + Upon each sampling tick, the latest element (if any) in the source sequence during the last sampling interval is sent to the resulting sequence. + + The type of the elements in the source sequence. + The type of the elements in the sampling sequence. + Source sequence to sample. + Sampling tick sequence. + Sampled observable sequence. + + or is null. + + + + Applies an accumulator function over an observable sequence and returns each intermediate result. + For aggregation behavior with no intermediate results, see . + + The type of the elements in the source sequence and the result of the aggregation. + An observable sequence to accumulate over. + An accumulator function to be invoked on each element. + An observable sequence containing the accumulated values. + + or is null. + + + + Applies an accumulator function over an observable sequence and returns each intermediate result. The specified seed value is used as the initial accumulator value. + For aggregation behavior with no intermediate results, see . + + The type of the elements in the source sequence. + The type of the result of the aggregation. + An observable sequence to accumulate over. + The initial accumulator value. + An accumulator function to be invoked on each element. + An observable sequence containing the accumulated values. + + or is null. + + + + Projects each element of an observable sequence into a new form. + + The type of the elements in the source sequence. + The type of the elements in the result sequence, obtained by running the selector function for each element in the source sequence. + A sequence of elements to invoke a transform function on. + A transform function to apply to each source element. + An observable sequence whose elements are the result of invoking the transform function on each element of source. + + or is null. + + + + Projects each element of an observable sequence into a new form by incorporating the element's index. + + The type of the elements in the source sequence. + The type of the elements in the result sequence, obtained by running the selector function for each element in the source sequence. + A sequence of elements to invoke a transform function on. + A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + An observable sequence whose elements are the result of invoking the transform function on each element of source. + + or is null. + + + + Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected intermediate sequences. + The type of the elements in the result sequence, obtained by using the selector to combine source sequence elements with their corresponding intermediate sequence elements. + An observable sequence of elements to project. + A transform function to apply to each element. + A transform function to apply to each element of the intermediate sequence. + An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + + or or is null. + + + + Projects each element of an observable sequence to an observable sequence by incorporating the element's index, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected intermediate sequences. + The type of the elements in the result sequence, obtained by using the selector to combine source sequence elements with their corresponding intermediate sequence elements. + An observable sequence of elements to project. + A transform function to apply to each element; the second parameter of the function represents the index of the source element. + A transform function to apply to each element of the intermediate sequence; the second parameter of the function represents the index of the source element and the fourth parameter represents the index of the intermediate element. + An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + + or or is null. + + + + Projects each element of an observable sequence to an enumerable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected intermediate enumerable sequences. + The type of the elements in the result sequence, obtained by using the selector to combine source sequence elements with their corresponding intermediate sequence elements. + An observable sequence of elements to project. + A transform function to apply to each element. + A transform function to apply to each element of the intermediate sequence. + An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + + or or is null. + The projected sequences are enumerated synchronously within the OnNext call of the source sequence. In order to do a concurrent, non-blocking merge, change the selector to return an observable sequence obtained using the conversion. + + + + Projects each element of an observable sequence to an enumerable sequence by incorporating the element's index, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected intermediate enumerable sequences. + The type of the elements in the result sequence, obtained by using the selector to combine source sequence elements with their corresponding intermediate sequence elements. + An observable sequence of elements to project. + A transform function to apply to each element; the second parameter of the function represents the index of the source element. + A transform function to apply to each element of the intermediate sequence; the second parameter of the function represents the index of the source element and the fourth parameter represents the index of the intermediate element. + An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + + or or is null. + The projected sequences are enumerated synchronously within the OnNext call of the source sequence. In order to do a concurrent, non-blocking merge, change the selector to return an observable sequence obtained using the conversion. + + + + Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the other sequence and the elements in the result sequence. + An observable sequence of elements to project. + An observable sequence to project each element from the source sequence onto. + An observable sequence whose elements are the result of projecting each source element onto the other sequence and merging all the resulting sequences together. + + or is null. + + + + Projects each notification of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected inner sequences and the elements in the merged result sequence. + An observable sequence of notifications to project. + A transform function to apply to each element. + A transform function to apply when an error occurs in the source sequence. + A transform function to apply when the end of the source sequence is reached. + An observable sequence whose elements are the result of invoking the one-to-many transform function corresponding to each notification in the input sequence. + + or or or is null. + + + + Projects each notification of an observable sequence to an observable sequence by incorporating the element's index and merges the resulting observable sequences into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected inner sequences and the elements in the merged result sequence. + An observable sequence of notifications to project. + A transform function to apply to each element; the second parameter of the function represents the index of the source element. + A transform function to apply when an error occurs in the source sequence. + A transform function to apply when the end of the source sequence is reached. + An observable sequence whose elements are the result of invoking the one-to-many transform function corresponding to each notification in the input sequence. + + or or or is null. + + + + Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected inner sequences and the elements in the merged result sequence. + An observable sequence of elements to project. + A transform function to apply to each element. + An observable sequence whose elements are the result of invoking the one-to-many transform function on each element of the input sequence. + + or is null. + + + + Projects each element of an observable sequence to an observable sequence by incorporating the element's index and merges the resulting observable sequences into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected inner sequences and the elements in the merged result sequence. + An observable sequence of elements to project. + A transform function to apply to each element; the second parameter of the function represents the index of the source element. + An observable sequence whose elements are the result of invoking the one-to-many transform function on each element of the input sequence. + + or is null. + + + + Projects each element of an observable sequence to a task and merges all of the task results into one observable sequence. + + The type of the elements in the source sequence. + The type of the result produced by the projected tasks and the elements in the merged result sequence. + An observable sequence of elements to project. + A transform function to apply to each element. + An observable sequence whose elements are the result of the tasks executed for each element of the input sequence. + This overload supports composition of observable sequences and tasks, without requiring manual conversion of the tasks to observable sequences using . + + or is null. + + + + Projects each element of an observable sequence to a task by incorporating the element's index and merges all of the task results into one observable sequence. + + The type of the elements in the source sequence. + The type of the result produced by the projected tasks and the elements in the merged result sequence. + An observable sequence of elements to project. + A transform function to apply to each element; the second parameter of the function represents the index of the source element. + An observable sequence whose elements are the result of the tasks executed for each element of the input sequence. + This overload supports composition of observable sequences and tasks, without requiring manual conversion of the tasks to observable sequences using . + + or is null. + + + + Projects each element of an observable sequence to a task with cancellation support and merges all of the task results into one observable sequence. + + The type of the elements in the source sequence. + The type of the result produced by the projected tasks and the elements in the merged result sequence. + An observable sequence of elements to project. + A transform function to apply to each element. + An observable sequence whose elements are the result of the tasks executed for each element of the input sequence. + This overload supports composition of observable sequences and tasks, without requiring manual conversion of the tasks to observable sequences using . + + or is null. + + + + Projects each element of an observable sequence to a task by incorporating the element's index with cancellation support and merges all of the task results into one observable sequence. + + The type of the elements in the source sequence. + The type of the result produced by the projected tasks and the elements in the merged result sequence. + An observable sequence of elements to project. + A transform function to apply to each element; the second parameter of the function represents the index of the source element. + An observable sequence whose elements are the result of the tasks executed for each element of the input sequence. + This overload supports composition of observable sequences and tasks, without requiring manual conversion of the tasks to observable sequences using . + + or is null. + + + + Projects each element of an observable sequence to an enumerable sequence and concatenates the resulting enumerable sequences into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected inner enumerable sequences and the elements in the merged result sequence. + An observable sequence of elements to project. + A transform function to apply to each element. + An observable sequence whose elements are the result of invoking the one-to-many transform function on each element of the input sequence. + + or is null. + The projected sequences are enumerated synchronously within the OnNext call of the source sequence. In order to do a concurrent, non-blocking merge, change the selector to return an observable sequence obtained using the conversion. + + + + Projects each element of an observable sequence to an enumerable sequence by incorporating the element's index and concatenates the resulting enumerable sequences into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected inner enumerable sequences and the elements in the merged result sequence. + An observable sequence of elements to project. + A transform function to apply to each element; the second parameter of the function represents the index of the source element. + An observable sequence whose elements are the result of invoking the one-to-many transform function on each element of the input sequence. + + or is null. + The projected sequences are enumerated synchronously within the OnNext call of the source sequence. In order to do a concurrent, non-blocking merge, change the selector to return an observable sequence obtained using the conversion. + + + + Projects each element of an observable sequence to a task, invokes the result selector for the source element and the task result, and merges the results into one observable sequence. + + The type of the elements in the source sequence. + The type of the results produced by the projected intermediate tasks. + The type of the elements in the result sequence, obtained by using the selector to combine source sequence elements with their corresponding intermediate task results. + An observable sequence of elements to project. + A transform function to apply to each element. + A transform function to apply to each element of the intermediate sequence. + An observable sequence whose elements are the result of obtaining a task for each element of the input sequence and then mapping the task's result and its corresponding source element to a result element. + + or or is null. + This overload supports using LINQ query comprehension syntax in C# and Visual Basic to compose observable sequences and tasks, without requiring manual conversion of the tasks to observable sequences using . + + + + Projects each element of an observable sequence to a task by incorporating the element's index, invokes the result selector for the source element and the task result, and merges the results into one observable sequence. + + The type of the elements in the source sequence. + The type of the results produced by the projected intermediate tasks. + The type of the elements in the result sequence, obtained by using the selector to combine source sequence elements with their corresponding intermediate task results. + An observable sequence of elements to project. + A transform function to apply to each element; the second parameter of the function represents the index of the source element. + A transform function to apply to each element of the intermediate sequence; the second parameter of the function represents the index of the source element. + An observable sequence whose elements are the result of obtaining a task for each element of the input sequence and then mapping the task's result and its corresponding source element to a result element. + + or or is null. + This overload supports using LINQ query comprehension syntax in C# and Visual Basic to compose observable sequences and tasks, without requiring manual conversion of the tasks to observable sequences using . + + + + Projects each element of an observable sequence to a task with cancellation support, invokes the result selector for the source element and the task result, and merges the results into one observable sequence. + + The type of the elements in the source sequence. + The type of the results produced by the projected intermediate tasks. + The type of the elements in the result sequence, obtained by using the selector to combine source sequence elements with their corresponding intermediate task results. + An observable sequence of elements to project. + A transform function to apply to each element. + A transform function to apply to each element of the intermediate sequence. + An observable sequence whose elements are the result of obtaining a task for each element of the input sequence and then mapping the task's result and its corresponding source element to a result element. + + or or is null. + This overload supports using LINQ query comprehension syntax in C# and Visual Basic to compose observable sequences and tasks, without requiring manual conversion of the tasks to observable sequences using . + + + + Projects each element of an observable sequence to a task by incorporating the element's index with cancellation support, invokes the result selector for the source element and the task result, and merges the results into one observable sequence. + + The type of the elements in the source sequence. + The type of the results produced by the projected intermediate tasks. + The type of the elements in the result sequence, obtained by using the selector to combine source sequence elements with their corresponding intermediate task results. + An observable sequence of elements to project. + A transform function to apply to each element; the second parameter of the function represents the index of the source element. + A transform function to apply to each element of the intermediate sequence; the second parameter of the function represents the index of the source element. + An observable sequence whose elements are the result of obtaining a task for each element of the input sequence and then mapping the task's result and its corresponding source element to a result element. + + or or is null. + This overload supports using LINQ query comprehension syntax in C# and Visual Basic to compose observable sequences and tasks, without requiring manual conversion of the tasks to observable sequences using . + + + + Determines whether two sequences are equal by comparing the elements pairwise. + + The type of the elements in the source sequence. + First observable sequence to compare. + Second observable sequence to compare. + An observable sequence that contains a single element which indicates whether both sequences are of equal length and their corresponding elements are equal according to the default equality comparer for their type. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Determines whether an observable and enumerable sequence are equal by comparing the elements pairwise. + + The type of the elements in the source sequence. + First observable sequence to compare. + Second observable sequence to compare. + An observable sequence that contains a single element which indicates whether both sequences are of equal length and their corresponding elements are equal according to the default equality comparer for their type. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Determines whether two sequences are equal by comparing the elements pairwise using a specified equality comparer. + + The type of the elements in the source sequence. + First observable sequence to compare. + Second observable sequence to compare. + Comparer used to compare elements of both sequences. + An observable sequence that contains a single element which indicates whether both sequences are of equal length and their corresponding elements are equal according to the specified equality comparer. + + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Determines whether an observable and enumerable sequence are equal by comparing the elements pairwise using a specified equality comparer. + + The type of the elements in the source sequence. + First observable sequence to compare. + Second observable sequence to compare. + Comparer used to compare elements of both sequences. + An observable sequence that contains a single element which indicates whether both sequences are of equal length and their corresponding elements are equal according to the specified equality comparer. + + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the only element of an observable sequence, and reports an exception if there is not exactly one element in the observable sequence. + + The type of the elements in the source sequence. + Source observable sequence. + Sequence containing the single element in the observable sequence. + + is null. + (Asynchronous) The source sequence contains more than one element. -or- The source sequence is empty. + + + + Returns the only element of an observable sequence that satisfies the condition in the predicate, and reports an exception if there is not exactly one element in the observable sequence. + + The type of the elements in the source sequence. + Source observable sequence. + A predicate function to evaluate for elements in the source sequence. + Sequence containing the single element in the observable sequence that satisfies the condition in the predicate. + + or is null. + (Asynchronous) No element satisfies the condition in the predicate. -or- More than one element satisfies the condition in the predicate. -or- The source sequence is empty. + + + + Returns the only element of an observable sequence, or a default value if the observable sequence is empty; this method reports an exception if there is more than one element in the observable sequence. + + The type of the elements in the source sequence. + Source observable sequence. + Sequence containing the single element in the observable sequence, or a default value if no such element exists. + + is null. + (Asynchronous) The source sequence contains more than one element. + + + + Returns the only element of an observable sequence that matches the predicate, or a default value if no such element exists; this method reports an exception if there is more than one element in the observable sequence. + + The type of the elements in the source sequence. + Source observable sequence. + A predicate function to evaluate for elements in the source sequence. + Sequence containing the single element in the observable sequence that satisfies the condition in the predicate, or a default value if no such element exists. + + or is null. + (Asynchronous) The sequence contains more than one element that satisfies the condition in the predicate. + + + + Bypasses a specified number of elements in an observable sequence and then returns the remaining elements. + + The type of the elements in the source sequence. + The sequence to take elements from. + The number of elements to skip before returning the remaining elements. + An observable sequence that contains the elements that occur after the specified index in the input sequence. + + is null. + + is less than zero. + + + + Skips elements for the specified duration from the start of the observable source sequence. + + The type of the elements in the source sequence. + Source sequence to skip elements for. + Duration for skipping elements from the start of the sequence. + An observable sequence with the elements skipped during the specified duration from the start of the source sequence. + + is null. + + is less than TimeSpan.Zero. + + + Specifying a TimeSpan.Zero value for doesn't guarantee no elements will be dropped from the start of the source sequence. + This is a side-effect of the asynchrony introduced by the scheduler, where the action that causes callbacks from the source sequence to be forwarded + may not execute immediately, despite the TimeSpan.Zero due time. + + + Errors produced by the source sequence are always forwarded to the result sequence, even if the error occurs before the . + + + + + + Skips elements for the specified duration from the start of the observable source sequence, using the specified scheduler to run timers. + + The type of the elements in the source sequence. + Source sequence to skip elements for. + Duration for skipping elements from the start of the sequence. + Scheduler to run the timer on. + An observable sequence with the elements skipped during the specified duration from the start of the source sequence. + + or is null. + + is less than TimeSpan.Zero. + + + Specifying a TimeSpan.Zero value for doesn't guarantee no elements will be dropped from the start of the source sequence. + This is a side-effect of the asynchrony introduced by the scheduler, where the action that causes callbacks from the source sequence to be forwarded + may not execute immediately, despite the TimeSpan.Zero due time. + + + Errors produced by the source sequence are always forwarded to the result sequence, even if the error occurs before the . + + + + + + Bypasses a specified number of elements at the end of an observable sequence. + + The type of the elements in the source sequence. + Source sequence. + Number of elements to bypass at the end of the source sequence. + An observable sequence containing the source sequence elements except for the bypassed ones at the end. + + is null. + + is less than zero. + + This operator accumulates a queue with a length enough to store the first elements. As more elements are + received, elements are taken from the front of the queue and produced on the result sequence. This causes elements to be delayed. + + + + + Skips elements for the specified duration from the end of the observable source sequence. + + The type of the elements in the source sequence. + Source sequence to skip elements for. + Duration for skipping elements from the end of the sequence. + An observable sequence with the elements skipped during the specified duration from the end of the source sequence. + + is null. + + is less than TimeSpan.Zero. + + This operator accumulates a queue with a length enough to store elements received during the initial window. + As more elements are received, elements older than the specified are taken from the queue and produced on the + result sequence. This causes elements to be delayed with . + + + + + Skips elements for the specified duration from the end of the observable source sequence, using the specified scheduler to run timers. + + The type of the elements in the source sequence. + Source sequence to skip elements for. + Duration for skipping elements from the end of the sequence. + Scheduler to run the timer on. + An observable sequence with the elements skipped during the specified duration from the end of the source sequence. + + or is null. + + is less than TimeSpan.Zero. + + This operator accumulates a queue with a length enough to store elements received during the initial window. + As more elements are received, elements older than the specified are taken from the queue and produced on the + result sequence. This causes elements to be delayed with . + + + + + Skips elements from the observable source sequence until the specified start time. + + The type of the elements in the source sequence. + Source sequence to skip elements for. + Time to start taking elements from the source sequence. If this value is less than or equal to DateTimeOffset.UtcNow, no elements will be skipped. + An observable sequence with the elements skipped until the specified start time. + + is null. + + Errors produced by the source sequence are always forwarded to the result sequence, even if the error occurs before the . + + + + + Skips elements from the observable source sequence until the specified start time, using the specified scheduler to run timers. + + The type of the elements in the source sequence. + Source sequence to skip elements for. + Time to start taking elements from the source sequence. If this value is less than or equal to DateTimeOffset.UtcNow, no elements will be skipped. + Scheduler to run the timer on. + An observable sequence with the elements skipped until the specified start time. + + or is null. + + Errors produced by the source sequence are always forwarded to the result sequence, even if the error occurs before the . + + + + + Returns the elements from the source observable sequence only after the other observable sequence produces an element. + Starting from Rx.NET 4.0, this will subscribe to before subscribing to + so in case emits an element right away, elements from are not missed. + + The type of the elements in the source sequence. + The type of the elements in the other sequence that indicates the end of skip behavior. + Source sequence to propagate elements for. + Observable sequence that triggers propagation of elements of the source sequence. + An observable sequence containing the elements of the source sequence starting from the point the other sequence triggered propagation. + + or is null. + + + + Bypasses elements in an observable sequence as long as a specified condition is true and then returns the remaining elements. + + The type of the elements in the source sequence. + An observable sequence to return elements from. + A function to test each element for a condition. + An observable sequence that contains the elements from the input sequence starting at the first element in the linear series that does not pass the test specified by predicate. + + or is null. + + + + Bypasses elements in an observable sequence as long as a specified condition is true and then returns the remaining elements. + The element's index is used in the logic of the predicate function. + + The type of the elements in the source sequence. + An observable sequence to return elements from. + A function to test each element for a condition; the second parameter of the function represents the index of the source element. + An observable sequence that contains the elements from the input sequence starting at the first element in the linear series that does not pass the test specified by predicate. + + or is null. + + + + Invokes the action asynchronously, surfacing the result through an observable sequence. + + Query provider used to construct the data source. + Action to run asynchronously. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + + is null. + + + + The action is called immediately, not during the subscription of the resulting sequence. + + + Multiple subscriptions to the resulting sequence can observe the action's outcome. + + + + + + + Invokes the action asynchronously on the specified scheduler, surfacing the result through an observable sequence. + + Query provider used to construct the data source. + Action to run asynchronously. + Scheduler to run the action on. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + + or is null. + + + + The action is called immediately, not during the subscription of the resulting sequence. + + + Multiple subscriptions to the resulting sequence can observe the action's outcome. + + + + + + + Invokes the specified function asynchronously, surfacing the result through an observable sequence. + + Query provider used to construct the data source. + The type of the result returned by the function. + Function to run asynchronously. + An observable sequence exposing the function's result value, or an exception. + + is null. + + + + The function is called immediately, not during the subscription of the resulting sequence. + + + Multiple subscriptions to the resulting sequence can observe the function's result. + + + + + + + Invokes the specified function asynchronously on the specified scheduler, surfacing the result through an observable sequence + + Query provider used to construct the data source. + The type of the result returned by the function. + Function to run asynchronously. + Scheduler to run the function on. + An observable sequence exposing the function's result value, or an exception. + + or is null. + + + + The function is called immediately, not during the subscription of the resulting sequence. + + + Multiple subscriptions to the resulting sequence can observe the function's result. + + + + + + + Invokes the asynchronous action, surfacing the result through an observable sequence. + + Query provider used to construct the data source. + Asynchronous action to run. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + + is null. + + + + The action is started immediately, not during the subscription of the resulting sequence. + + + Multiple subscriptions to the resulting sequence can observe the action's outcome. + + + + + + + Invokes the asynchronous action, surfacing the result through an observable sequence. + + Query provider used to construct the data source. + Asynchronous action to run. + Scheduler on which to notify observers. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + + is null or is null. + + + + The action is started immediately, not during the subscription of the resulting sequence. + + + Multiple subscriptions to the resulting sequence can observe the action's outcome. + + + + + + + Invokes the asynchronous action, surfacing the result through an observable sequence. + The CancellationToken is shared by all subscriptions on the resulting observable sequence. See the remarks section for more information. + + Query provider used to construct the data source. + Asynchronous action to run. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + + is null. + + + + The action is started immediately, not during the subscription of the resulting sequence. + + + Multiple subscriptions to the resulting sequence can observe the action's outcome. + + + + If any subscription to the resulting sequence is disposed, the CancellationToken is set. The observer associated to the disposed + subscription won't see the TaskCanceledException, but other observers will. You can protect against this using the Catch operator. + Be careful when handing out the resulting sequence because of this behavior. The most common use is to have a single subscription + to the resulting sequence, which controls the CancellationToken state. Alternatively, you can control subscription behavior using + multicast operators. + + + + + + + + Invokes the asynchronous action, surfacing the result through an observable sequence. + The CancellationToken is shared by all subscriptions on the resulting observable sequence. See the remarks section for more information. + + Query provider used to construct the data source. + Asynchronous action to run. + Scheduler on which to notify observers. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + + is null or is null. + + + + The action is started immediately, not during the subscription of the resulting sequence. + + + Multiple subscriptions to the resulting sequence can observe the action's outcome. + + + + If any subscription to the resulting sequence is disposed, the CancellationToken is set. The observer associated to the disposed + subscription won't see the TaskCanceledException, but other observers will. You can protect against this using the Catch operator. + Be careful when handing out the resulting sequence because of this behavior. The most common use is to have a single subscription + to the resulting sequence, which controls the CancellationToken state. Alternatively, you can control subscription behavior using + multicast operators. + + + + + + + + Invokes the asynchronous function, surfacing the result through an observable sequence. + + Query provider used to construct the data source. + The type of the result returned by the asynchronous function. + Asynchronous function to run. + An observable sequence exposing the function's result value, or an exception. + + is null. + + + + The function is started immediately, not during the subscription of the resulting sequence. + + + Multiple subscriptions to the resulting sequence can observe the function's result. + + + + + + + Invokes the asynchronous function, surfacing the result through an observable sequence. + The CancellationToken is shared by all subscriptions on the resulting observable sequence. See the remarks section for more information. + + Query provider used to construct the data source. + The type of the result returned by the asynchronous function. + Asynchronous function to run. + An observable sequence exposing the function's result value, or an exception. + + is null. + + + + The function is started immediately, not during the subscription of the resulting sequence. + + + Multiple subscriptions to the resulting sequence can observe the function's result. + + + + If any subscription to the resulting sequence is disposed, the CancellationToken is set. The observer associated to the disposed + subscription won't see the TaskCanceledException, but other observers will. You can protect against this using the Catch operator. + Be careful when handing out the resulting sequence because of this behavior. The most common use is to have a single subscription + to the resulting sequence, which controls the CancellationToken state. Alternatively, you can control subscription behavior using + multicast operators. + + + + + + + + Invokes the asynchronous function, surfacing the result through an observable sequence. + + Query provider used to construct the data source. + The type of the result returned by the asynchronous function. + Asynchronous function to run. + Scheduler on which to notify observers. + An observable sequence exposing the function's result value, or an exception. + + is null or is null. + + + + The function is started immediately, not during the subscription of the resulting sequence. + + + Multiple subscriptions to the resulting sequence can observe the function's result. + + + + + + + Invokes the asynchronous function, surfacing the result through an observable sequence. + The CancellationToken is shared by all subscriptions on the resulting observable sequence. See the remarks section for more information. + + Query provider used to construct the data source. + The type of the result returned by the asynchronous function. + Asynchronous function to run. + Scheduler on which to notify observers. + An observable sequence exposing the function's result value, or an exception. + + is null or is null. + + + + The function is started immediately, not during the subscription of the resulting sequence. + + + Multiple subscriptions to the resulting sequence can observe the function's result. + + + + If any subscription to the resulting sequence is disposed, the CancellationToken is set. The observer associated to the disposed + subscription won't see the TaskCanceledException, but other observers will. You can protect against this using the Catch operator. + Be careful when handing out the resulting sequence because of this behavior. The most common use is to have a single subscription + to the resulting sequence, which controls the CancellationToken state. Alternatively, you can control subscription behavior using + multicast operators. + + + + + + + + Prepends a sequence of values to an observable sequence. + + The type of the elements in the source sequence. + Source sequence to prepend values to. + Scheduler to emit the prepended values on. + Values to prepend to the specified sequence. + The source sequence prepended with the specified values. + + or or is null. + + + + Prepends a sequence of values to an observable sequence. + + The type of the elements in the source sequence. + Source sequence to prepend values to. + Scheduler to emit the prepended values on. + Values to prepend to the specified sequence. + The source sequence prepended with the specified values. + + or or is null. + + + + Prepends a sequence of values to an observable sequence. + + The type of the elements in the source sequence. + Source sequence to prepend values to. + Values to prepend to the specified sequence. + The source sequence prepended with the specified values. + + or is null. + + + + Prepends a sequence of values to an observable sequence. + + The type of the elements in the source sequence. + Source sequence to prepend values to. + Values to prepend to the specified sequence. + The source sequence prepended with the specified values. + + or is null. + + + + Wraps the source sequence in order to run its subscription and unsubscription logic on the specified synchronization context. This operation is not commonly used; + see the remarks section for more information on the distinction between SubscribeOn and ObserveOn. + + The type of the elements in the source sequence. + Source sequence. + Synchronization context to perform subscription and unsubscription actions on. + The source sequence whose subscriptions and unsubscriptions happen on the specified synchronization context. + + or is null. + + This only performs the side-effects of subscription and unsubscription on the specified synchronization context. In order to invoke observer + callbacks on a synchronization context, use . + + + + + Wraps the source sequence in order to run its subscription and unsubscription logic on the specified scheduler. This operation is not commonly used; + see the remarks section for more information on the distinction between SubscribeOn and ObserveOn. + + The type of the elements in the source sequence. + Source sequence. + Scheduler to perform subscription and unsubscription actions on. + The source sequence whose subscriptions and unsubscriptions happen on the specified scheduler. + + or is null. + + This only performs the side-effects of subscription and unsubscription on the specified scheduler. In order to invoke observer + callbacks on a scheduler, use . + + + + + Computes the sum of a sequence of values. + + A sequence of values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + + is null. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of values. + + A sequence of values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of values. + + A sequence of values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + + is null. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of values. + + A sequence of values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + + is null. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values. + + A sequence of nullable values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + + is null. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values. + + A sequence of nullable values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values. + + A sequence of nullable values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + + is null. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values. + + A sequence of nullable values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + + is null. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values. + + A sequence of nullable values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of values. + + A sequence of values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + + or is null. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + + or is null. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + + or is null. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + + or is null. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + + or is null. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + + or is null. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Transforms an observable sequence of observable sequences into an observable sequence + producing values only from the most recent observable sequence. + Each time a new inner observable sequence is received, unsubscribe from the + previous inner observable sequence. + + The type of the elements in the source sequences. + Observable sequence of inner observable sequences. + The observable sequence that at any point in time produces the elements of the most recent inner observable sequence that has been received. + + is null. + + + + Transforms an observable sequence of tasks into an observable sequence + producing values only from the most recent observable sequence. + Each time a new task is received, the previous task's result is ignored. + + The type of the results produced by the source tasks. + Observable sequence of tasks. + The observable sequence that at any point in time produces the result of the most recent task that has been received. + + is null. + If the tasks support cancellation, consider manual conversion of the tasks using , followed by a switch operation using . + + + + Synchronizes the observable sequence such that observer notifications cannot be delivered concurrently. + This overload is useful to "fix" an observable sequence that exhibits concurrent callbacks on individual observers, which is invalid behavior for the query processor. + + The type of the elements in the source sequence. + Source sequence. + The source sequence whose outgoing calls to observers are synchronized. + + is null. + + It's invalid behavior - according to the observer grammar - for a sequence to exhibit concurrent callbacks on a given observer. + This operator can be used to "fix" a source that doesn't conform to this rule. + + + + + Synchronizes the observable sequence such that observer notifications cannot be delivered concurrently, using the specified gate object. + This overload is useful when writing n-ary query operators, in order to prevent concurrent callbacks from different sources by synchronizing on a common gate object. + + The type of the elements in the source sequence. + Source sequence. + Gate object to synchronize each observer call on. + The source sequence whose outgoing calls to observers are synchronized on the given gate object. + + or is null. + + + + Returns a specified number of contiguous elements from the start of an observable sequence. + + The type of the elements in the source sequence. + The sequence to take elements from. + The number of elements to return. + An observable sequence that contains the specified number of elements from the start of the input sequence. + + is null. + + is less than zero. + + + + Returns a specified number of contiguous elements from the start of an observable sequence, using the specified scheduler for the edge case of Take(0). + + The type of the elements in the source sequence. + The sequence to take elements from. + The number of elements to return. + Scheduler used to produce an OnCompleted message in case count is set to 0. + An observable sequence that contains the specified number of elements from the start of the input sequence. + + or is null. + + is less than zero. + + + + Takes elements for the specified duration from the start of the observable source sequence. + + The type of the elements in the source sequence. + Source sequence to take elements from. + Duration for taking elements from the start of the sequence. + An observable sequence with the elements taken during the specified duration from the start of the source sequence. + + is null. + + is less than TimeSpan.Zero. + + Specifying a TimeSpan.Zero value for doesn't guarantee an empty sequence will be returned. This is a side-effect + of the asynchrony introduced by the scheduler, where the action that stops forwarding callbacks from the source sequence may not execute + immediately, despite the TimeSpan.Zero due time. + + + + + Takes elements for the specified duration from the start of the observable source sequence, using the specified scheduler to run timers. + + The type of the elements in the source sequence. + Source sequence to take elements from. + Duration for taking elements from the start of the sequence. + Scheduler to run the timer on. + An observable sequence with the elements taken during the specified duration from the start of the source sequence. + + or is null. + + is less than TimeSpan.Zero. + + Specifying a TimeSpan.Zero value for doesn't guarantee an empty sequence will be returned. This is a side-effect + of the asynchrony introduced by the scheduler, where the action that stops forwarding callbacks from the source sequence may not execute + immediately, despite the TimeSpan.Zero due time. + + + + + Returns a specified number of contiguous elements from the end of an observable sequence. + + The type of the elements in the source sequence. + Source sequence. + Number of elements to take from the end of the source sequence. + An observable sequence containing the specified number of elements from the end of the source sequence. + + is null. + + is less than zero. + + This operator accumulates a buffer with a length enough to store elements elements. Upon completion of + the source sequence, this buffer is drained on the result sequence. This causes the elements to be delayed. + + + + + Returns a specified number of contiguous elements from the end of an observable sequence, using the specified scheduler to drain the queue. + + The type of the elements in the source sequence. + Source sequence. + Number of elements to take from the end of the source sequence. + Scheduler used to drain the queue upon completion of the source sequence. + An observable sequence containing the specified number of elements from the end of the source sequence. + + or is null. + + is less than zero. + + This operator accumulates a buffer with a length enough to store elements elements. Upon completion of + the source sequence, this buffer is drained on the result sequence. This causes the elements to be delayed. + + + + + Returns elements within the specified duration from the end of the observable source sequence. + + The type of the elements in the source sequence. + Source sequence to take elements from. + Duration for taking elements from the end of the sequence. + An observable sequence with the elements taken during the specified duration from the end of the source sequence. + + is null. + + is less than TimeSpan.Zero. + + This operator accumulates a buffer with a length enough to store elements for any window during the lifetime of + the source sequence. Upon completion of the source sequence, this buffer is drained on the result sequence. This causes the result elements + to be delayed with . + + + + + Returns elements within the specified duration from the end of the observable source sequence, using the specified scheduler to run timers. + + The type of the elements in the source sequence. + Source sequence to take elements from. + Duration for taking elements from the end of the sequence. + Scheduler to run the timer on. + An observable sequence with the elements taken during the specified duration from the end of the source sequence. + + or is null. + + is less than TimeSpan.Zero. + + This operator accumulates a buffer with a length enough to store elements for any window during the lifetime of + the source sequence. Upon completion of the source sequence, this buffer is drained on the result sequence. This causes the result elements + to be delayed with . + + + + + Returns elements within the specified duration from the end of the observable source sequence, using the specified schedulers to run timers and to drain the collected elements. + + The type of the elements in the source sequence. + Source sequence to take elements from. + Duration for taking elements from the end of the sequence. + Scheduler to run the timer on. + Scheduler to drain the collected elements. + An observable sequence with the elements taken during the specified duration from the end of the source sequence. + + or or is null. + + is less than TimeSpan.Zero. + + This operator accumulates a buffer with a length enough to store elements for any window during the lifetime of + the source sequence. Upon completion of the source sequence, this buffer is drained on the result sequence. This causes the result elements + to be delayed with . + + + + + Returns a list with the specified number of contiguous elements from the end of an observable sequence. + + The type of the elements in the source sequence. + Source sequence. + Number of elements to take from the end of the source sequence. + An observable sequence containing a single list with the specified number of elements from the end of the source sequence. + + is null. + + is less than zero. + + This operator accumulates a buffer with a length enough to store elements. Upon completion of the + source sequence, this buffer is produced on the result sequence. + + + + + Returns a list with the elements within the specified duration from the end of the observable source sequence. + + The type of the elements in the source sequence. + Source sequence to take elements from. + Duration for taking elements from the end of the sequence. + An observable sequence containing a single list with the elements taken during the specified duration from the end of the source sequence. + + is null. + + is less than TimeSpan.Zero. + + This operator accumulates a buffer with a length enough to store elements for any window during the lifetime of + the source sequence. Upon completion of the source sequence, this buffer is produced on the result sequence. + + + + + Returns a list with the elements within the specified duration from the end of the observable source sequence, using the specified scheduler to run timers. + + The type of the elements in the source sequence. + Source sequence to take elements from. + Duration for taking elements from the end of the sequence. + Scheduler to run the timer on. + An observable sequence containing a single list with the elements taken during the specified duration from the end of the source sequence. + + or is null. + + is less than TimeSpan.Zero. + + This operator accumulates a buffer with a length enough to store elements for any window during the lifetime of + the source sequence. Upon completion of the source sequence, this buffer is produced on the result sequence. + + + + + Takes elements for the specified duration until the specified end time. + + The type of the elements in the source sequence. + Source sequence to take elements from. + Time to stop taking elements from the source sequence. If this value is less than or equal to DateTimeOffset.UtcNow, the result stream will complete immediately. + An observable sequence with the elements taken until the specified end time. + + is null. + + + + Takes elements for the specified duration until the specified end time, using the specified scheduler to run timers. + + The type of the elements in the source sequence. + Source sequence to take elements from. + Time to stop taking elements from the source sequence. If this value is less than or equal to DateTimeOffset.UtcNow, the result stream will complete immediately. + Scheduler to run the timer on. + An observable sequence with the elements taken until the specified end time. + + or is null. + + + + Returns the elements from the source observable sequence until the other observable sequence produces an element. + + The type of the elements in the source sequence. + The type of the elements in the other sequence that indicates the end of take behavior. + Source sequence to propagate elements for. + Observable sequence that terminates propagation of elements of the source sequence. + An observable sequence containing the elements of the source sequence up to the point the other sequence interrupted further propagation. + + or is null. + + + + Relays elements from the source observable sequence and calls the predicate after an + emission to check if the sequence should stop after that specific item. + + The type of the elements in the source and result sequences. + The source sequence to relay elements of. + Called after each upstream item has been emitted with + that upstream item and should return true to indicate the sequence should + complete. + The observable sequence with the source elements until the stop predicate returns true. + + The following sequence will stop after the value 5 has been encountered: + + Observable.Range(1, 10) + .TakeUntil(item => item == 5) + .Subscribe(Console.WriteLine); + + + If or is null. + + + + Returns elements from an observable sequence as long as a specified condition is true. + + The type of the elements in the source sequence. + A sequence to return elements from. + A function to test each element for a condition. + An observable sequence that contains the elements from the input sequence that occur before the element at which the test no longer passes. + + or is null. + + + + Returns elements from an observable sequence as long as a specified condition is true. + The element's index is used in the logic of the predicate function. + + The type of the elements in the source sequence. + A sequence to return elements from. + A function to test each element for a condition; the second parameter of the function represents the index of the source element. + An observable sequence that contains the elements from the input sequence that occur before the element at which the test no longer passes. + + or is null. + + + + Ignores elements from an observable sequence which are followed by another element within a specified relative time duration. + + The type of the elements in the source sequence. + Source sequence to throttle. + Throttling duration for each element. + The throttled sequence. + + is null. + + is less than TimeSpan.Zero. + + + This operator throttles the source sequence by holding on to each element for the duration specified in . If another + element is produced within this time window, the element is dropped and a new timer is started for the current element, repeating this whole + process. For streams that never have gaps larger than or equal to between elements, the resulting stream won't + produce any elements. In order to reduce the volume of a stream whilst guaranteeing the periodic production of elements, consider using the + Observable.Sample set of operators. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing throttling timers to be scheduled + that are due immediately. However, this doesn't guarantee all elements will be retained in the result sequence. This is a side-effect of the + asynchrony introduced by the scheduler, where the action to forward the current element may not execute immediately, despite the TimeSpan.Zero + due time. In such cases, the next element may arrive before the scheduler gets a chance to run the throttling action. + + + + + + Ignores elements from an observable sequence which are followed by another element within a specified relative time duration, using the specified scheduler to run throttling timers. + + The type of the elements in the source sequence. + Source sequence to throttle. + Throttling duration for each element. + Scheduler to run the throttle timers on. + The throttled sequence. + + or is null. + + is less than TimeSpan.Zero. + + + This operator throttles the source sequence by holding on to each element for the duration specified in . If another + element is produced within this time window, the element is dropped and a new timer is started for the current element, repeating this whole + process. For streams that never have gaps larger than or equal to between elements, the resulting stream won't + produce any elements. In order to reduce the volume of a stream whilst guaranteeing the periodic production of elements, consider using the + Observable.Sample set of operators. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing throttling timers to be scheduled + that are due immediately. However, this doesn't guarantee all elements will be retained in the result sequence. This is a side-effect of the + asynchrony introduced by the scheduler, where the action to forward the current element may not execute immediately, despite the TimeSpan.Zero + due time. In such cases, the next element may arrive before the scheduler gets a chance to run the throttling action. + + + + + + Ignores elements from an observable sequence which are followed by another value within a computed throttle duration. + + The type of the elements in the source sequence. + The type of the elements in the throttle sequences selected for each element in the source sequence. + Source sequence to throttle. + Selector function to retrieve a sequence indicating the throttle duration for each given element. + The throttled sequence. + + or is null. + + This operator throttles the source sequence by holding on to each element for the duration denoted by . + If another element is produced within this time window, the element is dropped and a new timer is started for the current element, repeating this + whole process. For streams where the duration computed by applying the to each element overlaps with + the occurrence of the successor element, the resulting stream won't produce any elements. In order to reduce the volume of a stream whilst + guaranteeing the periodic production of elements, consider using the Observable.Sample set of operators. + + + + + Returns an observable sequence that terminates with an exception. + + Query provider used to construct the data source. + The type used for the type parameter of the resulting sequence. + Exception object used for the sequence's termination. + The observable sequence that terminates exceptionally with the specified exception object. + + is null. + + + + Returns an observable sequence that terminates with an exception, using the specified scheduler to send out the single OnError message. + + Query provider used to construct the data source. + The type used for the type parameter of the resulting sequence. + Exception object used for the sequence's termination. + Scheduler to send the exceptional termination call on. + The observable sequence that terminates exceptionally with the specified exception object. + + or is null. + + + + Returns an observable sequence that terminates with an exception, using the specified scheduler to send out the single OnError message. + + Query provider used to construct the data source. + The type used for the type parameter of the resulting sequence. + Exception object used for the sequence's termination. + Scheduler to send the exceptional termination call on. + Object solely used to infer the type of the type parameter. This parameter is typically used when creating a sequence of anonymously typed elements. + The observable sequence that terminates exceptionally with the specified exception object. + + or is null. + + + + Returns an observable sequence that terminates with an exception. + + Query provider used to construct the data source. + The type used for the type parameter of the resulting sequence. + Exception object used for the sequence's termination. + Object solely used to infer the type of the type parameter. This parameter is typically used when creating a sequence of anonymously typed elements. + The observable sequence that terminates exceptionally with the specified exception object. + + is null. + + + + Records the time interval between consecutive elements in an observable sequence. + + The type of the elements in the source sequence. + Source sequence to record time intervals for. + An observable sequence with time interval information on elements. + + is null. + + + + Records the time interval between consecutive elements in an observable sequence, using the specified scheduler to compute time intervals. + + The type of the elements in the source sequence. + Source sequence to record time intervals for. + Scheduler used to compute time intervals. + An observable sequence with time interval information on elements. + + or is null. + + + + Applies a timeout policy to the observable sequence based on an absolute time. + If the sequence doesn't terminate before the specified absolute due time, a TimeoutException is propagated to the observer. + + The type of the elements in the source sequence. + Source sequence to perform a timeout for. + Time when a timeout occurs. If this value is less than or equal to DateTimeOffset.UtcNow, the timeout occurs immediately. + The source sequence with a TimeoutException in case of a timeout. + + is null. + (Asynchronous) If the sequence hasn't terminated before . + + In case you only want to timeout on the first element, consider using the + operator applied to the source sequence and a delayed sequence. Alternatively, the general-purpose overload + of Timeout, can be used. + + + + + Applies a timeout policy to the observable sequence based on an absolute time. + If the sequence doesn't terminate before the specified absolute due time, the other observable sequence is used to produce future messages from that point on. + + The type of the elements in the source sequence and the other sequence used upon a timeout. + Source sequence to perform a timeout for. + Time when a timeout occurs. If this value is less than or equal to DateTimeOffset.UtcNow, the timeout occurs immediately. + Sequence to return in case of a timeout. + The source sequence switching to the other sequence in case of a timeout. + + or is null. + + In case you only want to timeout on the first element, consider using the + operator applied to the source sequence and a delayed sequence. Alternatively, the general-purpose overload + of Timeout, can be used. + + + + + Applies a timeout policy to the observable sequence based on an absolute time, using the specified scheduler to run timeout timers. + If the sequence doesn't terminate before the specified absolute due time, the other observable sequence is used to produce future messages from that point on. + + The type of the elements in the source sequence and the other sequence used upon a timeout. + Source sequence to perform a timeout for. + Time when a timeout occurs. If this value is less than or equal to DateTimeOffset.UtcNow, the timeout occurs immediately. + Sequence to return in case of a timeout. + Scheduler to run the timeout timers on. + The source sequence switching to the other sequence in case of a timeout. + + or or is null. + + In case you only want to timeout on the first element, consider using the + operator applied to the source sequence and a delayed sequence. Alternatively, the general-purpose overload + of Timeout, can be used. + + + + + Applies a timeout policy to the observable sequence based on an absolute time, using the specified scheduler to run timeout timers. + If the sequence doesn't terminate before the specified absolute due time, a TimeoutException is propagated to the observer. + + The type of the elements in the source sequence. + Source sequence to perform a timeout for. + Time when a timeout occurs. If this value is less than or equal to DateTimeOffset.UtcNow, the timeout occurs immediately. + Scheduler to run the timeout timers on. + The source sequence with a TimeoutException in case of a timeout. + + or is null. + (Asynchronous) If the sequence hasn't terminated before . + + In case you only want to timeout on the first element, consider using the + operator applied to the source sequence and a delayed sequence. Alternatively, the general-purpose overload + of Timeout, can be used. + + + + + Applies a timeout policy for each element in the observable sequence. + If the next element isn't received within the specified timeout duration starting from its predecessor, a TimeoutException is propagated to the observer. + + The type of the elements in the source sequence. + Source sequence to perform a timeout for. + Maximum duration between values before a timeout occurs. + The source sequence with a TimeoutException in case of a timeout. + + is null. + + is less than TimeSpan.Zero. + (Asynchronous) If no element is produced within from the previous element. + + + In case you only want to timeout on the first element, consider using the + operator applied to the source sequence and a delayed sequence. Alternatively, the general-purpose overload + of Timeout, can be used. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing timeout timers to be scheduled that are due + immediately. However, this doesn't guarantee a timeout will occur, even for the first element. This is a side-effect of the asynchrony introduced by the + scheduler, where the action to propagate a timeout may not execute immediately, despite the TimeSpan.Zero due time. In such cases, the next element may + arrive before the scheduler gets a chance to run the timeout action. + + + + + + Applies a timeout policy for each element in the observable sequence. + If the next element isn't received within the specified timeout duration starting from its predecessor, the other observable sequence is used to produce future messages from that point on. + + The type of the elements in the source sequence and the other sequence used upon a timeout. + Source sequence to perform a timeout for. + Maximum duration between values before a timeout occurs. + Sequence to return in case of a timeout. + The source sequence switching to the other sequence in case of a timeout. + + or is null. + + is less than TimeSpan.Zero. + + + In case you only want to timeout on the first element, consider using the + operator applied to the source sequence and a delayed sequence. Alternatively, the general-purpose overload + of Timeout, can be used. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing timeout timers to be scheduled that are due + immediately. However, this doesn't guarantee a timeout will occur, even for the first element. This is a side-effect of the asynchrony introduced by the + scheduler, where the action to propagate a timeout may not execute immediately, despite the TimeSpan.Zero due time. In such cases, the next element may + arrive before the scheduler gets a chance to run the timeout action. + + + + + + Applies a timeout policy for each element in the observable sequence, using the specified scheduler to run timeout timers. + If the next element isn't received within the specified timeout duration starting from its predecessor, the other observable sequence is used to produce future messages from that point on. + + The type of the elements in the source sequence and the other sequence used upon a timeout. + Source sequence to perform a timeout for. + Maximum duration between values before a timeout occurs. + Sequence to return in case of a timeout. + Scheduler to run the timeout timers on. + The source sequence switching to the other sequence in case of a timeout. + + or or is null. + + is less than TimeSpan.Zero. + + + In case you only want to timeout on the first element, consider using the + operator applied to the source sequence and a delayed sequence. Alternatively, the general-purpose overload + of Timeout, can be used. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing timeout timers to be scheduled that are due + immediately. However, this doesn't guarantee a timeout will occur, even for the first element. This is a side-effect of the asynchrony introduced by the + scheduler, where the action to propagate a timeout may not execute immediately, despite the TimeSpan.Zero due time. In such cases, the next element may + arrive before the scheduler gets a chance to run the timeout action. + + + + + + Applies a timeout policy for each element in the observable sequence, using the specified scheduler to run timeout timers. + If the next element isn't received within the specified timeout duration starting from its predecessor, a TimeoutException is propagated to the observer. + + The type of the elements in the source sequence. + Source sequence to perform a timeout for. + Maximum duration between values before a timeout occurs. + Scheduler to run the timeout timers on. + The source sequence with a TimeoutException in case of a timeout. + + or is null. + + is less than TimeSpan.Zero. + (Asynchronous) If no element is produced within from the previous element. + + + In case you only want to timeout on the first element, consider using the + operator applied to the source sequence and a delayed sequence. Alternatively, the general-purpose overload + of Timeout, can be used. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing timeout timers to be scheduled that are due + immediately. However, this doesn't guarantee a timeout will occur, even for the first element. This is a side-effect of the asynchrony introduced by the + scheduler, where the action to propagate a timeout may not execute immediately, despite the TimeSpan.Zero due time. In such cases, the next element may + arrive before the scheduler gets a chance to run the timeout action. + + + + + + Applies a timeout policy to the observable sequence based on an initial timeout duration for the first element, and a timeout duration computed for each subsequent element. + If the next element isn't received within the computed duration starting from its predecessor, a TimeoutException is propagated to the observer. + + The type of the elements in the source sequence. + The type of the elements in the timeout sequences used to indicate the timeout duration for each element in the source sequence. + Source sequence to perform a timeout for. + Observable sequence that represents the timeout for the first element. + Selector to retrieve an observable sequence that represents the timeout between the current element and the next element. + The source sequence with a TimeoutException in case of a timeout. + + or or is null. + + + + Applies a timeout policy to the observable sequence based on an initial timeout duration for the first element, and a timeout duration computed for each subsequent element. + If the next element isn't received within the computed duration starting from its predecessor, the other observable sequence is used to produce future messages from that point on. + + The type of the elements in the source sequence and the other sequence used upon a timeout. + The type of the elements in the timeout sequences used to indicate the timeout duration for each element in the source sequence. + Source sequence to perform a timeout for. + Observable sequence that represents the timeout for the first element. + Selector to retrieve an observable sequence that represents the timeout between the current element and the next element. + Sequence to return in case of a timeout. + The source sequence switching to the other sequence in case of a timeout. + + or or or is null. + + + + Applies a timeout policy to the observable sequence based on a timeout duration computed for each element. + If the next element isn't received within the computed duration starting from its predecessor, a TimeoutException is propagated to the observer. + + The type of the elements in the source sequence. + The type of the elements in the timeout sequences used to indicate the timeout duration for each element in the source sequence. + Source sequence to perform a timeout for. + Selector to retrieve an observable sequence that represents the timeout between the current element and the next element. + The source sequence with a TimeoutException in case of a timeout. + + or is null. + + + + Applies a timeout policy to the observable sequence based on a timeout duration computed for each element. + If the next element isn't received within the computed duration starting from its predecessor, the other observable sequence is used to produce future messages from that point on. + + The type of the elements in the source sequence and the other sequence used upon a timeout. + The type of the elements in the timeout sequences used to indicate the timeout duration for each element in the source sequence. + Source sequence to perform a timeout for. + Selector to retrieve an observable sequence that represents the timeout between the current element and the next element. + Sequence to return in case of a timeout. + The source sequence switching to the other sequence in case of a timeout. + + or or is null. + + + + Returns an observable sequence that produces a single value at the specified absolute due time. + + Query provider used to construct the data source. + Absolute time at which to produce the value. If this value is less than or equal to DateTimeOffset.UtcNow, the timer will fire as soon as possible. + An observable sequence that produces a value at due time. + + + + Returns an observable sequence that periodically produces a value starting at the specified initial absolute due time. + + Query provider used to construct the data source. + Absolute time at which to produce the first value. If this value is less than or equal to DateTimeOffset.UtcNow, the timer will fire as soon as possible. + Period to produce subsequent values. If this value is equal to TimeSpan.Zero, the timer will recur as fast as possible. + An observable sequence that produces a value at due time and then after each period. + + is less than TimeSpan.Zero. + + + + Returns an observable sequence that periodically produces a value starting at the specified initial absolute due time, using the specified scheduler to run timers. + + Query provider used to construct the data source. + Absolute time at which to produce the first value. If this value is less than or equal to DateTimeOffset.UtcNow, the timer will fire as soon as possible. + Period to produce subsequent values. If this value is equal to TimeSpan.Zero, the timer will recur as fast as possible. + Scheduler to run timers on. + An observable sequence that produces a value at due time and then after each period. + + is less than TimeSpan.Zero. + + is null. + + + + Returns an observable sequence that produces a single value at the specified absolute due time, using the specified scheduler to run the timer. + + Query provider used to construct the data source. + Absolute time at which to produce the value. If this value is less than or equal to DateTimeOffset.UtcNow, the timer will fire as soon as possible. + Scheduler to run the timer on. + An observable sequence that produces a value at due time. + + is null. + + + + Returns an observable sequence that produces a single value after the specified relative due time has elapsed. + + Query provider used to construct the data source. + Relative time at which to produce the value. If this value is less than or equal to TimeSpan.Zero, the timer will fire as soon as possible. + An observable sequence that produces a value after the due time has elapsed. + + + + Returns an observable sequence that periodically produces a value after the specified initial relative due time has elapsed. + + Query provider used to construct the data source. + Relative time at which to produce the first value. If this value is less than or equal to TimeSpan.Zero, the timer will fire as soon as possible. + Period to produce subsequent values. If this value is equal to TimeSpan.Zero, the timer will recur as fast as possible. + An observable sequence that produces a value after due time has elapsed and then after each period. + + is less than TimeSpan.Zero. + + + + Returns an observable sequence that periodically produces a value after the specified initial relative due time has elapsed, using the specified scheduler to run timers. + + Query provider used to construct the data source. + Relative time at which to produce the first value. If this value is less than or equal to TimeSpan.Zero, the timer will fire as soon as possible. + Period to produce subsequent values. If this value is equal to TimeSpan.Zero, the timer will recur as fast as possible. + Scheduler to run timers on. + An observable sequence that produces a value after due time has elapsed and then each period. + + is less than TimeSpan.Zero. + + is null. + + + + Returns an observable sequence that produces a single value after the specified relative due time has elapsed, using the specified scheduler to run the timer. + + Query provider used to construct the data source. + Relative time at which to produce the value. If this value is less than or equal to TimeSpan.Zero, the timer will fire as soon as possible. + Scheduler to run the timer on. + An observable sequence that produces a value after the due time has elapsed. + + is null. + + + + Timestamps each element in an observable sequence using the local system clock. + + The type of the elements in the source sequence. + Source sequence to timestamp elements for. + An observable sequence with timestamp information on elements. + + is null. + + + + Timestamp each element in an observable sequence using the clock of the specified scheduler. + + The type of the elements in the source sequence. + Source sequence to timestamp elements for. + Scheduler used to compute timestamps. + An observable sequence with timestamp information on elements. + + or is null. + + + + Creates an array from an observable sequence. + + The type of the elements in the source sequence. + The source observable sequence to get an array of elements for. + An observable sequence containing a single element with an array containing all the elements of the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates a dictionary from an observable sequence according to a specified key selector function. + + The type of the elements in the source sequence. + The type of the dictionary key computed for each element in the source sequence. + An observable sequence to create a dictionary for. + A function to extract a key from each element. + An observable sequence containing a single element with a dictionary mapping unique key values onto the corresponding source sequence's element. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates a dictionary from an observable sequence according to a specified key selector function, and a comparer. + + The type of the elements in the source sequence. + The type of the dictionary key computed for each element in the source sequence. + An observable sequence to create a dictionary for. + A function to extract a key from each element. + An equality comparer to compare keys. + An observable sequence containing a single element with a dictionary mapping unique key values onto the corresponding source sequence's element. + + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates a dictionary from an observable sequence according to a specified key selector function, and an element selector function. + + The type of the elements in the source sequence. + The type of the dictionary key computed for each element in the source sequence. + The type of the dictionary value computed for each element in the source sequence. + An observable sequence to create a dictionary for. + A function to extract a key from each element. + A transform function to produce a result element value from each element. + An observable sequence containing a single element with a dictionary mapping unique key values onto the corresponding source sequence's element. + + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates a dictionary from an observable sequence according to a specified key selector function, a comparer, and an element selector function. + + The type of the elements in the source sequence. + The type of the dictionary key computed for each element in the source sequence. + The type of the dictionary value computed for each element in the source sequence. + An observable sequence to create a dictionary for. + A function to extract a key from each element. + A transform function to produce a result element value from each element. + An equality comparer to compare keys. + An observable sequence containing a single element with a dictionary mapping unique key values onto the corresponding source sequence's element. + + or or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Converts an observable sequence to an enumerable sequence. + + The type of the elements in the source sequence. + An observable sequence to convert to an enumerable sequence. + The enumerable sequence containing the elements in the observable sequence. + + is null. + This operator requires the source's object (see ) to implement . + + + + Creates a list from an observable sequence. + + The type of the elements in the source sequence. + The source observable sequence to get a list of elements for. + An observable sequence containing a single element with a list containing all the elements of the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates a lookup from an observable sequence according to a specified key selector function. + + The type of the elements in the source sequence. + The type of the lookup key computed for each element in the source sequence. + An observable sequence to create a lookup for. + A function to extract a key from each element. + An observable sequence containing a single element with a lookup mapping unique key values onto the corresponding source sequence's elements. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates a lookup from an observable sequence according to a specified key selector function, and a comparer. + + The type of the elements in the source sequence. + The type of the lookup key computed for each element in the source sequence. + An observable sequence to create a lookup for. + A function to extract a key from each element. + An equality comparer to compare keys. + An observable sequence containing a single element with a lookup mapping unique key values onto the corresponding source sequence's elements. + + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates a lookup from an observable sequence according to a specified key selector function, and an element selector function. + + The type of the elements in the source sequence. + The type of the lookup key computed for each element in the source sequence. + The type of the lookup value computed for each element in the source sequence. + An observable sequence to create a lookup for. + A function to extract a key from each element. + A transform function to produce a result element value from each element. + An observable sequence containing a single element with a lookup mapping unique key values onto the corresponding source sequence's elements. + + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates a lookup from an observable sequence according to a specified key selector function, a comparer, and an element selector function. + + The type of the elements in the source sequence. + The type of the lookup key computed for each element in the source sequence. + The type of the lookup value computed for each element in the source sequence. + An observable sequence to create a lookup for. + A function to extract a key from each element. + A transform function to produce a result element value from each element. + An equality comparer to compare keys. + An observable sequence containing a single element with a lookup mapping unique key values onto the corresponding source sequence's elements. + + or or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Converts an enumerable sequence to an observable sequence. + + Query provider used to construct the data source. + The type of the elements in the source sequence. + Enumerable sequence to convert to an observable sequence. + The observable sequence whose elements are pulled from the given enumerable sequence. + + is null. + + + + Converts an enumerable sequence to an observable sequence, using the specified scheduler to run the enumeration loop. + + Query provider used to construct the data source. + The type of the elements in the source sequence. + Enumerable sequence to convert to an observable sequence. + Scheduler to run the enumeration of the input sequence on. + The observable sequence whose elements are pulled from the given enumerable sequence. + + or is null. + + + + Constructs an observable sequence that depends on a resource object, whose lifetime is tied to the resulting observable sequence's lifetime. + + Query provider used to construct the data source. + The type of the elements in the produced sequence. + The type of the resource used during the generation of the resulting sequence. Needs to implement . + Factory function to obtain a resource object. + Factory function to obtain an observable sequence that depends on the obtained resource. + An observable sequence whose lifetime controls the lifetime of the dependent resource object. + + or is null. + + + + Constructs an observable sequence that depends on a resource object, whose lifetime is tied to the resulting observable sequence's lifetime. The resource is obtained and used through asynchronous methods. + The CancellationToken passed to the asynchronous methods is tied to the returned disposable subscription, allowing best-effort cancellation at any stage of the resource acquisition or usage. + + Query provider used to construct the data source. + The type of the elements in the produced sequence. + The type of the resource used during the generation of the resulting sequence. Needs to implement . + Asynchronous factory function to obtain a resource object. + Asynchronous factory function to obtain an observable sequence that depends on the obtained resource. + An observable sequence whose lifetime controls the lifetime of the dependent resource object. + + or is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + When a subscription to the resulting sequence is disposed, the CancellationToken that was fed to the asynchronous resource factory and observable factory functions will be signaled. + + + + Filters the elements of an observable sequence based on a predicate. + + The type of the elements in the source sequence. + An observable sequence whose elements to filter. + A function to test each source element for a condition. + An observable sequence that contains elements from the input sequence that satisfy the condition. + + or is null. + + + + Filters the elements of an observable sequence based on a predicate by incorporating the element's index. + + The type of the elements in the source sequence. + An observable sequence whose elements to filter. + A function to test each source element for a condition; the second parameter of the function represents the index of the source element. + An observable sequence that contains elements from the input sequence that satisfy the condition. + + or is null. + + + + Repeats the given as long as the specified holds, where the is evaluated before each repeated is subscribed to. + + Query provider used to construct the data source. + The type of the elements in the source sequence. + Source to repeat as long as the function evaluates to true. + Condition that will be evaluated before subscription to the , to determine whether repetition of the source is required. + The observable sequence obtained by concatenating the sequence as long as the holds. + + or is null. + + + + Projects each element of an observable sequence into consecutive non-overlapping windows which are produced based on element count information. + + The type of the elements in the source sequence, and in the windows in the result sequence. + Source sequence to produce windows over. + Length of each window. + An observable sequence of windows. + + is null. + + is less than or equal to zero. + + + + Projects each element of an observable sequence into zero or more windows which are produced based on element count information. + + The type of the elements in the source sequence, and in the windows in the result sequence. + Source sequence to produce windows over. + Length of each window. + Number of elements to skip between creation of consecutive windows. + An observable sequence of windows. + + is null. + + or is less than or equal to zero. + + + + Projects each element of an observable sequence into consecutive non-overlapping windows which are produced based on timing information. + + The type of the elements in the source sequence, and in the windows in the result sequence. + Source sequence to produce windows over. + Length of each window. + The sequence of windows. + + is null. + + is less than TimeSpan.Zero. + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create windows as fast as it can. + Because all source sequence elements end up in one of the windows, some windows won't have a zero time span. This is a side-effect of the asynchrony introduced + by the scheduler, where the action to close the current window and to create a new window may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Projects each element of an observable sequence into a window that is completed when either it's full or a given amount of time has elapsed. + A useful real-world analogy of this overload is the behavior of a ferry leaving the dock when all seats are taken, or at the scheduled time of departure, whichever event occurs first. + + The type of the elements in the source sequence, and in the windows in the result sequence. + Source sequence to produce windows over. + Maximum time length of a window. + Maximum element count of a window. + An observable sequence of windows. + + is null. + + is less than TimeSpan.Zero. -or- is less than or equal to zero. + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create windows as fast as it can. + Because all source sequence elements end up in one of the windows, some windows won't have a zero time span. This is a side-effect of the asynchrony introduced + by the scheduler, where the action to close the current window and to create a new window may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Projects each element of an observable sequence into a window that is completed when either it's full or a given amount of time has elapsed, using the specified scheduler to run timers. + A useful real-world analogy of this overload is the behavior of a ferry leaving the dock when all seats are taken, or at the scheduled time of departure, whichever event occurs first. + + The type of the elements in the source sequence, and in the windows in the result sequence. + Source sequence to produce windows over. + Maximum time length of a window. + Maximum element count of a window. + Scheduler to run windowing timers on. + An observable sequence of windows. + + or is null. + + is less than TimeSpan.Zero. -or- is less than or equal to zero. + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create windows as fast as it can. + Because all source sequence elements end up in one of the windows, some windows won't have a zero time span. This is a side-effect of the asynchrony introduced + by the scheduler, where the action to close the current window and to create a new window may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Projects each element of an observable sequence into consecutive non-overlapping windows which are produced based on timing information, using the specified scheduler to run timers. + + The type of the elements in the source sequence, and in the windows in the result sequence. + Source sequence to produce windows over. + Length of each window. + Scheduler to run windowing timers on. + An observable sequence of windows. + + or is null. + + is less than TimeSpan.Zero. + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create windows as fast as it can. + Because all source sequence elements end up in one of the windows, some windows won't have a zero time span. This is a side-effect of the asynchrony introduced + by the scheduler, where the action to close the current window and to create a new window may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Projects each element of an observable sequence into zero or more windows which are produced based on timing information. + + The type of the elements in the source sequence, and in the windows in the result sequence. + Source sequence to produce windows over. + Length of each window. + Interval between creation of consecutive windows. + An observable sequence of windows. + + is null. + + or is less than TimeSpan.Zero. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create windows with minimum duration + length. However, some windows won't have a zero time span. This is a side-effect of the asynchrony introduced by the scheduler, where the action to close the + current window may not execute immediately, despite the TimeSpan.Zero due time. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create windows as fast as it can. + However, this doesn't mean all windows will start at the beginning of the source sequence. This is a side-effect of the asynchrony introduced by the scheduler, + where the action to create a new window may not execute immediately, despite the TimeSpan.Zero due time. + + + + + + Projects each element of an observable sequence into zero or more windows which are produced based on timing information, using the specified scheduler to run timers. + + The type of the elements in the source sequence, and in the windows in the result sequence. + Source sequence to produce windows over. + Length of each window. + Interval between creation of consecutive windows. + Scheduler to run windowing timers on. + An observable sequence of windows. + + or is null. + + or is less than TimeSpan.Zero. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create windows with minimum duration + length. However, some windows won't have a zero time span. This is a side-effect of the asynchrony introduced by the scheduler, where the action to close the + current window may not execute immediately, despite the TimeSpan.Zero due time. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create windows as fast as it can. + However, this doesn't mean all windows will start at the beginning of the source sequence. This is a side-effect of the asynchrony introduced by the scheduler, + where the action to create a new window may not execute immediately, despite the TimeSpan.Zero due time. + + + + + + Projects each element of an observable sequence into consecutive non-overlapping windows. + + The type of the elements in the source sequence, and in the windows in the result sequence. + The type of the elements in the sequences indicating window boundary events. + Source sequence to produce windows over. + Sequence of window boundary markers. The current window is closed and a new window is opened upon receiving a boundary marker. + An observable sequence of windows. + + or is null. + + + + Projects each element of an observable sequence into consecutive non-overlapping windows. + + The type of the elements in the source sequence, and in the windows in the result sequence. + The type of the elements in the sequences indicating window closing events. + Source sequence to produce windows over. + A function invoked to define the boundaries of the produced windows. A new window is started when the previous one is closed. + An observable sequence of windows. + + or is null. + + + + Projects each element of an observable sequence into zero or more windows. + + The type of the elements in the source sequence, and in the windows in the result sequence. + The type of the elements in the sequence indicating window opening events, also passed to the closing selector to obtain a sequence of window closing events. + The type of the elements in the sequences indicating window closing events. + Source sequence to produce windows over. + Observable sequence whose elements denote the creation of new windows. + A function invoked to define the closing of each produced window. + An observable sequence of windows. + + or or is null. + + + + Merges two observable sequences into one observable sequence by combining each element from the first source with the latest element from the second source, if any. + Starting from Rx.NET 4.0, this will subscribe to before subscribing to to have a latest element readily available + in case emits an element right away. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Function to invoke for each element from the first source combined with the latest element from the second source, if any. + An observable sequence containing the result of combining each element of the first source with the latest element from the second source, if any, using the specified result selector function. + + or or is null. + + + + Merges the specified observable sequences into one observable sequence by emitting a list with the elements of the observable sequences at corresponding indexes. + + Query provider used to construct the data source. + The type of the elements in the source sequences, and in the lists in the result sequence. + Observable sources. + An observable sequence containing lists of elements at corresponding indexes. + + is null. + + + + Merges the specified observable sequences into one observable sequence by emitting a list with the elements of the observable sequences at corresponding indexes. + + Query provider used to construct the data source. + The type of the elements in the source sequences, and in the lists in the result sequence. + Observable sources. + An observable sequence containing lists of elements at corresponding indexes. + + is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + Query provider used to construct the data source. + The type of the elements in the source sequences. + The type of the elements in the result sequence, returned by the selector function. + Observable sources. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or is null. + + + + Merges two observable sequences into one observable sequence by combining their elements in a pairwise fashion. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Function to invoke for each consecutive pair of elements from the first and second source. + An observable sequence containing the result of pairwise combining the elements of the first and second source using the specified result selector function. + + or or is null. + + + + Merges an observable sequence and an enumerable sequence into one observable sequence by using the selector function. + + The type of the elements in the first observable source sequence. + The type of the elements in the second enumerable source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second enumerable source. + Function to invoke for each consecutive pair of elements from the first and second source. + An observable sequence containing the result of pairwise combining the elements of the first and second source using the specified result selector function. + + or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Fourteenth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the fifteenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Fourteenth observable source. + Fifteenth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the fifteenth source sequence. + The type of the elements in the sixteenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Fourteenth observable source. + Fifteenth observable source. + Sixteenth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or or or or or or or or or or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Query provider used to construct the data source. + Action to convert to an asynchronous action. + Asynchronous action. + + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Query provider used to construct the data source. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + The type of the thirteenth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + The type of the thirteenth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + The type of the thirteenth argument passed to the action. + The type of the fourteenth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + The type of the thirteenth argument passed to the action. + The type of the fourteenth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + The type of the thirteenth argument passed to the action. + The type of the fourteenth argument passed to the action. + The type of the fifteenth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + The type of the thirteenth argument passed to the action. + The type of the fourteenth argument passed to the action. + The type of the fifteenth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + The type of the thirteenth argument passed to the action. + The type of the fourteenth argument passed to the action. + The type of the fifteenth argument passed to the action. + The type of the sixteenth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + The type of the thirteenth argument passed to the action. + The type of the fourteenth argument passed to the action. + The type of the fifteenth argument passed to the action. + The type of the sixteenth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + Query provider used to construct the data source. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + Query provider used to construct the data source. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the thirteenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the thirteenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the thirteenth argument passed to the function. + The type of the fourteenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the thirteenth argument passed to the function. + The type of the fourteenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the thirteenth argument passed to the function. + The type of the fourteenth argument passed to the function. + The type of the fifteenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the thirteenth argument passed to the function. + The type of the fourteenth argument passed to the function. + The type of the fifteenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the thirteenth argument passed to the function. + The type of the fourteenth argument passed to the function. + The type of the fifteenth argument passed to the function. + The type of the sixteenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the thirteenth argument passed to the function. + The type of the fourteenth argument passed to the function. + The type of the fifteenth argument passed to the function. + The type of the sixteenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + + or is null. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The type of the eleventh argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The type of the eleventh argument passed to the begin delegate. + The type of the twelfth argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The type of the eleventh argument passed to the begin delegate. + The type of the twelfth argument passed to the begin delegate. + The type of the thirteenth argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The type of the eleventh argument passed to the begin delegate. + The type of the twelfth argument passed to the begin delegate. + The type of the thirteenth argument passed to the begin delegate. + The type of the fourteenth argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The type of the eleventh argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The type of the eleventh argument passed to the begin delegate. + The type of the twelfth argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The type of the eleventh argument passed to the begin delegate. + The type of the twelfth argument passed to the begin delegate. + The type of the thirteenth argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The type of the eleventh argument passed to the begin delegate. + The type of the twelfth argument passed to the begin delegate. + The type of the thirteenth argument passed to the begin delegate. + The type of the fourteenth argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Creates a pattern that matches when both observable sequences have an available element. + + The type of the elements in the left sequence. + The type of the elements in the right sequence. + Observable sequence to match with the right sequence. + Observable sequence to match with the left sequence. + Pattern object that matches when both observable sequences have an available element. + or is null. + + + + Matches when the observable sequence has an available element and projects the element by invoking the selector function. + + The type of the elements in the source sequence. + The type of the elements in the result sequence, returned by the selector function. + Observable sequence to apply the selector on. + Selector that will be invoked for elements in the source sequence. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + or is null. + + + + Joins together the results from several patterns. + + The type of the elements in the result sequence, obtained from the specified patterns. + Query provider used to construct the data source. + A series of plans created by use of the Then operator on patterns. + An observable sequence with the results from matching several patterns. + or is null. + + + + Joins together the results from several patterns. + + The type of the elements in the result sequence, obtained from the specified patterns. + Query provider used to construct the data source. + A series of plans created by use of the Then operator on patterns. + An observable sequence with the results form matching several patterns. + or is null. + + + + Try winning the race for the right of emission. + + If true, the contender is the left source. + True if the contender has won the race. + + + + If true, this observer won the race and now can emit + on a fast path. + + + + + Automatically connect the upstream IConnectableObservable once the + specified number of IObservers have subscribed to this IObservable. + + The upstream value type. + + + + The only instance for a TResult type: this source + is completely stateless and has a constant behavior. + + + + + No need for instantiating this more than once per TResult. + + + + + Contains the current active connection's state or null + if no connection is active at the moment. + Should be manipulated while holding the lock. + + + + + Contains the connection reference the downstream observer + has subscribed to. Its purpose is to + avoid subscribing, connecting and disconnecting + while holding a lock. + + + + + Holds an individual connection state: the observer count and + the connection's IDisposable. + + + + + Relays items to the downstream until the predicate returns true. + + The element type of the sequence + + + + Provides a set of static methods for writing queries over observable sequences, allowing translation to a target query language. + + + + + Subscribes to each observable sequence returned by the iteratorMethod in sequence and produces a Unit value on the resulting sequence for each step of the iteration. + + Query provider used to construct the data source. + Iterator method that drives the resulting observable sequence. + An observable sequence obtained by running the iterator and returning Unit values for each iteration step. + + is null. + + + + Subscribes to each observable sequence returned by the iteratorMethod in sequence and returns the observable sequence of values sent to the observer given to the iteratorMethod. + + Query provider used to construct the data source. + The type of the elements in the produced sequence. + Iterator method that produces elements in the resulting sequence by calling the given observer. + An observable sequence obtained by running the iterator and returning the elements that were sent to the observer. + + is null. + + + + Expands an observable sequence by recursively invoking selector. + + The type of the elements in the source sequence and each of the recursively expanded sources obtained by running the selector function. + Source sequence with the initial elements. + Selector function to invoke for each produced element, resulting in another sequence to which the selector will be invoked recursively again. + An observable sequence containing all the elements produced by the recursive expansion. + + or is null. + + + + Expands an observable sequence by recursively invoking selector, using the specified scheduler to enumerate the queue of obtained sequences. + + The type of the elements in the source sequence and each of the recursively expanded sources obtained by running the selector function. + Source sequence with the initial elements. + Selector function to invoke for each produced element, resulting in another sequence to which the selector will be invoked recursively again. + Scheduler on which to perform the expansion by enumerating the internal queue of obtained sequences. + An observable sequence containing all the elements produced by the recursive expansion. + + or or is null. + + + + Runs all specified observable sequences in parallel and collects their last elements. + + Query provider used to construct the data source. + The type of the elements in the source sequences. + Observable sequence to collect the last elements for. + An observable sequence with an array collecting the last elements of all the input sequences. + + is null. + + + + Runs all observable sequences in the enumerable sources sequence in parallel and collect their last elements. + + Query provider used to construct the data source. + The type of the elements in the source sequences. + Observable sequence to collect the last elements for. + An observable sequence with an array collecting the last elements of all the input sequences. + + is null. + + + + Runs two observable sequences in parallel and combines their last elements. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable sequence. + Second observable sequence. + Result selector function to invoke with the last elements of both sequences. + An observable sequence with the result of calling the selector function with the last elements of both input sequences. + + or or is null. + + + + Returns an observable sequence that is the result of invoking the selector on the source sequence, without sharing subscriptions. + This operator allows for a fluent style of writing queries that use the same sequence multiple times. + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence that will be shared in the selector function. + Selector function which can use the source sequence as many times as needed, without sharing subscriptions to the source sequence. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + + or is null. + + + + Comonadic bind operator. + + + + + Comonadic bind operator. + + + + + Merges two observable sequences into one observable sequence by combining each element from the first source with the latest element from the second source, if any. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + First observable source. + Second observable source. + An observable sequence containing the result of combining each element of the first source with the latest element from the second source, if any, as a tuple value. + or is null. + + + + Merges an observable sequence and an enumerable sequence into one observable sequence of tuple values. + + The type of the elements in the first observable source sequence. + The type of the elements in the second enumerable source sequence. + First observable source. + Second enumerable source. + An observable sequence containing the result of pairwise combining the elements of the first and second source as a tuple value. + or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + First observable source. + Second observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + First observable source. + Second observable source. + Third observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Fourteenth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the fifteenth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Fourteenth observable source. + Fifteenth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the fifteenth source sequence. + The type of the elements in the sixteenth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Fourteenth observable source. + Fifteenth observable source. + Sixteenth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + First observable source. + Second observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + First observable source. + Second observable source. + Third observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Fourteenth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the fifteenth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Fourteenth observable source. + Fifteenth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the fifteenth source sequence. + The type of the elements in the sixteenth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Fourteenth observable source. + Fifteenth observable source. + Sixteenth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or or or or or or or or or is null. + + + + (Infrastructure) Implement query debugger services. + + + + + The System.Reactive.Linq namespace contains interfaces and classes that support expressing queries over observable sequences, using Language Integrated Query (LINQ). + Query operators are made available as extension methods for and defined on the Observable and Qbservable classes, respectively. + + + + + Provides a set of extension methods to expose observable sequences as Windows Runtime asynchronous actions and operations. + + + + + Creates a Windows Runtime asynchronous action that represents the completion of the observable sequence. + Upon cancellation of the asynchronous action, the subscription to the source sequence will be disposed. + + The type of the elements in the source sequence. + Source sequence to expose as an asynchronous action. + Windows Runtime asynchronous action object representing the completion of the observable sequence. + is null. + + + + Creates a Windows Runtime asynchronous action that represents the completion of the observable sequence, reporting incremental progress for each element produced by the sequence. + Upon cancellation of the asynchronous action, the subscription to the source sequence will be disposed. + + The type of the elements in the source sequence. + Source sequence to expose as an asynchronous action. + Windows Runtime asynchronous action object representing the completion of the observable sequence, reporting incremental progress for each source sequence element. + is null. + + + + Creates a Windows Runtime asynchronous action that represents the completion of the observable sequence, using a selector function to map the source sequence on a progress reporting sequence. + Upon cancellation of the asynchronous action, the subscription to the source sequence will be disposed. + + The type of the elements in the source sequence. + The type of the elements in the progress sequence. + Source sequence to expose as an asynchronous action and to compute a progress sequence that gets reported through the asynchronous action. + Selector function to map the source sequence on a progress reporting sequence. + Windows Runtime asynchronous action object representing the completion of the result sequence, reporting progress computed through the progress sequence. + or is null. + + + + Creates a Windows Runtime asynchronous operation that returns the last element of the observable sequence. + Upon cancellation of the asynchronous operation, the subscription to the source sequence will be disposed. + + The type of the elements in the source sequence. + Source sequence to expose as an asynchronous operation. + Windows Runtime asynchronous operation object that returns the last element of the observable sequence. + is null. + + + + Creates a Windows Runtime asynchronous operation that returns the last element of the observable sequence, reporting incremental progress for each element produced by the sequence. + Upon cancellation of the asynchronous operation, the subscription to the source sequence will be disposed. + + The type of the elements in the source sequence. + Source sequence to expose as an asynchronous operation. + Windows Runtime asynchronous operation object that returns the last element of the observable sequence, reporting incremental progress for each source sequence element. + is null. + + + + Creates a Windows Runtime asynchronous operation that returns the last element of the result sequence, reporting incremental progress for each element produced by the source sequence. + Upon cancellation of the asynchronous operation, the subscription to the source sequence will be disposed. + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence to compute a result sequence that gets exposed as an asynchronous operation. + Selector function to map the source sequence on a result sequence. + Windows Runtime asynchronous operation object that returns the last element of the result sequence, reporting incremental progress for each source sequence element. + or is null. + + + + Creates a Windows Runtime asynchronous operation that returns the last element of the result sequence, using a selector function to map the source sequence on a progress reporting sequence. + Upon cancellation of the asynchronous operation, the subscription to the source sequence will be disposed. + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + The type of the elements in the progress sequence. + Source sequence to compute a result sequence that gets exposed as an asynchronous operation and a progress sequence that gets reported through the asynchronous operation. + Selector function to map the source sequence on a result sequence. + Selector function to map the source sequence on a progress reporting sequence. + Windows Runtime asynchronous operation object that returns the last element of the result sequence, reporting progress computed through the progress sequence. + or or is null. + + + + Provides a set of extension methods for scheduling actions performed through observable sequences on UI dispatchers. + + + + + Wraps the source sequence in order to run its observer callbacks on the specified dispatcher. + + The type of the elements in the source sequence. + Source sequence. + Dispatcher whose associated message loop is used to notify observers on. + The source sequence whose observations happen on the specified dispatcher. + or is null. + + + + Wraps the source sequence in order to run its observer callbacks on the specified dispatcher. + + The type of the elements in the source sequence. + Source sequence. + Dispatcher whose associated message loop is used to notify observers on. + Priority to schedule work items at. + The source sequence whose observations happen on the specified dispatcher. + or is null. + + + + Wraps the source sequence in order to run its observer callbacks on the dispatcher associated with the current window. + + The type of the elements in the source sequence. + Source sequence. + The source sequence whose observations happen on the current window's dispatcher. + is null. + + + + Wraps the source sequence in order to run its observer callbacks on the dispatcher associated with the current window. + + The type of the elements in the source sequence. + Source sequence. + Priority to schedule work items at. + The source sequence whose observations happen on the current window's dispatcher. + is null. + + + + Wraps the source sequence in order to run its subscription and unsubscription logic on the specified dispatcher. + + The type of the elements in the source sequence. + Source sequence. + Dispatcher whose associated message loop is used to perform subscription and unsubscription actions on. + The source sequence whose subscriptions and unsubscriptions happen on the specified dispatcher. + or is null. + + Only the side-effects of subscribing to the source sequence and disposing subscriptions to the source sequence are run on the specified dispatcher. + In order to invoke observer callbacks on the specified dispatcher, e.g. to render results in a control, use . + + + + + Wraps the source sequence in order to run its subscription and unsubscription logic on the specified dispatcher. + + The type of the elements in the source sequence. + Source sequence. + Dispatcher whose associated message loop is used to perform subscription and unsubscription actions on. + Priority to schedule work items at. + The source sequence whose subscriptions and unsubscriptions happen on the specified dispatcher. + or is null. + + Only the side-effects of subscribing to the source sequence and disposing subscriptions to the source sequence are run on the specified dispatcher. + In order to invoke observer callbacks on the specified dispatcher, e.g. to render results in a control, use . + + + + + Wraps the source sequence in order to run its subscription and unsubscription logic on the dispatcher associated with the current window. + + The type of the elements in the source sequence. + Source sequence. + The source sequence whose subscriptions and unsubscriptions happen on the current window's dispatcher. + is null. + + Only the side-effects of subscribing to the source sequence and disposing subscriptions to the source sequence are run on the dispatcher associated with the current window. + In order to invoke observer callbacks on the dispatcher associated with the current window, e.g. to render results in a control, use . + + + + + Wraps the source sequence in order to run its subscription and unsubscription logic on the dispatcher associated with the current window. + + The type of the elements in the source sequence. + Source sequence. + Priority to schedule work items at. + The source sequence whose subscriptions and unsubscriptions happen on the current window's dispatcher. + is null. + + Only the side-effects of subscribing to the source sequence and disposing subscriptions to the source sequence are run on the dispatcher associated with the current window. + In order to invoke observer callbacks on the dispatcher associated with the current window, e.g. to render results in a control, use . + + + + + Provides a set of static methods for importing typed events from Windows Runtime APIs. + + + + + Converts a typed event, conforming to the standard event pattern, to an observable sequence. + + The type of the sender that raises the event. + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains data representations of invocations of the underlying typed event. + or is null. + + + + + Converts a typed event, conforming to the standard event pattern, to an observable sequence. + + The delegate type of the event to be converted. + The type of the sender that raises the event. + The type of the event data generated by the event. + A function used to convert the given event handler to a delegate compatible with the underlying typed event. The resulting delegate is used in calls to the addHandler and removeHandler action parameters. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains data representations of invocations of the underlying typed event. + or or is null. + + + + + Exposes an observable sequence as an object with a typed event. + + The type of the sender that raises the event. + The type of the event data generated by the event. + Observable source sequence. + The event source object. + is null. + + + + Projects each element of an observable sequence to a Windows Runtime asynchronous operation and merges all of the asynchronous operation results into one observable sequence. + + The type of the elements in the source sequence. + The type of the result produced by the projected asynchronous operations and the elements in the merged result sequence. + An observable sequence of elements to project. + A transform function to apply to each element. + An observable sequence whose elements are the result of the asynchronous operations executed for each element of the input sequence. + or is null. + This overload supports composition of observable sequences and Windows Runtime asynchronous operations, without requiring manual conversion of the asynchronous operations to observable sequences using . + + + + Projects each element of an observable sequence to a Windows Runtime asynchronous operation and merges all of the asynchronous operation results into one observable sequence. + + The type of the elements in the source sequence. + The type of the result produced by the projected asynchronous operations and the elements in the merged result sequence. + The type of the reported progress objects, which get ignored by this query operator. + An observable sequence of elements to project. + A transform function to apply to each element. + An observable sequence whose elements are the result of the asynchronous operations executed for each element of the input sequence. + or is null. + This overload supports composition of observable sequences and Windows Runtime asynchronous operations, without requiring manual conversion of the asynchronous operations to observable sequences using . + + + + Projects each element of an observable sequence to a Windows Runtime asynchronous operation, invokes the result selector for the source element and the asynchronous operation result, and merges the results into one observable sequence. + + The type of the elements in the source sequence. + The type of the results produced by the projected asynchronous operations. + The type of the elements in the result sequence, obtained by using the selector to combine source sequence elements with their corresponding intermediate asynchronous operation results. + An observable sequence of elements to project. + A transform function to apply to each element. + A transform function to apply to each element of the intermediate sequence. + An observable sequence whose elements are the result of obtaining an asynchronous operation for each element of the input sequence and then mapping the asynchronous operation's result and its corresponding source element to a result element. + or or is null. + This overload supports using LINQ query comprehension syntax in C# and Visual Basic to compose observable sequences and Windows Runtime asynchronous operations, without requiring manual conversion of the asynchronous operations to observable sequences using . + + + + Projects each element of an observable sequence to a Windows Runtime asynchronous operation, invokes the result selector for the source element and the asynchronous operation result, and merges the results into one observable sequence. + + The type of the elements in the source sequence. + The type of the results produced by the projected asynchronous operations. + The type of the reported progress objects, which get ignored by this query operator. + The type of the elements in the result sequence, obtained by using the selector to combine source sequence elements with their corresponding intermediate asynchronous operation results. + An observable sequence of elements to project. + A transform function to apply to each element. + A transform function to apply to each element of the intermediate sequence. + An observable sequence whose elements are the result of obtaining an asynchronous operation for each element of the input sequence and then mapping the asynchronous operation's result and its corresponding source element to a result element. + or or is null. + This overload supports using LINQ query comprehension syntax in C# and Visual Basic to compose observable sequences and Windows Runtime asynchronous operations, without requiring manual conversion of the asynchronous operations to observable sequences using . + + + + Provides a set of static methods for subscribing to IObservables using Windows Forms controls. + + + + + Wraps the source sequence in order to run its subscription and unsubscription logic on the Windows Forms message loop associated with the specified control. + + The type of the elements in the source sequence. + Source sequence. + Windows Forms control whose associated message loop is used to perform subscription and unsubscription actions on. + The source sequence whose subscriptions and unsubscriptions happen on the Windows Forms message loop associated with the specified control. + or is null. + + Only the side-effects of subscribing to the source sequence and disposing subscriptions to the source sequence are run on the specified control. + In order to invoke observer callbacks on the specified control, e.g. to render results in a control, use . + + + + + Wraps the source sequence in order to run its observer callbacks on the Windows Forms message loop associated with the specified control. + + The type of the elements in the source sequence. + Source sequence. + Windows Forms control whose associated message loop is used to notify observers on. + The source sequence whose observations happen on the Windows Forms message loop associated with the specified control. + or is null. + + + + Provides a set of extension methods for scheduling actions performed through observable sequences on UI dispatchers. + + + + + Wraps the source sequence in order to run its observer callbacks on the specified dispatcher. + + The type of the elements in the source sequence. + Source sequence. + Dispatcher whose associated message loop is used to notify observers on. + The source sequence whose observations happen on the specified dispatcher. + or is null. + + + + Wraps the source sequence in order to run its observer callbacks on the specified dispatcher. + + The type of the elements in the source sequence. + Source sequence. + Dispatcher whose associated message loop is used to notify observers on. + Priority to schedule work items at. + The source sequence whose observations happen on the specified dispatcher. + or is null. + + + + Wraps the source sequence in order to run its observer callbacks on the specified dispatcher scheduler. + + The type of the elements in the source sequence. + Source sequence. + Dispatcher scheduler to notify observers on. + The source sequence whose observations happen on the specified dispatcher scheduler. + or is null. + + + + Wraps the source sequence in order to run its observer callbacks on the dispatcher associated with the specified object. + + The type of the elements in the source sequence. + Source sequence. + Object to get the dispatcher from. + The source sequence whose observations happen on the specified object's dispatcher. + or is null. + + + + Wraps the source sequence in order to run its observer callbacks on the dispatcher associated with the specified object. + + The type of the elements in the source sequence. + Source sequence. + Object to get the dispatcher from. + Priority to schedule work items at. + The source sequence whose observations happen on the specified object's dispatcher. + or is null. + + + + Wraps the source sequence in order to run its observer callbacks on the dispatcher associated with the current thread. + + The type of the elements in the source sequence. + Source sequence. + The source sequence whose observations happen on the current thread's dispatcher. + is null. + + + + Wraps the source sequence in order to run its observer callbacks on the dispatcher associated with the current thread. + + The type of the elements in the source sequence. + Source sequence. + Priority to schedule work items at. + The source sequence whose observations happen on the current thread's dispatcher. + is null. + + + + Wraps the source sequence in order to run its subscription and unsubscription logic on the specified dispatcher. + + The type of the elements in the source sequence. + Source sequence. + Dispatcher whose associated message loop is used to perform subscription and unsubscription actions on. + The source sequence whose subscriptions and unsubscriptions happen on the specified dispatcher. + or is null. + + Only the side-effects of subscribing to the source sequence and disposing subscriptions to the source sequence are run on the specified dispatcher. + In order to invoke observer callbacks on the specified dispatcher, e.g. to render results in a control, use . + + + + + Wraps the source sequence in order to run its subscription and unsubscription logic on the specified dispatcher. + + The type of the elements in the source sequence. + Source sequence. + Dispatcher whose associated message loop is used to to perform subscription and unsubscription actions on. + Priority to schedule work items at. + The source sequence whose subscriptions and unsubscriptions happen on the specified dispatcher. + or is null. + + Only the side-effects of subscribing to the source sequence and disposing subscriptions to the source sequence are run on the specified dispatcher. + In order to invoke observer callbacks on the specified dispatcher, e.g. to render results in a control, use . + + + + + Wraps the source sequence in order to run its subscription and unsubscription logic on the specified dispatcher scheduler. + + The type of the elements in the source sequence. + Source sequence. + Dispatcher scheduler to perform subscription and unsubscription actions on. + The source sequence whose subscriptions and unsubscriptions happen on the specified dispatcher scheduler. + or is null. + + Only the side-effects of subscribing to the source sequence and disposing subscriptions to the source sequence are run on the specified scheduler. + In order to invoke observer callbacks on the specified scheduler, e.g. to render results in a control, use . + + + + + Wraps the source sequence in order to run its subscription and unsubscription logic on the dispatcher associated with the specified object. + + The type of the elements in the source sequence. + Source sequence. + Object to get the dispatcher from. + The source sequence whose subscriptions and unsubscriptions happen on the specified object's dispatcher. + or is null. + + Only the side-effects of subscribing to the source sequence and disposing subscriptions to the source sequence are run on the dispatcher associated with the specified object. + In order to invoke observer callbacks on the dispatcher associated with the specified object, e.g. to render results in a control, use . + + + + + Wraps the source sequence in order to run its subscription and unsubscription logic on the dispatcher associated with the specified object. + + The type of the elements in the source sequence. + Source sequence. + Object to get the dispatcher from. + Priority to schedule work items at. + The source sequence whose subscriptions and unsubscriptions happen on the specified object's dispatcher. + or is null. + + Only the side-effects of subscribing to the source sequence and disposing subscriptions to the source sequence are run on the dispatcher associated with the specified object. + In order to invoke observer callbacks on the dispatcher associated with the specified object, e.g. to render results in a control, use . + + + + + Wraps the source sequence in order to run its subscription and unsubscription logic on the dispatcher associated with the current thread. + + The type of the elements in the source sequence. + Source sequence. + The source sequence whose subscriptions and unsubscriptions happen on the current thread's dispatcher. + is null. + + Only the side-effects of subscribing to the source sequence and disposing subscriptions to the source sequence are run on the dispatcher associated with the current thread. + In order to invoke observer callbacks on the dispatcher associated with the current thread, e.g. to render results in a control, use . + + + + + Wraps the source sequence in order to run its subscription and unsubscription logic on the dispatcher associated with the current thread. + + The type of the elements in the source sequence. + Source sequence. + Priority to schedule work items at. + The source sequence whose observations happen on the current thread's dispatcher. + is null. + + Only the side-effects of subscribing to the source sequence and disposing subscriptions to the source sequence are run on the dispatcher associated with the current thread. + In order to invoke observer callbacks on the dispatcher associated with the current thread, e.g. to render results in a control, use . + + + + + An ObserveOn operator implementation that uses lock-free + techniques to signal events to the downstream. + + The element type of the sequence. + + + + The current task representing a running drain operation. + + + + + Indicates the work-in-progress state of this operator, + zero means no work is currently being done. + + + + + If true, the upstream has issued OnCompleted. + + + + + If is true and this is non-null, the upstream + failed with an OnError. + + + + + Indicates a dispose has been requested. + + + + + Remove remaining elements from the queue upon + cancellation or failure. + + The queue to use. The argument ensures that the + _queue field is not re-read from memory unnecessarily + due to the memory barriers inside TryDequeue mandating it + despite the field is read-only. + + + + Submit the drain task via the appropriate scheduler if + there is no drain currently running (wip > 0). + + + + + The static action to be scheduled on a simple scheduler. + Avoids creating a delegate that captures this + whenever the signals have to be drained. + + + + + Emits at most one signal per run on a scheduler that doesn't like + long running tasks. + + The scheduler to use for scheduling the next signal emission if necessary. + The IDisposable of the recursively scheduled task or an empty disposable. + + + + Executes a drain step by checking the disposed state, + checking for the terminated state and for an + empty queue, issuing the appropriate signals to the + given downstream. + + The queue to use. The argument ensures that the + _queue field is not re-read from memory due to the memory barriers + inside TryDequeue mandating it despite the field is read-only. + In addition, the DrainStep is invoked from the DrainLongRunning's loop + so reading _queue inside this method would still incur the same barrier + overhead otherwise. + + + + Signals events on a ISchedulerLongRunning by blocking the emission thread while waiting + for them from the upstream. + + The element type of the sequence. + + + + This will run a suspending drain task, hogging the backing thread + until the sequence terminates or gets disposed. + + + + + The queue for holding the OnNext items, terminal signals have their own fields. + + + + + Protects the suspension and resumption of the long running drain task. + + + + + The work-in-progress counter. If it jumps from 0 to 1, the drain task is resumed, + if it reaches 0 again, the drain task is suspended. + + + + + Set to true if the upstream terminated. + + + + + Set to a non-null Exception if the upstream terminated with OnError. + + + + + Indicates the sequence has been disposed and the drain task should quit. + + + + + Makes sure the drain task is scheduled only once, when the first signal + from upstream arrives. + + + + + The disposable tracking the drain task. + + + + + Static reference to the Drain method, saves allocation. + + + + + Override this method to dispose additional resources. + The method is guaranteed to be called at most once. + + If true, the method was called from . + + + + Base class for implementation of query operators, providing a lightweight sink that can be disposed to mute the outgoing observer. + + Type of the resulting sequence's elements. + + Implementations of sinks are responsible to enforce the message grammar on the associated observer. Upon sending a terminal message, a pairing Dispose call should be made to trigger cancellation of related resources and to mute the outgoing observer. + + + + Holds onto a singleton IDisposable indicating a ready state. + + + + + This indicates the operation has been prepared and ready for + the next step. + + + + + Provides a mechanism for receiving push-based notifications and returning a response. + + + The type of the elements received by the observer. + This type parameter is contravariant. That is, you can use either the type you specified or any type that is less derived. For more information about covariance and contravariance, see Covariance and Contravariance in Generics. + + + The type of the result returned from the observer's notification handlers. + This type parameter is covariant. That is, you can use either the type you specified or any type that is more derived. For more information about covariance and contravariance, see Covariance and Contravariance in Generics. + + + + + Notifies the observer of a new element in the sequence. + + The new element in the sequence. + Result returned upon observation of a new element. + + + + Notifies the observer that an exception has occurred. + + The exception that occurred. + Result returned upon observation of an error. + + + + Notifies the observer of the end of the sequence. + + Result returned upon observation of the sequence completion. + + + + Abstract base class for join patterns. + + + + + Represents a join pattern over one observable sequence. + + The type of the elements in the first source sequence. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over two observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + + + + Creates a pattern that matches when all three observable sequences have an available element. + + The type of the elements in the third observable sequence. + Observable sequence to match with the two previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over three observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + + + + Creates a pattern that matches when all four observable sequences have an available element. + + The type of the elements in the fourth observable sequence. + Observable sequence to match with the three previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over four observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + + + + Creates a pattern that matches when all five observable sequences have an available element. + + The type of the elements in the fifth observable sequence. + Observable sequence to match with the four previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over five observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + + + + Creates a pattern that matches when all six observable sequences have an available element. + + The type of the elements in the sixth observable sequence. + Observable sequence to match with the five previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over six observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + + + + Creates a pattern that matches when all seven observable sequences have an available element. + + The type of the elements in the seventh observable sequence. + Observable sequence to match with the six previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over seven observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + + + + Creates a pattern that matches when all eight observable sequences have an available element. + + The type of the elements in the eighth observable sequence. + Observable sequence to match with the seven previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over eight observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + + + + Creates a pattern that matches when all nine observable sequences have an available element. + + The type of the elements in the ninth observable sequence. + Observable sequence to match with the eight previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over nine observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + + + + Creates a pattern that matches when all ten observable sequences have an available element. + + The type of the elements in the tenth observable sequence. + Observable sequence to match with the nine previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over ten observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + + + + Creates a pattern that matches when all eleven observable sequences have an available element. + + The type of the elements in the eleventh observable sequence. + Observable sequence to match with the ten previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over eleven observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + + + + Creates a pattern that matches when all twelve observable sequences have an available element. + + The type of the elements in the twelfth observable sequence. + Observable sequence to match with the eleven previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over twelve observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + + + + Creates a pattern that matches when all thirteen observable sequences have an available element. + + The type of the elements in the thirteenth observable sequence. + Observable sequence to match with the twelve previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over thirteen observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + + + + Creates a pattern that matches when all fourteen observable sequences have an available element. + + The type of the elements in the fourteenth observable sequence. + Observable sequence to match with the thirteen previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over fourteen observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + + + + Creates a pattern that matches when all fifteen observable sequences have an available element. + + The type of the elements in the fifteenth observable sequence. + Observable sequence to match with the fourteen previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over fifteen observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the fifteenth source sequence. + + + + Creates a pattern that matches when all sixteen observable sequences have an available element. + + The type of the elements in the sixteenth observable sequence. + Observable sequence to match with the fifteen previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over sixteen observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the fifteenth source sequence. + The type of the elements in the sixteenth source sequence. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents an execution plan for join patterns. + + The type of the results produced by the plan. + + + + Abstract base class for join patterns represented by an expression tree. + + + + + Creates a new join pattern object using the specified expression tree representation. + + Expression tree representing the join pattern. + + + + Gets the expression tree representing the join pattern. + + + + + Represents a join pattern over two observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + + + + Creates a pattern that matches when all three observable sequences have an available element. + + The type of the elements in the third observable sequence. + Observable sequence to match with the two previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over three observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + + + + Creates a pattern that matches when all four observable sequences have an available element. + + The type of the elements in the fourth observable sequence. + Observable sequence to match with the three previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over four observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + + + + Creates a pattern that matches when all five observable sequences have an available element. + + The type of the elements in the fifth observable sequence. + Observable sequence to match with the four previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over five observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + + + + Creates a pattern that matches when all six observable sequences have an available element. + + The type of the elements in the sixth observable sequence. + Observable sequence to match with the five previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over six observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + + + + Creates a pattern that matches when all seven observable sequences have an available element. + + The type of the elements in the seventh observable sequence. + Observable sequence to match with the six previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over seven observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + + + + Creates a pattern that matches when all eight observable sequences have an available element. + + The type of the elements in the eighth observable sequence. + Observable sequence to match with the seven previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over eight observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + + + + Creates a pattern that matches when all nine observable sequences have an available element. + + The type of the elements in the ninth observable sequence. + Observable sequence to match with the eight previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over nine observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + + + + Creates a pattern that matches when all ten observable sequences have an available element. + + The type of the elements in the tenth observable sequence. + Observable sequence to match with the nine previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over ten observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + + + + Creates a pattern that matches when all eleven observable sequences have an available element. + + The type of the elements in the eleventh observable sequence. + Observable sequence to match with the ten previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over eleven observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + + + + Creates a pattern that matches when all twelve observable sequences have an available element. + + The type of the elements in the twelfth observable sequence. + Observable sequence to match with the eleven previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over twelve observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + + + + Creates a pattern that matches when all thirteen observable sequences have an available element. + + The type of the elements in the thirteenth observable sequence. + Observable sequence to match with the twelve previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over thirteen observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + + + + Creates a pattern that matches when all fourteen observable sequences have an available element. + + The type of the elements in the fourteenth observable sequence. + Observable sequence to match with the thirteen previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over fourteen observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + + + + Creates a pattern that matches when all fifteen observable sequences have an available element. + + The type of the elements in the fifteenth observable sequence. + Observable sequence to match with the fourteen previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over fifteen observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the fifteenth source sequence. + + + + Creates a pattern that matches when all sixteen observable sequences have an available element. + + The type of the elements in the sixteenth observable sequence. + Observable sequence to match with the fifteen previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over sixteen observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the fifteenth source sequence. + The type of the elements in the sixteenth source sequence. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents an execution plan for join patterns represented by an expression tree. + + The type of the results produced by the plan. + + + + Gets the expression tree representing the join pattern execution plan. + + + + + The System.Reactive.Joins namespace contains classes used to express join patterns over observable sequences using fluent method syntax. + + + + + Represents an object that retains the elements of the observable sequence and signals the end of the sequence. + + The type of elements received from the source sequence. + + + + Constructs an object that retains the values of source and signals the end of the sequence. + + The observable sequence whose elements will be retained in the list. + is null. + + + + Returns the last value of the observable sequence. + + + + + Determines the index of a specific item in the ListObservable. + + The element to determine the index for. + The index of the specified item in the list; -1 if not found. + + + + Inserts an item to the ListObservable at the specified index. + + The index to insert the item at. + The item to insert in the list. + + + + Removes the ListObservable item at the specified index. + + The index of the item to remove. + + + + Gets or sets the element at the specified index. + + The index of the item to retrieve or set. + + + + Adds an item to the ListObservable. + + The item to add to the list. + + + + Removes all items from the ListObservable. + + + + + Determines whether the ListObservable contains a specific value. + + The item to search for in the list. + true if found; false otherwise. + + + + Copies the elements of the ListObservable to an System.Array, starting at a particular System.Array index. + + The array to copy elements to. + The start index in the array to start copying elements to. + + + + Gets the number of elements contained in the ListObservable. + + + + + Gets a value that indicates whether the ListObservable is read-only. + + + + + Removes the first occurrence of a specific object from the ListObservable. + + The item to remove from the list. + true if the item was found; false otherwise. + + + + Returns an enumerator that iterates through the collection. + + Enumerator over the list. + + + + Subscribes an observer to the ListObservable which will be notified upon completion. + + The observer to send completion or error messages to. + The disposable resource that can be used to unsubscribe. + is null. + + + + The System.Reactive namespace contains interfaces and classes used throughout the Reactive Extensions library. + + + + + The System.Reactive.Subjects namespace contains interfaces and classes to represent subjects, which are objects implementing both and . + Subjects are often used as sources of events, allowing one party to raise events and allowing another party to write queries over the event stream. Because of their ability to + have multiple registered observers, subjects are also used as a facility to provide multicast behavior for event streams in queries. + + + + + Represents the result of an asynchronous operation. + The last value before the OnCompleted notification, or the error received through OnError, is sent to all subscribed observers. + + The type of the elements processed by the subject. + + + + A pre-allocated empty array indicating the AsyncSubject has terminated. + + + + + A pre-allocated empty array indicating the AsyncSubject has been disposed. + + + + + Creates a subject that can only receive one value and that value is cached for all future observations. + + + + + Indicates whether the subject has observers subscribed to it. + + + + + Indicates whether the subject has been disposed. + + + + + Notifies all subscribed observers about the end of the sequence, also causing the last received value to be sent out (if any). + + + + + Notifies all subscribed observers about the exception. + + The exception to send to all observers. + is null. + + + + Sends a value to the subject. The last value received before successful termination will be sent to all subscribed and future observers. + + The value to store in the subject. + + + + Subscribes an observer to the subject. + + Observer to subscribe to the subject. + Disposable object that can be used to unsubscribe the observer from the subject. + is null. + + + + A disposable connecting the AsyncSubject and an IObserver. + + + + + Unsubscribe all observers and release resources. + + + + + Gets an awaitable object for the current AsyncSubject. + + Object that can be awaited. + + + + Specifies a callback action that will be invoked when the subject completes. + + Callback action that will be invoked when the subject completes. + is null. + + + + Gets whether the AsyncSubject has completed. + + + + + Gets the last element of the subject, potentially blocking until the subject completes successfully or exceptionally. + + The last element of the subject. Throws an InvalidOperationException if no element was received. + The source sequence is empty. + + + + Represents a value that changes over time. + Observers can subscribe to the subject to receive the last (or initial) value and all subsequent notifications. + + The type of the elements processed by the subject. + + + + Initializes a new instance of the class which creates a subject that caches its last value and starts with the specified value. + + Initial value sent to observers when no other value has been received by the subject yet. + + + + Indicates whether the subject has observers subscribed to it. + + + + + Indicates whether the subject has been disposed. + + + + + Gets the current value or throws an exception. + + The initial value passed to the constructor until is called; after which, the last value passed to . + + is frozen after is called. + After is called, always throws the specified exception. + An exception is always thrown after is called. + + Reading is a thread-safe operation, though there's a potential race condition when or are being invoked concurrently. + In some cases, it may be necessary for a caller to use external synchronization to avoid race conditions. + + + Dispose was called. + + + + Tries to get the current value or throws an exception. + + The initial value passed to the constructor until is called; after which, the last value passed to . + true if a value is available; false if the subject was disposed. + + The value returned from is frozen after is called. + After is called, always throws the specified exception. + + Calling is a thread-safe operation, though there's a potential race condition when or are being invoked concurrently. + In some cases, it may be necessary for a caller to use external synchronization to avoid race conditions. + + + + + + Notifies all subscribed observers about the end of the sequence. + + + + + Notifies all subscribed observers about the exception. + + The exception to send to all observers. + is null. + + + + Notifies all subscribed observers about the arrival of the specified element in the sequence. + + The value to send to all observers. + + + + Subscribes an observer to the subject. + + Observer to subscribe to the subject. + Disposable object that can be used to unsubscribe the observer from the subject. + is null. + + + + Unsubscribe all observers and release resources. + + + + + Represents an observable wrapper that can be connected and disconnected from its underlying observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the resulting sequence, after transformation through the subject. + + + + Creates an observable that can be connected and disconnected from its source. + + Underlying observable source sequence that can be connected and disconnected from the wrapper. + Subject exposed by the connectable observable, receiving data from the underlying source sequence upon connection. + + + + Connects the observable wrapper to its source. All subscribed observers will receive values from the underlying observable sequence as long as the connection is established. + + Disposable object used to disconnect the observable wrapper from its source, causing subscribed observer to stop receiving values from the underlying observable sequence. + + + + Subscribes an observer to the observable sequence. No values from the underlying observable source will be received unless a connection was established through the Connect method. + + Observer that will receive values from the underlying observable source when the current ConnectableObservable instance is connected through a call to Connect. + Disposable used to unsubscribe from the observable sequence. + + + + Represents an observable wrapper that can be connected and disconnected from its underlying observable sequence. + + + The type of the elements in the sequence. + This type parameter is covariant. That is, you can use either the type you specified or any type that is more derived. For more information about covariance and contravariance, see Covariance and Contravariance in Generics. + + + + + Connects the observable wrapper to its source. All subscribed observers will receive values from the underlying observable sequence as long as the connection is established. + + Disposable used to disconnect the observable wrapper from its source, causing subscribed observer to stop receiving values from the underlying observable sequence. + + + + Represents an object that is both an observable sequence as well as an observer. + + The type of the elements processed by the subject. + + + + Represents an object that is both an observable sequence as well as an observer. + + + The type of the elements received by the subject. + This type parameter is contravariant. That is, you can use either the type you specified or any type that is less derived. For more information about covariance and contravariance, see Covariance and Contravariance in Generics. + + + The type of the elements produced by the subject. + This type parameter is covariant. That is, you can use either the type you specified or any type that is more derived. For more information about covariance and contravariance, see Covariance and Contravariance in Generics. + + + + + Represents an object that is both an observable sequence as well as an observer. + Each notification is broadcasted to all subscribed and future observers, subject to buffer trimming policies. + + The type of the elements processed by the subject. + + + + Underlying optimized implementation of the replay subject. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified scheduler. + + Scheduler the observers are invoked on. + is null. + + + + Initializes a new instance of the class with the specified buffer size. + + Maximum element count of the replay buffer. + is less than zero. + + + + Initializes a new instance of the class with the specified buffer size and scheduler. + + Maximum element count of the replay buffer. + Scheduler the observers are invoked on. + is null. + is less than zero. + + + + Initializes a new instance of the class with the specified window. + + Maximum time length of the replay buffer. + is less than . + + + + Initializes a new instance of the class with the specified window and scheduler. + + Maximum time length of the replay buffer. + Scheduler the observers are invoked on. + is null. + is less than . + + + + Initializes a new instance of the class with the specified buffer size and window. + + Maximum element count of the replay buffer. + Maximum time length of the replay buffer. + is less than zero. -or- is less than . + + + + Initializes a new instance of the class with the specified buffer size, window and scheduler. + + Maximum element count of the replay buffer. + Maximum time length of the replay buffer. + Scheduler the observers are invoked on. + is less than zero. -or- is less than . + is null. + + + + Indicates whether the subject has observers subscribed to it. + + + + + Indicates whether the subject has been disposed. + + + + + Notifies all subscribed and future observers about the arrival of the specified element in the sequence. + + The value to send to all observers. + + + + Notifies all subscribed and future observers about the specified exception. + + The exception to send to all observers. + is null. + + + + Notifies all subscribed and future observers about the end of the sequence. + + + + + Subscribes an observer to the subject. + + Observer to subscribe to the subject. + Disposable object that can be used to unsubscribe the observer from the subject. + is null. + + + + Releases all resources used by the current instance of the class and unsubscribe all observers. + + + + + Original implementation of the ReplaySubject with time based operations (Scheduling, Stopwatch, buffer-by-time). + + + + + Specialized scheduled observer similar to a scheduled observer for the immediate scheduler. + + Type of the elements processed by the observer. + + + + Gate to control ownership transfer and protect data structures. + + + + + Observer to forward notifications to. + + + + + Queue to enqueue OnNext notifications into. + + + + + Standby queue to swap out for _queue when transferring ownership. This allows to reuse + queues in case of busy subjects where the initial replay doesn't suffice to catch up. + + + + + Exception passed to an OnError notification, if any. + + + + + Indicates whether an OnCompleted notification was received. + + + + + Indicates whether the observer is busy, i.e. some thread is actively draining the + notifications that were queued up. + + + + + Indicates whether a failure occurred when the owner was draining the queue. This will + prevent future work to be processed. + + + + + Creates a new scheduled observer that proxies to the specified observer. + + Observer to forward notifications to. + + + + Disposes the observer. + + + + + Notifies the observer of pending work. This will either cause the current owner to + process the newly enqueued notifications, or it will cause the calling thread to + become the owner and start processing the notification queue. + + + + + Notifies the observer of pending work. This will either cause the current owner to + process the newly enqueued notifications, or it will cause the calling thread to + become the owner and start processing the notification queue. + + The number of enqueued notifications to process (ignored). + + + + Enqueues an OnCompleted notification. + + + + + Enqueues an OnError notification. + + Error of the notification. + + + + Enqueues an OnNext notification. + + Value of the notification. + + + + Terminates the observer upon receiving terminal notifications, thus preventing + future notifications to go out. + + Observer to send terminal notifications to. + + + + Represents an object that is both an observable sequence as well as an observer. + Each notification is broadcasted to all subscribed observers. + + The type of the elements processed by the subject. + + + + Creates a subject. + + + + + Indicates whether the subject has observers subscribed to it. + + + + + Indicates whether the subject has been disposed. + + + + + Notifies all subscribed observers about the end of the sequence. + + + + + Notifies all subscribed observers about the specified exception. + + The exception to send to all currently subscribed observers. + is null. + + + + Notifies all subscribed observers about the arrival of the specified element in the sequence. + + The value to send to all currently subscribed observers. + + + + Subscribes an observer to the subject. + + Observer to subscribe to the subject. + Disposable object that can be used to unsubscribe the observer from the subject. + is null. + + + + Releases all resources used by the current instance of the class and unsubscribes all observers. + + + + + Provides a set of static methods for creating subjects. + + + + + Creates a subject from the specified observer and observable. + + The type of the elements received by the observer. + The type of the elements produced by the observable sequence. + The observer used to send messages to the subject. + The observable used to subscribe to messages sent from the subject. + Subject implemented using the given observer and observable. + or is null. + + + + Creates a subject from the specified observer and observable. + + The type of the elements received by the observer and produced by the observable sequence. + The observer used to send messages to the subject. + The observable used to subscribe to messages sent from the subject. + Subject implemented using the given observer and observable. + or is null. + + + + Synchronizes the messages sent to the subject. + + The type of the elements received by the subject. + The type of the elements produced by the subject. + The subject to synchronize. + Subject whose messages are synchronized. + is null. + + + + Synchronizes the messages sent to the subject. + + The type of the elements received and produced by the subject. + The subject to synchronize. + Subject whose messages are synchronized. + is null. + + + + Synchronizes the messages sent to the subject and notifies observers on the specified scheduler. + + The type of the elements received by the subject. + The type of the elements produced by the subject. + The subject to synchronize. + Scheduler to notify observers on. + Subject whose messages are synchronized and whose observers are notified on the given scheduler. + or is null. + + + + Synchronizes the messages sent to the subject and notifies observers on the specified scheduler. + + The type of the elements received and produced by the subject. + The subject to synchronize. + Scheduler to notify observers on. + Subject whose messages are synchronized and whose observers are notified on the given scheduler. + or is null. + + + + Base class for objects that are both an observable sequence as well as an observer. + + The type of the elements processed by the subject. + + + + Indicates whether the subject has observers subscribed to it. + + + + + Indicates whether the subject has been disposed. + + + + + Releases all resources used by the current instance of the subject and unsubscribes all observers. + + + + + Notifies all subscribed observers about the end of the sequence. + + + + + Notifies all subscribed observers about the specified exception. + + The exception to send to all currently subscribed observers. + is null. + + + + Notifies all subscribed observers about the arrival of the specified element in the sequence. + + The value to send to all currently subscribed observers. + + + + Subscribes an observer to the subject. + + Observer to subscribe to the subject. + Disposable object that can be used to unsubscribe the observer from the subject. + is null. + + + + Indicates the type of a notification. + + + + + Represents an OnNext notification. + + + + + Represents an OnError notification. + + + + + Represents an OnCompleted notification. + + + + + Represents a notification to an observer. + + The type of the elements received by the observer. + + + + Default constructor used by derived types. + + + + + Returns the value of an OnNext notification or throws an exception. + + + + + Returns a value that indicates whether the notification has a value. + + + + + Returns the exception of an OnError notification or returns null. + + + + + Gets the kind of notification that is represented. + + + + + Represents an OnNext notification to an observer. + + + + + Constructs a notification of a new value. + + + + + Returns the value of an OnNext notification. + + + + + Returns null. + + + + + Returns true. + + + + + Returns . + + + + + Returns the hash code for this instance. + + + + + Indicates whether this instance and a specified object are equal. + + + + + Returns a string representation of this instance. + + + + + Invokes the observer's method corresponding to the notification. + + Observer to invoke the notification on. + + + + Invokes the observer's method corresponding to the notification and returns the produced result. + + Observer to invoke the notification on. + Result produced by the observation. + + + + Invokes the delegate corresponding to the notification. + + Delegate to invoke for an OnNext notification. + Delegate to invoke for an OnError notification. + Delegate to invoke for an OnCompleted notification. + + + + Invokes the delegate corresponding to the notification and returns the produced result. + + Delegate to invoke for an OnNext notification. + Delegate to invoke for an OnError notification. + Delegate to invoke for an OnCompleted notification. + Result produced by the observation. + + + + Represents an OnError notification to an observer. + + + + + Constructs a notification of an exception. + + + + + Throws the exception. + + + + + Returns the exception. + + + + + Returns false. + + + + + Returns . + + + + + Returns the hash code for this instance. + + + + + Indicates whether this instance and other are equal. + + + + + Returns a string representation of this instance. + + + + + Invokes the observer's method corresponding to the notification. + + Observer to invoke the notification on. + + + + Invokes the observer's method corresponding to the notification and returns the produced result. + + Observer to invoke the notification on. + Result produced by the observation. + + + + Invokes the delegate corresponding to the notification. + + Delegate to invoke for an OnNext notification. + Delegate to invoke for an OnError notification. + Delegate to invoke for an OnCompleted notification. + + + + Invokes the delegate corresponding to the notification and returns the produced result. + + Delegate to invoke for an OnNext notification. + Delegate to invoke for an OnError notification. + Delegate to invoke for an OnCompleted notification. + Result produced by the observation. + + + + Represents an OnCompleted notification to an observer. + + + + + Complete notifications are stateless thus only one instance + can ever exist per type. + + + + + Constructs a notification of the end of a sequence. + + + + + Throws an . + + + + + Returns null. + + + + + Returns false. + + + + + Returns . + + + + + Returns the hash code for this instance. + + + + + Indicates whether this instance and other are equal. + + + + + Returns a string representation of this instance. + + + + + Invokes the observer's method corresponding to the notification. + + Observer to invoke the notification on. + + + + Invokes the observer's method corresponding to the notification and returns the produced result. + + Observer to invoke the notification on. + Result produced by the observation. + + + + Invokes the delegate corresponding to the notification. + + Delegate to invoke for an OnNext notification. + Delegate to invoke for an OnError notification. + Delegate to invoke for an OnCompleted notification. + + + + Invokes the delegate corresponding to the notification and returns the produced result. + + Delegate to invoke for an OnNext notification. + Delegate to invoke for an OnError notification. + Delegate to invoke for an OnCompleted notification. + Result produced by the observation. + + + + Determines whether the current object has the same observer message payload as a specified value. + + An object to compare to the current object. + true if both objects have the same observer message payload; otherwise, false. + + Equality of objects is based on the equality of the observer message payload they represent, including the notification Kind and the Value or Exception (if any). + This means two objects can be equal even though they don't represent the same observer method call, but have the same Kind and have equal parameters passed to the observer method. + In case one wants to determine whether two objects represent the same observer method call, use Object.ReferenceEquals identity equality instead. + + + + + Determines whether the two specified objects have the same observer message payload. + + The first to compare, or null. + The second to compare, or null. + true if the first value has the same observer message payload as the second value; otherwise, false. + + Equality of objects is based on the equality of the observer message payload they represent, including the notification Kind and the Value or Exception (if any). + This means two objects can be equal even though they don't represent the same observer method call, but have the same Kind and have equal parameters passed to the observer method. + In case one wants to determine whether two objects represent the same observer method call, use Object.ReferenceEquals identity equality instead. + + + + + Determines whether the two specified objects have a different observer message payload. + + The first to compare, or null. + The second to compare, or null. + true if the first value has a different observer message payload as the second value; otherwise, false. + + Equality of objects is based on the equality of the observer message payload they represent, including the notification Kind and the Value or Exception (if any). + This means two objects can be equal even though they don't represent the same observer method call, but have the same Kind and have equal parameters passed to the observer method. + In case one wants to determine whether two objects represent a different observer method call, use Object.ReferenceEquals identity equality instead. + + + + + Determines whether the specified System.Object is equal to the current . + + The System.Object to compare with the current . + true if the specified System.Object is equal to the current ; otherwise, false. + + Equality of objects is based on the equality of the observer message payload they represent, including the notification Kind and the Value or Exception (if any). + This means two objects can be equal even though they don't represent the same observer method call, but have the same Kind and have equal parameters passed to the observer method. + In case one wants to determine whether two objects represent the same observer method call, use Object.ReferenceEquals identity equality instead. + + + + + Invokes the observer's method corresponding to the notification. + + Observer to invoke the notification on. + + + + Invokes the observer's method corresponding to the notification and returns the produced result. + + The type of the result returned from the observer's notification handlers. + Observer to invoke the notification on. + Result produced by the observation. + + + + Invokes the delegate corresponding to the notification. + + Delegate to invoke for an OnNext notification. + Delegate to invoke for an OnError notification. + Delegate to invoke for an OnCompleted notification. + + + + Invokes the delegate corresponding to the notification and returns the produced result. + + The type of the result returned from the notification handler delegates. + Delegate to invoke for an OnNext notification. + Delegate to invoke for an OnError notification. + Delegate to invoke for an OnCompleted notification. + Result produced by the observation. + + + + Returns an observable sequence with a single notification, using the immediate scheduler. + + The observable sequence that surfaces the behavior of the notification upon subscription. + + + + Returns an observable sequence with a single notification. + + Scheduler to send out the notification calls on. + The observable sequence that surfaces the behavior of the notification upon subscription. + + + + Provides a set of static methods for constructing notifications. + + + + + Creates an object that represents an OnNext notification to an observer. + + The type of the elements received by the observer. Upon dematerialization of the notifications into an observable sequence, this type is used as the element type for the sequence. + The value contained in the notification. + The OnNext notification containing the value. + + + + Creates an object that represents an OnError notification to an observer. + + The type of the elements received by the observer. Upon dematerialization of the notifications into an observable sequence, this type is used as the element type for the sequence. + The exception contained in the notification. + The OnError notification containing the exception. + is null. + + + + Creates an object that represents an OnCompleted notification to an observer. + + The type of the elements received by the observer. Upon dematerialization of the notifications into an observable sequence, this type is used as the element type for the sequence. + The OnCompleted notification. + + + + Abstract base class for implementations of the interface. + + + If you don't need a named type to create an observable sequence (i.e. you rather need + an instance rather than a reusable type), use the Observable.Create method to create + an observable sequence with specified subscription behavior. + + The type of the elements in the sequence. + + + + Subscribes the given observer to the observable sequence. + + Observer that will receive notifications from the observable sequence. + Disposable object representing an observer's subscription to the observable sequence. + is null. + + + + Implement this method with the core subscription logic for the observable sequence. + + Observer to send notifications to. + Disposable object representing an observer's subscription to the observable sequence. + + + + Provides a set of static methods for creating observers. + + + + + Creates an observer from a notification callback. + + The type of the elements received by the observer. + Action that handles a notification. + The observer object that invokes the specified handler using a notification corresponding to each message it receives. + is null. + + + + Creates a notification callback from an observer. + + The type of the elements received by the observer. + Observer object. + The action that forwards its input notification to the underlying observer. + is null. + + + + Creates an observer from the specified OnNext action. + + The type of the elements received by the observer. + Observer's OnNext action implementation. + The observer object implemented using the given actions. + is null. + + + + Creates an observer from the specified OnNext and OnError actions. + + The type of the elements received by the observer. + Observer's OnNext action implementation. + Observer's OnError action implementation. + The observer object implemented using the given actions. + or is null. + + + + Creates an observer from the specified OnNext and OnCompleted actions. + + The type of the elements received by the observer. + Observer's OnNext action implementation. + Observer's OnCompleted action implementation. + The observer object implemented using the given actions. + or is null. + + + + Creates an observer from the specified OnNext, OnError, and OnCompleted actions. + + The type of the elements received by the observer. + Observer's OnNext action implementation. + Observer's OnError action implementation. + Observer's OnCompleted action implementation. + The observer object implemented using the given actions. + or or is null. + + + + Hides the identity of an observer. + + The type of the elements received by the source observer. + An observer whose identity to hide. + An observer that hides the identity of the specified observer. + is null. + + + + Checks access to the observer for grammar violations. This includes checking for multiple OnError or OnCompleted calls, as well as reentrancy in any of the observer methods. + If a violation is detected, an InvalidOperationException is thrown from the offending observer method call. + + The type of the elements received by the source observer. + The observer whose callback invocations should be checked for grammar violations. + An observer that checks callbacks invocations against the observer grammar and, if the checks pass, forwards those to the specified observer. + is null. + + + + Synchronizes access to the observer such that its callback methods cannot be called concurrently from multiple threads. This overload is useful when coordinating access to an observer. + Notice reentrant observer callbacks on the same thread are still possible. + + The type of the elements received by the source observer. + The observer whose callbacks should be synchronized. + An observer that delivers callbacks to the specified observer in a synchronized manner. + is null. + + Because a Monitor is used to perform the synchronization, there's no protection against reentrancy from the same thread. + Hence, overlapped observer callbacks are still possible, which is invalid behavior according to the observer grammar. In order to protect against this behavior as + well, use the overload, passing true for the second parameter. + + + + + Synchronizes access to the observer such that its callback methods cannot be called concurrently. This overload is useful when coordinating access to an observer. + The parameter configures the type of lock used for synchronization. + + The type of the elements received by the source observer. + The observer whose callbacks should be synchronized. + If set to true, reentrant observer callbacks will be queued up and get delivered to the observer in a sequential manner. + An observer that delivers callbacks to the specified observer in a synchronized manner. + is null. + + When the parameter is set to false, behavior is identical to the overload which uses + a Monitor for synchronization. When the parameter is set to true, an + is used to queue up callbacks to the specified observer if a reentrant call is made. + + + + + Synchronizes access to the observer such that its callback methods cannot be called concurrently by multiple threads, using the specified gate object for use by a Monitor-based lock. + This overload is useful when coordinating multiple observers that access shared state by synchronizing on a common gate object. + Notice reentrant observer callbacks on the same thread are still possible. + + The type of the elements received by the source observer. + The observer whose callbacks should be synchronized. + Gate object to synchronize each observer call on. + An observer that delivers callbacks to the specified observer in a synchronized manner. + or is null. + + Because a Monitor is used to perform the synchronization, there's no protection against reentrancy from the same thread. + Hence, overlapped observer callbacks are still possible, which is invalid behavior according to the observer grammar. In order to protect against this behavior as + well, use the overload. + + + + + Synchronizes access to the observer such that its callback methods cannot be called concurrently, using the specified asynchronous lock to protect against concurrent and reentrant access. + This overload is useful when coordinating multiple observers that access shared state by synchronizing on a common asynchronous lock. + + The type of the elements received by the source observer. + The observer whose callbacks should be synchronized. + Gate object to synchronize each observer call on. + An observer that delivers callbacks to the specified observer in a synchronized manner. + or is null. + + + + Schedules the invocation of observer methods on the given scheduler. + + The type of the elements received by the source observer. + The observer to schedule messages for. + Scheduler to schedule observer messages on. + Observer whose messages are scheduled on the given scheduler. + or is null. + + + + Schedules the invocation of observer methods on the given synchronization context. + + The type of the elements received by the source observer. + The observer to schedule messages for. + Synchronization context to schedule observer messages on. + Observer whose messages are scheduled on the given synchronization context. + or is null. + + + + Converts an observer to a progress object. + + The type of the progress objects received by the source observer. + The observer to convert. + Progress object whose Report messages correspond to the observer's OnNext messages. + is null. + + + + Converts an observer to a progress object, using the specified scheduler to invoke the progress reporting method. + + The type of the progress objects received by the source observer. + The observer to convert. + Scheduler to report progress on. + Progress object whose Report messages correspond to the observer's OnNext messages. + or is null. + + + + Converts a progress object to an observer. + + The type of the progress objects received by the progress reporter. + The progress object to convert. + Observer whose OnNext messages correspond to the progress object's Report messages. + is null. + + + + Abstract base class for implementations of the interface. + + This base class enforces the grammar of observers where and are terminal messages. + The type of the elements in the sequence. + + + + Creates a new observer in a non-stopped state. + + + + + Notifies the observer of a new element in the sequence. + + Next element in the sequence. + + + + Implement this method to react to the receival of a new element in the sequence. + + Next element in the sequence. + This method only gets called when the observer hasn't stopped yet. + + + + Notifies the observer that an exception has occurred. + + The error that has occurred. + is null. + + + + Implement this method to react to the occurrence of an exception. + + The error that has occurred. + This method only gets called when the observer hasn't stopped yet, and causes the observer to stop. + + + + Notifies the observer of the end of the sequence. + + + + + Implement this method to react to the end of the sequence. + + This method only gets called when the observer hasn't stopped yet, and causes the observer to stop. + + + + Disposes the observer, causing it to transition to the stopped state. + + + + + Core implementation of . + + true if the Dispose call was triggered by the method; false if it was triggered by the finalizer. + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to Using the Scheduler.{0} property is no longer supported due to refactoring of the API surface and elimination of platform-specific dependencies. Please include System.Reactive.PlatformServices for your target platform and use the {0}Scheduler type instead. If you're building a Windows Store app, notice some schedulers are no longer supported. Consider using Scheduler.Default instead.. + + + + + Looks up a localized string similar to OnCompleted notification doesn't have a value.. + + + + + Looks up a localized string similar to Disposable has already been assigned.. + + + + + Looks up a localized string similar to Disposables collection can not contain null values.. + + + + + Looks up a localized string similar to Failed to start monitoring system clock changes.. + + + + + Looks up a localized string similar to Heap is empty.. + + + + + Looks up a localized string similar to Observer has already terminated.. + + + + + Looks up a localized string similar to Reentrancy has been detected.. + + + + + Looks up a localized string similar to This scheduler operation has already been awaited.. + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to {0} cannot be called when the scheduler is already running. Try using Sleep instead.. + + + + + Looks up a localized string similar to Could not find event '{0}' on object of type '{1}'.. + + + + + Looks up a localized string similar to Could not find event '{0}' on type '{1}'.. + + + + + Looks up a localized string similar to Add method should take 1 parameter.. + + + + + Looks up a localized string similar to The second parameter of the event delegate must be assignable to '{0}'.. + + + + + Looks up a localized string similar to Event is missing the add method.. + + + + + Looks up a localized string similar to Event is missing the remove method.. + + + + + Looks up a localized string similar to The event delegate must have a void return type.. + + + + + Looks up a localized string similar to The event delegate must have exactly two parameters.. + + + + + Looks up a localized string similar to Remove method should take 1 parameter.. + + + + + Looks up a localized string similar to The first parameter of the event delegate must be assignable to '{0}'.. + + + + + Looks up a localized string similar to Remove method of a WinRT event should take an EventRegistrationToken.. + + + + + Looks up a localized string similar to Sequence contains more than one element.. + + + + + Looks up a localized string similar to Sequence contains more than one matching element.. + + + + + Looks up a localized string similar to Sequence contains no elements.. + + + + + Looks up a localized string similar to Sequence contains no matching element.. + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to The WinRT thread pool doesn't support creating periodic timers with a period below 1 millisecond.. + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to Expected Qbservable.ToQueryable.. + + + + + Looks up a localized string similar to Invalid expression tree type.. + + + + + Looks up a localized string similar to There is no method '{0}' on type '{1}' that matches the specified arguments.. + + + + + Extension of the interface compatible with async method return types. + + + This class implements a "task-like" type that can be used as the return type of an asynchronous + method in C# 7.0 and beyond. For example: + + async ITaskObservable<int> RxAsync() + { + var res = await Observable.Return(21).Delay(TimeSpan.FromSeconds(1)); + return res * 2; + } + + + The type of the elements in the sequence. + + + + Gets an awaiter that can be used to await the eventual completion of the observable sequence. + + An awaiter that can be used to await the eventual completion of the observable sequence. + + + + Interface representing an awaiter for an . + + The type of the elements in the sequence. + + + + Gets a Boolean indicating whether the observable sequence has completed. + + + + + Gets the result produced by the observable sequence. + + The result produced by the observable sequence. + + + + The System.Reactive.Threading.Tasks namespace contains helpers for the conversion between tasks and observable sequences. + + + + + Provides a set of static methods for converting tasks to observable sequences. + + + + + Returns an observable sequence that signals when the task completes. + + Task to convert to an observable sequence. + An observable sequence that produces a unit value when the task completes, or propagates the exception produced by the task. + is null. + If the specified task object supports cancellation, consider using instead. + + + + Returns an observable sequence that signals when the task completes. + + Task to convert to an observable sequence. + Scheduler on which to notify observers about completion, cancellation or failure. + An observable sequence that produces a unit value when the task completes, or propagates the exception produced by the task. + is null or is null. + If the specified task object supports cancellation, consider using instead. + + + + Returns an observable sequence that propagates the result of the task. + + The type of the result produced by the task. + Task to convert to an observable sequence. + An observable sequence that produces the task's result, or propagates the exception produced by the task. + is null. + If the specified task object supports cancellation, consider using instead. + + + + Returns an observable sequence that propagates the result of the task. + + The type of the result produced by the task. + Task to convert to an observable sequence. + Scheduler on which to notify observers about completion, cancellation or failure. + An observable sequence that produces the task's result, or propagates the exception produced by the task. + is null or is null. + If the specified task object supports cancellation, consider using instead. + + + + Returns a task that will receive the last value or the exception produced by the observable sequence. + + The type of the elements in the source sequence. + Observable sequence to convert to a task. + A task that will receive the last element or the exception produced by the observable sequence. + is null. + + + + Returns a task that will receive the last value or the exception produced by the observable sequence. + + The type of the elements in the source sequence. + Observable sequence to convert to a task. + The scheduler used for overriding where the task completion signals will be issued. + A task that will receive the last element or the exception produced by the observable sequence. + or is null. + + + + Returns a task that will receive the last value or the exception produced by the observable sequence. + + The type of the elements in the source sequence. + Observable sequence to convert to a task. + The state to use as the underlying task's AsyncState. + A task that will receive the last element or the exception produced by the observable sequence. + is null. + + + + Returns a task that will receive the last value or the exception produced by the observable sequence. + + The type of the elements in the source sequence. + Observable sequence to convert to a task. + The state to use as the underlying task's AsyncState. + The scheduler used for overriding where the task completion signals will be issued. + A task that will receive the last element or the exception produced by the observable sequence. + or is null. + + + + Returns a task that will receive the last value or the exception produced by the observable sequence. + + The type of the elements in the source sequence. + Observable sequence to convert to a task. + Cancellation token that can be used to cancel the task, causing unsubscription from the observable sequence. + A task that will receive the last element or the exception produced by the observable sequence. + is null. + + + + Returns a task that will receive the last value or the exception produced by the observable sequence. + + The type of the elements in the source sequence. + Observable sequence to convert to a task. + Cancellation token that can be used to cancel the task, causing unsubscription from the observable sequence. + The scheduler used for overriding where the task completion signals will be issued. + A task that will receive the last element or the exception produced by the observable sequence. + or is null. + + + + Returns a task that will receive the last value or the exception produced by the observable sequence. + + The type of the elements in the source sequence. + Observable sequence to convert to a task. + Cancellation token that can be used to cancel the task, causing unsubscription from the observable sequence. + The state to use as the underlying task's . + A task that will receive the last element or the exception produced by the observable sequence. + is null. + + + + Returns a task that will receive the last value or the exception produced by the observable sequence. + + The type of the elements in the source sequence. + Observable sequence to convert to a task. + Cancellation token that can be used to cancel the task, causing unsubscription from the observable sequence. + The state to use as the underlying task's . + The scheduler used for overriding where the task completion signals will be issued. + A task that will receive the last element or the exception produced by the observable sequence. + or is null. + + + + Represents a value associated with time interval information. + The time interval can represent the time it took to produce the value, the interval relative to a previous value, the value's delivery time relative to a base, etc. + + The type of the value being annotated with time interval information. + + + + Constructs a time interval value. + + The value to be annotated with a time interval. + Time interval associated with the value. + + + + Gets the value. + + + + + Gets the interval. + + + + + Deconstructs the time interval value into a value and a time interval. + + The value. + Time interval associated with the value. + + + + Determines whether the current value has the same and as a specified value. + + An object to compare to the current value. + true if both values have the same and ; otherwise, false. + + + + Determines whether the two specified values have the same and . + + The first value to compare. + The second value to compare. + true if the first value has the same and as the second value; otherwise, false. + + + + Determines whether the two specified values don't have the same and . + + The first value to compare. + The second value to compare. + true if the first value has a different or as the second value; otherwise, false. + + + + Determines whether the specified System.Object is equal to the current . + + The System.Object to compare with the current . + true if the specified System.Object is equal to the current ; otherwise, false. + + + + Returns the hash code for the current value. + + A hash code for the current value. + + + + Returns a string representation of the current value. + + String representation of the current value. + + + + Represents value with a timestamp on it. + The timestamp typically represents the time the value was received, using an IScheduler's clock to obtain the current time. + + The type of the value being timestamped. + + + + Constructs a timestamped value. + + The value to be annotated with a timestamp. + Timestamp associated with the value. + + + + Gets the value. + + + + + Gets the timestamp. + + + + + Deconstructs the timestamped value into a value and a timestamp. + + The value. + Timestamp associated with the value. + + + + Determines whether the current value has the same and as a specified value. + + An object to compare to the current value. + true if both values have the same and ; otherwise, false. + + + + Determines whether the two specified values have the same and . + + The first value to compare. + The second value to compare. + true if the first value has the same and as the second value; otherwise, false. + + + + Determines whether the two specified values don't have the same and . + + The first value to compare. + The second value to compare. + true if the first value has a different or as the second value; otherwise, false. + + + + Determines whether the specified System.Object is equal to the current . + + The System.Object to compare with the current . + true if the specified System.Object is equal to the current ; otherwise, false. + + + + Returns the hash code for the current value. + + A hash code for the current value. + + + + Returns a string representation of the current value. + + String representation of the current value. + + + + A helper class with a factory method for creating instances. + + + + + Creates an instance of a . This is syntactic sugar that uses type inference + to avoid specifying a type in a constructor call, which is very useful when using anonymous types. + + The value to be annotated with a timestamp. + Timestamp associated with the value. + Creates a new timestamped value. + + + + Represents a type with a single value. This type is often used to denote the successful completion of a void-returning method (C#) or a Sub procedure (Visual Basic). + + + + + Determines whether the specified value is equal to the current . Because has a single value, this always returns true. + + An object to compare to the current value. + Because has a single value, this always returns true. + + + + Determines whether the specified System.Object is equal to the current . + + The System.Object to compare with the current . + true if the specified System.Object is a value; otherwise, false. + + + + Returns the hash code for the current value. + + A hash code for the current value. + + + + Returns a string representation of the current value. + + String representation of the current value. + + + + Determines whether the two specified values are equal. Because has a single value, this always returns true. + + The first value to compare. + The second value to compare. + Because has a single value, this always returns true. + + + + Determines whether the two specified values are not equal. Because has a single value, this always returns false. + + The first value to compare. + The second value to compare. + Because has a single value, this always returns false. + + + + Gets the single value. + + + + + Provides conversions from Windows Runtime asynchronous actions and operations to observable sequences. + + + + + Converts a Windows Runtime asynchronous action to an observable sequence. + Each observer subscribed to the resulting observable sequence will be notified about the action's successful or exceptional completion. + + Asynchronous action to convert. + An observable sequence that produces a unit value when the asynchronous action completes, or propagates the exception produced by the asynchronous action. + is null. + + + + Converts a Windows Runtime asynchronous action to an observable sequence, ignoring its progress notifications. + Each observer subscribed to the resulting observable sequence will be notified about the action's successful or exceptional completion. + + The type of the reported progress objects, which get ignored by this conversion. + Asynchronous action to convert. + An observable sequence that produces a unit value when the asynchronous action completes, or propagates the exception produced by the asynchronous action. + is null. + + + + Converts a Windows Runtime asynchronous action to an observable sequence, reporting its progress through the supplied progress object. + Each observer subscribed to the resulting observable sequence will be notified about the action's successful or exceptional completion. + + The type of the reported progress objects. + Asynchronous action to convert. + Progress object to receive progress notifications on. + An observable sequence that produces a unit value when the asynchronous action completes, or propagates the exception produced by the asynchronous action. + or is null. + + + + Converts a Windows Runtime asynchronous action to an observable sequence reporting its progress. + Each observer subscribed to the resulting observable sequence will be notified about the action's successful or exceptional completion. + + The type of the reported progress objects. + Asynchronous action to convert. + An observable sequence that produces progress values from the asynchronous action and notifies observers about the action's completion. + is null. + + + + Converts a Windows Runtime asynchronous operation to an observable sequence reporting its result. + Each observer subscribed to the resulting observable sequence will be notified about the operation's single result and its successful exceptional completion. + + The type of the asynchronous operation's result. + Asynchronous operation to convert. + An observable sequence that notifies observers about the asynchronous operation's result value and completion. + is null. + + + + Converts a Windows Runtime asynchronous operation to an observable sequence reporting its result but ignoring its progress notifications. + Each observer subscribed to the resulting observable sequence will be notified about the operations's single result and its successful or exceptional completion. + + The type of the asynchronous operation's result. + The type of the reported progress objects, which get ignored by this conversion. + Asynchronous action to convert. + An observable sequence that notifies observers about the asynchronous operation's result value and completion. + is null. + + + + Converts a Windows Runtime asynchronous operation to an observable sequence reporting its result and reporting its progress through the supplied progress object. + Each observer subscribed to the resulting observable sequence will be notified about the operations's single result and its successful or exceptional completion. + + The type of the asynchronous operation's result. + The type of the reported progress objects. + Asynchronous action to convert. + Progress object to receive progress notifications on. + An observable sequence that notifies observers about the asynchronous operation's result value and completion. + or is null. + + + + Converts a Windows Runtime asynchronous operation to an observable sequence reporting its progress but ignoring its result value. + Each observer subscribed to the resulting observable sequence will be notified about the action's successful or exceptional completion. + + The type of the asynchronous operation's result, which gets ignored by this conversion. + The type of the reported progress objects. + Asynchronous action to convert. + An observable sequence that produces progress values from the asynchronous operation and notifies observers about the operations's completion. + is null. + + + + Converts a Windows Runtime asynchronous operation to an observable sequence by retrieving the operation's results whenever progress is reported and when the operation completes. + Each observer subscribed to the resulting observable sequence will be notified about the action's successful or exceptional completion. + + The type of the asynchronous operation's result. + The type of the reported progress objects, which are used internally in the conversion but aren't exposed. + Asynchronous operation to convert. + An observable sequence that notifies observers about the asynchronous operation's (incremental) result value(s) and completion. + This conversion can be used with Windows Runtime APIs that support incremental retrieval of results during an asynchronous operation's execution. + is null. + + + + Converts a Windows Runtime asynchronous operation to an observable sequence by retrieving the operation's results whenever progress is reported and when the operation completes. The operation's progress is reported through the supplied progress object. + Each observer subscribed to the resulting observable sequence will be notified about the action's successful or exceptional completion. + + The type of the asynchronous operation's result. + The type of the reported progress objects. + Asynchronous operation to convert. + Progress object to receive progress notifications on. + An observable sequence that notifies observers about the asynchronous operation's (incremental) result value(s) and completion. + This conversion can be used with Windows Runtime APIs that support incremental retrieval of results during an asynchronous operation's execution. + or is null. + + + + Represents a data stream signaling its elements by means of an event. + + Sender type. + Event arguments type. + + + + Event signaling the next element in the data stream. + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to The current thread has no Dispatcher associated with it.. + + + + + Looks up a localized string similar to No current Window object found to obtain a CoreDispatcher from.. + + + + + Provides a set of static methods for subscribing delegates to observables. + + + + + Subscribes to the observable sequence without specifying any handlers. + This method can be used to evaluate the observable sequence for its side-effects only. + + The type of the elements in the source sequence. + Observable sequence to subscribe to. + object used to unsubscribe from the observable sequence. + is null. + + + + Subscribes an element handler to an observable sequence. + + The type of the elements in the source sequence. + Observable sequence to subscribe to. + Action to invoke for each element in the observable sequence. + object used to unsubscribe from the observable sequence. + or is null. + + + + Subscribes an element handler and an exception handler to an observable sequence. + + The type of the elements in the source sequence. + Observable sequence to subscribe to. + Action to invoke for each element in the observable sequence. + Action to invoke upon exceptional termination of the observable sequence. + object used to unsubscribe from the observable sequence. + or or is null. + + + + Subscribes an element handler and a completion handler to an observable sequence. + + The type of the elements in the source sequence. + Observable sequence to subscribe to. + Action to invoke for each element in the observable sequence. + Action to invoke upon graceful termination of the observable sequence. + object used to unsubscribe from the observable sequence. + or or is null. + + + + Subscribes an element handler, an exception handler, and a completion handler to an observable sequence. + + The type of the elements in the source sequence. + Observable sequence to subscribe to. + Action to invoke for each element in the observable sequence. + Action to invoke upon exceptional termination of the observable sequence. + Action to invoke upon graceful termination of the observable sequence. + object used to unsubscribe from the observable sequence. + or or or is null. + + + + Subscribes an observer to an observable sequence, using a to support unsubscription. + + The type of the elements in the source sequence. + Observable sequence to subscribe to. + Observer to subscribe to the sequence. + CancellationToken that can be signaled to unsubscribe from the source sequence. + or is null. + + + + Subscribes to the observable sequence without specifying any handlers, using a to support unsubscription. + This method can be used to evaluate the observable sequence for its side-effects only. + + The type of the elements in the source sequence. + Observable sequence to subscribe to. + CancellationToken that can be signaled to unsubscribe from the source sequence. + is null. + + + + Subscribes an element handler to an observable sequence, using a to support unsubscription. + + The type of the elements in the source sequence. + Observable sequence to subscribe to. + Action to invoke for each element in the observable sequence. + CancellationToken that can be signaled to unsubscribe from the source sequence. + or is null. + + + + Subscribes an element handler and an exception handler to an observable sequence, using a to support unsubscription. + + The type of the elements in the source sequence. + Observable sequence to subscribe to. + Action to invoke for each element in the observable sequence. + Action to invoke upon exceptional termination of the observable sequence. + CancellationToken that can be signaled to unsubscribe from the source sequence. + or or is null. + + + + Subscribes an element handler and a completion handler to an observable sequence, using a to support unsubscription. + + The type of the elements in the source sequence. + Observable sequence to subscribe to. + Action to invoke for each element in the observable sequence. + Action to invoke upon graceful termination of the observable sequence. + CancellationToken that can be signaled to unsubscribe from the source sequence. + or or is null. + + + + Subscribes an element handler, an exception handler, and a completion handler to an observable sequence, using a to support unsubscription. + + The type of the elements in the source sequence. + Observable sequence to subscribe to. + Action to invoke for each element in the observable sequence. + Action to invoke upon exceptional termination of the observable sequence. + Action to invoke upon graceful termination of the observable sequence. + CancellationToken that can be signaled to unsubscribe from the source sequence. + or or or is null. + + + + Subscribes to the specified source, re-routing synchronous exceptions during invocation of the method to the observer's channel. + This method is typically used when writing query operators. + + The type of the elements in the source sequence. + Observable sequence to subscribe to. + Observer that will be passed to the observable sequence, and that will be used for exception propagation. + object used to unsubscribe from the observable sequence. + or is null. + + + + Represents a builder for asynchronous methods that return a task-like . + + The type of the elements in the sequence. + + + + The compiler-generated asynchronous state machine representing the execution flow of the asynchronous + method whose return type is a task-like . + + + + + The underlying observable sequence representing the result produced by the asynchronous method. + + + + + Creates an instance of the struct. + + A new instance of the struct. + + + + Begins running the builder with the associated state machine. + + The type of the state machine. + The state machine instance, passed by reference. + is null. + + + + Associates the builder with the specified state machine. + + The state machine instance to associate with the builder. + is null. + The state machine was previously set. + + + + Marks the observable as successfully completed. + + The result to use to complete the observable sequence. + The observable has already completed. + + + + Marks the observable as failed and binds the specified exception to the observable sequence. + + The exception to bind to the observable sequence. + is null. + The observable has already completed. + + + + Gets the observable sequence for this builder. + + + + + Schedules the state machine to proceed to the next action when the specified awaiter completes. + + The type of the awaiter. + The type of the state machine. + The awaiter. + The state machine. + + + + Schedules the state machine to proceed to the next action when the specified awaiter completes. + + The type of the awaiter. + The type of the state machine. + The awaiter. + The state machine. + + + + Rethrows an exception that was thrown from an awaiter's OnCompleted methods. + + The exception to rethrow. + + + + Implementation of the IObservable<T> interface compatible with async method return types. + + + This class implements a "task-like" type that can be used as the return type of an asynchronous + method in C# 7.0 and beyond. For example: + + async Observable<int> RxAsync() + { + var res = await Observable.Return(21).Delay(TimeSpan.FromSeconds(1)); + return res * 2; + } + + + + + + The underlying observable sequence to subscribe to in case the asynchronous method did not + finish synchronously. + + + + + The result returned by the asynchronous method in case the method finished synchronously. + + + + + The exception thrown by the asynchronous method in case the method finished synchronously. + + + + + Creates a new for an asynchronous method that has not finished yet. + + + + + Creates a new for an asynchronous method that synchronously returned + the specified value. + + The result returned by the asynchronous method. + + + + Creates a new for an asynchronous method that synchronously threw + the specified . + + The exception thrown by the asynchronous method. + + + + Marks the observable as successfully completed. + + The result to use to complete the observable sequence. + The observable has already completed. + + + + Marks the observable as failed and binds the specified exception to the observable sequence. + + The exception to bind to the observable sequence. + is null. + The observable has already completed. + + + + Subscribes the given observer to the observable sequence. + + Observer that will receive notifications from the observable sequence. + Disposable object representing an observer's subscription to the observable sequence. + is null. + + + + Gets an awaiter that can be used to await the eventual completion of the observable sequence. + + An awaiter that can be used to await the eventual completion of the observable sequence. + + + + Gets a Boolean indicating whether the observable sequence has completed. + + + + + Gets the result produced by the observable sequence. + + The result produced by the observable sequence. + + + + Attaches the specified to the observable sequence. + + The continuation to attach. + + + diff --git a/Game/Assets/Supabase/System.Reactive.5.0.0/lib/net5.0-windows10.0.19041/System.Reactive.xml.meta b/Game/Assets/Supabase/System.Reactive.5.0.0/lib/net5.0-windows10.0.19041/System.Reactive.xml.meta new file mode 100644 index 0000000..31ad2fb --- /dev/null +++ b/Game/Assets/Supabase/System.Reactive.5.0.0/lib/net5.0-windows10.0.19041/System.Reactive.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: a749f607faca81f4ca84622c26da7e38 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Reactive.5.0.0/lib/net5.0.meta b/Game/Assets/Supabase/System.Reactive.5.0.0/lib/net5.0.meta new file mode 100644 index 0000000..047ebba --- /dev/null +++ b/Game/Assets/Supabase/System.Reactive.5.0.0/lib/net5.0.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 880e966f351683c4d8c8e0b09caa0194 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Reactive.5.0.0/lib/net5.0/System.Reactive.dll b/Game/Assets/Supabase/System.Reactive.5.0.0/lib/net5.0/System.Reactive.dll new file mode 100644 index 0000000..3990125 --- /dev/null +++ b/Game/Assets/Supabase/System.Reactive.5.0.0/lib/net5.0/System.Reactive.dll @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2b6c31dfb1fc6019a42a007ed0e5e00574de6ea0c47fed0ca282bf3bb2771b0c +size 1455056 diff --git a/Game/Assets/Supabase/System.Reactive.5.0.0/lib/net5.0/System.Reactive.dll.meta b/Game/Assets/Supabase/System.Reactive.5.0.0/lib/net5.0/System.Reactive.dll.meta new file mode 100644 index 0000000..4d5aa0f --- /dev/null +++ b/Game/Assets/Supabase/System.Reactive.5.0.0/lib/net5.0/System.Reactive.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: 3cc9e0bf67bfee54ea23627f7a2fa5e7 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Reactive.5.0.0/lib/net5.0/System.Reactive.xml b/Game/Assets/Supabase/System.Reactive.5.0.0/lib/net5.0/System.Reactive.xml new file mode 100644 index 0000000..6c4b2ff --- /dev/null +++ b/Game/Assets/Supabase/System.Reactive.5.0.0/lib/net5.0/System.Reactive.xml @@ -0,0 +1,27719 @@ + + + + System.Reactive + + + + + Class to create an instance from a delegate-based implementation of the method. + + The type of the elements in the sequence. + + + + Creates an observable sequence object from the specified subscription function. + + method implementation. + is null. + + + + Calls the subscription function that was supplied to the constructor. + + Observer to send notifications to. + Disposable object representing an observer's subscription to the observable sequence. + + + + Class to create an instance from delegate-based implementations of the On* methods. + + The type of the elements in the sequence. + + + + Creates an observer from the specified , , and actions. + + Observer's action implementation. + Observer's action implementation. + Observer's action implementation. + or or is null. + + + + Creates an observer from the specified action. + + Observer's action implementation. + is null. + + + + Creates an observer from the specified and actions. + + Observer's action implementation. + Observer's action implementation. + or is null. + + + + Creates an observer from the specified and actions. + + Observer's action implementation. + Observer's action implementation. + or is null. + + + + Calls the action implementing . + + Next element in the sequence. + + + + Calls the action implementing . + + The error that has occurred. + + + + Calls the action implementing . + + + + + This class fuses logic from ObserverBase, AnonymousObserver, and SafeObserver into one class. When an observer + needs to be safeguarded, an instance of this type can be created by SafeObserver.Create when it detects its + input is an AnonymousObserver, which is commonly used by end users when using the Subscribe extension methods + that accept delegates for the On* handlers. By doing the fusion, we make the call stack depth shorter which + helps debugging and some performance. + + + + + Asynchronous lock. + + + + + Queues the action for execution. If the caller acquires the lock and becomes the owner, + the queue is processed. If the lock is already owned, the action is queued and will get + processed by the owner. + + Action to queue for execution. + is null. + + + + Queues the action for execution. If the caller acquires the lock and becomes the owner, + the queue is processed. If the lock is already owned, the action is queued and will get + processed by the owner. + + Action to queue for execution. + The state to pass to the action when it gets invoked under the lock. + is null. + In case TState is a value type, this operation will involve boxing of . + However, this is often an improvement over the allocation of a closure object and a delegate. + + + + Clears the work items in the queue and drops further work being queued. + + + + + (Infrastructure) Concurrency abstraction layer. + + + + + Gets the current CAL. If no CAL has been set yet, it will be initialized to the default. + + + + + (Infrastructure) Concurrency abstraction layer interface. + + + This type is used by the Rx infrastructure and not meant for public consumption or implementation. + No guarantees are made about forward compatibility of the type's functionality and its usage. + + + + + Queues a method for execution at the specified relative time. + + Method to execute. + State to pass to the method. + Time to execute the method on. + Disposable object that can be used to stop the timer. + + + + Queues a method for periodic execution based on the specified period. + + Method to execute; should be safe for reentrancy. + Period for running the method periodically. + Disposable object that can be used to stop the timer. + + + + Queues a method for execution. + + Method to execute. + State to pass to the method. + Disposable object that can be used to cancel the queued method. + + + + Blocking sleep operation. + + Time to sleep. + + + + Starts a new stopwatch object. + + New stopwatch object; started at the time of the request. + + + + Gets whether long-running scheduling is supported. + + + + + Starts a new long-running thread. + + Method to execute. + State to pass to the method. + + + + Represents an object that schedules units of work on the current thread. + + Singleton instance of this type exposed through this static property. + + + + Gets the singleton instance of the current thread scheduler. + + + + + Gets a value that indicates whether the caller must call a Schedule method. + + + + + Gets a value that indicates whether the caller must call a Schedule method. + + + + + Schedules an action to be executed after dueTime. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + Relative time after which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Represents an object that schedules units of work on the platform's default scheduler. + + Singleton instance of this type exposed through this static property. + + + + Gets the singleton instance of the default scheduler. + + + + + Schedules an action to be executed. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Schedules an action to be executed after dueTime, using a System.Threading.Timer object. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + Relative time after which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Schedules a periodic piece of work, using a System.Threading.Timer object. + + The type of the state passed to the scheduled action. + Initial state passed to the action upon the first iteration. + Period for running the work periodically. + Action to be executed, potentially updating the state. + The disposable object used to cancel the scheduled recurring action (best effort). + is less than . + is null. + + + + Discovers scheduler services by interface type. + + Scheduler service interface type to discover. + Object implementing the requested service, if available; null otherwise. + + + + Represents an object that schedules units of work on a designated thread. + + + + + Counter for diagnostic purposes, to name the threads. + + + + + Thread factory function. + + + + + Stopwatch for timing free of absolute time dependencies. + + + + + Thread used by the event loop to run work items on. No work should be run on any other thread. + If ExitIfEmpty is set, the thread can quit and a new thread will be created when new work is scheduled. + + + + + Gate to protect data structures, including the work queue and the ready list. + + + + + Semaphore to count requests to re-evaluate the queue, from either Schedule requests or when a timer + expires and moves on to the next item in the queue. + + + + + Queue holding work items. Protected by the gate. + + + + + Queue holding items that are ready to be run as soon as possible. Protected by the gate. + + + + + Work item that will be scheduled next. Used upon reevaluation of the queue to check whether the next + item is still the same. If not, a new timer needs to be started (see below). + + + + + Disposable that always holds the timer to dispatch the first element in the queue. + + + + + Flag indicating whether the event loop should quit. When set, the event should be signaled as well to + wake up the event loop thread, which will subsequently abandon all work. + + + + + Creates an object that schedules units of work on a designated thread. + + + + + Creates an object that schedules units of work on a designated thread, using the specified factory to control thread creation options. + + Factory function for thread creation. + is null. + + + + Indicates whether the event loop thread is allowed to quit when no work is left. If new work + is scheduled afterwards, a new event loop thread is created. This property is used by the + NewThreadScheduler which uses an event loop for its recursive invocations. + + + + + Schedules an action to be executed after dueTime. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + Relative time after which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + is null. + The scheduler has been disposed and doesn't accept new work. + + + + Schedules a periodic piece of work on the designated thread. + + The type of the state passed to the scheduled action. + Initial state passed to the action upon the first iteration. + Period for running the work periodically. + Action to be executed, potentially updating the state. + The disposable object used to cancel the scheduled recurring action (best effort). + is null. + is less than . + The scheduler has been disposed and doesn't accept new work. + + + + Starts a new stopwatch object. + + New stopwatch object; started at the time of the request. + + + + Ends the thread associated with this scheduler. All remaining work in the scheduler queue is abandoned. + + + + + Ensures there is an event loop thread running. Should be called under the gate. + + + + + Event loop scheduled on the designated event loop thread. The loop is suspended/resumed using the event + which gets set by calls to Schedule, the next item timer, or calls to Dispose. + + + + + Base class for historical schedulers, which are virtual time schedulers that use for absolute time and for relative time. + + + + + Creates a new historical scheduler with the minimum value of as the initial clock value. + + + + + Creates a new historical scheduler with the specified initial clock value. + + Initial clock value. + + + + Creates a new historical scheduler with the specified initial clock value and absolute time comparer. + + Initial value for the clock. + Comparer to determine causality of events based on absolute time. + + + + Adds a relative time value to an absolute time value. + + Absolute time value. + Relative time value to add. + The resulting absolute time sum value. + + + + Converts the absolute time value to a value. + + Absolute time value to convert. + The corresponding value. + + + + Converts the value to a relative time value. + + value to convert. + The corresponding relative time value. + + + + Provides a virtual time scheduler that uses for absolute time and for relative time. + + + + + Creates a new historical scheduler with the minimum value of as the initial clock value. + + + + + Creates a new historical scheduler with the specified initial clock value. + + Initial value for the clock. + + + + Creates a new historical scheduler with the specified initial clock value. + + Initial value for the clock. + Comparer to determine causality of events based on absolute time. + is null. + + + + Gets the next scheduled item to be executed. + + The next scheduled item. + + + + Schedules an action to be executed at . + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + Absolute time at which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Represents an object that schedules units of work to run immediately on the current thread. + + Singleton instance of this type exposed through this static property. + + + + Gets the singleton instance of the immediate scheduler. + + + + + Schedules an action to be executed. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Schedules an action to be executed after dueTime. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + Relative time after which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Represents a work item that has been scheduled. + + Absolute time representation type. + + + + Gets the absolute time at which the item is due for invocation. + + + + + Invokes the work item. + + + + + Represents an object that schedules units of work. + + + + + Gets the scheduler's notion of current time. + + + + + Schedules an action to be executed. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + + + + Schedules an action to be executed after dueTime. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + Relative time after which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + + + + Schedules an action to be executed at dueTime. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + Absolute time at which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + + + + Scheduler with support for starting long-running tasks. + This type of scheduler can be used to run loops more efficiently instead of using recursive scheduling. + + + + + Schedules a long-running piece of work. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + + Notes to implementers + The returned disposable object should not prevent the work from starting, but only set the cancellation flag passed to the specified action. + + + + + Scheduler with support for running periodic tasks. + This type of scheduler can be used to run timers more efficiently instead of using recursive scheduling. + + + + + Schedules a periodic piece of work. + + The type of the state passed to the scheduled action. + Initial state passed to the action upon the first iteration. + Period for running the work periodically. + Action to be executed, potentially updating the state. + The disposable object used to cancel the scheduled recurring action (best effort). + + + + Abstraction for a stopwatch to compute time relative to a starting point. + + + + + Gets the time elapsed since the stopwatch object was obtained. + + + + + Provider for objects. + + + + + Starts a new stopwatch object. + + New stopwatch object; started at the time of the request. + + + + Abstract base class for machine-local schedulers, using the local system clock for time-based operations. + + + + + Gets the scheduler's notion of current time. + + + + + Schedules an action to be executed. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Schedules an action to be executed after dueTime. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + Relative time after which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + + + + Schedules an action to be executed at dueTime. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + Absolute time at which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Starts a new stopwatch object. + + New stopwatch object; started at the time of the request. + + Platform-specific scheduler implementations should reimplement + to provide a more efficient implementation (if available). + + + + + Discovers scheduler services by interface type. The base class implementation returns + requested services for each scheduler interface implemented by the derived class. For + more control over service discovery, derived types can override this method. + + Scheduler service interface type to discover. + Object implementing the requested service, if available; null otherwise. + + + + Gate to protect local scheduler queues. + + + + + Gate to protect queues and to synchronize scheduling decisions and system clock + change management. + + + + + Long term work queue. Contains work that's due beyond SHORTTERM, computed at the + time of enqueueing. + + + + + Disposable resource for the long term timer that will reevaluate and dispatch the + first item in the long term queue. A serial disposable is used to make "dispose + current and assign new" logic easier. The disposable itself is never disposed. + + + + + Item at the head of the long term queue for which the current long term timer is + running. Used to detect changes in the queue and decide whether we should replace + or can continue using the current timer (because no earlier long term work was + added to the queue). + + + + + Short term work queue. Contains work that's due soon, computed at the time of + enqueueing or upon reevaluation of the long term queue causing migration of work + items. This queue is kept in order to be able to relocate short term items back + to the long term queue in case a system clock change occurs. + + + + + Set of disposable handles to all of the current short term work Schedule calls, + allowing those to be cancelled upon a system clock change. + + + + + Threshold where an item is considered to be short term work or gets moved from + long term to short term. + + + + + Maximum error ratio for timer drift. We've seen machines with 10s drift on a + daily basis, which is in the order 10E-4, so we allow for extra margin here. + This value is used to calculate early arrival for the long term queue timer + that will reevaluate work for the short term queue. + + Example: -------------------------------...---------------------*-----$ + ^ ^ + | | + early due + 0.999 1.0 + + We also make the gap between early and due at least LONGTOSHORT so we have + enough time to transition work to short term and as a courtesy to the + destination scheduler to manage its queues etc. + + + + + Minimum threshold for the long term timer to fire before the queue is reevaluated + for short term work. This value is chosen to be less than SHORTTERM in order to + ensure the timer fires and has work to transition to the short term queue. + + + + + Threshold used to determine when a short term timer has fired too early compared + to the absolute due time. This provides a last chance protection against early + completion of scheduled work, which can happen in case of time adjustment in the + operating system (cf. GetSystemTimeAdjustment). + + + + + Longest interval supported by timers in the BCL. + + + + + Creates a new local scheduler. + + + + + Enqueues absolute time scheduled work in the timer queue or the short term work list. + + State to pass to the action. + Absolute time to run the work on. The timer queue is responsible to execute the work close to the specified time, also accounting for system clock changes. + Action to run, potentially recursing into the scheduler. + Disposable object to prevent the work from running. + + + + Schedule work that's due in the short term. This leads to relative scheduling calls to the + underlying scheduler for short TimeSpan values. If the system clock changes in the meantime, + the short term work is attempted to be cancelled and reevaluated. + + Work item to schedule in the short term. The caller is responsible to determine the work is indeed short term. + + + + Callback to process the next short term work item. + + Recursive scheduler supplied by the underlying scheduler. + Disposable used to identify the work the timer was triggered for (see code for usage). + Empty disposable. Recursive work cancellation is wired through the original WorkItem. + + + + Schedule work that's due on the long term. This leads to the work being queued up for + eventual transitioning to the short term work list. + + Work item to schedule on the long term. The caller is responsible to determine the work is indeed long term. + + + + Updates the long term timer which is responsible to transition work from the head of the + long term queue to the short term work list. + + Should be called under the scheduler lock. + + + + Evaluates the long term queue, transitioning short term work to the short term list, + and adjusting the new long term processing timer accordingly. + + + + + Callback invoked when a system clock change is observed in order to adjust and reevaluate + the internal scheduling queues. + + Currently not used. + Currently not used. + + + + Represents a work item in the absolute time scheduler. + + + This type is very similar to ScheduledItem, but we need a different Invoke signature to allow customization + of the target scheduler (e.g. when called in a recursive scheduling context, see ExecuteNextShortTermWorkItem). + + + + + Represents a work item that closes over scheduler invocation state. Subtyping is + used to have a common type for the scheduler queues. + + + + + Represents an object that schedules each unit of work on a separate thread. + + + + + Creates an object that schedules each unit of work on a separate thread. + + + + + Gets an instance of this scheduler that uses the default Thread constructor. + + + + + Creates an object that schedules each unit of work on a separate thread. + + Factory function for thread creation. + is null. + + + + Schedules an action to be executed after dueTime. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + Relative time after which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Schedules a long-running task by creating a new thread. Cancellation happens through polling. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Schedules a periodic piece of work by creating a new thread that goes to sleep when work has been dispatched and wakes up again at the next periodic due time. + + The type of the state passed to the scheduled action. + Initial state passed to the action upon the first iteration. + Period for running the work periodically. + Action to be executed, potentially updating the state. + The disposable object used to cancel the scheduled recurring action (best effort). + is null. + is less than . + + + + Starts a new stopwatch object. + + New stopwatch object; started at the time of the request. + + + + Abstract base class for scheduled work items. + + Absolute time representation type. + + + + Creates a new scheduled work item to run at the specified time. + + Absolute time at which the work item has to be executed. + Comparer used to compare work items based on their scheduled time. + is null. + + + + Gets the absolute time at which the item is due for invocation. + + + + + Invokes the work item. + + + + + Implement this method to perform the work item invocation, returning a disposable object for deep cancellation. + + Disposable object used to cancel the work item and/or derived work items. + + + + Compares the work item with another work item based on absolute time values. + + Work item to compare the current work item to. + Relative ordering between this and the specified work item. + The inequality operators are overloaded to provide results consistent with the implementation. Equality operators implement traditional reference equality semantics. + + + + Determines whether one specified object is due before a second specified object. + + The first object to compare. + The second object to compare. + true if the value of left is earlier than the value of right; otherwise, false. + This operator provides results consistent with the implementation. + + + + Determines whether one specified object is due before or at the same of a second specified object. + + The first object to compare. + The second object to compare. + true if the value of left is earlier than or simultaneous with the value of right; otherwise, false. + This operator provides results consistent with the implementation. + + + + Determines whether one specified object is due after a second specified object. + + The first object to compare. + The second object to compare. + true if the value of left is later than the value of right; otherwise, false. + This operator provides results consistent with the implementation. + + + + Determines whether one specified object is due after or at the same time of a second specified object. + + The first object to compare. + The second object to compare. + true if the value of left is later than or simultaneous with the value of right; otherwise, false. + This operator provides results consistent with the implementation. + + + + Determines whether two specified objects are equal. + + The first object to compare. + The second object to compare. + true if both are equal; otherwise, false. + This operator does not provide results consistent with the IComparable implementation. Instead, it implements reference equality. + + + + Determines whether two specified objects are inequal. + + The first object to compare. + The second object to compare. + true if both are inequal; otherwise, false. + This operator does not provide results consistent with the IComparable implementation. Instead, it implements reference equality. + + + + Determines whether a object is equal to the specified object. + + The object to compare to the current object. + true if the obj parameter is a object and is equal to the current object; otherwise, false. + + + + Returns the hash code for the current object. + + A 32-bit signed integer hash code. + + + + Cancels the work item by disposing the resource returned by as soon as possible. + + + + + Gets whether the work item has received a cancellation request. + + + + + Represents a scheduled work item based on the materialization of an IScheduler.Schedule method call. + + Absolute time representation type. + Type of the state passed to the scheduled action. + + + + Creates a materialized work item. + + Recursive scheduler to invoke the scheduled action with. + State to pass to the scheduled action. + Scheduled action. + Time at which to run the scheduled action. + Comparer used to compare work items based on their scheduled time. + or or is null. + + + + Creates a materialized work item. + + Recursive scheduler to invoke the scheduled action with. + State to pass to the scheduled action. + Scheduled action. + Time at which to run the scheduled action. + or is null. + + + + Invokes the scheduled action with the supplied recursive scheduler and state. + + Cancellation resource returned by the scheduled action. + + + + Provides a set of static properties to access commonly used schedulers. + + + + + Yields execution of the current work item on the scheduler to another work item on the scheduler. + The caller should await the result of calling Yield to schedule the remainder of the current work item (known as the continuation). + + Scheduler to yield work on. + Scheduler operation object to await in order to schedule the continuation. + is null. + + + + Yields execution of the current work item on the scheduler to another work item on the scheduler. + The caller should await the result of calling Yield to schedule the remainder of the current work item (known as the continuation). + + Scheduler to yield work on. + Cancellation token to cancel the continuation to run. + Scheduler operation object to await in order to schedule the continuation. + is null. + + + + Suspends execution of the current work item on the scheduler for the specified duration. + The caller should await the result of calling Sleep to schedule the remainder of the current work item (known as the continuation) after the specified duration. + + Scheduler to yield work on. + Time when the continuation should run. + Scheduler operation object to await in order to schedule the continuation. + is null. + + + + Suspends execution of the current work item on the scheduler for the specified duration. + The caller should await the result of calling Sleep to schedule the remainder of the current work item (known as the continuation) after the specified duration. + + Scheduler to yield work on. + Time when the continuation should run. + Cancellation token to cancel the continuation to run. + Scheduler operation object to await in order to schedule the continuation. + is null. + + + + Suspends execution of the current work item on the scheduler until the specified due time. + The caller should await the result of calling Sleep to schedule the remainder of the current work item (known as the continuation) at the specified due time. + + Scheduler to yield work on. + Time when the continuation should run. + Scheduler operation object to await in order to schedule the continuation. + is null. + + + + Suspends execution of the current work item on the scheduler until the specified due time. + The caller should await the result of calling Sleep to schedule the remainder of the current work item (known as the continuation) at the specified due time. + + Scheduler to yield work on. + Time when the continuation should run. + Cancellation token to cancel the continuation to run. + Scheduler operation object to await in order to schedule the continuation. + is null. + + + + Schedules work using an asynchronous method, allowing for cooperative scheduling in an imperative coding style. + + The type of the state passed to the scheduled action. + Scheduler to schedule work on. + State to pass to the asynchronous method. + Asynchronous method to run the work, using Yield and Sleep operations for cooperative scheduling and injection of cancellation points. + Disposable object that allows to cancel outstanding work on cooperative cancellation points or through the cancellation token passed to the asynchronous method. + or is null. + + + + Schedules work using an asynchronous method, allowing for cooperative scheduling in an imperative coding style. + + The type of the state passed to the scheduled action. + Scheduler to schedule work on. + State to pass to the asynchronous method. + Asynchronous method to run the work, using Yield and Sleep operations for cooperative scheduling and injection of cancellation points. + Disposable object that allows to cancel outstanding work on cooperative cancellation points or through the cancellation token passed to the asynchronous method. + or is null. + + + + Schedules work using an asynchronous method, allowing for cooperative scheduling in an imperative coding style. + + Scheduler to schedule work on. + Asynchronous method to run the work, using Yield and Sleep operations for cooperative scheduling and injection of cancellation points. + Disposable object that allows to cancel outstanding work on cooperative cancellation points or through the cancellation token passed to the asynchronous method. + or is null. + + + + Schedules work using an asynchronous method, allowing for cooperative scheduling in an imperative coding style. + + Scheduler to schedule work on. + Asynchronous method to run the work, using Yield and Sleep operations for cooperative scheduling and injection of cancellation points. + Disposable object that allows to cancel outstanding work on cooperative cancellation points or through the cancellation token passed to the asynchronous method. + or is null. + + + + Schedules work using an asynchronous method, allowing for cooperative scheduling in an imperative coding style. + + The type of the state passed to the scheduled action. + Scheduler to schedule work on. + State to pass to the asynchronous method. + Relative time after which to execute the action. + Asynchronous method to run the work, using Yield and Sleep operations for cooperative scheduling and injection of cancellation points. + Disposable object that allows to cancel outstanding work on cooperative cancellation points or through the cancellation token passed to the asynchronous method. + or is null. + + + + Schedules work using an asynchronous method, allowing for cooperative scheduling in an imperative coding style. + + The type of the state passed to the scheduled action. + Scheduler to schedule work on. + State to pass to the asynchronous method. + Relative time after which to execute the action. + Asynchronous method to run the work, using Yield and Sleep operations for cooperative scheduling and injection of cancellation points. + Disposable object that allows to cancel outstanding work on cooperative cancellation points or through the cancellation token passed to the asynchronous method. + or is null. + + + + Schedules work using an asynchronous method, allowing for cooperative scheduling in an imperative coding style. + + Scheduler to schedule work on. + Relative time after which to execute the action. + Asynchronous method to run the work, using Yield and Sleep operations for cooperative scheduling and injection of cancellation points. + Disposable object that allows to cancel outstanding work on cooperative cancellation points or through the cancellation token passed to the asynchronous method. + or is null. + + + + Schedules work using an asynchronous method, allowing for cooperative scheduling in an imperative coding style. + + Scheduler to schedule work on. + Relative time after which to execute the action. + Asynchronous method to run the work, using Yield and Sleep operations for cooperative scheduling and injection of cancellation points. + Disposable object that allows to cancel outstanding work on cooperative cancellation points or through the cancellation token passed to the asynchronous method. + or is null. + + + + Schedules work using an asynchronous method, allowing for cooperative scheduling in an imperative coding style. + + The type of the state passed to the scheduled action. + Scheduler to schedule work on. + State to pass to the asynchronous method. + Absolute time at which to execute the action. + Asynchronous method to run the work, using Yield and Sleep operations for cooperative scheduling and injection of cancellation points. + Disposable object that allows to cancel outstanding work on cooperative cancellation points or through the cancellation token passed to the asynchronous method. + or is null. + + + + Schedules work using an asynchronous method, allowing for cooperative scheduling in an imperative coding style. + + The type of the state passed to the scheduled action. + Scheduler to schedule work on. + State to pass to the asynchronous method. + Absolute time at which to execute the action. + Asynchronous method to run the work, using Yield and Sleep operations for cooperative scheduling and injection of cancellation points. + Disposable object that allows to cancel outstanding work on cooperative cancellation points or through the cancellation token passed to the asynchronous method. + or is null. + + + + Schedules work using an asynchronous method, allowing for cooperative scheduling in an imperative coding style. + + Scheduler to schedule work on. + Absolute time at which to execute the action. + Asynchronous method to run the work, using Yield and Sleep operations for cooperative scheduling and injection of cancellation points. + Disposable object that allows to cancel outstanding work on cooperative cancellation points or through the cancellation token passed to the asynchronous method. + or is null. + + + + Schedules work using an asynchronous method, allowing for cooperative scheduling in an imperative coding style. + + Scheduler to schedule work on. + Absolute time at which to execute the action. + Asynchronous method to run the work, using Yield and Sleep operations for cooperative scheduling and injection of cancellation points. + Disposable object that allows to cancel outstanding work on cooperative cancellation points or through the cancellation token passed to the asynchronous method. + or is null. + + + + Gets the current time according to the local machine's system clock. + + + + + Normalizes the specified value to a positive value. + + The value to normalize. + The specified TimeSpan value if it is zero or positive; otherwise, . + + + + Gets a scheduler that schedules work immediately on the current thread. + + + + + Gets a scheduler that schedules work as soon as possible on the current thread. + + + + + Gets a scheduler that schedules work on the platform's default scheduler. + + + + + Gets a scheduler that schedules work on the thread pool. + + + + + Gets a scheduler that schedules work on a new thread using default thread creation options. + + + + + Gets a scheduler that schedules work on Task Parallel Library (TPL) task pool using the default TaskScheduler. + + + + + Schedules an action to be executed recursively. + + Scheduler to execute the recursive action on. + Action to execute recursively. The parameter passed to the action is used to trigger recursive scheduling of the action. + The disposable object used to cancel the scheduled action (best effort). + or is null. + + + + Schedules an action to be executed recursively. + + The type of the state passed to the scheduled action. + Scheduler to execute the recursive action on. + State passed to the action to be executed. + Action to execute recursively. The last parameter passed to the action is used to trigger recursive scheduling of the action, passing in recursive invocation state. + The disposable object used to cancel the scheduled action (best effort). + or is null. + + + + Schedules an action to be executed recursively after a specified relative due time. + + Scheduler to execute the recursive action on. + Action to execute recursively. The parameter passed to the action is used to trigger recursive scheduling of the action at the specified relative time. + Relative time after which to execute the action for the first time. + The disposable object used to cancel the scheduled action (best effort). + or is null. + + + + Schedules an action to be executed recursively after a specified relative due time. + + The type of the state passed to the scheduled action. + Scheduler to execute the recursive action on. + State passed to the action to be executed. + Action to execute recursively. The last parameter passed to the action is used to trigger recursive scheduling of the action, passing in the recursive due time and invocation state. + Relative time after which to execute the action for the first time. + The disposable object used to cancel the scheduled action (best effort). + or is null. + + + + Schedules an action to be executed recursively at a specified absolute due time. + + Scheduler to execute the recursive action on. + Action to execute recursively. The parameter passed to the action is used to trigger recursive scheduling of the action at the specified absolute time. + Absolute time at which to execute the action for the first time. + The disposable object used to cancel the scheduled action (best effort). + or is null. + + + + Schedules an action to be executed recursively at a specified absolute due time. + + The type of the state passed to the scheduled action. + Scheduler to execute the recursive action on. + State passed to the action to be executed. + Action to execute recursively. The last parameter passed to the action is used to trigger recursive scheduling of the action, passing in the recursive due time and invocation state. + Absolute time at which to execute the action for the first time. + The disposable object used to cancel the scheduled action (best effort). + or is null. + + + + Returns the implementation of the specified scheduler, or null if no such implementation is available. + + Scheduler to get the implementation for. + The scheduler's implementation if available; null otherwise. + + This helper method is made available for query operator authors in order to discover scheduler services by using the required + IServiceProvider pattern, which allows for interception or redefinition of scheduler services. + + + + + Returns the implementation of the specified scheduler, or null if no such implementation is available. + + Scheduler to get the implementation for. + The scheduler's implementation if available; null otherwise. + + + This helper method is made available for query operator authors in order to discover scheduler services by using the required + IServiceProvider pattern, which allows for interception or redefinition of scheduler services. + + + Consider using in case a stopwatch is required, but use of emulation stopwatch based + on the scheduler's clock is acceptable. Use of this method is recommended for best-effort use of the stopwatch provider + scheduler service, where the caller falls back to not using stopwatches if this facility wasn't found. + + + + + + Returns the implementation of the specified scheduler, or null if no such implementation is available. + + Scheduler to get the implementation for. + The scheduler's implementation if available; null otherwise. + + + This helper method is made available for query operator authors in order to discover scheduler services by using the required + IServiceProvider pattern, which allows for interception or redefinition of scheduler services. + + + Consider using the extension methods for in case periodic scheduling + is required and emulation of periodic behavior using other scheduler services is desirable. Use of this method is recommended + for best-effort use of the periodic scheduling service, where the caller falls back to not using periodic scheduling if this + facility wasn't found. + + + + + + Schedules a periodic piece of work by dynamically discovering the scheduler's capabilities. + If the scheduler supports periodic scheduling, the request will be forwarded to the periodic scheduling implementation. + If the scheduler provides stopwatch functionality, the periodic task will be emulated using recursive scheduling with a stopwatch to correct for time slippage. + Otherwise, the periodic task will be emulated using recursive scheduling. + + The type of the state passed to the scheduled action. + The scheduler to run periodic work on. + Initial state passed to the action upon the first iteration. + Period for running the work periodically. + Action to be executed, potentially updating the state. + The disposable object used to cancel the scheduled recurring action (best effort). + or is null. + is less than . + + + + Schedules a periodic piece of work by dynamically discovering the scheduler's capabilities. + If the scheduler supports periodic scheduling, the request will be forwarded to the periodic scheduling implementation. + If the scheduler provides stopwatch functionality, the periodic task will be emulated using recursive scheduling with a stopwatch to correct for time slippage. + Otherwise, the periodic task will be emulated using recursive scheduling. + + The type of the state passed to the scheduled action. + Scheduler to execute the action on. + State passed to the action to be executed. + Period for running the work periodically. + Action to be executed. + The disposable object used to cancel the scheduled recurring action (best effort). + or is null. + is less than . + + + + Schedules a periodic piece of work by dynamically discovering the scheduler's capabilities. + If the scheduler supports periodic scheduling, the request will be forwarded to the periodic scheduling implementation. + If the scheduler provides stopwatch functionality, the periodic task will be emulated using recursive scheduling with a stopwatch to correct for time slippage. + Otherwise, the periodic task will be emulated using recursive scheduling. + + Scheduler to execute the action on. + Period for running the work periodically. + Action to be executed. + The disposable object used to cancel the scheduled recurring action (best effort). + or is null. + is less than . + + + + Starts a new stopwatch object by dynamically discovering the scheduler's capabilities. + If the scheduler provides stopwatch functionality, the request will be forwarded to the stopwatch provider implementation. + Otherwise, the stopwatch will be emulated using the scheduler's notion of absolute time. + + Scheduler to obtain a stopwatch for. + New stopwatch object; started at the time of the request. + is null. + The resulting stopwatch object can have non-monotonic behavior. + + + + Schedules an action to be executed. + + Scheduler to execute the action on. + Action to execute. + The disposable object used to cancel the scheduled action (best effort). + or is null. + + + + Schedules an action to be executed. + + Scheduler to execute the action on. + A state object to be passed to . + Action to execute. + The disposable object used to cancel the scheduled action (best effort). + or is null. + + + + Schedules an action to be executed. + + Scheduler to execute the action on. + A state object to be passed to . + Action to execute. + The disposable object used to cancel the scheduled action (best effort). + or is null. + + + + Schedules an action to be executed after the specified relative due time. + + Scheduler to execute the action on. + Action to execute. + Relative time after which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + or is null. + + + + Schedules an action to be executed after the specified relative due time. + + Scheduler to execute the action on. + Action to execute. + A state object to be passed to . + Relative time after which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + or is null. + + + + Schedules an action to be executed after the specified relative due time. + + Scheduler to execute the action on. + Action to execute. + A state object to be passed to . + Relative time after which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + or is null. + + + + Schedules an action to be executed at the specified absolute due time. + + Scheduler to execute the action on. + Action to execute. + Absolute time at which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + or is null. + + + + Schedules an action to be executed after the specified relative due time. + + Scheduler to execute the action on. + Action to execute. + A state object to be passed to . + Relative time after which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + or is null. + + + + Schedules an action to be executed after the specified relative due time. + + Scheduler to execute the action on. + Action to execute. + A state object to be passed to . + Relative time after which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + or is null. + + + + Schedules an action to be executed. + + Scheduler to execute the action on. + Action to execute. + The disposable object used to cancel the scheduled action (best effort). + or is null. + + + + Returns a scheduler that represents the original scheduler, without any of its interface-based optimizations (e.g. long running scheduling). + + Scheduler to disable all optimizations for. + Proxy to the original scheduler but without any optimizations enabled. + is null. + + + + Returns a scheduler that represents the original scheduler, without the specified set of interface-based optimizations (e.g. long running scheduling). + + Scheduler to disable the specified optimizations for. + Types of the optimization interfaces that have to be disabled. + Proxy to the original scheduler but without the specified optimizations enabled. + or is null. + + + + Returns a scheduler that wraps the original scheduler, adding exception handling for scheduled actions. + + Type of the exception to check for. + Scheduler to apply an exception filter for. + Handler that's run if an exception is caught. The exception will be rethrown if the handler returns false. + Wrapper around the original scheduler, enforcing exception handling. + or is null. + + + + Represents an awaitable scheduler operation. Awaiting the object causes the continuation to be posted back to the originating scheduler's work queue. + + + + + Controls whether the continuation is run on the originating synchronization context (false by default). + + true to run the continuation on the captured synchronization context; false otherwise (default). + Scheduler operation object with configured await behavior. + + + + Gets an awaiter for the scheduler operation, used to post back the continuation. + + Awaiter for the scheduler operation. + + + + (Infrastructure) Scheduler operation awaiter type used by the code generated for C# await and Visual Basic Await expressions. + + + + + Indicates whether the scheduler operation has completed. Returns false unless cancellation was already requested. + + + + + Completes the scheduler operation, throwing an OperationCanceledException in case cancellation was requested. + + + + + Registers the continuation with the scheduler operation. + + Continuation to be run on the originating scheduler. + + + + Efficient scheduler queue that maintains scheduled items sorted by absolute time. + + Absolute time representation type. + This type is not thread safe; users should ensure proper synchronization. + + + + Creates a new scheduler queue with a default initial capacity. + + + + + Creates a new scheduler queue with the specified initial capacity. + + Initial capacity of the scheduler queue. + is less than zero. + + + + Gets the number of scheduled items in the scheduler queue. + + + + + Enqueues the specified work item to be scheduled. + + Work item to be scheduled. + + + + Removes the specified work item from the scheduler queue. + + Work item to be removed from the scheduler queue. + true if the item was found; false otherwise. + + + + Dequeues the next work item from the scheduler queue. + + Next work item in the scheduler queue (removed). + + + + Peeks the next work item in the scheduler queue. + + Next work item in the scheduler queue (not removed). + + + + Provides basic synchronization and scheduling services for observable sequences. + + + + + Wraps the source sequence in order to run its subscription and unsubscription logic on the specified scheduler. + + The type of the elements in the source sequence. + Source sequence. + Scheduler to perform subscription and unsubscription actions on. + The source sequence whose subscriptions and unsubscriptions happen on the specified scheduler. + or is null. + + Only the side-effects of subscribing to the source sequence and disposing subscriptions to the source sequence are run on the specified scheduler. + In order to invoke observer callbacks on the specified scheduler, e.g. to offload callback processing to a dedicated thread, use . + + + + + Wraps the source sequence in order to run its subscription and unsubscription logic on the specified synchronization context. + + The type of the elements in the source sequence. + Source sequence. + Synchronization context to perform subscription and unsubscription actions on. + The source sequence whose subscriptions and unsubscriptions happen on the specified synchronization context. + or is null. + + Only the side-effects of subscribing to the source sequence and disposing subscriptions to the source sequence are run on the specified synchronization context. + In order to invoke observer callbacks on the specified synchronization context, e.g. to post callbacks to a UI thread represented by the synchronization context, use . + + + + + Wraps the source sequence in order to run its observer callbacks on the specified scheduler. + + The type of the elements in the source sequence. + Source sequence. + Scheduler to notify observers on. + The source sequence whose observations happen on the specified scheduler. + or is null. + + + + Wraps the source sequence in order to run its observer callbacks on the specified synchronization context. + + The type of the elements in the source sequence. + Source sequence. + Synchronization context to notify observers on. + The source sequence whose observations happen on the specified synchronization context. + or is null. + + + + Wraps the source sequence in order to ensure observer callbacks are properly serialized. + + The type of the elements in the source sequence. + Source sequence. + The source sequence whose outgoing calls to observers are synchronized. + is null. + + + + Wraps the source sequence in order to ensure observer callbacks are synchronized using the specified gate object. + + The type of the elements in the source sequence. + Source sequence. + Gate object to synchronize each observer call on. + The source sequence whose outgoing calls to observers are synchronized on the given gate object. + or is null. + + + + The new ObserveOn operator run with an IScheduler in a lock-free manner. + + + + + The new ObserveOn operator run with an ISchedulerLongRunning in a mostly lock-free manner. + + + + + Represents an object that schedules units of work on a provided . + + + + + Creates an object that schedules units of work on the provided . + + Synchronization context to schedule units of work on. + is null. + + + + Creates an object that schedules units of work on the provided . + + Synchronization context to schedule units of work on. + Configures whether scheduling always posts to the synchronization context, regardless whether the caller is on the same synchronization context. + is null. + + + + Schedules an action to be executed. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Schedules an action to be executed after dueTime. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + Relative time after which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Represents an object that schedules units of work on the Task Parallel Library (TPL) task pool. + + Instance of this type using the default TaskScheduler to schedule work on the TPL task pool. + + + + Creates an object that schedules units of work using the provided . + + Task factory used to create tasks to run units of work. + is null. + + + + Gets an instance of this scheduler that uses the default . + + + + + Schedules an action to be executed. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Schedules an action to be executed after dueTime. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + Relative time after which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Schedules a long-running task by creating a new task using TaskCreationOptions.LongRunning. Cancellation happens through polling. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Gets a new stopwatch object. + + New stopwatch object; started at the time of the request. + + + + Schedules a periodic piece of work by running a platform-specific timer to create tasks periodically. + + The type of the state passed to the scheduled action. + Initial state passed to the action upon the first iteration. + Period for running the work periodically. + Action to be executed, potentially updating the state. + The disposable object used to cancel the scheduled recurring action (best effort). + is null. + is less than . + + + + Represents an object that schedules units of work on the CLR thread pool. + + Singleton instance of this type exposed through this static property. + + + + Gets the singleton instance of the CLR thread pool scheduler. + + + + + Schedules an action to be executed. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Schedules an action to be executed after dueTime, using a System.Threading.Timer object. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + Relative time after which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Schedules a long-running task by creating a new thread. Cancellation happens through polling. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Starts a new stopwatch object. + + New stopwatch object; started at the time of the request. + + + + Schedules a periodic piece of work, using a System.Threading.Timer object. + + The type of the state passed to the scheduled action. + Initial state passed to the action upon the first iteration. + Period for running the work periodically. + Action to be executed, potentially updating the state. + The disposable object used to cancel the scheduled recurring action (best effort). + is null. + is less than zero. + + + + Base class for virtual time schedulers. + + Absolute time representation type. + Relative time representation type. + + + + Creates a new virtual time scheduler with the default value of TAbsolute as the initial clock value. + + + + + Creates a new virtual time scheduler with the specified initial clock value and absolute time comparer. + + Initial value for the clock. + Comparer to determine causality of events based on absolute time. + is null. + + + + Adds a relative time value to an absolute time value. + + Absolute time value. + Relative time value to add. + The resulting absolute time sum value. + + + + Converts the absolute time value to a DateTimeOffset value. + + Absolute time value to convert. + The corresponding DateTimeOffset value. + + + + Converts the TimeSpan value to a relative time value. + + TimeSpan value to convert. + The corresponding relative time value. + + + + Gets whether the scheduler is enabled to run work. + + + + + Gets the comparer used to compare absolute time values. + + + + + Schedules an action to be executed at dueTime. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Absolute time at which to execute the action. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + + + + Schedules an action to be executed at dueTime. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Relative time after which to execute the action. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + + + + Schedules an action to be executed. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Schedules an action to be executed after dueTime. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Relative time after which to execute the action. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Schedules an action to be executed at dueTime. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Absolute time at which to execute the action. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Starts the virtual time scheduler. + + + + + Stops the virtual time scheduler. + + + + + Advances the scheduler's clock to the specified time, running all work till that point. + + Absolute time to advance the scheduler's clock to. + is in the past. + The scheduler is already running. VirtualTimeScheduler doesn't support running nested work dispatch loops. To simulate time slippage while running work on the scheduler, use . + + + + Advances the scheduler's clock by the specified relative time, running all work scheduled for that timespan. + + Relative time to advance the scheduler's clock by. + is negative. + The scheduler is already running. VirtualTimeScheduler doesn't support running nested work dispatch loops. To simulate time slippage while running work on the scheduler, use . + + + + Advances the scheduler's clock by the specified relative time. + + Relative time to advance the scheduler's clock by. + is negative. + + + + Gets the scheduler's absolute time clock value. + + + + + Gets the scheduler's notion of current time. + + + + + Gets the next scheduled item to be executed. + + The next scheduled item. + + + + Discovers scheduler services by interface type. The base class implementation supports + only the IStopwatchProvider service. To influence service discovery - such as adding + support for other scheduler services - derived types can override this method. + + Scheduler service interface type to discover. + Object implementing the requested service, if available; null otherwise. + + + + Starts a new stopwatch object. + + New stopwatch object; started at the time of the request. + + + + Base class for virtual time schedulers using a priority queue for scheduled items. + + Absolute time representation type. + Relative time representation type. + + + + Creates a new virtual time scheduler with the default value of TAbsolute as the initial clock value. + + + + + Creates a new virtual time scheduler. + + Initial value for the clock. + Comparer to determine causality of events based on absolute time. + is null. + + + + Gets the next scheduled item to be executed. + + The next scheduled item. + + + + Schedules an action to be executed at dueTime. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + Absolute time at which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Provides a set of extension methods for virtual time scheduling. + + + + + Schedules an action to be executed at . + + Absolute time representation type. + Relative time representation type. + Scheduler to execute the action on. + Relative time after which to execute the action. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + or is null. + + + + Schedules an action to be executed at . + + Absolute time representation type. + Relative time representation type. + Scheduler to execute the action on. + Absolute time at which to execute the action. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + or is null. + + + + The System.Reactive.Concurrency namespace contains interfaces and classes that provide the scheduler infrastructure used by Reactive Extensions to construct and + process event streams. Schedulers are used to parameterize the concurrency introduced by query operators, provide means to virtualize time, to process historical data, + and to write unit tests for functionality built using Reactive Extensions constructs. + + + + + Represents an Action-based disposable. + + + + + Constructs a new disposable with the given action used for disposal. + + Disposal action which will be run upon calling Dispose. + + + + Gets a value that indicates whether the object is disposed. + + + + + Calls the disposal action if and only if the current instance hasn't been disposed yet. + + + + + Represents a Action-based disposable that can hold onto some state. + + + + + Constructs a new disposable with the given action used for disposal. + + The state to be passed to the disposal action. + Disposal action which will be run upon calling Dispose. + + + + Gets a value that indicates whether the object is disposed. + + + + + Calls the disposal action if and only if the current instance hasn't been disposed yet. + + + + + Represents a disposable resource that can be checked for disposal status. + + + + + Initializes a new instance of the class. + + + + + Gets a value that indicates whether the object is disposed. + + + + + Sets the status to disposed, which can be observer through the property. + + + + + Represents a disposable resource that has an associated that will be set to the cancellation requested state upon disposal. + + + + + Initializes a new instance of the class that uses an existing . + + used for cancellation. + is null. + + + + Initializes a new instance of the class that uses a new . + + + + + Gets the used by this . + + + + + Cancels the underlying . + + + + + Gets a value that indicates whether the object is disposed. + + + + + Represents a group of disposable resources that are disposed together. + + + + + Initializes a new instance of the class with no disposables contained by it initially. + + + + + Initializes a new instance of the class with the specified number of disposables. + + The number of disposables that the new CompositeDisposable can initially store. + is less than zero. + + + + Initializes a new instance of the class from a group of disposables. + + Disposables that will be disposed together. + is null. + Any of the disposables in the collection is null. + + + + Initializes a new instance of the class from a group of disposables. + + Disposables that will be disposed together. + is null. + Any of the disposables in the collection is null. + + + + Gets the number of disposables contained in the . + + + + + Adds a disposable to the or disposes the disposable if the is disposed. + + Disposable to add. + is null. + + + + Removes and disposes the first occurrence of a disposable from the . + + Disposable to remove. + true if found; false otherwise. + is null. + + + + Disposes all disposables in the group and removes them from the group. + + + + + Removes and disposes all disposables from the , but does not dispose the . + + + + + Determines whether the contains a specific disposable. + + Disposable to search for. + true if the disposable was found; otherwise, false. + is null. + + + + Copies the disposables contained in the to an array, starting at a particular array index. + + Array to copy the contained disposables to. + Target index at which to copy the first disposable of the group. + is null. + is less than zero. -or - is larger than or equal to the array length. + + + + Always returns false. + + + + + Returns an enumerator that iterates through the . + + An enumerator to iterate over the disposables. + + + + Returns an enumerator that iterates through the . + + An enumerator to iterate over the disposables. + + + + Gets a value that indicates whether the object is disposed. + + + + + An empty enumerator for the + method to avoid allocation on disposed or empty composites. + + + + + An enumerator for an array of disposables. + + + + + Represents a disposable resource whose disposal invocation will be posted to the specified . + + + + + Initializes a new instance of the class that uses the specified on which to dispose the specified disposable resource. + + Context to perform disposal on. + Disposable whose Dispose operation to run on the given synchronization context. + or is null. + + + + Gets the provided . + + + + + Gets a value that indicates whether the object is disposed. + + + + + Disposes the underlying disposable on the provided . + + + + + Provides a set of static methods for creating objects. + + + + + Represents a disposable that does nothing on disposal. + + + + + Singleton default disposable. + + + + + Does nothing. + + + + + Gets the disposable that does nothing when disposed. + + + + + Creates a disposable object that invokes the specified action when disposed. + + Action to run during the first call to . The action is guaranteed to be run at most once. + The disposable object that runs the given action upon disposal. + is null. + + + + Creates a disposable object that invokes the specified action when disposed. + + The state to be passed to the action. + Action to run during the first call to . The action is guaranteed to be run at most once. + The disposable object that runs the given action upon disposal. + is null. + + + + Gets the value stored in or a null if + was already disposed. + + + + + Gets the value stored in or a no-op-Disposable if + was already disposed. + + + + + Tries to assign to . + + A value indicating the outcome of the operation. + + + + Tries to assign to . If + is not disposed and is assigned a different value, it will not be disposed. + + true if was successfully assigned to . + false has been disposed. + + + + Tries to assign to . If + is not disposed and is assigned a different value, it will be disposed. + + true if was successfully assigned to . + false has been disposed. + + + + Disposes . + + + + + Disposable resource with disposal state tracking. + + + + + Gets a value that indicates whether the object is disposed. + + + + + Represents a disposable resource whose underlying disposable resource can be swapped for another disposable resource. + + + + + Initializes a new instance of the class with no current underlying disposable. + + + + + Gets a value that indicates whether the object is disposed. + + + + + Gets or sets the underlying disposable. After disposal, the result of getting this property is undefined. + + If the has already been disposed, assignment to this property causes immediate disposal of the given disposable object. + + + + Disposes the underlying disposable as well as all future replacements. + + + + + Represents a disposable resource whose underlying disposable resource can be swapped for another disposable resource. + + + + + Gets a value that indicates whether the object is disposed. + + + + + Gets or sets the underlying disposable. After disposal, the result of getting this property is undefined. + + If the has already been disposed, assignment to this property causes immediate disposal of the given disposable object. + + + + Disposes the underlying disposable as well as all future replacements. + + + + + Represents a disposable resource that only disposes its underlying disposable resource when all dependent disposable objects have been disposed. + + + + + Holds the number of active child disposables and the + indicator bit (31) if the main _disposable has been marked + for disposition. + + + + + Initializes a new instance of the class with the specified disposable. + + Underlying disposable. + is null. + + + + Initializes a new instance of the class with the specified disposable. + + Underlying disposable. + Indicates whether subsequent calls to should throw when this instance is disposed. + is null. + + + + Gets a value that indicates whether the object is disposed. + + + + + Returns a dependent disposable that when disposed decreases the refcount on the underlying disposable. + + A dependent disposable contributing to the reference count that manages the underlying disposable's lifetime. + This instance has been disposed and is configured to throw in this case by . + + + + Disposes the underlying disposable only when all dependent disposables have been disposed. + + + + + Represents a disposable resource whose disposal invocation will be scheduled on the specified . + + + + + Initializes a new instance of the class that uses an on which to dispose the disposable. + + Scheduler where the disposable resource will be disposed on. + Disposable resource to dispose on the given scheduler. + or is null. + + + + Gets the scheduler where the disposable resource will be disposed on. + + + + + Gets the underlying disposable. After disposal, the result is undefined. + + + + + Gets a value that indicates whether the object is disposed. + + + + + Disposes the wrapped disposable on the provided scheduler. + + + + + Represents a disposable resource whose underlying disposable resource can be replaced by another disposable resource, causing automatic disposal of the previous underlying disposable resource. + + + + + Initializes a new instance of the class. + + + + + Gets a value that indicates whether the object is disposed. + + + + + Gets or sets the underlying disposable. + + If the SerialDisposable has already been disposed, assignment to this property causes immediate disposal of the given disposable object. Assigning this property disposes the previous disposable object. + + + + Disposes the underlying disposable as well as all future replacements. + + + + + Represents a disposable resource whose underlying disposable resource can be replaced by another disposable resource, causing automatic disposal of the previous underlying disposable resource. + + + + + Gets a value that indicates whether the object is disposed. + + + + + Gets or sets the underlying disposable. + + If the SerialDisposable has already been disposed, assignment to this property causes immediate disposal of the given disposable object. Assigning this property disposes the previous disposable object. + + + + Disposes the underlying disposable as well as all future replacements. + + + + + Represents a disposable resource which only allows a single assignment of its underlying disposable resource. + If an underlying disposable resource has already been set, future attempts to set the underlying disposable resource will throw an . + + + + + Initializes a new instance of the class. + + + + + Gets a value that indicates whether the object is disposed. + + + + + Gets or sets the underlying disposable. After disposal, the result of getting this property is undefined. + + Thrown if the has already been assigned to. + + + + Disposes the underlying disposable. + + + + + Represents a disposable resource which only allows a single assignment of its underlying disposable resource. + If an underlying disposable resource has already been set, future attempts to set the underlying disposable resource will throw an . + + + + + Gets a value that indicates whether the object is disposed. + + + + + Gets or sets the underlying disposable. After disposal, the result of getting this property is undefined. + + Thrown if the has already been assigned to. + + + + Disposes the underlying disposable. + + + + + Represents a group of disposable resources that are disposed together. + + + + + Creates a new group containing two disposable resources that are disposed together. + + The first disposable resource to add to the group. + The second disposable resource to add to the group. + Group of disposable resources that are disposed together. + + + + Creates a new group of disposable resources that are disposed together. + + Disposable resources to add to the group. + Group of disposable resources that are disposed together. + + + + Creates a group of disposable resources that are disposed together + and without copying or checking for nulls inside the group. + + The array of disposables that is trusted + to not contain nulls and gives no need to defensively copy it. + Group of disposable resources that are disposed together. + + + + Creates a new group of disposable resources that are disposed together. + + Disposable resources to add to the group. + Group of disposable resources that are disposed together. + + + + Disposes all disposables in the group. + + + + + Gets a value that indicates whether the object is disposed. + + + + + A stable composite that doesn't do defensive copy of + the input disposable array nor checks it for null. + + + + + The System.Reactive.Disposables namespace contains interfaces and classes that provide a compositional set of constructs used to deal with resource and subscription + management in Reactive Extensions. Those types are used extensively within the implementation of Reactive Extensions and are useful when writing custom query operators or + schedulers. + + + + + Provides access to the platform enlightenments used by other Rx libraries to improve system performance and + runtime efficiency. While Rx can run without platform enlightenments loaded, it's recommended to deploy the + System.Reactive.PlatformServices assembly with your application and call during + application startup to ensure enlightenments are properly loaded. + + + + + Ensures that the calling assembly has a reference to the System.Reactive.PlatformServices assembly with + platform enlightenments. If no reference is made from the user code, it's possible for the build process + to drop the deployment of System.Reactive.PlatformServices, preventing its runtime discovery. + + + true if the loaded enlightenment provider matches the provided defined in the current assembly; false + otherwise. When a custom enlightenment provider is installed by the host, false will be returned. + + + + + (Infrastructure) Provider for platform-specific framework enlightenments. + + + + + (Infrastructure) Tries to gets the specified service. + + Service type. + Optional set of arguments. + Service instance or null if not found. + + + + (Infrastructure) Services to rethrow exceptions. + + + This type is used by the Rx infrastructure and not meant for public consumption or implementation. + No guarantees are made about forward compatibility of the type's functionality and its usage. + + + + + Rethrows the specified exception. + + Exception to rethrow. + + + + (Infrastructure) Provides access to the host's lifecycle management services. + + + + + Event that gets raised when the host suspends the application. + + + + + Event that gets raised when the host resumes the application. + + + + + Adds a reference to the host lifecycle manager, causing it to be sending notifications. + + + + + Removes a reference to the host lifecycle manager, causing it to stop sending notifications + if the removed reference was the last one. + + + + + (Infrastructure) Provides notifications about the host's lifecycle events. + + + + + Event that gets raised when the host suspends. + + + + + Event that gets raised when the host resumes. + + + + + (Infrastructure) Event arguments for host suspension events. + + + + + (Infrastructure) Event arguments for host resumption events. + + + + + (Infrastructure) Interface for enlightenment providers. + + + This type is used by the Rx infrastructure and not meant for public consumption or implementation. + No guarantees are made about forward compatibility of the type's functionality and its usage. + + + + + (Infrastructure) Tries to gets the specified service. + + Service type. + Optional set of arguments. + Service instance or null if not found. + + + + (Infrastructure) Provider for platform-specific framework enlightenments. + + + This type is used by the Rx infrastructure and not meant for public consumption or implementation. + + + + + (Infrastructure) Gets the current enlightenment provider. If none is loaded yet, accessing this property triggers provider resolution. + + + This member is used by the Rx infrastructure and not meant for public consumption or implementation. + + + + + (Infrastructure) Provides access to local system clock services. + + + This type is used by the Rx infrastructure and not meant for public consumption or implementation. + No guarantees are made about forward compatibility of the type's functionality and its usage. + + + + + Gets the local system clock time. + + + + + Adds a reference to the system clock monitor, causing it to be sending notifications. + + Thrown when the system doesn't support sending clock change notifications. + + + + Removes a reference to the system clock monitor, causing it to stop sending notifications + if the removed reference was the last one. + + + + + (Infrastructure) Provides access to the local system clock. + + + This type is used by the Rx infrastructure and not meant for public consumption or implementation. + No guarantees are made about forward compatibility of the type's functionality and its usage. + + + + + Gets the current time. + + + + + (Infrastructure) Provides a mechanism to notify local schedulers about system clock changes. + + + This type is used by the Rx infrastructure and not meant for public consumption or implementation. + No guarantees are made about forward compatibility of the type's functionality and its usage. + + + + + Event that gets raised when a system clock change is detected. + + + + + (Infrastructure) Event arguments for system clock change notifications. + + + This type is used by the Rx infrastructure and not meant for public consumption or implementation. + No guarantees are made about forward compatibility of the type's functionality and its usage. + + + + + Creates a new system clock notification object with unknown old and new times. + + + + + Creates a new system clock notification object with the specified old and new times. + + Time before the system clock changed, or DateTimeOffset.MinValue if not known. + Time after the system clock changed, or DateTimeOffset.MaxValue if not known. + + + + Gets the time before the system clock changed, or DateTimeOffset.MinValue if not known. + + + + + Gets the time after the system clock changed, or DateTimeOffset.MaxValue if not known. + + + + + (Infrastructure) Provides access to the local system clock. + + + + + Gets the current time. + + + + + (Infrastructure) Monitors for system clock changes based on a periodic timer. + + + + + Use the Unix milliseconds for the current time + so it can be atomically read/written without locking. + + + + + Creates a new monitor for system clock changes with the specified polling frequency. + + Polling frequency for system clock changes. + + + + Event that gets raised when a system clock change is detected. + + + + + The System.Reactive.PlatformServices namespace contains interfaces and classes used by the runtime infrastructure of Reactive Extensions. + Those are not intended to be used directly from user code and are subject to change in future releases of the product. + + + + + Represents a .NET event invocation consisting of the weakly typed object that raised the event and the data that was generated by the event. + + The type of the event data generated by the event. + + + + Creates a new data representation instance of a .NET event invocation with the given sender and event data. + + The sender object that raised the event. + The event data that was generated by the event. + + + + Represents a .NET event invocation consisting of the strongly typed object that raised the event and the data that was generated by the event. + + The type of the sender that raised the event. + The type of the event data generated by the event. + + + + Creates a new data representation instance of a .NET event invocation with the given sender and event data. + + The sender object that raised the event. + The event data that was generated by the event. + + + + Gets the sender object that raised the event. + + + + + Gets the event data that was generated by the event. + + + + + Deconstructs the event pattern value into a sender and event data. + + The sender object that raised the event. + The event data that was generated by the event. + + + + Determines whether the current object represents the same event as a specified object. + + An object to compare to the current object. + true if both objects represent the same event; otherwise, false. + + + + Determines whether the specified System.Object is equal to the current . + + The System.Object to compare with the current . + true if the specified System.Object is equal to the current ; otherwise, false. + + + + Returns the hash code for the current instance. + + A hash code for the current instance. + + + + Determines whether two specified objects represent the same event. + + The first to compare, or null. + The second to compare, or null. + true if both objects represent the same event; otherwise, false. + + + + Determines whether two specified objects represent a different event. + + The first to compare, or null. + The second to compare, or null. + true if both objects don't represent the same event; otherwise, false. + + + + Base class for classes that expose an observable sequence as a well-known event pattern (sender, event arguments). + Contains functionality to maintain a map of event handler delegates to observable sequence subscriptions. Subclasses + should only add an event with custom add and remove methods calling into the base class's operations. + + The type of the sender that raises the event. + The type of the event data generated by the event. + + + + Creates a new event pattern source. + + Source sequence to expose as an event. + Delegate used to invoke the event for each element of the sequence. + or is null. + + + + Adds the specified event handler, causing a subscription to the underlying source. + + Event handler to add. The same delegate should be passed to the operation in order to remove the event handler. + Invocation delegate to raise the event in the derived class. + or is null. + + + + Removes the specified event handler, causing a disposal of the corresponding subscription to the underlying source that was created during the operation. + + Event handler to remove. This should be the same delegate as one that was passed to the operation. + is null. + + + + Marks the program elements that are experimental. This class cannot be inherited. + + + + + Represents a .NET event invocation consisting of the strongly typed object that raised the event and the data that was generated by the event. + + + The type of the sender that raised the event. + This type parameter is covariant. That is, you can use either the type you specified or any type that is more derived. For more information about covariance and contravariance, see Covariance and Contravariance in Generics. + + + The type of the event data generated by the event. + This type parameter is covariant. That is, you can use either the type you specified or any type that is more derived. For more information about covariance and contravariance, see Covariance and Contravariance in Generics. + + + + + Gets the sender object that raised the event. + + + + + Gets the event data that was generated by the event. + + + + + Represents a data stream signaling its elements by means of an event. + + The type of the event data generated by the event. + + + + Event signaling the next element in the data stream. + + + + + Represents a data stream signaling its elements by means of an event. + + + The type of the event data generated by the event. + This type parameter is covariant. That is, you can use either the type you specified or any type that is more derived. For more information about covariance and contravariance, see Covariance and Contravariance in Generics. + + + + + Event signaling the next element in the data stream. + + + + + Utility methods to handle lock-free combining of Exceptions + as well as hosting a terminal-exception indicator for + lock-free termination support. + + + + + The singleton instance of the exception indicating a terminal state, + DO NOT LEAK or signal this via OnError! + + + + + Tries to atomically set the Exception on the given field if it is + still null. + + The target field to try to set atomically. + The exception to set, not null (not verified). + True if the operation succeeded, false if the target was not null. + + + + Utility methods for dealing with serializing OnXXX signals + for an IObserver where concurrent OnNext is still not allowed + but concurrent OnError/OnCompleted may happen. + This serialization case is generally lower overhead than + a full SerializedObserver wrapper and doesn't need + allocation. + + + + + Signals the given item to the observer in a serialized fashion + allowing a concurrent OnError or OnCompleted emission to be delayed until + the observer.OnNext returns. + Do not call OnNext from multiple threads as it may lead to ignored items. + Use a full SerializedObserver wrapper for merging multiple sequences. + + The element type of the observer. + The observer to signal events in a serialized fashion. + The item to signal. + Indicates there is an emission going on currently. + The field containing an error or terminal indicator. + + + + Signals the given exception to the observer. If there is a concurrent + OnNext emission is happening, saves the exception into the given field + otherwise to be picked up by . + This method can be called concurrently with itself and the other methods of this + helper class but only one terminal signal may actually win. + + The element type of the observer. + The observer to signal events in a serialized fashion. + The exception to signal sooner or later. + Indicates there is an emission going on currently. + The field containing an error or terminal indicator. + + + + Signals OnCompleted on the observer. If there is a concurrent + OnNext emission happening, the error field will host a special + terminal exception signal to be picked up by once it finishes with OnNext and signal the + OnCompleted as well. + This method can be called concurrently with itself and the other methods of this + helper class but only one terminal signal may actually win. + + The element type of the observer. + The observer to signal events in a serialized fashion. + Indicates there is an emission going on currently. + The field containing an error or terminal indicator. + + + + Base interface for observers that can dispose of a resource on a terminal notification + or when disposed itself. + + + + + + Interface with variance annotation; allows for better type checking when detecting capabilities in SubscribeSafe. + + Type of the resulting sequence's elements. + + + + Base class for implementation of query operators, providing performance benefits over the use of Observable.Create. + + Type of the resulting sequence's elements. + + + + Publicly visible Subscribe method. + + Observer to send notifications on. The implementation of a producer must ensure the correct message grammar on the observer. + IDisposable to cancel the subscription. This causes the underlying sink to be notified of unsubscription, causing it to prevent further messages from being sent to the observer. + + + + Core implementation of the query operator, called upon a new subscription to the producer object. + + Observer to send notifications on. The implementation of a producer must ensure the correct message grammar on the observer. + Disposable representing all the resources and/or subscriptions the operator uses to process events. + The observer passed in to this method is not protected using auto-detach behavior upon an OnError or OnCompleted call. The implementation must ensure proper resource disposal and enforce the message grammar. + + + + Publicly visible Subscribe method. + + Observer to send notifications on. The implementation of a producer must ensure the correct message grammar on the observer. + IDisposable to cancel the subscription. This causes the underlying sink to be notified of unsubscription, causing it to prevent further messages from being sent to the observer. + + + + Core implementation of the query operator, called upon a new subscription to the producer object. + + The sink object. + + + + Represents an observable sequence of elements that have a common key. + + + The type of the key shared by all elements in the group. + This type parameter is covariant. That is, you can use either the type you specified or any type that is more derived. For more information about covariance and contravariance, see Covariance and Contravariance in Generics. + + + The type of the elements in the group. + This type parameter is covariant. That is, you can use either the type you specified or any type that is more derived. For more information about covariance and contravariance, see Covariance and Contravariance in Generics. + + + + + Gets the common key. + + + + + Provides functionality to evaluate queries against a specific data source wherein the type of the data is known. + + + The type of the data in the data source. + This type parameter is covariant. That is, you can use either the type you specified or any type that is more derived. For more information about covariance and contravariance, see Covariance and Contravariance in Generics. + + + + + Provides functionality to evaluate queries against a specific data source wherein the type of the data is not specified. + + + + + Gets the type of the element(s) that are returned when the expression tree associated with this instance of IQbservable is executed. + + + + + Gets the expression tree that is associated with the instance of IQbservable. + + + + + Gets the query provider that is associated with this data source. + + + + + Defines methods to create and execute queries that are described by an IQbservable object. + + + + + Constructs an object that can evaluate the query represented by a specified expression tree. + + The type of the elements of the that is returned. + Expression tree representing the query. + IQbservable object that can evaluate the given query expression. + + + + Internal interface describing the LINQ to Events query language. + + + + + Internal interface describing the LINQ to Events query language. + + + + + Attribute applied to static classes providing expression tree forms of query methods, + mapping those to the corresponding methods for local query execution on the specified + target class type. + + + + + Creates a new mapping to the specified local execution query method implementation type. + + Type with query methods for local execution. + + + + Gets the type with the implementation of local query methods. + + + + + Provides a set of static methods for writing in-memory queries over observable sequences. + + + + + Applies an accumulator function over an observable sequence, returning the result of the aggregation as a single element in the result sequence. The specified seed value is used as the initial accumulator value. + For aggregation behavior with incremental intermediate results, see . + + The type of the elements in the source sequence. + The type of the result of the aggregation. + An observable sequence to aggregate over. + The initial accumulator value. + An accumulator function to be invoked on each element. + An observable sequence containing a single element with the final accumulator value. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Applies an accumulator function over an observable sequence, returning the result of the aggregation as a single element in the result sequence. The specified seed value is used as the initial accumulator value, + and the specified result selector function is used to select the result value. + + The type of the elements in the source sequence. + The type of the accumulator value. + The type of the resulting value. + An observable sequence to aggregate over. + The initial accumulator value. + An accumulator function to be invoked on each element. + A function to transform the final accumulator value into the result value. + An observable sequence containing a single element with the final accumulator value. + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Applies an accumulator function over an observable sequence, returning the result of the aggregation as a single element in the result sequence. + For aggregation behavior with incremental intermediate results, see . + + The type of the elements in the source sequence and the result of the aggregation. + An observable sequence to aggregate over. + An accumulator function to be invoked on each element. + An observable sequence containing a single element with the final accumulator value. + or is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Determines whether all elements of an observable sequence satisfy a condition. + + The type of the elements in the source sequence. + An observable sequence whose elements to apply the predicate to. + A function to test each element for a condition. + An observable sequence containing a single element determining whether all elements in the source sequence pass the test in the specified predicate. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Determines whether an observable sequence contains any elements. + + The type of the elements in the source sequence. + An observable sequence to check for non-emptiness. + An observable sequence containing a single element determining whether the source sequence contains any elements. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Determines whether any element of an observable sequence satisfies a condition. + + The type of the elements in the source sequence. + An observable sequence whose elements to apply the predicate to. + A function to test each element for a condition. + An observable sequence containing a single element determining whether any elements in the source sequence pass the test in the specified predicate. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values. + + A sequence of values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values. + is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values. + + A sequence of values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values. + is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values. + + A sequence of values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values. + is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values. + + A sequence of values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values. + is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values. + + A sequence of values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values. + is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of nullable values. + + A sequence of nullable values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of nullable values. + + A sequence of nullable values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of nullable values. + + A sequence of nullable values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of nullable values. + + A sequence of nullable values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + (Asynchronous) The sum of the elements in the source sequence is larger than . + + + + Computes the average of an observable sequence of nullable values. + + A sequence of nullable values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values. + or is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values. + or is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values. + or is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values. + or is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values. + or is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + or is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + or is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + or is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + or is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + or is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Determines whether an observable sequence contains a specified element by using the default equality comparer. + + The type of the elements in the source sequence. + An observable sequence in which to locate a value. + The value to locate in the source sequence. + An observable sequence containing a single element determining whether the source sequence contains an element that has the specified value. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Determines whether an observable sequence contains a specified element by using a specified System.Collections.Generic.IEqualityComparer{T}. + + The type of the elements in the source sequence. + An observable sequence in which to locate a value. + The value to locate in the source sequence. + An equality comparer to compare elements. + An observable sequence containing a single element determining whether the source sequence contains an element that has the specified value. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns an observable sequence containing an that represents the total number of elements in an observable sequence. + + The type of the elements in the source sequence. + An observable sequence that contains elements to be counted. + An observable sequence containing a single element with the number of elements in the input sequence. + is null. + (Asynchronous) The number of elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns an observable sequence containing an that represents how many elements in the specified observable sequence satisfy a condition. + + The type of the elements in the source sequence. + An observable sequence that contains elements to be counted. + A function to test each element for a condition. + An observable sequence containing a single element with a number that represents how many elements in the input sequence satisfy the condition in the predicate function. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the element at a specified index in a sequence. + + The type of the elements in the source sequence. + Observable sequence to return the element from. + The zero-based index of the element to retrieve. + An observable sequence that produces the element at the specified position in the source sequence. + is null. + is less than zero. + (Asynchronous) is greater than or equal to the number of elements in the source sequence. + + + + Returns the element at a specified index in a sequence or a default value if the index is out of range. + + The type of the elements in the source sequence. + Observable sequence to return the element from. + The zero-based index of the element to retrieve. + An observable sequence that produces the element at the specified position in the source sequence, or a default value if the index is outside the bounds of the source sequence. + is null. + is less than zero. + + + + Returns the first element of an observable sequence. + + The type of the elements in the source sequence. + Source observable sequence. + Sequence containing the first element in the observable sequence. + is null. + (Asynchronous) The source sequence is empty. + + + + Returns the first element of an observable sequence that satisfies the condition in the predicate. + + The type of the elements in the source sequence. + Source observable sequence. + A predicate function to evaluate for elements in the source sequence. + Sequence containing the first element in the observable sequence that satisfies the condition in the predicate. + or is null. + (Asynchronous) No element satisfies the condition in the predicate. -or- The source sequence is empty. + + + + Returns the first element of an observable sequence, or a default value if no such element exists. + + The type of the elements in the source sequence. + Source observable sequence. + Sequence containing the first element in the observable sequence, or a default value if no such element exists. + is null. + + + + Returns the first element of an observable sequence that satisfies the condition in the predicate, or a default value if no such element exists. + + The type of the elements in the source sequence. + Source observable sequence. + A predicate function to evaluate for elements in the source sequence. + Sequence containing the first element in the observable sequence that satisfies the condition in the predicate, or a default value if no such element exists. + or is null. + + + + Determines whether an observable sequence is empty. + + The type of the elements in the source sequence. + An observable sequence to check for emptiness. + An observable sequence containing a single element determining whether the source sequence is empty. + is null. + + + + Returns the last element of an observable sequence. + + The type of the elements in the source sequence. + Source observable sequence. + Sequence containing the last element in the observable sequence. + is null. + (Asynchronous) The source sequence is empty. + + + + Returns the last element of an observable sequence that satisfies the condition in the predicate. + + The type of the elements in the source sequence. + Source observable sequence. + A predicate function to evaluate for elements in the source sequence. + Sequence containing the last element in the observable sequence that satisfies the condition in the predicate. + or is null. + (Asynchronous) No element satisfies the condition in the predicate. -or- The source sequence is empty. + + + + Returns the last element of an observable sequence, or a default value if no such element exists. + + The type of the elements in the source sequence. + Source observable sequence. + Sequence containing the last element in the observable sequence, or a default value if no such element exists. + is null. + + + + Returns the last element of an observable sequence that satisfies the condition in the predicate, or a default value if no such element exists. + + The type of the elements in the source sequence. + Source observable sequence. + A predicate function to evaluate for elements in the source sequence. + Sequence containing the last element in the observable sequence that satisfies the condition in the predicate, or a default value if no such element exists. + or is null. + + + + Returns an observable sequence containing an that represents the total number of elements in an observable sequence. + + The type of the elements in the source sequence. + An observable sequence that contains elements to be counted. + An observable sequence containing a single element with the number of elements in the input sequence. + is null. + (Asynchronous) The number of elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns an observable sequence containing an that represents how many elements in the specified observable sequence satisfy a condition. + + The type of the elements in the source sequence. + An observable sequence that contains elements to be counted. + A function to test each element for a condition. + An observable sequence containing a single element with a number that represents how many elements in the input sequence satisfy the condition in the predicate function. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum element in an observable sequence. + + The type of the elements in the source sequence. + An observable sequence to determine the maximum element of. + An observable sequence containing a single element with the maximum element in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence according to the specified comparer. + + The type of the elements in the source sequence. + An observable sequence to determine the maximum element of. + Comparer used to compare elements. + An observable sequence containing a single element with the maximum element in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of values. + + A sequence of values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of values. + + A sequence of values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of values. + + A sequence of values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of values. + + A sequence of values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of values. + + A sequence of values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum value. + + The type of the elements in the source sequence. + The type of the objects derived from the elements in the source sequence to determine the maximum of. + An observable sequence to determine the minimum element of. + A transform function to apply to each element. + An observable sequence containing a single element with the value that corresponds to the maximum element in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum value according to the specified comparer. + + The type of the elements in the source sequence. + The type of the objects derived from the elements in the source sequence to determine the maximum of. + An observable sequence to determine the minimum element of. + A transform function to apply to each element. + Comparer used to compare elements. + An observable sequence containing a single element with the value that corresponds to the maximum element in the source sequence. + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the elements in an observable sequence with the maximum key value. + + The type of the elements in the source sequence. + The type of the key computed for each element in the source sequence. + An observable sequence to get the maximum elements for. + Key selector function. + An observable sequence containing a list of zero or more elements that have a maximum key value. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the elements in an observable sequence with the maximum key value according to the specified comparer. + + The type of the elements in the source sequence. + The type of the key computed for each element in the source sequence. + An observable sequence to get the maximum elements for. + Key selector function. + Comparer used to compare key values. + An observable sequence containing a list of zero or more elements that have a maximum key value. + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum element in an observable sequence. + + The type of the elements in the source sequence. + An observable sequence to determine the minimum element of. + An observable sequence containing a single element with the minimum element in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum element in an observable sequence according to the specified comparer. + + The type of the elements in the source sequence. + An observable sequence to determine the minimum element of. + Comparer used to compare elements. + An observable sequence containing a single element with the minimum element in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of values. + + A sequence of values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of values. + + A sequence of values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of values. + + A sequence of values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of values. + + A sequence of values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of values. + + A sequence of values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum value. + + The type of the elements in the source sequence. + The type of the objects derived from the elements in the source sequence to determine the minimum of. + An observable sequence to determine the minimum element of. + A transform function to apply to each element. + An observable sequence containing a single element with the value that corresponds to the minimum element in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum value according to the specified comparer. + + The type of the elements in the source sequence. + The type of the objects derived from the elements in the source sequence to determine the minimum of. + An observable sequence to determine the minimum element of. + A transform function to apply to each element. + Comparer used to compare elements. + An observable sequence containing a single element with the value that corresponds to the minimum element in the source sequence. + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the elements in an observable sequence with the minimum key value. + + The type of the elements in the source sequence. + The type of the key computed for each element in the source sequence. + An observable sequence to get the minimum elements for. + Key selector function. + An observable sequence containing a list of zero or more elements that have a minimum key value. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the elements in an observable sequence with the minimum key value according to the specified comparer. + + The type of the elements in the source sequence. + The type of the key computed for each element in the source sequence. + An observable sequence to get the minimum elements for. + Key selector function. + Comparer used to compare key values. + An observable sequence containing a list of zero or more elements that have a minimum key value. + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Determines whether two sequences are equal by comparing the elements pairwise. + + The type of the elements in the source sequence. + First observable sequence to compare. + Second observable sequence to compare. + An observable sequence that contains a single element which indicates whether both sequences are of equal length and their corresponding elements are equal according to the default equality comparer for their type. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Determines whether two sequences are equal by comparing the elements pairwise using a specified equality comparer. + + The type of the elements in the source sequence. + First observable sequence to compare. + Second observable sequence to compare. + Comparer used to compare elements of both sequences. + An observable sequence that contains a single element which indicates whether both sequences are of equal length and their corresponding elements are equal according to the specified equality comparer. + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Determines whether an observable and enumerable sequence are equal by comparing the elements pairwise. + + The type of the elements in the source sequence. + First observable sequence to compare. + Second observable sequence to compare. + An observable sequence that contains a single element which indicates whether both sequences are of equal length and their corresponding elements are equal according to the default equality comparer for their type. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Determines whether an observable and enumerable sequence are equal by comparing the elements pairwise using a specified equality comparer. + + The type of the elements in the source sequence. + First observable sequence to compare. + Second observable sequence to compare. + Comparer used to compare elements of both sequences. + An observable sequence that contains a single element which indicates whether both sequences are of equal length and their corresponding elements are equal according to the specified equality comparer. + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the only element of an observable sequence, and reports an exception if there is not exactly one element in the observable sequence. + + The type of the elements in the source sequence. + Source observable sequence. + Sequence containing the single element in the observable sequence. + is null. + (Asynchronous) The source sequence contains more than one element. -or- The source sequence is empty. + + + + Returns the only element of an observable sequence that satisfies the condition in the predicate, and reports an exception if there is not exactly one element in the observable sequence. + + The type of the elements in the source sequence. + Source observable sequence. + A predicate function to evaluate for elements in the source sequence. + Sequence containing the single element in the observable sequence that satisfies the condition in the predicate. + or is null. + (Asynchronous) No element satisfies the condition in the predicate. -or- More than one element satisfies the condition in the predicate. -or- The source sequence is empty. + + + + Returns the only element of an observable sequence, or a default value if the observable sequence is empty; this method reports an exception if there is more than one element in the observable sequence. + + The type of the elements in the source sequence. + Source observable sequence. + Sequence containing the single element in the observable sequence, or a default value if no such element exists. + is null. + (Asynchronous) The source sequence contains more than one element. + + + + Returns the only element of an observable sequence that matches the predicate, or a default value if no such element exists; this method reports an exception if there is more than one element in the observable sequence. + + The type of the elements in the source sequence. + Source observable sequence. + A predicate function to evaluate for elements in the source sequence. + Sequence containing the single element in the observable sequence that satisfies the condition in the predicate, or a default value if no such element exists. + or is null. + (Asynchronous) The sequence contains more than one element that satisfies the condition in the predicate. + + + + Computes the sum of a sequence of values. + + A sequence of values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of values. + + A sequence of values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of values. + + A sequence of values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + is null. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of values. + + A sequence of values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + is null. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of values. + + A sequence of values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + is null. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values. + + A sequence of nullable values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values. + + A sequence of nullable values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values. + + A sequence of nullable values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + is null. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values. + + A sequence of nullable values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + is null. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values. + + A sequence of nullable values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + is null. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + or is null. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + or is null. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + or is null. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + or is null. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + or is null. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + or is null. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates an array from an observable sequence. + + The type of the elements in the source sequence. + The source observable sequence to get an array of elements for. + An observable sequence containing a single element with an array containing all the elements of the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates a dictionary from an observable sequence according to a specified key selector function. + + The type of the elements in the source sequence. + The type of the dictionary key computed for each element in the source sequence. + An observable sequence to create a dictionary for. + A function to extract a key from each element. + An observable sequence containing a single element with a dictionary mapping unique key values onto the corresponding source sequence's element. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates a dictionary from an observable sequence according to a specified key selector function, and a comparer. + + The type of the elements in the source sequence. + The type of the dictionary key computed for each element in the source sequence. + An observable sequence to create a dictionary for. + A function to extract a key from each element. + An equality comparer to compare keys. + An observable sequence containing a single element with a dictionary mapping unique key values onto the corresponding source sequence's element. + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates a dictionary from an observable sequence according to a specified key selector function, and an element selector function. + + The type of the elements in the source sequence. + The type of the dictionary key computed for each element in the source sequence. + The type of the dictionary value computed for each element in the source sequence. + An observable sequence to create a dictionary for. + A function to extract a key from each element. + A transform function to produce a result element value from each element. + An observable sequence containing a single element with a dictionary mapping unique key values onto the corresponding source sequence's element. + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates a dictionary from an observable sequence according to a specified key selector function, a comparer, and an element selector function. + + The type of the elements in the source sequence. + The type of the dictionary key computed for each element in the source sequence. + The type of the dictionary value computed for each element in the source sequence. + An observable sequence to create a dictionary for. + A function to extract a key from each element. + A transform function to produce a result element value from each element. + An equality comparer to compare keys. + An observable sequence containing a single element with a dictionary mapping unique key values onto the corresponding source sequence's element. + or or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates a list from an observable sequence. + + The type of the elements in the source sequence. + The source observable sequence to get a list of elements for. + An observable sequence containing a single element with a list containing all the elements of the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates a lookup from an observable sequence according to a specified key selector function. + + The type of the elements in the source sequence. + The type of the lookup key computed for each element in the source sequence. + An observable sequence to create a lookup for. + A function to extract a key from each element. + An observable sequence containing a single element with a lookup mapping unique key values onto the corresponding source sequence's elements. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates a lookup from an observable sequence according to a specified key selector function, and a comparer. + + The type of the elements in the source sequence. + The type of the lookup key computed for each element in the source sequence. + An observable sequence to create a lookup for. + A function to extract a key from each element. + An equality comparer to compare keys. + An observable sequence containing a single element with a lookup mapping unique key values onto the corresponding source sequence's elements. + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates a lookup from an observable sequence according to a specified key selector function, and an element selector function. + + The type of the elements in the source sequence. + The type of the lookup key computed for each element in the source sequence. + The type of the lookup value computed for each element in the source sequence. + An observable sequence to create a lookup for. + A function to extract a key from each element. + A transform function to produce a result element value from each element. + An observable sequence containing a single element with a lookup mapping unique key values onto the corresponding source sequence's elements. + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates a lookup from an observable sequence according to a specified key selector function, a comparer, and an element selector function. + + The type of the elements in the source sequence. + The type of the lookup key computed for each element in the source sequence. + The type of the lookup value computed for each element in the source sequence. + An observable sequence to create a lookup for. + A function to extract a key from each element. + A transform function to produce a result element value from each element. + An equality comparer to compare keys. + An observable sequence containing a single element with a lookup mapping unique key values onto the corresponding source sequence's elements. + or or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The type of the eleventh argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The type of the eleventh argument passed to the begin delegate. + The type of the twelfth argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The type of the eleventh argument passed to the begin delegate. + The type of the twelfth argument passed to the begin delegate. + The type of the thirteenth argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The type of the eleventh argument passed to the begin delegate. + The type of the twelfth argument passed to the begin delegate. + The type of the thirteenth argument passed to the begin delegate. + The type of the fourteenth argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The type of the eleventh argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The type of the eleventh argument passed to the begin delegate. + The type of the twelfth argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The type of the eleventh argument passed to the begin delegate. + The type of the twelfth argument passed to the begin delegate. + The type of the thirteenth argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The type of the eleventh argument passed to the begin delegate. + The type of the twelfth argument passed to the begin delegate. + The type of the thirteenth argument passed to the begin delegate. + The type of the fourteenth argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Invokes the specified function asynchronously, surfacing the result through an observable sequence. + + The type of the result returned by the function. + Function to run asynchronously. + An observable sequence exposing the function's result value, or an exception. + is null. + + + The function is called immediately, not during the subscription of the resulting sequence. + Multiple subscriptions to the resulting sequence can observe the function's result. + + + + + + Invokes the specified function asynchronously on the specified scheduler, surfacing the result through an observable sequence + + The type of the result returned by the function. + Function to run asynchronously. + Scheduler to run the function on. + An observable sequence exposing the function's result value, or an exception. + or is null. + + + The function is called immediately, not during the subscription of the resulting sequence. + Multiple subscriptions to the resulting sequence can observe the function's result. + + + + + + Invokes the asynchronous function, surfacing the result through an observable sequence. + + The type of the result returned by the asynchronous function. + Asynchronous function to run. + An observable sequence exposing the function's result value, or an exception. + is null. + + + The function is started immediately, not during the subscription of the resulting sequence. + Multiple subscriptions to the resulting sequence can observe the function's result. + + + + + + Invokes the asynchronous function, surfacing the result through an observable sequence. + + The type of the result returned by the asynchronous function. + Asynchronous function to run. + Scheduler on which to notify observers. + An observable sequence exposing the function's result value, or an exception. + is null or is null. + + + The function is started immediately, not during the subscription of the resulting sequence. + Multiple subscriptions to the resulting sequence can observe the function's result. + + + + + + Invokes the asynchronous function, surfacing the result through an observable sequence. + The CancellationToken is shared by all subscriptions on the resulting observable sequence. See the remarks section for more information. + + The type of the result returned by the asynchronous function. + Asynchronous function to run. + An observable sequence exposing the function's result value, or an exception. + is null. + + + The function is started immediately, not during the subscription of the resulting sequence. + Multiple subscriptions to the resulting sequence can observe the function's result. + + If any subscription to the resulting sequence is disposed, the CancellationToken is set. The observer associated to the disposed + subscription won't see the TaskCanceledException, but other observers will. You can protect against this using the Catch operator. + Be careful when handing out the resulting sequence because of this behavior. The most common use is to have a single subscription + to the resulting sequence, which controls the CancellationToken state. Alternatively, you can control subscription behavior using + multicast operators. + + + + + + + Invokes the asynchronous function, surfacing the result through an observable sequence. + The CancellationToken is shared by all subscriptions on the resulting observable sequence. See the remarks section for more information. + + The type of the result returned by the asynchronous function. + Asynchronous function to run. + Scheduler on which to notify observers. + An observable sequence exposing the function's result value, or an exception. + is null or is null. + + + The function is started immediately, not during the subscription of the resulting sequence. + Multiple subscriptions to the resulting sequence can observe the function's result. + + If any subscription to the resulting sequence is disposed, the CancellationToken is set. The observer associated to the disposed + subscription won't see the TaskCanceledException, but other observers will. You can protect against this using the Catch operator. + Be careful when handing out the resulting sequence because of this behavior. The most common use is to have a single subscription + to the resulting sequence, which controls the CancellationToken state. Alternatively, you can control subscription behavior using + multicast operators. + + + + + + + Invokes the action asynchronously, surfacing the result through an observable sequence. + + Action to run asynchronously. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + is null. + + + The action is called immediately, not during the subscription of the resulting sequence. + Multiple subscriptions to the resulting sequence can observe the action's outcome. + + + + + + Invokes the action asynchronously on the specified scheduler, surfacing the result through an observable sequence. + + Action to run asynchronously. + Scheduler to run the action on. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + or is null. + + + The action is called immediately, not during the subscription of the resulting sequence. + Multiple subscriptions to the resulting sequence can observe the action's outcome. + + + + + + Invokes the asynchronous action, surfacing the result through an observable sequence. + + Asynchronous action to run. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + is null. + + + The action is started immediately, not during the subscription of the resulting sequence. + Multiple subscriptions to the resulting sequence can observe the action's outcome. + + + + + + Invokes the asynchronous action, surfacing the result through an observable sequence. + + Asynchronous action to run. + Scheduler on which to notify observers. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + is null or is null. + + + The action is started immediately, not during the subscription of the resulting sequence. + Multiple subscriptions to the resulting sequence can observe the action's outcome. + + + + + + Invokes the asynchronous action, surfacing the result through an observable sequence. + The CancellationToken is shared by all subscriptions on the resulting observable sequence. See the remarks section for more information. + + Asynchronous action to run. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + is null. + + + The action is started immediately, not during the subscription of the resulting sequence. + Multiple subscriptions to the resulting sequence can observe the action's outcome. + + If any subscription to the resulting sequence is disposed, the CancellationToken is set. The observer associated to the disposed + subscription won't see the TaskCanceledException, but other observers will. You can protect against this using the Catch operator. + Be careful when handing out the resulting sequence because of this behavior. The most common use is to have a single subscription + to the resulting sequence, which controls the CancellationToken state. Alternatively, you can control subscription behavior using + multicast operators. + + + + + + + Invokes the asynchronous action, surfacing the result through an observable sequence. + The CancellationToken is shared by all subscriptions on the resulting observable sequence. See the remarks section for more information. + + Asynchronous action to run. + Scheduler on which to notify observers. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + is null or is null. + + + The action is started immediately, not during the subscription of the resulting sequence. + Multiple subscriptions to the resulting sequence can observe the action's outcome. + + If any subscription to the resulting sequence is disposed, the CancellationToken is set. The observer associated to the disposed + subscription won't see the TaskCanceledException, but other observers will. You can protect against this using the Catch operator. + Be careful when handing out the resulting sequence because of this behavior. The most common use is to have a single subscription + to the resulting sequence, which controls the CancellationToken state. Alternatively, you can control subscription behavior using + multicast operators. + + + + + + + Converts an asynchronous function into an observable sequence. Each subscription to the resulting sequence causes the function to be started. + + The type of the result returned by the asynchronous function. + Asynchronous function to convert. + An observable sequence exposing the result of invoking the function, or an exception. + is null. + + + + Converts an asynchronous function into an observable sequence. Each subscription to the resulting sequence causes the function to be started. + + The type of the result returned by the asynchronous function. + Asynchronous function to convert. + Scheduler on which to notify observers. + An observable sequence exposing the result of invoking the function, or an exception. + is null or is null. + + + + Converts an asynchronous function into an observable sequence. Each subscription to the resulting sequence causes the function to be started. + The CancellationToken passed to the asynchronous function is tied to the observable sequence's subscription that triggered the function's invocation and can be used for best-effort cancellation. + + The type of the result returned by the asynchronous function. + Asynchronous function to convert. + An observable sequence exposing the result of invoking the function, or an exception. + is null. + When a subscription to the resulting sequence is disposed, the CancellationToken that was fed to the asynchronous function will be signaled. + + + + Converts an asynchronous function into an observable sequence. Each subscription to the resulting sequence causes the function to be started. + The CancellationToken passed to the asynchronous function is tied to the observable sequence's subscription that triggered the function's invocation and can be used for best-effort cancellation. + + The type of the result returned by the asynchronous function. + Asynchronous function to convert. + Scheduler on which to notify observers. + An observable sequence exposing the result of invoking the function, or an exception. + is null or is null. + When a subscription to the resulting sequence is disposed, the CancellationToken that was fed to the asynchronous function will be signaled. + + + + Converts an asynchronous action into an observable sequence. Each subscription to the resulting sequence causes the action to be started. + + Asynchronous action to convert. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + is null. + + + + Converts an asynchronous action into an observable sequence. Each subscription to the resulting sequence causes the action to be started. + + Asynchronous action to convert. + Scheduler on which to notify observers. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + is null or is null. + + + + Converts an asynchronous action into an observable sequence. Each subscription to the resulting sequence causes the action to be started. + The CancellationToken passed to the asynchronous action is tied to the observable sequence's subscription that triggered the action's invocation and can be used for best-effort cancellation. + + Asynchronous action to convert. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + When a subscription to the resulting sequence is disposed, the CancellationToken that was fed to the asynchronous function will be signaled. + is null. + + + + Converts an asynchronous action into an observable sequence. Each subscription to the resulting sequence causes the action to be started. + The CancellationToken passed to the asynchronous action is tied to the observable sequence's subscription that triggered the action's invocation and can be used for best-effort cancellation. + + Asynchronous action to convert. + Scheduler on which to notify observers. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + When a subscription to the resulting sequence is disposed, the CancellationToken that was fed to the asynchronous function will be signaled. + is null or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + The type of the first argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + The type of the first argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the thirteenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the thirteenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the thirteenth argument passed to the function. + The type of the fourteenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the thirteenth argument passed to the function. + The type of the fourteenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the thirteenth argument passed to the function. + The type of the fourteenth argument passed to the function. + The type of the fifteenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the thirteenth argument passed to the function. + The type of the fourteenth argument passed to the function. + The type of the fifteenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the thirteenth argument passed to the function. + The type of the fourteenth argument passed to the function. + The type of the fifteenth argument passed to the function. + The type of the sixteenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the thirteenth argument passed to the function. + The type of the fourteenth argument passed to the function. + The type of the fifteenth argument passed to the function. + The type of the sixteenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Action to convert to an asynchronous action. + Asynchronous action. + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + The type of the first argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + The type of the first argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + The type of the thirteenth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + The type of the thirteenth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + The type of the thirteenth argument passed to the action. + The type of the fourteenth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + The type of the thirteenth argument passed to the action. + The type of the fourteenth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + The type of the thirteenth argument passed to the action. + The type of the fourteenth argument passed to the action. + The type of the fifteenth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + The type of the thirteenth argument passed to the action. + The type of the fourteenth argument passed to the action. + The type of the fifteenth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + The type of the thirteenth argument passed to the action. + The type of the fourteenth argument passed to the action. + The type of the fifteenth argument passed to the action. + The type of the sixteenth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + The type of the thirteenth argument passed to the action. + The type of the fourteenth argument passed to the action. + The type of the fifteenth argument passed to the action. + The type of the sixteenth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + or is null. + + + + Gets an awaiter that returns the last value of the observable sequence or throws an exception if the sequence is empty. + This operation subscribes to the observable sequence, making it hot. + + The type of the elements in the source sequence. + Source sequence to await. + Object that can be awaited. + is null. + + + + Gets an awaiter that returns the last value of the observable sequence or throws an exception if the sequence is empty. + This operation subscribes and connects to the observable sequence, making it hot. + + The type of the elements in the source sequence. + Source sequence to await. + Object that can be awaited. + is null. + + + + Gets an awaiter that returns the last value of the observable sequence or throws an exception if the sequence is empty. + This operation subscribes to the observable sequence, making it hot. The supplied CancellationToken can be used to cancel the subscription. + + The type of the elements in the source sequence. + Source sequence to await. + Cancellation token. + Object that can be awaited. + is null. + + + + Gets an awaiter that returns the last value of the observable sequence or throws an exception if the sequence is empty. + This operation subscribes and connects to the observable sequence, making it hot. The supplied CancellationToken can be used to cancel the subscription and connection. + + The type of the elements in the source sequence. + Source sequence to await. + Cancellation token. + Object that can be awaited. + is null. + + + + Multicasts the source sequence notifications through the specified subject to the resulting connectable observable. Upon connection of the + connectable observable, the subject is subscribed to the source exactly one, and messages are forwarded to the observers registered with + the connectable observable. For specializations with fixed subject types, see Publish, PublishLast, and Replay. + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be pushed into the specified subject. + Subject to push source elements into. + A connectable observable sequence that upon connection causes the source sequence to push results into the specified subject. + or is null. + + + + Multicasts the source sequence notifications through an instantiated subject into all uses of the sequence within a selector function. Each + subscription to the resulting sequence causes a separate multicast invocation, exposing the sequence resulting from the selector function's + invocation. For specializations with fixed subject types, see Publish, PublishLast, and Replay. + + The type of the elements in the source sequence. + The type of the elements produced by the intermediate subject. + The type of the elements in the result sequence. + Source sequence which will be multicasted in the specified selector function. + Factory function to create an intermediate subject through which the source sequence's elements will be multicast to the selector function. + Selector function which can use the multicasted source sequence subject to the policies enforced by the created subject. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + or or is null. + + + + Returns a connectable observable sequence that shares a single subscription to the underlying sequence. + This operator is a specialization of Multicast using a regular . + + The type of the elements in the source sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + A connectable observable sequence that shares a single subscription to the underlying sequence. + is null. + Subscribers will receive all notifications of the source from the time of the subscription on. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence. + This operator is a specialization of Multicast using a regular . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all notifications of the source from the time of the subscription on. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + or is null. + + + + + Returns a connectable observable sequence that shares a single subscription to the underlying sequence and starts with initialValue. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Initial value received by observers upon subscription. + A connectable observable sequence that shares a single subscription to the underlying sequence. + is null. + Subscribers will receive immediately receive the initial value, followed by all notifications of the source from the time of the subscription on. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence and starts with initialValue. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive immediately receive the initial value, followed by all notifications of the source from the time of the subscription on. + Initial value received by observers upon subscription. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + or is null. + + + + + Returns a connectable observable sequence that shares a single subscription to the underlying sequence containing only the last notification. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + A connectable observable sequence that shares a single subscription to the underlying sequence. + is null. + Subscribers will only receive the last notification of the source. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence containing only the last notification. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will only receive the last notification of the source. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + or is null. + + + + + Returns an observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + + The type of the elements in the source sequence. + Connectable observable sequence. + An observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + is null. + + + + Returns an observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + + The type of the elements in the source sequence. + Connectable observable sequence. + The time span that should be waited before possibly unsubscribing from the connectable observable. + An observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + is null. + + + + Returns an observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + + The type of the elements in the source sequence. + Connectable observable sequence. + The time span that should be waited before possibly unsubscribing from the connectable observable. + The scheduler to use for delayed unsubscription. + An observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + is null. + + + + Returns an observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + + The type of the elements in the source sequence. + Connectable observable sequence. + The minimum number of observers required to subscribe before establishing the connection to the source. + An observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + is null. + is non-positive. + + + + Returns an observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + + The type of the elements in the source sequence. + Connectable observable sequence. + The minimum number of observers required to subscribe before establishing the connection to the source. + The time span that should be waited before possibly unsubscribing from the connectable observable. + An observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + is null. + is non-positive. + + + + Returns an observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + + The type of the elements in the source sequence. + Connectable observable sequence. + The minimum number of observers required to subscribe before establishing the connection to the source. + The time span that should be waited before possibly unsubscribing from the connectable observable. + The scheduler to use for delayed unsubscription. + An observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + is null. + is non-positive. + + + + Automatically connect the upstream IConnectableObservable at most once when the + specified number of IObservers have subscribed to this IObservable. + + The type of the elements in the source sequence. + Connectable observable sequence. + The number of observers required to subscribe before the connection to source happens, non-positive value will trigger an immediate subscription. + If not null, the connection's IDisposable is provided to it. + An observable sequence that connects to the source at most once when the given number of observers have subscribed to it. + is null. + + + + Returns a connectable observable sequence that shares a single subscription to the underlying sequence replaying all notifications. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + A connectable observable sequence that shares a single subscription to the underlying sequence. + is null. + Subscribers will receive all the notifications of the source. + + + + + Returns a connectable observable sequence that shares a single subscription to the underlying sequence replaying all notifications. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Scheduler where connected observers will be invoked on. + A connectable observable sequence that shares a single subscription to the underlying sequence. + or is null. + Subscribers will receive all the notifications of the source. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying all notifications. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all the notifications of the source. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + or is null. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying all notifications. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all the notifications of the source. + Scheduler where connected observers within the selector function will be invoked on. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + or or is null. + + + + + Returns a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum time length for the replay buffer. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Maximum time length of the replay buffer. + A connectable observable sequence that shares a single subscription to the underlying sequence. + is null. + is less than TimeSpan.Zero. + Subscribers will receive all the notifications of the source subject to the specified replay buffer trimming policy. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum time length for the replay buffer. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all the notifications of the source subject to the specified replay buffer trimming policy. + Maximum time length of the replay buffer. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + or is null. + is less than TimeSpan.Zero. + + + + + Returns a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum time length for the replay buffer. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Maximum time length of the replay buffer. + Scheduler where connected observers will be invoked on. + A connectable observable sequence that shares a single subscription to the underlying sequence. + or is null. + is less than TimeSpan.Zero. + Subscribers will receive all the notifications of the source subject to the specified replay buffer trimming policy. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum time length for the replay buffer. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all the notifications of the source subject to the specified replay buffer trimming policy. + Maximum time length of the replay buffer. + Scheduler where connected observers within the selector function will be invoked on. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + or or is null. + is less than TimeSpan.Zero. + + + + + Returns a connectable observable sequence that shares a single subscription to the underlying sequence replaying bufferSize notifications. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Maximum element count of the replay buffer. + Scheduler where connected observers will be invoked on. + A connectable observable sequence that shares a single subscription to the underlying sequence. + or is null. + is less than zero. + Subscribers will receive all the notifications of the source subject to the specified replay buffer trimming policy. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum element count for the replay buffer. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all the notifications of the source subject to the specified replay buffer trimming policy. + Maximum element count of the replay buffer. + Scheduler where connected observers within the selector function will be invoked on. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + or or is null. + is less than zero. + + + + + Returns a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum element count for the replay buffer. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Maximum element count of the replay buffer. + A connectable observable sequence that shares a single subscription to the underlying sequence. + is null. + is less than zero. + Subscribers will receive all the notifications of the source subject to the specified replay buffer trimming policy. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum element count for the replay buffer. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all the notifications of the source subject to the specified replay buffer trimming policy. + Maximum element count of the replay buffer. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + or is null. + is less than zero. + + + + + Returns a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum time length and element count for the replay buffer. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Maximum element count of the replay buffer. + Maximum time length of the replay buffer. + A connectable observable sequence that shares a single subscription to the underlying sequence. + is null. + is less than zero. + is less than TimeSpan.Zero. + Subscribers will receive all the notifications of the source subject to the specified replay buffer trimming policy. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum time length and element count for the replay buffer. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all the notifications of the source subject to the specified replay buffer trimming policy. + Maximum element count of the replay buffer. + Maximum time length of the replay buffer. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + or is null. + is less than zero. + is less than TimeSpan.Zero. + + + + + Returns a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum time length and element count for the replay buffer. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Maximum element count of the replay buffer. + Maximum time length of the replay buffer. + Scheduler where connected observers will be invoked on. + A connectable observable sequence that shares a single subscription to the underlying sequence. + or is null. + is less than zero. + is less than TimeSpan.Zero. + Subscribers will receive all the notifications of the source subject to the specified replay buffer trimming policy. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum time length and element count for the replay buffer. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all the notifications of the source subject to the specified replay buffer trimming policy. + Maximum element count of the replay buffer. + Maximum time length of the replay buffer. + Scheduler where connected observers within the selector function will be invoked on. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + or or is null. + is less than zero. + is less than TimeSpan.Zero. + + + + + Produces an enumerable sequence of consecutive (possibly empty) chunks of the source sequence. + + The type of the elements in the source sequence. + Source observable sequence. + The enumerable sequence that returns consecutive (possibly empty) chunks upon each iteration. + is null. + + + + Produces an enumerable sequence that returns elements collected/aggregated from the source sequence between consecutive iterations. + + The type of the elements in the source sequence. + The type of the elements produced by the merge operation during collection. + Source observable sequence. + Factory to create a new collector object. + Merges a sequence element with the current collector. + The enumerable sequence that returns collected/aggregated elements from the source sequence upon each iteration. + or or is null. + + + + Produces an enumerable sequence that returns elements collected/aggregated from the source sequence between consecutive iterations. + + The type of the elements in the source sequence. + The type of the elements produced by the merge operation during collection. + Source observable sequence. + Factory to create the initial collector object. + Merges a sequence element with the current collector. + Factory to replace the current collector by a new collector. + The enumerable sequence that returns collected/aggregated elements from the source sequence upon each iteration. + or or or is null. + + + + Returns the first element of an observable sequence. + + The type of the elements in the source sequence. + Source observable sequence. + The first element in the observable sequence. + is null. + The source sequence is empty. + + + + + Returns the first element of an observable sequence that satisfies the condition in the predicate. + + The type of the elements in the source sequence. + Source observable sequence. + A predicate function to evaluate for elements in the source sequence. + The first element in the observable sequence that satisfies the condition in the predicate. + or is null. + No element satisfies the condition in the predicate. -or- The source sequence is empty. + + + + + Returns the first element of an observable sequence, or a default value if no such element exists. + + The type of the elements in the source sequence. + Source observable sequence. + The first element in the observable sequence, or a default value if no such element exists. + is null. + + + + + Returns the first element of an observable sequence that satisfies the condition in the predicate, or a default value if no such element exists. + + The type of the elements in the source sequence. + Source observable sequence. + A predicate function to evaluate for elements in the source sequence. + The first element in the observable sequence that satisfies the condition in the predicate, or a default value if no such element exists. + or is null. + + + + + Invokes an action for each element in the observable sequence, and blocks until the sequence is terminated. + + The type of the elements in the source sequence. + Source sequence. + Action to invoke for each element in the observable sequence. + or is null. + Because of its blocking nature, this operator is mainly used for testing. + + + + Invokes an action for each element in the observable sequence, incorporating the element's index, and blocks until the sequence is terminated. + + The type of the elements in the source sequence. + Source sequence. + Action to invoke for each element in the observable sequence. + or is null. + Because of its blocking nature, this operator is mainly used for testing. + + + + Returns an enumerator that enumerates all values of the observable sequence. + + The type of the elements in the source sequence. + An observable sequence to get an enumerator for. + The enumerator that can be used to enumerate over the elements in the observable sequence. + is null. + + + + Returns the last element of an observable sequence. + + The type of the elements in the source sequence. + Source observable sequence. + The last element in the observable sequence. + is null. + The source sequence is empty. + + + + + Returns the last element of an observable sequence that satisfies the condition in the predicate. + + The type of the elements in the source sequence. + Source observable sequence. + A predicate function to evaluate for elements in the source sequence. + The last element in the observable sequence that satisfies the condition in the predicate. + or is null. + No element satisfies the condition in the predicate. -or- The source sequence is empty. + + + + + Returns the last element of an observable sequence, or a default value if no such element exists. + + The type of the elements in the source sequence. + Source observable sequence. + The last element in the observable sequence, or a default value if no such element exists. + is null. + + + + + Returns the last element of an observable sequence that satisfies the condition in the predicate, or a default value if no such element exists. + + The type of the elements in the source sequence. + Source observable sequence. + A predicate function to evaluate for elements in the source sequence. + The last element in the observable sequence that satisfies the condition in the predicate, or a default value if no such element exists. + or is null. + + + + + Returns an enumerable sequence whose enumeration returns the latest observed element in the source observable sequence. + Enumerators on the resulting sequence will never produce the same element repeatedly, and will block until the next element becomes available. + + The type of the elements in the source sequence. + Source observable sequence. + The enumerable sequence that returns the last sampled element upon each iteration and subsequently blocks until the next element in the observable source sequence becomes available. + + + + Returns an enumerable sequence whose enumeration returns the most recently observed element in the source observable sequence, using the specified initial value in case no element has been sampled yet. + Enumerators on the resulting sequence never block and can produce the same element repeatedly. + + The type of the elements in the source sequence. + Source observable sequence. + Initial value that will be yielded by the enumerable sequence if no element has been sampled yet. + The enumerable sequence that returns the last sampled element upon each iteration. + is null. + + + + Returns an enumerable sequence whose enumeration blocks until the next element in the source observable sequence becomes available. + Enumerators on the resulting sequence will block until the next element becomes available. + + The type of the elements in the source sequence. + Source observable sequence. + The enumerable sequence that blocks upon each iteration until the next element in the observable source sequence becomes available. + is null. + + + + Returns the only element of an observable sequence, and throws an exception if there is not exactly one element in the observable sequence. + + The type of the elements in the source sequence. + Source observable sequence. + The single element in the observable sequence. + is null. + The source sequence contains more than one element. -or- The source sequence is empty. + + + + + Returns the only element of an observable sequence that satisfies the condition in the predicate, and throws an exception if there is not exactly one element matching the predicate in the observable sequence. + + The type of the elements in the source sequence. + Source observable sequence. + A predicate function to evaluate for elements in the source sequence. + The single element in the observable sequence that satisfies the condition in the predicate. + or is null. + No element satisfies the condition in the predicate. -or- More than one element satisfies the condition in the predicate. -or- The source sequence is empty. + + + + + Returns the only element of an observable sequence, or a default value if the observable sequence is empty; this method throws an exception if there is more than one element in the observable sequence. + + The type of the elements in the source sequence. + Source observable sequence. + The single element in the observable sequence, or a default value if no such element exists. + is null. + The source sequence contains more than one element. + + + + + Returns the only element of an observable sequence that satisfies the condition in the predicate, or a default value if no such element exists; this method throws an exception if there is more than one element matching the predicate in the observable sequence. + + The type of the elements in the source sequence. + Source observable sequence. + A predicate function to evaluate for elements in the source sequence. + The single element in the observable sequence that satisfies the condition in the predicate, or a default value if no such element exists. + or is null. + The sequence contains more than one element that satisfies the condition in the predicate. + + + + + Waits for the observable sequence to complete and returns the last element of the sequence. + If the sequence terminates with an OnError notification, the exception is thrown. + + The type of the elements in the source sequence. + Source observable sequence. + The last element in the observable sequence. + is null. + The source sequence is empty. + + + + Wraps the source sequence in order to run its observer callbacks on the specified scheduler. + + The type of the elements in the source sequence. + Source sequence. + Scheduler to notify observers on. + The source sequence whose observations happen on the specified scheduler. + or is null. + + This only invokes observer callbacks on a scheduler. In case the subscription and/or unsubscription actions have side-effects + that require to be run on a scheduler, use . + + + + + Wraps the source sequence in order to run its observer callbacks on the specified synchronization context. + + The type of the elements in the source sequence. + Source sequence. + Synchronization context to notify observers on. + The source sequence whose observations happen on the specified synchronization context. + or is null. + + This only invokes observer callbacks on a synchronization context. In case the subscription and/or unsubscription actions have side-effects + that require to be run on a synchronization context, use . + + + + + Wraps the source sequence in order to run its subscription and unsubscription logic on the specified scheduler. This operation is not commonly used; + see the remarks section for more information on the distinction between SubscribeOn and ObserveOn. + + The type of the elements in the source sequence. + Source sequence. + Scheduler to perform subscription and unsubscription actions on. + The source sequence whose subscriptions and unsubscriptions happen on the specified scheduler. + or is null. + + This only performs the side-effects of subscription and unsubscription on the specified scheduler. In order to invoke observer + callbacks on a scheduler, use . + + + + + Wraps the source sequence in order to run its subscription and unsubscription logic on the specified synchronization context. This operation is not commonly used; + see the remarks section for more information on the distinction between SubscribeOn and ObserveOn. + + The type of the elements in the source sequence. + Source sequence. + Synchronization context to perform subscription and unsubscription actions on. + The source sequence whose subscriptions and unsubscriptions happen on the specified synchronization context. + or is null. + + This only performs the side-effects of subscription and unsubscription on the specified synchronization context. In order to invoke observer + callbacks on a synchronization context, use . + + + + + Synchronizes the observable sequence such that observer notifications cannot be delivered concurrently. + This overload is useful to "fix" an observable sequence that exhibits concurrent callbacks on individual observers, which is invalid behavior for the query processor. + + The type of the elements in the source sequence. + Source sequence. + The source sequence whose outgoing calls to observers are synchronized. + is null. + + It's invalid behavior - according to the observer grammar - for a sequence to exhibit concurrent callbacks on a given observer. + This operator can be used to "fix" a source that doesn't conform to this rule. + + + + + Synchronizes the observable sequence such that observer notifications cannot be delivered concurrently, using the specified gate object. + This overload is useful when writing n-ary query operators, in order to prevent concurrent callbacks from different sources by synchronizing on a common gate object. + + The type of the elements in the source sequence. + Source sequence. + Gate object to synchronize each observer call on. + The source sequence whose outgoing calls to observers are synchronized on the given gate object. + or is null. + + + + Subscribes an observer to an enumerable sequence. + + The type of the elements in the source sequence. + Enumerable sequence to subscribe to. + Observer that will receive notifications from the enumerable sequence. + Disposable object that can be used to unsubscribe the observer from the enumerable + or is null. + + + + Subscribes an observer to an enumerable sequence, using the specified scheduler to run the enumeration loop. + + The type of the elements in the source sequence. + Enumerable sequence to subscribe to. + Observer that will receive notifications from the enumerable sequence. + Scheduler to perform the enumeration on. + Disposable object that can be used to unsubscribe the observer from the enumerable + or or is null. + + + + Converts an observable sequence to an enumerable sequence. + + The type of the elements in the source sequence. + An observable sequence to convert to an enumerable sequence. + The enumerable sequence containing the elements in the observable sequence. + is null. + + + + Exposes an observable sequence as an object with an -based .NET event. + + Observable source sequence. + The event source object. + is null. + + + + Exposes an observable sequence as an object with an -based .NET event. + + The type of the elements in the source sequence. + Observable source sequence. + The event source object. + is null. + + + + Exposes an observable sequence as an object with a .NET event, conforming to the standard .NET event pattern. + + The type of the event data generated by the event. + Observable source sequence. + The event source object. + is null. + + + + Converts an enumerable sequence to an observable sequence. + + The type of the elements in the source sequence. + Enumerable sequence to convert to an observable sequence. + The observable sequence whose elements are pulled from the given enumerable sequence. + is null. + + + + Converts an enumerable sequence to an observable sequence, using the specified scheduler to run the enumeration loop. + + The type of the elements in the source sequence. + Enumerable sequence to convert to an observable sequence. + Scheduler to run the enumeration of the input sequence on. + The observable sequence whose elements are pulled from the given enumerable sequence. + or is null. + + + + Creates an observable sequence from a specified Subscribe method implementation. + + The type of the elements in the produced sequence. + Implementation of the resulting observable sequence's Subscribe method. + The observable sequence with the specified implementation for the Subscribe method. + is null. + + Use of this operator is preferred over manual implementation of the interface. In case + you need a type implementing rather than an anonymous implementation, consider using + the abstract base class. + + + + + Creates an observable sequence from a specified Subscribe method implementation. + + The type of the elements in the produced sequence. + Implementation of the resulting observable sequence's Subscribe method, returning an Action delegate that will be wrapped in an IDisposable. + The observable sequence with the specified implementation for the Subscribe method. + is null. + + Use of this operator is preferred over manual implementation of the interface. In case + you need a type implementing rather than an anonymous implementation, consider using + the abstract base class. + + + + + Creates an observable sequence from a specified cancellable asynchronous Subscribe method. + The CancellationToken passed to the asynchronous Subscribe method is tied to the returned disposable subscription, allowing best-effort cancellation. + + The type of the elements in the produced sequence. + Asynchronous method used to produce elements. + The observable sequence surfacing the elements produced by the asynchronous method. + is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + When a subscription to the resulting sequence is disposed, the CancellationToken that was fed to the asynchronous subscribe function will be signaled. + + + + Creates an observable sequence from a specified asynchronous Subscribe method. + + The type of the elements in the produced sequence. + Asynchronous method used to produce elements. + The observable sequence surfacing the elements produced by the asynchronous method. + is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + + + + Creates an observable sequence from a specified cancellable asynchronous Subscribe method. + The CancellationToken passed to the asynchronous Subscribe method is tied to the returned disposable subscription, allowing best-effort cancellation. + + The type of the elements in the produced sequence. + Asynchronous method used to implement the resulting sequence's Subscribe method. + The observable sequence with the specified implementation for the Subscribe method. + is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + When a subscription to the resulting sequence is disposed, the CancellationToken that was fed to the asynchronous subscribe function will be signaled. + + + + Creates an observable sequence from a specified asynchronous Subscribe method. + + The type of the elements in the produced sequence. + Asynchronous method used to implement the resulting sequence's Subscribe method. + The observable sequence with the specified implementation for the Subscribe method. + is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + + + + Creates an observable sequence from a specified cancellable asynchronous Subscribe method. + The CancellationToken passed to the asynchronous Subscribe method is tied to the returned disposable subscription, allowing best-effort cancellation. + + The type of the elements in the produced sequence. + Asynchronous method used to implement the resulting sequence's Subscribe method, returning an Action delegate that will be wrapped in an IDisposable. + The observable sequence with the specified implementation for the Subscribe method. + is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + When a subscription to the resulting sequence is disposed, the CancellationToken that was fed to the asynchronous subscribe function will be signaled. + + + + Creates an observable sequence from a specified asynchronous Subscribe method. + + The type of the elements in the produced sequence. + Asynchronous method used to implement the resulting sequence's Subscribe method, returning an Action delegate that will be wrapped in an IDisposable. + The observable sequence with the specified implementation for the Subscribe method. + is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + + + + Returns an observable sequence that invokes the specified factory function whenever a new observer subscribes. + + The type of the elements in the sequence returned by the factory function, and in the resulting sequence. + Observable factory function to invoke for each observer that subscribes to the resulting sequence. + An observable sequence whose observers trigger an invocation of the given observable factory function. + is null. + + + + Returns an observable sequence that starts the specified asynchronous factory function whenever a new observer subscribes. + + The type of the elements in the sequence returned by the factory function, and in the resulting sequence. + Asynchronous factory function to start for each observer that subscribes to the resulting sequence. + An observable sequence whose observers trigger the given asynchronous observable factory function to be started. + is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + + + + Returns an observable sequence that starts the specified cancellable asynchronous factory function whenever a new observer subscribes. + The CancellationToken passed to the asynchronous factory function is tied to the returned disposable subscription, allowing best-effort cancellation. + + The type of the elements in the sequence returned by the factory function, and in the resulting sequence. + Asynchronous factory function to start for each observer that subscribes to the resulting sequence. + An observable sequence whose observers trigger the given asynchronous observable factory function to be started. + is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + When a subscription to the resulting sequence is disposed, the CancellationToken that was fed to the asynchronous observable factory function will be signaled. + + + + Returns an empty observable sequence. + + The type used for the type parameter of the resulting sequence. + An observable sequence with no elements. + + + + Returns an empty observable sequence. + + The type used for the type parameter of the resulting sequence. + Object solely used to infer the type of the type parameter. This parameter is typically used when creating a sequence of anonymously typed elements. + An observable sequence with no elements. + + + + Returns an empty observable sequence, using the specified scheduler to send out the single OnCompleted message. + + The type used for the type parameter of the resulting sequence. + Scheduler to send the termination call on. + An observable sequence with no elements. + is null. + + + + Returns an empty observable sequence, using the specified scheduler to send out the single OnCompleted message. + + The type used for the type parameter of the resulting sequence. + Scheduler to send the termination call on. + Object solely used to infer the type of the type parameter. This parameter is typically used when creating a sequence of anonymously typed elements. + An observable sequence with no elements. + is null. + + + + Generates an observable sequence by running a state-driven loop producing the sequence's elements. + + The type of the state used in the generator loop. + The type of the elements in the produced sequence. + Initial state. + Condition to terminate generation (upon returning false). + Iteration step function. + Selector function for results produced in the sequence. + The generated sequence. + or or is null. + + + + Generates an observable sequence by running a state-driven loop producing the sequence's elements, using the specified scheduler to send out observer messages. + + The type of the state used in the generator loop. + The type of the elements in the produced sequence. + Initial state. + Condition to terminate generation (upon returning false). + Iteration step function. + Selector function for results produced in the sequence. + Scheduler on which to run the generator loop. + The generated sequence. + or or or is null. + + + + Returns a non-terminating observable sequence, which can be used to denote an infinite duration (e.g. when using reactive joins). + + The type used for the type parameter of the resulting sequence. + An observable sequence whose observers will never get called. + + + + Returns a non-terminating observable sequence, which can be used to denote an infinite duration (e.g. when using reactive joins). + + The type used for the type parameter of the resulting sequence. + Object solely used to infer the type of the type parameter. This parameter is typically used when creating a sequence of anonymously typed elements. + An observable sequence whose observers will never get called. + + + + Generates an observable sequence of integral numbers within a specified range. + + The value of the first integer in the sequence. + The number of sequential integers to generate. + An observable sequence that contains a range of sequential integral numbers. + is less than zero. -or- + - 1 is larger than . + + + + Generates an observable sequence of integral numbers within a specified range, using the specified scheduler to send out observer messages. + + The value of the first integer in the sequence. + The number of sequential integers to generate. + Scheduler to run the generator loop on. + An observable sequence that contains a range of sequential integral numbers. + is less than zero. -or- + - 1 is larger than . + is null. + + + + Generates an observable sequence that repeats the given element infinitely. + + The type of the element that will be repeated in the produced sequence. + Element to repeat. + An observable sequence that repeats the given element infinitely. + + + + Generates an observable sequence that repeats the given element infinitely, using the specified scheduler to send out observer messages. + + The type of the element that will be repeated in the produced sequence. + Element to repeat. + Scheduler to run the producer loop on. + An observable sequence that repeats the given element infinitely. + is null. + + + + Generates an observable sequence that repeats the given element the specified number of times. + + The type of the element that will be repeated in the produced sequence. + Element to repeat. + Number of times to repeat the element. + An observable sequence that repeats the given element the specified number of times. + is less than zero. + + + + Generates an observable sequence that repeats the given element the specified number of times, using the specified scheduler to send out observer messages. + + The type of the element that will be repeated in the produced sequence. + Element to repeat. + Number of times to repeat the element. + Scheduler to run the producer loop on. + An observable sequence that repeats the given element the specified number of times. + is less than zero. + is null. + + + + Returns an observable sequence that contains a single element. + + The type of the element that will be returned in the produced sequence. + Single element in the resulting observable sequence. + An observable sequence containing the single specified element. + + + + Returns an observable sequence that contains a single element, using the specified scheduler to send out observer messages. + + The type of the element that will be returned in the produced sequence. + Single element in the resulting observable sequence. + Scheduler to send the single element on. + An observable sequence containing the single specified element. + is null. + + + + Returns an observable sequence that terminates with an exception. + + The type used for the type parameter of the resulting sequence. + Exception object used for the sequence's termination. + The observable sequence that terminates exceptionally with the specified exception object. + is null. + + + + Returns an observable sequence that terminates with an exception. + + The type used for the type parameter of the resulting sequence. + Exception object used for the sequence's termination. + Object solely used to infer the type of the type parameter. This parameter is typically used when creating a sequence of anonymously typed elements. + The observable sequence that terminates exceptionally with the specified exception object. + is null. + + + + Returns an observable sequence that terminates with an exception, using the specified scheduler to send out the single OnError message. + + The type used for the type parameter of the resulting sequence. + Exception object used for the sequence's termination. + Scheduler to send the exceptional termination call on. + The observable sequence that terminates exceptionally with the specified exception object. + or is null. + + + + Returns an observable sequence that terminates with an exception, using the specified scheduler to send out the single OnError message. + + The type used for the type parameter of the resulting sequence. + Exception object used for the sequence's termination. + Scheduler to send the exceptional termination call on. + Object solely used to infer the type of the type parameter. This parameter is typically used when creating a sequence of anonymously typed elements. + The observable sequence that terminates exceptionally with the specified exception object. + or is null. + + + + Constructs an observable sequence that depends on a resource object, whose lifetime is tied to the resulting observable sequence's lifetime. + + The type of the elements in the produced sequence. + The type of the resource used during the generation of the resulting sequence. Needs to implement . + Factory function to obtain a resource object. + Factory function to obtain an observable sequence that depends on the obtained resource. + An observable sequence whose lifetime controls the lifetime of the dependent resource object. + or is null. + + + + Constructs an observable sequence that depends on a resource object, whose lifetime is tied to the resulting observable sequence's lifetime. The resource is obtained and used through asynchronous methods. + The CancellationToken passed to the asynchronous methods is tied to the returned disposable subscription, allowing best-effort cancellation at any stage of the resource acquisition or usage. + + The type of the elements in the produced sequence. + The type of the resource used during the generation of the resulting sequence. Needs to implement . + Asynchronous factory function to obtain a resource object. + Asynchronous factory function to obtain an observable sequence that depends on the obtained resource. + An observable sequence whose lifetime controls the lifetime of the dependent resource object. + or is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + When a subscription to the resulting sequence is disposed, the CancellationToken that was fed to the asynchronous resource factory and observable factory functions will be signaled. + + + + Converts a .NET event, conforming to the standard .NET event pattern based on , to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on , to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on a supplied event delegate type, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + The delegate type of the event to be converted. + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on a supplied event delegate type, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + The delegate type of the event to be converted. + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on , to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + The delegate type of the event to be converted. + The type of the event data generated by the event. + A function used to convert the given event handler to a delegate compatible with the underlying .NET event. The resulting delegate is used in calls to the addHandler and removeHandler action parameters. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on , to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + The delegate type of the event to be converted. + The type of the event data generated by the event. + A function used to convert the given event handler to a delegate compatible with the underlying .NET event. The resulting delegate is used in calls to the addHandler and removeHandler action parameters. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on a supplied event delegate type with a strongly typed sender parameter, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + The delegate type of the event to be converted. + The type of the sender that raises the event. + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on a supplied event delegate type with a strongly typed sender parameter, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + The delegate type of the event to be converted. + The type of the sender that raises the event. + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on , to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on , to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts an instance .NET event, conforming to the standard .NET event pattern with an parameter, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the target object type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Object instance that exposes the event to convert. + Name of the event to convert. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts an instance .NET event, conforming to the standard .NET event pattern with an parameter, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the target object type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Object instance that exposes the event to convert. + Name of the event to convert. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts an instance .NET event, conforming to the standard .NET event pattern with strongly typed event arguments, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the target object type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + The type of the event data generated by the event. + Object instance that exposes the event to convert. + Name of the event to convert. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. -or- The event's second argument type is not assignable to TEventArgs. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts an instance .NET event, conforming to the standard .NET event pattern with strongly typed event arguments, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the target object type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + The type of the event data generated by the event. + Object instance that exposes the event to convert. + Name of the event to convert. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. -or- The event's second argument type is not assignable to TEventArgs. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts an instance .NET event, conforming to the standard .NET event pattern with a strongly typed sender and strongly typed event arguments, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the target object type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + The type of the sender that raises the event. + The type of the event data generated by the event. + Object instance that exposes the event to convert. + Name of the event to convert. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. -or- The event's first argument type is not assignable to TSender. -or- The event's second argument type is not assignable to TEventArgs. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts an instance .NET event, conforming to the standard .NET event pattern with a strongly typed sender and strongly typed event arguments, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the target object type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + The type of the sender that raises the event. + The type of the event data generated by the event. + Object instance that exposes the event to convert. + Name of the event to convert. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. -or- The event's first argument type is not assignable to TSender. -or- The event's second argument type is not assignable to TEventArgs. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a static .NET event, conforming to the standard .NET event pattern with an parameter, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the specified type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Type that exposes the static event to convert. + Name of the event to convert. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a static .NET event, conforming to the standard .NET event pattern with an parameter, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the specified type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Type that exposes the static event to convert. + Name of the event to convert. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a static .NET event, conforming to the standard .NET event pattern with strongly typed event arguments, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the specified type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + The type of the event data generated by the event. + Type that exposes the static event to convert. + Name of the event to convert. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. -or- The event's second argument type is not assignable to TEventArgs. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a static .NET event, conforming to the standard .NET event pattern with strongly typed event arguments, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the specified type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + The type of the event data generated by the event. + Type that exposes the static event to convert. + Name of the event to convert. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. -or- The event's second argument type is not assignable to TEventArgs. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a static .NET event, conforming to the standard .NET event pattern with a strongly typed sender and strongly typed event arguments, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the specified type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + The type of the sender that raises the event. + The type of the event data generated by the event. + Type that exposes the static event to convert. + Name of the event to convert. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. -or- The event's first argument type is not assignable to TSender. -or- The event's second argument type is not assignable to TEventArgs. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a static .NET event, conforming to the standard .NET event pattern with a strongly typed sender and strongly typed event arguments, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the specified type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + The type of the sender that raises the event. + The type of the event data generated by the event. + Type that exposes the static event to convert. + Name of the event to convert. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. -or- The event's first argument type is not assignable to TSender. -or- The event's second argument type is not assignable to TEventArgs. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a .NET event to an observable sequence, using a conversion function to obtain the event delegate. Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events conforming to the standard .NET event pattern, use any of the FromEventPattern overloads instead. + + The delegate type of the event to be converted. + The type of the event data generated by the event. + A function used to convert the given event handler to a delegate compatible with the underlying .NET event. The resulting delegate is used in calls to the addHandler and removeHandler action parameters. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains the event argument objects passed to the invocations of the underlying .NET event. + or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEvent, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEvent, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEvent calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a .NET event to an observable sequence, using a conversion function to obtain the event delegate. Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events conforming to the standard .NET event pattern, use any of the FromEventPattern overloads instead. + + The delegate type of the event to be converted. + The type of the event data generated by the event. + A function used to convert the given event handler to a delegate compatible with the underlying .NET event. The resulting delegate is used in calls to the addHandler and removeHandler action parameters. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains the event argument objects passed to the invocations of the underlying .NET event. + or or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEvent calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEvent that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a .NET event to an observable sequence, using a supplied event delegate type. Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events conforming to the standard .NET event pattern, use any of the FromEventPattern overloads instead. + + The delegate type of the event to be converted. + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains the event argument objects passed to the invocations of the underlying .NET event. + or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEvent, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEvent, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEvent calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a .NET event to an observable sequence, using a supplied event delegate type. Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events conforming to the standard .NET event pattern, use any of the FromEventPattern overloads instead. + + The delegate type of the event to be converted. + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains the event argument objects passed to the invocations of the underlying .NET event. + or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEvent calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEvent that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a generic Action-based .NET event to an observable sequence. Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events conforming to the standard .NET event pattern, use any of the FromEventPattern overloads instead. + + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains the event argument objects passed to the invocations of the underlying .NET event. + or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEvent, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEvent, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEvent calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a generic Action-based .NET event to an observable sequence. Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events conforming to the standard .NET event pattern, use any of the FromEventPattern overloads instead. + + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains the event argument objects passed to the invocations of the underlying .NET event. + or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEvent calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEvent that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts an Action-based .NET event to an observable sequence. Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events conforming to the standard .NET event pattern, use any of the FromEventPattern overloads instead. + + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains the event argument objects passed to the invocations of the underlying .NET event. + or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEvent, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEvent, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEvent calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts an Action-based .NET event to an observable sequence. Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events conforming to the standard .NET event pattern, use any of the FromEventPattern overloads instead. + + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains the event argument objects passed to the invocations of the underlying .NET event. + or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEvent calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEvent that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Invokes an action for each element in the observable sequence, and returns a Task object that will get signaled when the sequence terminates. + + The type of the elements in the source sequence. + Source sequence. + Action to invoke for each element in the observable sequence. + Task that signals the termination of the sequence. + or is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + + + + Invokes an action for each element in the observable sequence, and returns a Task object that will get signaled when the sequence terminates. + The loop can be quit prematurely by setting the specified cancellation token. + + The type of the elements in the source sequence. + Source sequence. + Action to invoke for each element in the observable sequence. + Cancellation token used to stop the loop. + Task that signals the termination of the sequence. + or is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + + + + Invokes an action for each element in the observable sequence, incorporating the element's index, and returns a Task object that will get signaled when the sequence terminates. + + The type of the elements in the source sequence. + Source sequence. + Action to invoke for each element in the observable sequence. + Task that signals the termination of the sequence. + or is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + + + + Invokes an action for each element in the observable sequence, incorporating the element's index, and returns a Task object that will get signaled when the sequence terminates. + The loop can be quit prematurely by setting the specified cancellation token. + + The type of the elements in the source sequence. + Source sequence. + Action to invoke for each element in the observable sequence. + Cancellation token used to stop the loop. + Task that signals the termination of the sequence. + or is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + + + + Uses to determine which source in to return, choosing if no match is found. + + The type of the value returned by the selector function, used to look up the resulting source. + The type of the elements in the result sequence. + Selector function invoked to determine the source to lookup in the dictionary. + Dictionary of sources to select from based on the invocation result. + Default source to select in case no matching source in is found. + The observable sequence retrieved from the dictionary based on the invocation result, or if no match is found. + or or is null. + + + + Uses to determine which source in to return, choosing an empty sequence on the specified scheduler if no match is found. + + The type of the value returned by the selector function, used to look up the resulting source. + The type of the elements in the result sequence. + Selector function invoked to determine the source to lookup in the dictionary. + Dictionary of sources to select from based on the invocation result. + Scheduler to generate an empty sequence on in case no matching source in is found. + The observable sequence retrieved from the dictionary based on the invocation result, or an empty sequence if no match is found. + or or is null. + + + + Uses to determine which source in to return, choosing an empty sequence if no match is found. + + The type of the value returned by the selector function, used to look up the resulting source. + The type of the elements in the result sequence. + Selector function invoked to determine the source to lookup in the dictionary. + Dictionary of sources to select from based on the invocation result. + The observable sequence retrieved from the dictionary based on the invocation result, or an empty sequence if no match is found. + or is null. + + + + Repeats the given as long as the specified holds, where the is evaluated after each repeated completed. + + The type of the elements in the source sequence. + Source to repeat as long as the function evaluates to true. + Condition that will be evaluated upon the completion of an iteration through the , to determine whether repetition of the source is required. + The observable sequence obtained by concatenating the sequence as long as the holds. + or is null. + + + + Concatenates the observable sequences obtained by running the for each element in the given enumerable . + + The type of the elements in the enumerable source sequence. + The type of the elements in the observable result sequence. + Enumerable source for which each element will be mapped onto an observable source that will be concatenated in the result sequence. + Function to select an observable source for each element in the . + The observable sequence obtained by concatenating the sources returned by for each element in the . + or is null. + + + + If the specified evaluates true, select the sequence. Otherwise, select the sequence. + + The type of the elements in the result sequence. + Condition evaluated to decide which sequence to return. + Sequence returned in case evaluates true. + Sequence returned in case evaluates false. + if evaluates true; otherwise. + or or is null. + + + + If the specified evaluates true, select the sequence. Otherwise, return an empty sequence. + + The type of the elements in the result sequence. + Condition evaluated to decide which sequence to return. + Sequence returned in case evaluates true. + if evaluates true; an empty sequence otherwise. + or is null. + + + + If the specified evaluates true, select the sequence. Otherwise, return an empty sequence generated on the specified scheduler. + + The type of the elements in the result sequence. + Condition evaluated to decide which sequence to return. + Sequence returned in case evaluates true. + Scheduler to generate an empty sequence on in case evaluates false. + if evaluates true; an empty sequence otherwise. + or or is null. + + + + Repeats the given as long as the specified holds, where the is evaluated before each repeated is subscribed to. + + The type of the elements in the source sequence. + Source to repeat as long as the function evaluates to true. + Condition that will be evaluated before subscription to the , to determine whether repetition of the source is required. + The observable sequence obtained by concatenating the sequence as long as the holds. + or is null. + + + + Creates a pattern that matches when both observable sequences have an available element. + + The type of the elements in the left sequence. + The type of the elements in the right sequence. + Observable sequence to match with the right sequence. + Observable sequence to match with the left sequence. + Pattern object that matches when both observable sequences have an available element. + or is null. + + + + Matches when the observable sequence has an available element and projects the element by invoking the selector function. + + The type of the elements in the source sequence. + The type of the elements in the result sequence, returned by the selector function. + Observable sequence to apply the selector on. + Selector that will be invoked for elements in the source sequence. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + or is null. + + + + Joins together the results from several patterns. + + The type of the elements in the result sequence, obtained from the specified patterns. + A series of plans created by use of the Then operator on patterns. + An observable sequence with the results from matching several patterns. + is null. + + + + Joins together the results from several patterns. + + The type of the elements in the result sequence, obtained from the specified patterns. + A series of plans created by use of the Then operator on patterns. + An observable sequence with the results form matching several patterns. + is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Fourteenth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the fifteenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Fourteenth observable source. + Fifteenth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or or or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the fifteenth source sequence. + The type of the elements in the sixteenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Fourteenth observable source. + Fifteenth observable source. + Sixteenth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or or or or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Propagates the observable sequence that reacts first. + + The type of the elements in the source sequences. + First observable sequence. + Second observable sequence. + An observable sequence that surfaces either of the given sequences, whichever reacted first. + or is null. + + + + Propagates the observable sequence that reacts first. + + The type of the elements in the source sequences. + Observable sources competing to react first. + An observable sequence that surfaces any of the given sequences, whichever reacted first. + is null. + + + + Propagates the observable sequence that reacts first. + + The type of the elements in the source sequences. + Observable sources competing to react first. + An observable sequence that surfaces any of the given sequences, whichever reacted first. + is null. + + + + Projects each element of an observable sequence into consecutive non-overlapping buffers. + + The type of the elements in the source sequence, and in the lists in the result sequence. + The type of the elements in the sequences indicating buffer closing events. + Source sequence to produce buffers over. + A function invoked to define the boundaries of the produced buffers. A new buffer is started when the previous one is closed. + An observable sequence of buffers. + or is null. + + + + Projects each element of an observable sequence into zero or more buffers. + + The type of the elements in the source sequence, and in the lists in the result sequence. + The type of the elements in the sequence indicating buffer opening events, also passed to the closing selector to obtain a sequence of buffer closing events. + The type of the elements in the sequences indicating buffer closing events. + Source sequence to produce buffers over. + Observable sequence whose elements denote the creation of new buffers. + A function invoked to define the closing of each produced buffer. + An observable sequence of buffers. + or or is null. + + + + Projects each element of an observable sequence into consecutive non-overlapping buffers. + + The type of the elements in the source sequence, and in the lists in the result sequence. + The type of the elements in the sequences indicating buffer boundary events. + Source sequence to produce buffers over. + Sequence of buffer boundary markers. The current buffer is closed and a new buffer is opened upon receiving a boundary marker. + An observable sequence of buffers. + or is null. + + + + Continues an observable sequence that is terminated by an exception of the specified type with the observable sequence produced by the handler. + + The type of the elements in the source sequence and sequences returned by the exception handler function. + The type of the exception to catch and handle. Needs to derive from . + Source sequence. + Exception handler function, producing another observable sequence. + An observable sequence containing the source sequence's elements, followed by the elements produced by the handler's resulting observable sequence in case an exception occurred. + or is null. + + + + Continues an observable sequence that is terminated by an exception with the next observable sequence. + + The type of the elements in the source sequence and handler sequence. + First observable sequence whose exception (if any) is caught. + Second observable sequence used to produce results when an error occurred in the first sequence. + An observable sequence containing the first sequence's elements, followed by the elements of the second sequence in case an exception occurred. + or is null. + + + + Continues an observable sequence that is terminated by an exception with the next observable sequence. + + The type of the elements in the source and handler sequences. + Observable sequences to catch exceptions for. + An observable sequence containing elements from consecutive source sequences until a source sequence terminates successfully. + is null. + + + + Continues an observable sequence that is terminated by an exception with the next observable sequence. + + The type of the elements in the source and handler sequences. + Observable sequences to catch exceptions for. + An observable sequence containing elements from consecutive source sequences until a source sequence terminates successfully. + is null. + + + + Merges two observable sequences into one observable sequence by using the selector function whenever one of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Function to invoke whenever either of the sources produces an element. + An observable sequence containing the result of combining elements of both sources using the specified result selector function. + or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the source sequences. + The type of the elements in the result sequence, returned by the selector function. + Observable sources. + Function to invoke whenever any of the sources produces an element. For efficiency, the input list is reused after the selector returns. Either aggregate or copy the values during the function call. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by emitting a list with the latest source elements whenever any of the observable sequences produces an element. + + The type of the elements in the source sequences, and in the lists in the result sequence. + Observable sources. + An observable sequence containing lists of the latest elements of the sources. + is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by emitting a list with the latest source elements whenever any of the observable sequences produces an element. + + The type of the elements in the source sequences, and in the lists in the result sequence. + Observable sources. + An observable sequence containing lists of the latest elements of the sources. + is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Concatenates the second observable sequence to the first observable sequence upon successful termination of the first. + + The type of the elements in the source sequences. + First observable sequence. + Second observable sequence. + An observable sequence that contains the elements of the first sequence, followed by those of the second the sequence. + or is null. + + + + Concatenates all of the specified observable sequences, as long as the previous observable sequence terminated successfully. + + The type of the elements in the source sequences. + Observable sequences to concatenate. + An observable sequence that contains the elements of each given sequence, in sequential order. + is null. + + + + Concatenates all observable sequences in the given enumerable sequence, as long as the previous observable sequence terminated successfully. + + The type of the elements in the source sequences. + Observable sequences to concatenate. + An observable sequence that contains the elements of each given sequence, in sequential order. + is null. + + + + Concatenates all inner observable sequences, as long as the previous observable sequence terminated successfully. + + The type of the elements in the source sequences. + Observable sequence of inner observable sequences. + An observable sequence that contains the elements of each observed inner sequence, in sequential order. + is null. + + + + Concatenates all task results, as long as the previous task terminated successfully. + + The type of the results produced by the tasks. + Observable sequence of tasks. + An observable sequence that contains the results of each task, in sequential order. + is null. + If the tasks support cancellation, consider manual conversion of the tasks using , followed by a concatenation operation using . + + + + Merges elements from all inner observable sequences into a single observable sequence. + + The type of the elements in the source sequences. + Observable sequence of inner observable sequences. + The observable sequence that merges the elements of the inner sequences. + is null. + + + + Merges results from all source tasks into a single observable sequence. + + The type of the results produced by the source tasks. + Observable sequence of tasks. + The observable sequence that merges the results of the source tasks. + is null. + If the tasks support cancellation, consider manual conversion of the tasks using , followed by a merge operation using . + + + + Merges elements from all inner observable sequences into a single observable sequence, limiting the number of concurrent subscriptions to inner sequences. + + The type of the elements in the source sequences. + Observable sequence of inner observable sequences. + Maximum number of inner observable sequences being subscribed to concurrently. + The observable sequence that merges the elements of the inner sequences. + is null. + is less than or equal to zero. + + + + Merges elements from all observable sequences in the given enumerable sequence into a single observable sequence, limiting the number of concurrent subscriptions to inner sequences. + + The type of the elements in the source sequences. + Enumerable sequence of observable sequences. + Maximum number of observable sequences being subscribed to concurrently. + The observable sequence that merges the elements of the observable sequences. + is null. + is less than or equal to zero. + + + + Merges elements from all observable sequences in the given enumerable sequence into a single observable sequence, limiting the number of concurrent subscriptions to inner sequences, and using the specified scheduler for enumeration of and subscription to the sources. + + The type of the elements in the source sequences. + Enumerable sequence of observable sequences. + Maximum number of observable sequences being subscribed to concurrently. + Scheduler to run the enumeration of the sequence of sources on. + The observable sequence that merges the elements of the observable sequences. + or is null. + is less than or equal to zero. + + + + Merges elements from two observable sequences into a single observable sequence. + + The type of the elements in the source sequences. + First observable sequence. + Second observable sequence. + The observable sequence that merges the elements of the given sequences. + or is null. + + + + Merges elements from two observable sequences into a single observable sequence, using the specified scheduler for enumeration of and subscription to the sources. + + The type of the elements in the source sequences. + First observable sequence. + Second observable sequence. + Scheduler used to introduce concurrency for making subscriptions to the given sequences. + The observable sequence that merges the elements of the given sequences. + or or is null. + + + + Merges elements from all of the specified observable sequences into a single observable sequence. + + The type of the elements in the source sequences. + Observable sequences. + The observable sequence that merges the elements of the observable sequences. + is null. + + + + Merges elements from all of the specified observable sequences into a single observable sequence, using the specified scheduler for enumeration of and subscription to the sources. + + The type of the elements in the source sequences. + Observable sequences. + Scheduler to run the enumeration of the sequence of sources on. + The observable sequence that merges the elements of the observable sequences. + or is null. + + + + Merges elements from all observable sequences in the given enumerable sequence into a single observable sequence. + + The type of the elements in the source sequences. + Enumerable sequence of observable sequences. + The observable sequence that merges the elements of the observable sequences. + is null. + + + + Merges elements from all observable sequences in the given enumerable sequence into a single observable sequence, using the specified scheduler for enumeration of and subscription to the sources. + + The type of the elements in the source sequences. + Enumerable sequence of observable sequences. + Scheduler to run the enumeration of the sequence of sources on. + The observable sequence that merges the elements of the observable sequences. + or is null. + + + + Concatenates the second observable sequence to the first observable sequence upon successful or exceptional termination of the first. + + The type of the elements in the source sequences. + First observable sequence whose exception (if any) is caught. + Second observable sequence used to produce results after the first sequence terminates. + An observable sequence that concatenates the first and second sequence, even if the first sequence terminates exceptionally. + or is null. + + + + Concatenates all of the specified observable sequences, even if the previous observable sequence terminated exceptionally. + + The type of the elements in the source sequences. + Observable sequences to concatenate. + An observable sequence that concatenates the source sequences, even if a sequence terminates exceptionally. + is null. + + + + Concatenates all observable sequences in the given enumerable sequence, even if the previous observable sequence terminated exceptionally. + + The type of the elements in the source sequences. + Observable sequences to concatenate. + An observable sequence that concatenates the source sequences, even if a sequence terminates exceptionally. + is null. + + + + Returns the elements from the source observable sequence only after the other observable sequence produces an element. + Starting from Rx.NET 4.0, this will subscribe to before subscribing to + so in case emits an element right away, elements from are not missed. + + The type of the elements in the source sequence. + The type of the elements in the other sequence that indicates the end of skip behavior. + Source sequence to propagate elements for. + Observable sequence that triggers propagation of elements of the source sequence. + An observable sequence containing the elements of the source sequence starting from the point the other sequence triggered propagation. + or is null. + + + + Transforms an observable sequence of observable sequences into an observable sequence + producing values only from the most recent observable sequence. + Each time a new inner observable sequence is received, unsubscribe from the + previous inner observable sequence. + + The type of the elements in the source sequences. + Observable sequence of inner observable sequences. + The observable sequence that at any point in time produces the elements of the most recent inner observable sequence that has been received. + is null. + + + + Transforms an observable sequence of tasks into an observable sequence + producing values only from the most recent observable sequence. + Each time a new task is received, the previous task's result is ignored. + + The type of the results produced by the source tasks. + Observable sequence of tasks. + The observable sequence that at any point in time produces the result of the most recent task that has been received. + is null. + If the tasks support cancellation, consider manual conversion of the tasks using , followed by a switch operation using . + + + + Returns the elements from the source observable sequence until the other observable sequence produces an element. + + The type of the elements in the source sequence. + The type of the elements in the other sequence that indicates the end of take behavior. + Source sequence to propagate elements for. + Observable sequence that terminates propagation of elements of the source sequence. + An observable sequence containing the elements of the source sequence up to the point the other sequence interrupted further propagation. + or is null. + + + + Relays elements from the source observable sequence and calls the predicate after an + emission to check if the sequence should stop after that specific item. + + The type of the elements in the source and result sequences. + The source sequence to relay elements of. + Called after each upstream item has been emitted with + that upstream item and should return true to indicate the sequence should + complete. + The observable sequence with the source elements until the stop predicate returns true. + + The following sequence will stop after the value 5 has been encountered: + + Observable.Range(1, 10) + .TakeUntil(item => item == 5) + .Subscribe(Console.WriteLine); + + + If or is null. + + + + Projects each element of an observable sequence into consecutive non-overlapping windows. + + The type of the elements in the source sequence, and in the windows in the result sequence. + The type of the elements in the sequences indicating window closing events. + Source sequence to produce windows over. + A function invoked to define the boundaries of the produced windows. A new window is started when the previous one is closed. + An observable sequence of windows. + or is null. + + + + Projects each element of an observable sequence into zero or more windows. + + The type of the elements in the source sequence, and in the windows in the result sequence. + The type of the elements in the sequence indicating window opening events, also passed to the closing selector to obtain a sequence of window closing events. + The type of the elements in the sequences indicating window closing events. + Source sequence to produce windows over. + Observable sequence whose elements denote the creation of new windows. + A function invoked to define the closing of each produced window. + An observable sequence of windows. + or or is null. + + + + Projects each element of an observable sequence into consecutive non-overlapping windows. + + The type of the elements in the source sequence, and in the windows in the result sequence. + The type of the elements in the sequences indicating window boundary events. + Source sequence to produce windows over. + Sequence of window boundary markers. The current window is closed and a new window is opened upon receiving a boundary marker. + An observable sequence of windows. + or is null. + + + + Merges two observable sequences into one observable sequence by combining each element from the first source with the latest element from the second source, if any. + Starting from Rx.NET 4.0, this will subscribe to before subscribing to to have a latest element readily available + in case emits an element right away. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Function to invoke for each element from the first source combined with the latest element from the second source, if any. + An observable sequence containing the result of combining each element of the first source with the latest element from the second source, if any, using the specified result selector function. + or or is null. + + + + Merges two observable sequences into one observable sequence by combining their elements in a pairwise fashion. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Function to invoke for each consecutive pair of elements from the first and second source. + An observable sequence containing the result of pairwise combining the elements of the first and second source using the specified result selector function. + or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the source sequences. + The type of the elements in the result sequence, returned by the selector function. + Observable sources. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or is null. + + + + Merges the specified observable sequences into one observable sequence by emitting a list with the elements of the observable sequences at corresponding indexes. + + The type of the elements in the source sequences, and in the lists in the result sequence. + Observable sources. + An observable sequence containing lists of elements at corresponding indexes. + is null. + + + + Merges the specified observable sequences into one observable sequence by emitting a list with the elements of the observable sequences at corresponding indexes. + + The type of the elements in the source sequences, and in the lists in the result sequence. + Observable sources. + An observable sequence containing lists of elements at corresponding indexes. + is null. + + + + Merges an observable sequence and an enumerable sequence into one observable sequence by using the selector function. + + The type of the elements in the first observable source sequence. + The type of the elements in the second enumerable source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second enumerable source. + Function to invoke for each consecutive pair of elements from the first and second source. + An observable sequence containing the result of pairwise combining the elements of the first and second source using the specified result selector function. + or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Fourteenth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the fifteenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Fourteenth observable source. + Fifteenth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the fifteenth source sequence. + The type of the elements in the sixteenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Fourteenth observable source. + Fifteenth observable source. + Sixteenth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or or or or or or or or or or is null. + + + + Append a value to an observable sequence. + + The type of the elements in the source sequence. + Source sequence to append the value to. + Value to append to the specified sequence. + The source sequence appended with the specified value. + is null. + + + + Append a value to an observable sequence. + + The type of the elements in the source sequence. + Source sequence to append the value to. + Value to append to the specified sequence. + Scheduler to emit the append values on. + The source sequence appended with the specified value. + is null. + + + + Hides the identity of an observable sequence. + + The type of the elements in the source sequence. + An observable sequence whose identity to hide. + An observable sequence that hides the identity of the source sequence. + is null. + + + + Projects each element of an observable sequence into consecutive non-overlapping buffers which are produced based on element count information. + + The type of the elements in the source sequence, and in the lists in the result sequence. + Source sequence to produce buffers over. + Length of each buffer. + An observable sequence of buffers. + is null. + is less than or equal to zero. + + + + Projects each element of an observable sequence into zero or more buffers which are produced based on element count information. + + The type of the elements in the source sequence, and in the lists in the result sequence. + Source sequence to produce buffers over. + Length of each buffer. + Number of elements to skip between creation of consecutive buffers. + An observable sequence of buffers. + is null. + or is less than or equal to zero. + + + + Dematerializes the explicit notification values of an observable sequence as implicit notifications. + + The type of the elements materialized in the source sequence notification objects. + An observable sequence containing explicit notification values which have to be turned into implicit notifications. + An observable sequence exhibiting the behavior corresponding to the source sequence's notification values. + is null. + + + + Returns an observable sequence that contains only distinct contiguous elements. + + The type of the elements in the source sequence. + An observable sequence to retain distinct contiguous elements for. + An observable sequence only containing the distinct contiguous elements from the source sequence. + is null. + + + + Returns an observable sequence that contains only distinct contiguous elements according to the comparer. + + The type of the elements in the source sequence. + An observable sequence to retain distinct contiguous elements for. + Equality comparer for source elements. + An observable sequence only containing the distinct contiguous elements from the source sequence. + or is null. + + + + Returns an observable sequence that contains only distinct contiguous elements according to the keySelector. + + The type of the elements in the source sequence. + The type of the discriminator key computed for each element in the source sequence. + An observable sequence to retain distinct contiguous elements for, based on a computed key value. + A function to compute the comparison key for each element. + An observable sequence only containing the distinct contiguous elements, based on a computed key value, from the source sequence. + or is null. + + + + Returns an observable sequence that contains only distinct contiguous elements according to the keySelector and the comparer. + + The type of the elements in the source sequence. + The type of the discriminator key computed for each element in the source sequence. + An observable sequence to retain distinct contiguous elements for, based on a computed key value. + A function to compute the comparison key for each element. + Equality comparer for computed key values. + An observable sequence only containing the distinct contiguous elements, based on a computed key value, from the source sequence. + or or is null. + + + + Invokes an action for each element in the observable sequence, and propagates all observer messages through the result sequence. + This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + + The type of the elements in the source sequence. + Source sequence. + Action to invoke for each element in the observable sequence. + The source sequence with the side-effecting behavior applied. + or is null. + + + + Invokes an action for each element in the observable sequence and invokes an action upon graceful termination of the observable sequence. + This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + + The type of the elements in the source sequence. + Source sequence. + Action to invoke for each element in the observable sequence. + Action to invoke upon graceful termination of the observable sequence. + The source sequence with the side-effecting behavior applied. + or or is null. + + + + Invokes an action for each element in the observable sequence and invokes an action upon exceptional termination of the observable sequence. + This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + + The type of the elements in the source sequence. + Source sequence. + Action to invoke for each element in the observable sequence. + Action to invoke upon exceptional termination of the observable sequence. + The source sequence with the side-effecting behavior applied. + or or is null. + + + + Invokes an action for each element in the observable sequence and invokes an action upon graceful or exceptional termination of the observable sequence. + This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + + The type of the elements in the source sequence. + Source sequence. + Action to invoke for each element in the observable sequence. + Action to invoke upon exceptional termination of the observable sequence. + Action to invoke upon graceful termination of the observable sequence. + The source sequence with the side-effecting behavior applied. + or or or is null. + + + + Invokes the observer's methods for each message in the source sequence. + This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + + The type of the elements in the source sequence. + Source sequence. + Observer whose methods to invoke as part of the source sequence's observation. + The source sequence with the side-effecting behavior applied. + or is null. + + + + Invokes a specified action after the source observable sequence terminates gracefully or exceptionally. + + The type of the elements in the source sequence. + Source sequence. + Action to invoke after the source observable sequence terminates. + Source sequence with the action-invoking termination behavior applied. + or is null. + + + + Ignores all elements in an observable sequence leaving only the termination messages. + + The type of the elements in the source sequence. + Source sequence. + An empty observable sequence that signals termination, successful or exceptional, of the source sequence. + is null. + + + + Materializes the implicit notifications of an observable sequence as explicit notification values. + + The type of the elements in the source sequence. + An observable sequence to get notification values for. + An observable sequence containing the materialized notification values from the source sequence. + is null. + + + + Prepend a value to an observable sequence. + + The type of the elements in the source sequence. + Source sequence to prepend the value to. + Value to prepend to the specified sequence. + The source sequence prepended with the specified value. + is null. + + + + Prepend a value to an observable sequence. + + The type of the elements in the source sequence. + Source sequence to prepend the value to. + Value to prepend to the specified sequence. + Scheduler to emit the prepend values on. + The source sequence prepended with the specified value. + is null. + + + + Repeats the observable sequence indefinitely. + + The type of the elements in the source sequence. + Observable sequence to repeat. + The observable sequence producing the elements of the given sequence repeatedly and sequentially. + is null. + + + + Repeats the observable sequence a specified number of times. + + The type of the elements in the source sequence. + Observable sequence to repeat. + Number of times to repeat the sequence. + The observable sequence producing the elements of the given sequence repeatedly. + is null. + is less than zero. + + + + Repeatedly resubscribes to the source observable after a normal completion and when the observable + returned by a handler produces an arbitrary item. + + The type of the elements in the source sequence. + The arbitrary element type signaled by the handler observable. + Observable sequence to keep repeating when it successfully terminates. + The function that is called for each observer and takes an observable sequence objects. + It should return an observable of arbitrary items that should signal that arbitrary item in + response to receiving the completion signal from the source observable. If this observable signals + a terminal event, the sequence is terminated with that signal instead. + An observable sequence producing the elements of the given sequence repeatedly while each repetition terminates successfully. + is null. + is null. + + + + Repeats the source observable sequence until it successfully terminates. + + The type of the elements in the source sequence. + Observable sequence to repeat until it successfully terminates. + An observable sequence producing the elements of the given sequence repeatedly until it terminates successfully. + is null. + + + + Repeats the source observable sequence the specified number of times or until it successfully terminates. + + The type of the elements in the source sequence. + Observable sequence to repeat until it successfully terminates. + Number of times to repeat the sequence. + An observable sequence producing the elements of the given sequence repeatedly until it terminates successfully. + is null. + is less than zero. + + + + Retries (resubscribes to) the source observable after a failure and when the observable + returned by a handler produces an arbitrary item. + + The type of the elements in the source sequence. + The arbitrary element type signaled by the handler observable. + Observable sequence to repeat until it successfully terminates. + The function that is called for each observer and takes an observable sequence of + errors. It should return an observable of arbitrary items that should signal that arbitrary item in + response to receiving the failure Exception from the source observable. If this observable signals + a terminal event, the sequence is terminated with that signal instead. + An observable sequence producing the elements of the given sequence repeatedly until it terminates successfully. + is null. + is null. + + + + Applies an accumulator function over an observable sequence and returns each intermediate result. The specified seed value is used as the initial accumulator value. + For aggregation behavior with no intermediate results, see . + + The type of the elements in the source sequence. + The type of the result of the aggregation. + An observable sequence to accumulate over. + The initial accumulator value. + An accumulator function to be invoked on each element. + An observable sequence containing the accumulated values. + or is null. + + + + Applies an accumulator function over an observable sequence and returns each intermediate result. + For aggregation behavior with no intermediate results, see . + + The type of the elements in the source sequence and the result of the aggregation. + An observable sequence to accumulate over. + An accumulator function to be invoked on each element. + An observable sequence containing the accumulated values. + or is null. + + + + Bypasses a specified number of elements at the end of an observable sequence. + + The type of the elements in the source sequence. + Source sequence. + Number of elements to bypass at the end of the source sequence. + An observable sequence containing the source sequence elements except for the bypassed ones at the end. + is null. + is less than zero. + + This operator accumulates a queue with a length enough to store the first elements. As more elements are + received, elements are taken from the front of the queue and produced on the result sequence. This causes elements to be delayed. + + + + + Prepends a sequence of values to an observable sequence. + + The type of the elements in the source sequence. + Source sequence to prepend values to. + Values to prepend to the specified sequence. + The source sequence prepended with the specified values. + or is null. + + + + Prepends a sequence of values to an observable sequence. + + The type of the elements in the source sequence. + Source sequence to prepend values to. + Values to prepend to the specified sequence. + The source sequence prepended with the specified values. + or is null. + + + + Prepends a sequence of values to an observable sequence. + + The type of the elements in the source sequence. + Source sequence to prepend values to. + Scheduler to emit the prepended values on. + Values to prepend to the specified sequence. + The source sequence prepended with the specified values. + or or is null. + + + + Prepends a sequence of values to an observable sequence. + + The type of the elements in the source sequence. + Source sequence to prepend values to. + Scheduler to emit the prepended values on. + Values to prepend to the specified sequence. + The source sequence prepended with the specified values. + or or is null. + + + + Returns a specified number of contiguous elements from the end of an observable sequence. + + The type of the elements in the source sequence. + Source sequence. + Number of elements to take from the end of the source sequence. + An observable sequence containing the specified number of elements from the end of the source sequence. + is null. + is less than zero. + + This operator accumulates a buffer with a length enough to store elements elements. Upon completion of + the source sequence, this buffer is drained on the result sequence. This causes the elements to be delayed. + + + + + Returns a specified number of contiguous elements from the end of an observable sequence, using the specified scheduler to drain the queue. + + The type of the elements in the source sequence. + Source sequence. + Number of elements to take from the end of the source sequence. + Scheduler used to drain the queue upon completion of the source sequence. + An observable sequence containing the specified number of elements from the end of the source sequence. + or is null. + is less than zero. + + This operator accumulates a buffer with a length enough to store elements elements. Upon completion of + the source sequence, this buffer is drained on the result sequence. This causes the elements to be delayed. + + + + + Returns a list with the specified number of contiguous elements from the end of an observable sequence. + + The type of the elements in the source sequence. + Source sequence. + Number of elements to take from the end of the source sequence. + An observable sequence containing a single list with the specified number of elements from the end of the source sequence. + is null. + is less than zero. + + This operator accumulates a buffer with a length enough to store elements. Upon completion of the + source sequence, this buffer is produced on the result sequence. + + + + + Projects each element of an observable sequence into consecutive non-overlapping windows which are produced based on element count information. + + The type of the elements in the source sequence, and in the windows in the result sequence. + Source sequence to produce windows over. + Length of each window. + An observable sequence of windows. + is null. + is less than or equal to zero. + + + + Projects each element of an observable sequence into zero or more windows which are produced based on element count information. + + The type of the elements in the source sequence, and in the windows in the result sequence. + Source sequence to produce windows over. + Length of each window. + Number of elements to skip between creation of consecutive windows. + An observable sequence of windows. + is null. + or is less than or equal to zero. + + + + Converts the elements of an observable sequence to the specified type. + + The type to convert the elements in the source sequence to. + The observable sequence that contains the elements to be converted. + An observable sequence that contains each element of the source sequence converted to the specified type. + is null. + + + + Returns the elements of the specified sequence or the type parameter's default value in a singleton sequence if the sequence is empty. + + The type of the elements in the source sequence (if any), whose default value will be taken if the sequence is empty. + The sequence to return a default value for if it is empty. + An observable sequence that contains the default value for the TSource type if the source is empty; otherwise, the elements of the source itself. + is null. + + + + Returns the elements of the specified sequence or the specified value in a singleton sequence if the sequence is empty. + + The type of the elements in the source sequence (if any), and the specified default value which will be taken if the sequence is empty. + The sequence to return the specified value for if it is empty. + The value to return if the sequence is empty. + An observable sequence that contains the specified default value if the source is empty; otherwise, the elements of the source itself. + is null. + + + + Returns an observable sequence that contains only distinct elements. + + The type of the elements in the source sequence. + An observable sequence to retain distinct elements for. + An observable sequence only containing the distinct elements from the source sequence. + is null. + Usage of this operator should be considered carefully due to the maintenance of an internal lookup structure which can grow large. + + + + Returns an observable sequence that contains only distinct elements according to the comparer. + + The type of the elements in the source sequence. + An observable sequence to retain distinct elements for. + Equality comparer for source elements. + An observable sequence only containing the distinct elements from the source sequence. + or is null. + Usage of this operator should be considered carefully due to the maintenance of an internal lookup structure which can grow large. + + + + Returns an observable sequence that contains only distinct elements according to the keySelector. + + The type of the elements in the source sequence. + The type of the discriminator key computed for each element in the source sequence. + An observable sequence to retain distinct elements for. + A function to compute the comparison key for each element. + An observable sequence only containing the distinct elements, based on a computed key value, from the source sequence. + or is null. + Usage of this operator should be considered carefully due to the maintenance of an internal lookup structure which can grow large. + + + + Returns an observable sequence that contains only distinct elements according to the keySelector and the comparer. + + The type of the elements in the source sequence. + The type of the discriminator key computed for each element in the source sequence. + An observable sequence to retain distinct elements for. + A function to compute the comparison key for each element. + Equality comparer for source elements. + An observable sequence only containing the distinct elements, based on a computed key value, from the source sequence. + or or is null. + Usage of this operator should be considered carefully due to the maintenance of an internal lookup structure which can grow large. + + + + Groups the elements of an observable sequence according to a specified key selector function. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + An observable sequence whose elements to group. + A function to extract the key for each element. + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + or is null. + + + + Groups the elements of an observable sequence according to a specified key selector function and comparer. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + An observable sequence whose elements to group. + A function to extract the key for each element. + An equality comparer to compare keys with. + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + or or is null. + + + + Groups the elements of an observable sequence and selects the resulting elements by using a specified function. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements within the groups computed for each element in the source sequence. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to map each source element to an element in an observable group. + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + or or is null. + + + + Groups the elements of an observable sequence according to a specified key selector function and comparer and selects the resulting elements by using a specified function. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements within the groups computed for each element in the source sequence. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to map each source element to an element in an observable group. + An equality comparer to compare keys with. + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + or or or is null. + + + + Groups the elements of an observable sequence with the specified initial capacity according to a specified key selector function. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + An observable sequence whose elements to group. + A function to extract the key for each element. + The initial number of elements that the underlying dictionary can contain. + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + or is null. + is less than 0. + + + + Groups the elements of an observable sequence with the specified initial capacity according to a specified key selector function and comparer. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + An observable sequence whose elements to group. + A function to extract the key for each element. + The initial number of elements that the underlying dictionary can contain. + An equality comparer to compare keys with. + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + or or is null. + is less than 0. + + + + Groups the elements of an observable sequence with the specified initial capacity and selects the resulting elements by using a specified function. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements within the groups computed for each element in the source sequence. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to map each source element to an element in an observable group. + The initial number of elements that the underlying dictionary can contain. + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + or or is null. + is less than 0. + + + + Groups the elements of an observable sequence with the specified initial capacity according to a specified key selector function and comparer and selects the resulting elements by using a specified function. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements within the groups computed for each element in the source sequence. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to map each source element to an element in an observable group. + The initial number of elements that the underlying dictionary can contain. + An equality comparer to compare keys with. + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + or or or is null. + is less than 0. + + + + Groups the elements of an observable sequence according to a specified key selector function and comparer and selects the resulting elements by using a specified function. + A duration selector function is used to control the lifetime of groups. When a group expires, it receives an OnCompleted notification. When a new element with the same + key value as a reclaimed group occurs, the group will be reborn with a new lifetime request. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements within the groups computed for each element in the source sequence. + The type of the elements in the duration sequences obtained for each group to denote its lifetime. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to map each source element to an element in an observable group. + A function to signal the expiration of a group. + An equality comparer to compare keys with. + + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + If a group's lifetime expires, a new group with the same key value can be created once an element with such a key value is encountered. + + or or or or is null. + + + + Groups the elements of an observable sequence according to a specified key selector function and selects the resulting elements by using a specified function. + A duration selector function is used to control the lifetime of groups. When a group expires, it receives an OnCompleted notification. When a new element with the same + key value as a reclaimed group occurs, the group will be reborn with a new lifetime request. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements within the groups computed for each element in the source sequence. + The type of the elements in the duration sequences obtained for each group to denote its lifetime. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to map each source element to an element in an observable group. + A function to signal the expiration of a group. + + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + If a group's lifetime expires, a new group with the same key value can be created once an element with such a key value is encountered. + + or or or is null. + + + + Groups the elements of an observable sequence according to a specified key selector function and comparer. + A duration selector function is used to control the lifetime of groups. When a group expires, it receives an OnCompleted notification. When a new element with the same + key value as a reclaimed group occurs, the group will be reborn with a new lifetime request. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements in the duration sequences obtained for each group to denote its lifetime. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to signal the expiration of a group. + An equality comparer to compare keys with. + + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + If a group's lifetime expires, a new group with the same key value can be created once an element with such a key value is encountered. + + or or or is null. + + + + Groups the elements of an observable sequence according to a specified key selector function. + A duration selector function is used to control the lifetime of groups. When a group expires, it receives an OnCompleted notification. When a new element with the same + key value as a reclaimed group occurs, the group will be reborn with a new lifetime request. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements in the duration sequences obtained for each group to denote its lifetime. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to signal the expiration of a group. + + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + If a group's lifetime expires, a new group with the same key value can be created once an element with such a key value is encountered. + + or or is null. + + + + Groups the elements of an observable sequence with the specified initial capacity according to a specified key selector function and comparer and selects the resulting elements by using a specified function. + A duration selector function is used to control the lifetime of groups. When a group expires, it receives an OnCompleted notification. When a new element with the same + key value as a reclaimed group occurs, the group will be reborn with a new lifetime request. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements within the groups computed for each element in the source sequence. + The type of the elements in the duration sequences obtained for each group to denote its lifetime. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to map each source element to an element in an observable group. + A function to signal the expiration of a group. + The initial number of elements that the underlying dictionary can contain. + An equality comparer to compare keys with. + + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + If a group's lifetime expires, a new group with the same key value can be created once an element with such a key value is encountered. + + or or or or is null. + is less than 0. + + + + Groups the elements of an observable sequence with the specified initial capacity according to a specified key selector function and selects the resulting elements by using a specified function. + A duration selector function is used to control the lifetime of groups. When a group expires, it receives an OnCompleted notification. When a new element with the same + key value as a reclaimed group occurs, the group will be reborn with a new lifetime request. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements within the groups computed for each element in the source sequence. + The type of the elements in the duration sequences obtained for each group to denote its lifetime. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to map each source element to an element in an observable group. + A function to signal the expiration of a group. + The initial number of elements that the underlying dictionary can contain. + + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + If a group's lifetime expires, a new group with the same key value can be created once an element with such a key value is encountered. + + or or or is null. + is less than 0. + + + + Groups the elements of an observable sequence with the specified initial capacity according to a specified key selector function and comparer. + A duration selector function is used to control the lifetime of groups. When a group expires, it receives an OnCompleted notification. When a new element with the same + key value as a reclaimed group occurs, the group will be reborn with a new lifetime request. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements in the duration sequences obtained for each group to denote its lifetime. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to signal the expiration of a group. + The initial number of elements that the underlying dictionary can contain. + An equality comparer to compare keys with. + + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + If a group's lifetime expires, a new group with the same key value can be created once an element with such a key value is encountered. + + or or or is null. + is less than 0. + + + + Groups the elements of an observable sequence with the specified initial capacity according to a specified key selector function. + A duration selector function is used to control the lifetime of groups. When a group expires, it receives an OnCompleted notification. When a new element with the same + key value as a reclaimed group occurs, the group will be reborn with a new lifetime request. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements in the duration sequences obtained for each group to denote its lifetime. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to signal the expiration of a group. + The initial number of elements that the underlying dictionary can contain. + + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + If a group's lifetime expires, a new group with the same key value can be created once an element with such a key value is encountered. + + or or is null. + is less than 0. + + + + Correlates the elements of two sequences based on overlapping durations, and groups the results. + + The type of the elements in the left source sequence. + The type of the elements in the right source sequence. + The type of the elements in the duration sequence denoting the computed duration of each element in the left source sequence. + The type of the elements in the duration sequence denoting the computed duration of each element in the right source sequence. + The type of the elements in the result sequence, obtained by invoking the result selector function for source elements with overlapping duration. + The left observable sequence to join elements for. + The right observable sequence to join elements for. + A function to select the duration of each element of the left observable sequence, used to determine overlap. + A function to select the duration of each element of the right observable sequence, used to determine overlap. + A function invoked to compute a result element for any element of the left sequence with overlapping elements from the right observable sequence. + An observable sequence that contains result elements computed from source elements that have an overlapping duration. + or or or or is null. + + + + Correlates the elements of two sequences based on overlapping durations. + + The type of the elements in the left source sequence. + The type of the elements in the right source sequence. + The type of the elements in the duration sequence denoting the computed duration of each element in the left source sequence. + The type of the elements in the duration sequence denoting the computed duration of each element in the right source sequence. + The type of the elements in the result sequence, obtained by invoking the result selector function for source elements with overlapping duration. + The left observable sequence to join elements for. + The right observable sequence to join elements for. + A function to select the duration of each element of the left observable sequence, used to determine overlap. + A function to select the duration of each element of the right observable sequence, used to determine overlap. + A function invoked to compute a result element for any two overlapping elements of the left and right observable sequences. + An observable sequence that contains result elements computed from source elements that have an overlapping duration. + or or or or is null. + + + + Filters the elements of an observable sequence based on the specified type. + + The type to filter the elements in the source sequence on. + The observable sequence that contains the elements to be filtered. + An observable sequence that contains elements from the input sequence of type TResult. + is null. + + + + Projects each element of an observable sequence into a new form. + + The type of the elements in the source sequence. + The type of the elements in the result sequence, obtained by running the selector function for each element in the source sequence. + A sequence of elements to invoke a transform function on. + A transform function to apply to each source element. + An observable sequence whose elements are the result of invoking the transform function on each element of source. + or is null. + + + + Projects each element of an observable sequence into a new form by incorporating the element's index. + + The type of the elements in the source sequence. + The type of the elements in the result sequence, obtained by running the selector function for each element in the source sequence. + A sequence of elements to invoke a transform function on. + A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + An observable sequence whose elements are the result of invoking the transform function on each element of source. + or is null. + + + + Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the other sequence and the elements in the result sequence. + An observable sequence of elements to project. + An observable sequence to project each element from the source sequence onto. + An observable sequence whose elements are the result of projecting each source element onto the other sequence and merging all the resulting sequences together. + or is null. + + + + Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected inner sequences and the elements in the merged result sequence. + An observable sequence of elements to project. + A transform function to apply to each element. + An observable sequence whose elements are the result of invoking the one-to-many transform function on each element of the input sequence. + or is null. + + + + Projects each element of an observable sequence to an observable sequence by incorporating the element's index and merges the resulting observable sequences into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected inner sequences and the elements in the merged result sequence. + An observable sequence of elements to project. + A transform function to apply to each element; the second parameter of the function represents the index of the source element. + An observable sequence whose elements are the result of invoking the one-to-many transform function on each element of the input sequence. + or is null. + + + + Projects each element of an observable sequence to a task and merges all of the task results into one observable sequence. + + The type of the elements in the source sequence. + The type of the result produced by the projected tasks and the elements in the merged result sequence. + An observable sequence of elements to project. + A transform function to apply to each element. + An observable sequence whose elements are the result of the tasks executed for each element of the input sequence. + This overload supports composition of observable sequences and tasks, without requiring manual conversion of the tasks to observable sequences using . + or is null. + + + + Projects each element of an observable sequence to a task by incorporating the element's index and merges all of the task results into one observable sequence. + + The type of the elements in the source sequence. + The type of the result produced by the projected tasks and the elements in the merged result sequence. + An observable sequence of elements to project. + A transform function to apply to each element; the second parameter of the function represents the index of the source element. + An observable sequence whose elements are the result of the tasks executed for each element of the input sequence. + This overload supports composition of observable sequences and tasks, without requiring manual conversion of the tasks to observable sequences using . + or is null. + + + + Projects each element of an observable sequence to a task with cancellation support and merges all of the task results into one observable sequence. + + The type of the elements in the source sequence. + The type of the result produced by the projected tasks and the elements in the merged result sequence. + An observable sequence of elements to project. + A transform function to apply to each element. + An observable sequence whose elements are the result of the tasks executed for each element of the input sequence. + This overload supports composition of observable sequences and tasks, without requiring manual conversion of the tasks to observable sequences using . + or is null. + + + + Projects each element of an observable sequence to a task by incorporating the element's index with cancellation support and merges all of the task results into one observable sequence. + + The type of the elements in the source sequence. + The type of the result produced by the projected tasks and the elements in the merged result sequence. + An observable sequence of elements to project. + A transform function to apply to each element; the second parameter of the function represents the index of the source element. + An observable sequence whose elements are the result of the tasks executed for each element of the input sequence. + This overload supports composition of observable sequences and tasks, without requiring manual conversion of the tasks to observable sequences using . + or is null. + + + + Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected intermediate sequences. + The type of the elements in the result sequence, obtained by using the selector to combine source sequence elements with their corresponding intermediate sequence elements. + An observable sequence of elements to project. + A transform function to apply to each element. + A transform function to apply to each element of the intermediate sequence. + An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + or or is null. + + + + Projects each element of an observable sequence to an observable sequence by incorporating the element's index, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected intermediate sequences. + The type of the elements in the result sequence, obtained by using the selector to combine source sequence elements with their corresponding intermediate sequence elements. + An observable sequence of elements to project. + A transform function to apply to each element; the second parameter of the function represents the index of the source element. + A transform function to apply to each element of the intermediate sequence; the second parameter of the function represents the index of the source element and the fourth parameter represents the index of the intermediate element. + An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + or or is null. + + + + Projects each element of an observable sequence to a task, invokes the result selector for the source element and the task result, and merges the results into one observable sequence. + + The type of the elements in the source sequence. + The type of the results produced by the projected intermediate tasks. + The type of the elements in the result sequence, obtained by using the selector to combine source sequence elements with their corresponding intermediate task results. + An observable sequence of elements to project. + A transform function to apply to each element. + A transform function to apply to each element of the intermediate sequence. + An observable sequence whose elements are the result of obtaining a task for each element of the input sequence and then mapping the task's result and its corresponding source element to a result element. + or or is null. + This overload supports using LINQ query comprehension syntax in C# and Visual Basic to compose observable sequences and tasks, without requiring manual conversion of the tasks to observable sequences using . + + + + Projects each element of an observable sequence to a task by incorporating the element's index, invokes the result selector for the source element and the task result, and merges the results into one observable sequence. + + The type of the elements in the source sequence. + The type of the results produced by the projected intermediate tasks. + The type of the elements in the result sequence, obtained by using the selector to combine source sequence elements with their corresponding intermediate task results. + An observable sequence of elements to project. + A transform function to apply to each element; the second parameter of the function represents the index of the source element. + A transform function to apply to each element of the intermediate sequence; the second parameter of the function represents the index of the source element. + An observable sequence whose elements are the result of obtaining a task for each element of the input sequence and then mapping the task's result and its corresponding source element to a result element. + or or is null. + This overload supports using LINQ query comprehension syntax in C# and Visual Basic to compose observable sequences and tasks, without requiring manual conversion of the tasks to observable sequences using . + + + + Projects each element of an observable sequence to a task with cancellation support, invokes the result selector for the source element and the task result, and merges the results into one observable sequence. + + The type of the elements in the source sequence. + The type of the results produced by the projected intermediate tasks. + The type of the elements in the result sequence, obtained by using the selector to combine source sequence elements with their corresponding intermediate task results. + An observable sequence of elements to project. + A transform function to apply to each element. + A transform function to apply to each element of the intermediate sequence. + An observable sequence whose elements are the result of obtaining a task for each element of the input sequence and then mapping the task's result and its corresponding source element to a result element. + or or is null. + This overload supports using LINQ query comprehension syntax in C# and Visual Basic to compose observable sequences and tasks, without requiring manual conversion of the tasks to observable sequences using . + + + + Projects each element of an observable sequence to a task by incorporating the element's index with cancellation support, invokes the result selector for the source element and the task result, and merges the results into one observable sequence. + + The type of the elements in the source sequence. + The type of the results produced by the projected intermediate tasks. + The type of the elements in the result sequence, obtained by using the selector to combine source sequence elements with their corresponding intermediate task results. + An observable sequence of elements to project. + A transform function to apply to each element; the second parameter of the function represents the index of the source element. + A transform function to apply to each element of the intermediate sequence; the second parameter of the function represents the index of the source element. + An observable sequence whose elements are the result of obtaining a task for each element of the input sequence and then mapping the task's result and its corresponding source element to a result element. + or or is null. + This overload supports using LINQ query comprehension syntax in C# and Visual Basic to compose observable sequences and tasks, without requiring manual conversion of the tasks to observable sequences using . + + + + Projects each notification of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected inner sequences and the elements in the merged result sequence. + An observable sequence of notifications to project. + A transform function to apply to each element. + A transform function to apply when an error occurs in the source sequence. + A transform function to apply when the end of the source sequence is reached. + An observable sequence whose elements are the result of invoking the one-to-many transform function corresponding to each notification in the input sequence. + or or or is null. + + + + Projects each notification of an observable sequence to an observable sequence by incorporating the element's index and merges the resulting observable sequences into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected inner sequences and the elements in the merged result sequence. + An observable sequence of notifications to project. + A transform function to apply to each element; the second parameter of the function represents the index of the source element. + A transform function to apply when an error occurs in the source sequence. + A transform function to apply when the end of the source sequence is reached. + An observable sequence whose elements are the result of invoking the one-to-many transform function corresponding to each notification in the input sequence. + or or or is null. + + + + Projects each element of an observable sequence to an enumerable sequence and concatenates the resulting enumerable sequences into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected inner enumerable sequences and the elements in the merged result sequence. + An observable sequence of elements to project. + A transform function to apply to each element. + An observable sequence whose elements are the result of invoking the one-to-many transform function on each element of the input sequence. + or is null. + The projected sequences are enumerated synchronously within the OnNext call of the source sequence. In order to do a concurrent, non-blocking merge, change the selector to return an observable sequence obtained using the conversion. + + + + Projects each element of an observable sequence to an enumerable sequence by incorporating the element's index and concatenates the resulting enumerable sequences into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected inner enumerable sequences and the elements in the merged result sequence. + An observable sequence of elements to project. + A transform function to apply to each element; the second parameter of the function represents the index of the source element. + An observable sequence whose elements are the result of invoking the one-to-many transform function on each element of the input sequence. + or is null. + The projected sequences are enumerated synchronously within the OnNext call of the source sequence. In order to do a concurrent, non-blocking merge, change the selector to return an observable sequence obtained using the conversion. + + + + Projects each element of an observable sequence to an enumerable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected intermediate enumerable sequences. + The type of the elements in the result sequence, obtained by using the selector to combine source sequence elements with their corresponding intermediate sequence elements. + An observable sequence of elements to project. + A transform function to apply to each element. + A transform function to apply to each element of the intermediate sequence. + An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + or or is null. + The projected sequences are enumerated synchronously within the OnNext call of the source sequence. In order to do a concurrent, non-blocking merge, change the selector to return an observable sequence obtained using the conversion. + + + + Projects each element of an observable sequence to an enumerable sequence by incorporating the element's index, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected intermediate enumerable sequences. + The type of the elements in the result sequence, obtained by using the selector to combine source sequence elements with their corresponding intermediate sequence elements. + An observable sequence of elements to project. + A transform function to apply to each element; the second parameter of the function represents the index of the source element. + A transform function to apply to each element of the intermediate sequence; the second parameter of the function represents the index of the source element and the fourth parameter represents the index of the intermediate element. + An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + or or is null. + The projected sequences are enumerated synchronously within the OnNext call of the source sequence. In order to do a concurrent, non-blocking merge, change the selector to return an observable sequence obtained using the conversion. + + + + Bypasses a specified number of elements in an observable sequence and then returns the remaining elements. + + The type of the elements in the source sequence. + The sequence to take elements from. + The number of elements to skip before returning the remaining elements. + An observable sequence that contains the elements that occur after the specified index in the input sequence. + is null. + is less than zero. + + + + Bypasses elements in an observable sequence as long as a specified condition is true and then returns the remaining elements. + + The type of the elements in the source sequence. + An observable sequence to return elements from. + A function to test each element for a condition. + An observable sequence that contains the elements from the input sequence starting at the first element in the linear series that does not pass the test specified by predicate. + or is null. + + + + Bypasses elements in an observable sequence as long as a specified condition is true and then returns the remaining elements. + The element's index is used in the logic of the predicate function. + + The type of the elements in the source sequence. + An observable sequence to return elements from. + A function to test each element for a condition; the second parameter of the function represents the index of the source element. + An observable sequence that contains the elements from the input sequence starting at the first element in the linear series that does not pass the test specified by predicate. + or is null. + + + + Returns a specified number of contiguous elements from the start of an observable sequence. + + The type of the elements in the source sequence. + The sequence to take elements from. + The number of elements to return. + An observable sequence that contains the specified number of elements from the start of the input sequence. + is null. + is less than zero. + + + + Returns a specified number of contiguous elements from the start of an observable sequence, using the specified scheduler for the edge case of Take(0). + + The type of the elements in the source sequence. + The sequence to take elements from. + The number of elements to return. + Scheduler used to produce an OnCompleted message in case count is set to 0. + An observable sequence that contains the specified number of elements from the start of the input sequence. + or is null. + is less than zero. + + + + Returns elements from an observable sequence as long as a specified condition is true. + + The type of the elements in the source sequence. + A sequence to return elements from. + A function to test each element for a condition. + An observable sequence that contains the elements from the input sequence that occur before the element at which the test no longer passes. + or is null. + + + + Returns elements from an observable sequence as long as a specified condition is true. + The element's index is used in the logic of the predicate function. + + The type of the elements in the source sequence. + A sequence to return elements from. + A function to test each element for a condition; the second parameter of the function represents the index of the source element. + An observable sequence that contains the elements from the input sequence that occur before the element at which the test no longer passes. + or is null. + + + + Filters the elements of an observable sequence based on a predicate. + + The type of the elements in the source sequence. + An observable sequence whose elements to filter. + A function to test each source element for a condition. + An observable sequence that contains elements from the input sequence that satisfy the condition. + or is null. + + + + Filters the elements of an observable sequence based on a predicate by incorporating the element's index. + + The type of the elements in the source sequence. + An observable sequence whose elements to filter. + A function to test each source element for a condition; the second parameter of the function represents the index of the source element. + An observable sequence that contains elements from the input sequence that satisfy the condition. + or is null. + + + + Projects each element of an observable sequence into consecutive non-overlapping buffers which are produced based on timing information. + + The type of the elements in the source sequence, and in the lists in the result sequence. + Source sequence to produce buffers over. + Length of each buffer. + An observable sequence of buffers. + is null. + is less than TimeSpan.Zero. + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create buffers as fast as it can. + Because all source sequence elements end up in one of the buffers, some buffers won't have a zero time span. This is a side-effect of the asynchrony introduced + by the scheduler, where the action to close the current buffer and to create a new buffer may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Projects each element of an observable sequence into consecutive non-overlapping buffers which are produced based on timing information, using the specified scheduler to run timers. + + The type of the elements in the source sequence, and in the lists in the result sequence. + Source sequence to produce buffers over. + Length of each buffer. + Scheduler to run buffering timers on. + An observable sequence of buffers. + or is null. + is less than TimeSpan.Zero. + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create buffers as fast as it can. + Because all source sequence elements end up in one of the buffers, some buffers won't have a zero time span. This is a side-effect of the asynchrony introduced + by the scheduler, where the action to close the current buffer and to create a new buffer may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Projects each element of an observable sequence into zero or more buffers which are produced based on timing information. + + The type of the elements in the source sequence, and in the lists in the result sequence. + Source sequence to produce buffers over. + Length of each buffer. + Interval between creation of consecutive buffers. + An observable sequence of buffers. + is null. + or is less than TimeSpan.Zero. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create buffers with minimum duration + length. However, some buffers won't have a zero time span. This is a side-effect of the asynchrony introduced by the scheduler, where the action to close the + current buffer may not execute immediately, despite the TimeSpan.Zero due time. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create buffers as fast as it can. + However, this doesn't mean all buffers will start at the beginning of the source sequence. This is a side-effect of the asynchrony introduced by the scheduler, + where the action to create a new buffer may not execute immediately, despite the TimeSpan.Zero due time. + + + + + + Projects each element of an observable sequence into zero or more buffers which are produced based on timing information, using the specified scheduler to run timers. + + The type of the elements in the source sequence, and in the lists in the result sequence. + Source sequence to produce buffers over. + Length of each buffer. + Interval between creation of consecutive buffers. + Scheduler to run buffering timers on. + An observable sequence of buffers. + or is null. + or is less than TimeSpan.Zero. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create buffers with minimum duration + length. However, some buffers won't have a zero time span. This is a side-effect of the asynchrony introduced by the scheduler, where the action to close the + current buffer may not execute immediately, despite the TimeSpan.Zero due time. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create buffers as fast as it can. + However, this doesn't mean all buffers will start at the beginning of the source sequence. This is a side-effect of the asynchrony introduced by the scheduler, + where the action to create a new buffer may not execute immediately, despite the TimeSpan.Zero due time. + + + + + + Projects each element of an observable sequence into a buffer that's sent out when either it's full or a given amount of time has elapsed. + A useful real-world analogy of this overload is the behavior of a ferry leaving the dock when all seats are taken, or at the scheduled time of departure, whichever event occurs first. + + The type of the elements in the source sequence, and in the lists in the result sequence. + Source sequence to produce buffers over. + Maximum time length of a window. + Maximum element count of a window. + An observable sequence of buffers. + is null. + is less than TimeSpan.Zero. -or- is less than or equal to zero. + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create buffers as fast as it can. + Because all source sequence elements end up in one of the buffers, some buffers won't have a zero time span. This is a side-effect of the asynchrony introduced + by the scheduler, where the action to close the current buffer and to create a new buffer may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Projects each element of an observable sequence into a buffer that's sent out when either it's full or a given amount of time has elapsed, using the specified scheduler to run timers. + A useful real-world analogy of this overload is the behavior of a ferry leaving the dock when all seats are taken, or at the scheduled time of departure, whichever event occurs first. + + The type of the elements in the source sequence, and in the lists in the result sequence. + Source sequence to produce buffers over. + Maximum time length of a buffer. + Maximum element count of a buffer. + Scheduler to run buffering timers on. + An observable sequence of buffers. + or is null. + is less than TimeSpan.Zero. -or- is less than or equal to zero. + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create buffers as fast as it can. + Because all source sequence elements end up in one of the buffers, some buffers won't have a zero time span. This is a side-effect of the asynchrony introduced + by the scheduler, where the action to close the current buffer and to create a new buffer may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Time shifts the observable sequence by the specified relative time duration. + The relative time intervals between the values are preserved. + + The type of the elements in the source sequence. + Source sequence to delay values for. + Relative time by which to shift the observable sequence. If this value is equal to TimeSpan.Zero, the scheduler will dispatch observer callbacks as soon as possible. + Time-shifted sequence. + is null. + is less than TimeSpan.Zero. + + + This operator is less efficient than DelaySubscription because it records all notifications and time-delays those. This allows for immediate propagation of errors. + + + Observer callbacks for the resulting sequence will be run on the default scheduler. This effect is similar to using ObserveOn. + + + Exceptions signaled by the source sequence through an OnError callback are forwarded immediately to the result sequence. Any OnNext notifications that were in the queue at the point of the OnError callback will be dropped. + In order to delay error propagation, consider using the Observable.Materialize and Observable.Dematerialize operators, or use DelaySubscription. + + + + + + Time shifts the observable sequence by the specified relative time duration, using the specified scheduler to run timers. + The relative time intervals between the values are preserved. + + The type of the elements in the source sequence. + Source sequence to delay values for. + Relative time by which to shift the observable sequence. If this value is equal to TimeSpan.Zero, the scheduler will dispatch observer callbacks as soon as possible. + Scheduler to run the delay timers on. + Time-shifted sequence. + or is null. + is less than TimeSpan.Zero. + + + This operator is less efficient than DelaySubscription because it records all notifications and time-delays those. This allows for immediate propagation of errors. + + + Observer callbacks for the resulting sequence will be run on the specified scheduler. This effect is similar to using ObserveOn. + + + Exceptions signaled by the source sequence through an OnError callback are forwarded immediately to the result sequence. Any OnNext notifications that were in the queue at the point of the OnError callback will be dropped. + + + Exceptions signaled by the source sequence through an OnError callback are forwarded immediately to the result sequence. Any OnNext notifications that were in the queue at the point of the OnError callback will be dropped. + In order to delay error propagation, consider using the Observable.Materialize and Observable.Dematerialize operators, or use DelaySubscription. + + + + + + Time shifts the observable sequence to start propagating notifications at the specified absolute time. + The relative time intervals between the values are preserved. + + The type of the elements in the source sequence. + Source sequence to delay values for. + Absolute time used to shift the observable sequence; the relative time shift gets computed upon subscription. If this value is less than or equal to DateTimeOffset.UtcNow, the scheduler will dispatch observer callbacks as soon as possible. + Time-shifted sequence. + is null. + + + This operator is less efficient than DelaySubscription because it records all notifications and time-delays those. This allows for immediate propagation of errors. + + + Observer callbacks for the resulting sequence will be run on the default scheduler. This effect is similar to using ObserveOn. + + + Exceptions signaled by the source sequence through an OnError callback are forwarded immediately to the result sequence. Any OnNext notifications that were in the queue at the point of the OnError callback will be dropped. + In order to delay error propagation, consider using the Observable.Materialize and Observable.Dematerialize operators, or use DelaySubscription. + + + + + + Time shifts the observable sequence to start propagating notifications at the specified absolute time, using the specified scheduler to run timers. + The relative time intervals between the values are preserved. + + The type of the elements in the source sequence. + Source sequence to delay values for. + Absolute time used to shift the observable sequence; the relative time shift gets computed upon subscription. If this value is less than or equal to DateTimeOffset.UtcNow, the scheduler will dispatch observer callbacks as soon as possible. + Scheduler to run the delay timers on. + Time-shifted sequence. + or is null. + + + This operator is less efficient than DelaySubscription because it records all notifications and time-delays those. This allows for immediate propagation of errors. + + + Observer callbacks for the resulting sequence will be run on the specified scheduler. This effect is similar to using ObserveOn. + + + Exceptions signaled by the source sequence through an OnError callback are forwarded immediately to the result sequence. Any OnNext notifications that were in the queue at the point of the OnError callback will be dropped. + In order to delay error propagation, consider using the Observable.Materialize and Observable.Dematerialize operators, or use DelaySubscription. + + + + + + Time shifts the observable sequence based on a delay selector function for each element. + + The type of the elements in the source sequence. + The type of the elements in the delay sequences used to denote the delay duration of each element in the source sequence. + Source sequence to delay values for. + Selector function to retrieve a sequence indicating the delay for each given element. + Time-shifted sequence. + or is null. + + + + Time shifts the observable sequence based on a subscription delay and a delay selector function for each element. + + The type of the elements in the source sequence. + The type of the elements in the delay sequences used to denote the delay duration of each element in the source sequence. + Source sequence to delay values for. + Sequence indicating the delay for the subscription to the source. + Selector function to retrieve a sequence indicating the delay for each given element. + Time-shifted sequence. + or or is null. + + + + Time shifts the observable sequence by delaying the subscription with the specified relative time duration. + + The type of the elements in the source sequence. + Source sequence to delay subscription for. + Relative time shift of the subscription. + Time-shifted sequence. + is null. + is less than TimeSpan.Zero. + + + This operator is more efficient than Delay but postpones all side-effects of subscription and affects error propagation timing. + + + The side-effects of subscribing to the source sequence will be run on the default scheduler. Observer callbacks will not be affected. + + + + + + Time shifts the observable sequence by delaying the subscription with the specified relative time duration, using the specified scheduler to run timers. + + The type of the elements in the source sequence. + Source sequence to delay subscription for. + Relative time shift of the subscription. + Scheduler to run the subscription delay timer on. + Time-shifted sequence. + or is null. + is less than TimeSpan.Zero. + + + This operator is more efficient than Delay but postpones all side-effects of subscription and affects error propagation timing. + + + The side-effects of subscribing to the source sequence will be run on the specified scheduler. Observer callbacks will not be affected. + + + + + + Time shifts the observable sequence by delaying the subscription to the specified absolute time. + + The type of the elements in the source sequence. + Source sequence to delay subscription for. + Absolute time to perform the subscription at. + Time-shifted sequence. + is null. + + + This operator is more efficient than Delay but postpones all side-effects of subscription and affects error propagation timing. + + + The side-effects of subscribing to the source sequence will be run on the default scheduler. Observer callbacks will not be affected. + + + + + + Time shifts the observable sequence by delaying the subscription to the specified absolute time, using the specified scheduler to run timers. + + The type of the elements in the source sequence. + Source sequence to delay subscription for. + Absolute time to perform the subscription at. + Scheduler to run the subscription delay timer on. + Time-shifted sequence. + or is null. + + + This operator is more efficient than Delay but postpones all side-effects of subscription and affects error propagation timing. + + + The side-effects of subscribing to the source sequence will be run on the specified scheduler. Observer callbacks will not be affected. + + + + + + Generates an observable sequence by running a state-driven and temporal loop producing the sequence's elements. + + The type of the state used in the generator loop. + The type of the elements in the produced sequence. + Initial state. + Condition to terminate generation (upon returning false). + Iteration step function. + Selector function for results produced in the sequence. + Time selector function to control the speed of values being produced each iteration. + The generated sequence. + or or or is null. + + + + Generates an observable sequence by running a state-driven and temporal loop producing the sequence's elements, using the specified scheduler to run timers and to send out observer messages. + + The type of the state used in the generator loop. + The type of the elements in the produced sequence. + Initial state. + Condition to terminate generation (upon returning false). + Iteration step function. + Selector function for results produced in the sequence. + Time selector function to control the speed of values being produced each iteration. + Scheduler on which to run the generator loop. + The generated sequence. + or or or or is null. + + + + Generates an observable sequence by running a state-driven and temporal loop producing the sequence's elements. + + The type of the state used in the generator loop. + The type of the elements in the produced sequence. + Initial state. + Condition to terminate generation (upon returning false). + Iteration step function. + Selector function for results produced in the sequence. + Time selector function to control the speed of values being produced each iteration. + The generated sequence. + or or or is null. + + + + Generates an observable sequence by running a state-driven and temporal loop producing the sequence's elements, using the specified scheduler to run timers and to send out observer messages. + + The type of the state used in the generator loop. + The type of the elements in the produced sequence. + Initial state. + Condition to terminate generation (upon returning false). + Iteration step function. + Selector function for results produced in the sequence. + Time selector function to control the speed of values being produced each iteration. + Scheduler on which to run the generator loop. + The generated sequence. + or or or or is null. + + + + Returns an observable sequence that produces a value after each period. + + Period for producing the values in the resulting sequence. If this value is equal to TimeSpan.Zero, the timer will recur as fast as possible. + An observable sequence that produces a value after each period. + is less than TimeSpan.Zero. + + Intervals are measured between the start of subsequent notifications, not between the end of the previous and the start of the next notification. + If the observer takes longer than the interval period to handle the message, the subsequent notification will be delivered immediately after the + current one has been handled. In case you need to control the time between the end and the start of consecutive notifications, consider using the + + operator instead. + + + + + Returns an observable sequence that produces a value after each period, using the specified scheduler to run timers and to send out observer messages. + + Period for producing the values in the resulting sequence. If this value is equal to TimeSpan.Zero, the timer will recur as fast as possible. + Scheduler to run the timer on. + An observable sequence that produces a value after each period. + is less than TimeSpan.Zero. + is null. + + Intervals are measured between the start of subsequent notifications, not between the end of the previous and the start of the next notification. + If the observer takes longer than the interval period to handle the message, the subsequent notification will be delivered immediately after the + current one has been handled. In case you need to control the time between the end and the start of consecutive notifications, consider using the + + operator instead. + + + + + Samples the observable sequence at each interval. + Upon each sampling tick, the latest element (if any) in the source sequence during the last sampling interval is sent to the resulting sequence. + + The type of the elements in the source sequence. + Source sequence to sample. + Interval at which to sample. If this value is equal to TimeSpan.Zero, the scheduler will continuously sample the stream. + Sampled observable sequence. + is null. + is less than TimeSpan.Zero. + + Specifying a TimeSpan.Zero value for doesn't guarantee all source sequence elements will be preserved. This is a side-effect + of the asynchrony introduced by the scheduler, where the sampling action may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Samples the observable sequence at each interval, using the specified scheduler to run sampling timers. + Upon each sampling tick, the latest element (if any) in the source sequence during the last sampling interval is sent to the resulting sequence. + + The type of the elements in the source sequence. + Source sequence to sample. + Interval at which to sample. If this value is equal to TimeSpan.Zero, the scheduler will continuously sample the stream. + Scheduler to run the sampling timer on. + Sampled observable sequence. + or is null. + is less than TimeSpan.Zero. + + Specifying a TimeSpan.Zero value for doesn't guarantee all source sequence elements will be preserved. This is a side-effect + of the asynchrony introduced by the scheduler, where the sampling action may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Samples the source observable sequence using a sampler observable sequence producing sampling ticks. + Upon each sampling tick, the latest element (if any) in the source sequence during the last sampling interval is sent to the resulting sequence. + + The type of the elements in the source sequence. + The type of the elements in the sampling sequence. + Source sequence to sample. + Sampling tick sequence. + Sampled observable sequence. + or is null. + + + + Skips elements for the specified duration from the start of the observable source sequence. + + The type of the elements in the source sequence. + Source sequence to skip elements for. + Duration for skipping elements from the start of the sequence. + An observable sequence with the elements skipped during the specified duration from the start of the source sequence. + is null. + is less than TimeSpan.Zero. + + + Specifying a TimeSpan.Zero value for doesn't guarantee no elements will be dropped from the start of the source sequence. + This is a side-effect of the asynchrony introduced by the scheduler, where the action that causes callbacks from the source sequence to be forwarded + may not execute immediately, despite the TimeSpan.Zero due time. + + + Errors produced by the source sequence are always forwarded to the result sequence, even if the error occurs before the . + + + + + + Skips elements for the specified duration from the start of the observable source sequence, using the specified scheduler to run timers. + + The type of the elements in the source sequence. + Source sequence to skip elements for. + Duration for skipping elements from the start of the sequence. + Scheduler to run the timer on. + An observable sequence with the elements skipped during the specified duration from the start of the source sequence. + or is null. + is less than TimeSpan.Zero. + + + Specifying a TimeSpan.Zero value for doesn't guarantee no elements will be dropped from the start of the source sequence. + This is a side-effect of the asynchrony introduced by the scheduler, where the action that causes callbacks from the source sequence to be forwarded + may not execute immediately, despite the TimeSpan.Zero due time. + + + Errors produced by the source sequence are always forwarded to the result sequence, even if the error occurs before the . + + + + + + Skips elements for the specified duration from the end of the observable source sequence. + + The type of the elements in the source sequence. + Source sequence to skip elements for. + Duration for skipping elements from the end of the sequence. + An observable sequence with the elements skipped during the specified duration from the end of the source sequence. + is null. + is less than TimeSpan.Zero. + + This operator accumulates a queue with a length enough to store elements received during the initial window. + As more elements are received, elements older than the specified are taken from the queue and produced on the + result sequence. This causes elements to be delayed with . + + + + + Skips elements for the specified duration from the end of the observable source sequence, using the specified scheduler to run timers. + + The type of the elements in the source sequence. + Source sequence to skip elements for. + Duration for skipping elements from the end of the sequence. + Scheduler to run the timer on. + An observable sequence with the elements skipped during the specified duration from the end of the source sequence. + or is null. + is less than TimeSpan.Zero. + + This operator accumulates a queue with a length enough to store elements received during the initial window. + As more elements are received, elements older than the specified are taken from the queue and produced on the + result sequence. This causes elements to be delayed with . + + + + + Skips elements from the observable source sequence until the specified start time. + + The type of the elements in the source sequence. + Source sequence to skip elements for. + Time to start taking elements from the source sequence. If this value is less than or equal to DateTimeOffset.UtcNow, no elements will be skipped. + An observable sequence with the elements skipped until the specified start time. + is null. + + Errors produced by the source sequence are always forwarded to the result sequence, even if the error occurs before the . + + + + + Skips elements from the observable source sequence until the specified start time, using the specified scheduler to run timers. + + The type of the elements in the source sequence. + Source sequence to skip elements for. + Time to start taking elements from the source sequence. If this value is less than or equal to DateTimeOffset.UtcNow, no elements will be skipped. + Scheduler to run the timer on. + An observable sequence with the elements skipped until the specified start time. + or is null. + + Errors produced by the source sequence are always forwarded to the result sequence, even if the error occurs before the . + + + + + Takes elements for the specified duration from the start of the observable source sequence. + + The type of the elements in the source sequence. + Source sequence to take elements from. + Duration for taking elements from the start of the sequence. + An observable sequence with the elements taken during the specified duration from the start of the source sequence. + is null. + is less than TimeSpan.Zero. + + Specifying a TimeSpan.Zero value for doesn't guarantee an empty sequence will be returned. This is a side-effect + of the asynchrony introduced by the scheduler, where the action that stops forwarding callbacks from the source sequence may not execute + immediately, despite the TimeSpan.Zero due time. + + + + + Takes elements for the specified duration from the start of the observable source sequence, using the specified scheduler to run timers. + + The type of the elements in the source sequence. + Source sequence to take elements from. + Duration for taking elements from the start of the sequence. + Scheduler to run the timer on. + An observable sequence with the elements taken during the specified duration from the start of the source sequence. + or is null. + is less than TimeSpan.Zero. + + Specifying a TimeSpan.Zero value for doesn't guarantee an empty sequence will be returned. This is a side-effect + of the asynchrony introduced by the scheduler, where the action that stops forwarding callbacks from the source sequence may not execute + immediately, despite the TimeSpan.Zero due time. + + + + + Returns elements within the specified duration from the end of the observable source sequence. + + The type of the elements in the source sequence. + Source sequence to take elements from. + Duration for taking elements from the end of the sequence. + An observable sequence with the elements taken during the specified duration from the end of the source sequence. + is null. + is less than TimeSpan.Zero. + + This operator accumulates a buffer with a length enough to store elements for any window during the lifetime of + the source sequence. Upon completion of the source sequence, this buffer is drained on the result sequence. This causes the result elements + to be delayed with . + + + + + Returns elements within the specified duration from the end of the observable source sequence, using the specified scheduler to run timers. + + The type of the elements in the source sequence. + Source sequence to take elements from. + Duration for taking elements from the end of the sequence. + Scheduler to run the timer on. + An observable sequence with the elements taken during the specified duration from the end of the source sequence. + or is null. + is less than TimeSpan.Zero. + + This operator accumulates a buffer with a length enough to store elements for any window during the lifetime of + the source sequence. Upon completion of the source sequence, this buffer is drained on the result sequence. This causes the result elements + to be delayed with . + + + + + Returns elements within the specified duration from the end of the observable source sequence, using the specified schedulers to run timers and to drain the collected elements. + + The type of the elements in the source sequence. + Source sequence to take elements from. + Duration for taking elements from the end of the sequence. + Scheduler to run the timer on. + Scheduler to drain the collected elements. + An observable sequence with the elements taken during the specified duration from the end of the source sequence. + or or is null. + is less than TimeSpan.Zero. + + This operator accumulates a buffer with a length enough to store elements for any window during the lifetime of + the source sequence. Upon completion of the source sequence, this buffer is drained on the result sequence. This causes the result elements + to be delayed with . + + + + + Returns a list with the elements within the specified duration from the end of the observable source sequence. + + The type of the elements in the source sequence. + Source sequence to take elements from. + Duration for taking elements from the end of the sequence. + An observable sequence containing a single list with the elements taken during the specified duration from the end of the source sequence. + is null. + is less than TimeSpan.Zero. + + This operator accumulates a buffer with a length enough to store elements for any window during the lifetime of + the source sequence. Upon completion of the source sequence, this buffer is produced on the result sequence. + + + + + Returns a list with the elements within the specified duration from the end of the observable source sequence, using the specified scheduler to run timers. + + The type of the elements in the source sequence. + Source sequence to take elements from. + Duration for taking elements from the end of the sequence. + Scheduler to run the timer on. + An observable sequence containing a single list with the elements taken during the specified duration from the end of the source sequence. + or is null. + is less than TimeSpan.Zero. + + This operator accumulates a buffer with a length enough to store elements for any window during the lifetime of + the source sequence. Upon completion of the source sequence, this buffer is produced on the result sequence. + + + + + Takes elements for the specified duration until the specified end time. + + The type of the elements in the source sequence. + Source sequence to take elements from. + Time to stop taking elements from the source sequence. If this value is less than or equal to DateTimeOffset.UtcNow, the result stream will complete immediately. + An observable sequence with the elements taken until the specified end time. + is null. + + + + Takes elements for the specified duration until the specified end time, using the specified scheduler to run timers. + + The type of the elements in the source sequence. + Source sequence to take elements from. + Time to stop taking elements from the source sequence. If this value is less than or equal to DateTimeOffset.UtcNow, the result stream will complete immediately. + Scheduler to run the timer on. + An observable sequence with the elements taken until the specified end time. + or is null. + + + + Ignores elements from an observable sequence which are followed by another element within a specified relative time duration. + + The type of the elements in the source sequence. + Source sequence to throttle. + Throttling duration for each element. + The throttled sequence. + is null. + is less than TimeSpan.Zero. + + + This operator throttles the source sequence by holding on to each element for the duration specified in . If another + element is produced within this time window, the element is dropped and a new timer is started for the current element, repeating this whole + process. For streams that never have gaps larger than or equal to between elements, the resulting stream won't + produce any elements. In order to reduce the volume of a stream whilst guaranteeing the periodic production of elements, consider using the + Observable.Sample set of operators. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing throttling timers to be scheduled + that are due immediately. However, this doesn't guarantee all elements will be retained in the result sequence. This is a side-effect of the + asynchrony introduced by the scheduler, where the action to forward the current element may not execute immediately, despite the TimeSpan.Zero + due time. In such cases, the next element may arrive before the scheduler gets a chance to run the throttling action. + + + + + + Ignores elements from an observable sequence which are followed by another element within a specified relative time duration, using the specified scheduler to run throttling timers. + + The type of the elements in the source sequence. + Source sequence to throttle. + Throttling duration for each element. + Scheduler to run the throttle timers on. + The throttled sequence. + or is null. + is less than TimeSpan.Zero. + + + This operator throttles the source sequence by holding on to each element for the duration specified in . If another + element is produced within this time window, the element is dropped and a new timer is started for the current element, repeating this whole + process. For streams that never have gaps larger than or equal to between elements, the resulting stream won't + produce any elements. In order to reduce the volume of a stream whilst guaranteeing the periodic production of elements, consider using the + Observable.Sample set of operators. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing throttling timers to be scheduled + that are due immediately. However, this doesn't guarantee all elements will be retained in the result sequence. This is a side-effect of the + asynchrony introduced by the scheduler, where the action to forward the current element may not execute immediately, despite the TimeSpan.Zero + due time. In such cases, the next element may arrive before the scheduler gets a chance to run the throttling action. + + + + + + Ignores elements from an observable sequence which are followed by another value within a computed throttle duration. + + The type of the elements in the source sequence. + The type of the elements in the throttle sequences selected for each element in the source sequence. + Source sequence to throttle. + Selector function to retrieve a sequence indicating the throttle duration for each given element. + The throttled sequence. + or is null. + + This operator throttles the source sequence by holding on to each element for the duration denoted by . + If another element is produced within this time window, the element is dropped and a new timer is started for the current element, repeating this + whole process. For streams where the duration computed by applying the to each element overlaps with + the occurrence of the successor element, the resulting stream won't produce any elements. In order to reduce the volume of a stream whilst + guaranteeing the periodic production of elements, consider using the Observable.Sample set of operators. + + + + + Records the time interval between consecutive elements in an observable sequence. + + The type of the elements in the source sequence. + Source sequence to record time intervals for. + An observable sequence with time interval information on elements. + is null. + + + + Records the time interval between consecutive elements in an observable sequence, using the specified scheduler to compute time intervals. + + The type of the elements in the source sequence. + Source sequence to record time intervals for. + Scheduler used to compute time intervals. + An observable sequence with time interval information on elements. + or is null. + + + + Applies a timeout policy for each element in the observable sequence. + If the next element isn't received within the specified timeout duration starting from its predecessor, a TimeoutException is propagated to the observer. + + The type of the elements in the source sequence. + Source sequence to perform a timeout for. + Maximum duration between values before a timeout occurs. + The source sequence with a TimeoutException in case of a timeout. + is null. + is less than TimeSpan.Zero. + (Asynchronous) If no element is produced within from the previous element. + + + In case you only want to timeout on the first element, consider using the + operator applied to the source sequence and a delayed sequence. Alternatively, the general-purpose overload + of Timeout, can be used. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing timeout timers to be scheduled that are due + immediately. However, this doesn't guarantee a timeout will occur, even for the first element. This is a side-effect of the asynchrony introduced by the + scheduler, where the action to propagate a timeout may not execute immediately, despite the TimeSpan.Zero due time. In such cases, the next element may + arrive before the scheduler gets a chance to run the timeout action. + + + + + + Applies a timeout policy for each element in the observable sequence, using the specified scheduler to run timeout timers. + If the next element isn't received within the specified timeout duration starting from its predecessor, a TimeoutException is propagated to the observer. + + The type of the elements in the source sequence. + Source sequence to perform a timeout for. + Maximum duration between values before a timeout occurs. + Scheduler to run the timeout timers on. + The source sequence with a TimeoutException in case of a timeout. + or is null. + is less than TimeSpan.Zero. + (Asynchronous) If no element is produced within from the previous element. + + + In case you only want to timeout on the first element, consider using the + operator applied to the source sequence and a delayed sequence. Alternatively, the general-purpose overload + of Timeout, can be used. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing timeout timers to be scheduled that are due + immediately. However, this doesn't guarantee a timeout will occur, even for the first element. This is a side-effect of the asynchrony introduced by the + scheduler, where the action to propagate a timeout may not execute immediately, despite the TimeSpan.Zero due time. In such cases, the next element may + arrive before the scheduler gets a chance to run the timeout action. + + + + + + Applies a timeout policy for each element in the observable sequence. + If the next element isn't received within the specified timeout duration starting from its predecessor, the other observable sequence is used to produce future messages from that point on. + + The type of the elements in the source sequence and the other sequence used upon a timeout. + Source sequence to perform a timeout for. + Maximum duration between values before a timeout occurs. + Sequence to return in case of a timeout. + The source sequence switching to the other sequence in case of a timeout. + or is null. + is less than TimeSpan.Zero. + + + In case you only want to timeout on the first element, consider using the + operator applied to the source sequence and a delayed sequence. Alternatively, the general-purpose overload + of Timeout, can be used. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing timeout timers to be scheduled that are due + immediately. However, this doesn't guarantee a timeout will occur, even for the first element. This is a side-effect of the asynchrony introduced by the + scheduler, where the action to propagate a timeout may not execute immediately, despite the TimeSpan.Zero due time. In such cases, the next element may + arrive before the scheduler gets a chance to run the timeout action. + + + + + + Applies a timeout policy for each element in the observable sequence, using the specified scheduler to run timeout timers. + If the next element isn't received within the specified timeout duration starting from its predecessor, the other observable sequence is used to produce future messages from that point on. + + The type of the elements in the source sequence and the other sequence used upon a timeout. + Source sequence to perform a timeout for. + Maximum duration between values before a timeout occurs. + Sequence to return in case of a timeout. + Scheduler to run the timeout timers on. + The source sequence switching to the other sequence in case of a timeout. + or or is null. + is less than TimeSpan.Zero. + + + In case you only want to timeout on the first element, consider using the + operator applied to the source sequence and a delayed sequence. Alternatively, the general-purpose overload + of Timeout, can be used. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing timeout timers to be scheduled that are due + immediately. However, this doesn't guarantee a timeout will occur, even for the first element. This is a side-effect of the asynchrony introduced by the + scheduler, where the action to propagate a timeout may not execute immediately, despite the TimeSpan.Zero due time. In such cases, the next element may + arrive before the scheduler gets a chance to run the timeout action. + + + + + + Applies a timeout policy to the observable sequence based on an absolute time. + If the sequence doesn't terminate before the specified absolute due time, a TimeoutException is propagated to the observer. + + The type of the elements in the source sequence. + Source sequence to perform a timeout for. + Time when a timeout occurs. If this value is less than or equal to DateTimeOffset.UtcNow, the timeout occurs immediately. + The source sequence with a TimeoutException in case of a timeout. + is null. + (Asynchronous) If the sequence hasn't terminated before . + + In case you only want to timeout on the first element, consider using the + operator applied to the source sequence and a delayed sequence. Alternatively, the general-purpose overload + of Timeout, can be used. + + + + + Applies a timeout policy to the observable sequence based on an absolute time, using the specified scheduler to run timeout timers. + If the sequence doesn't terminate before the specified absolute due time, a TimeoutException is propagated to the observer. + + The type of the elements in the source sequence. + Source sequence to perform a timeout for. + Time when a timeout occurs. If this value is less than or equal to DateTimeOffset.UtcNow, the timeout occurs immediately. + Scheduler to run the timeout timers on. + The source sequence with a TimeoutException in case of a timeout. + or is null. + (Asynchronous) If the sequence hasn't terminated before . + + In case you only want to timeout on the first element, consider using the + operator applied to the source sequence and a delayed sequence. Alternatively, the general-purpose overload + of Timeout, can be used. + + + + + Applies a timeout policy to the observable sequence based on an absolute time. + If the sequence doesn't terminate before the specified absolute due time, the other observable sequence is used to produce future messages from that point on. + + The type of the elements in the source sequence and the other sequence used upon a timeout. + Source sequence to perform a timeout for. + Time when a timeout occurs. If this value is less than or equal to DateTimeOffset.UtcNow, the timeout occurs immediately. + Sequence to return in case of a timeout. + The source sequence switching to the other sequence in case of a timeout. + or is null. + + In case you only want to timeout on the first element, consider using the + operator applied to the source sequence and a delayed sequence. Alternatively, the general-purpose overload + of Timeout, can be used. + + + + + Applies a timeout policy to the observable sequence based on an absolute time, using the specified scheduler to run timeout timers. + If the sequence doesn't terminate before the specified absolute due time, the other observable sequence is used to produce future messages from that point on. + + The type of the elements in the source sequence and the other sequence used upon a timeout. + Source sequence to perform a timeout for. + Time when a timeout occurs. If this value is less than or equal to DateTimeOffset.UtcNow, the timeout occurs immediately. + Sequence to return in case of a timeout. + Scheduler to run the timeout timers on. + The source sequence switching to the other sequence in case of a timeout. + or or is null. + + In case you only want to timeout on the first element, consider using the + operator applied to the source sequence and a delayed sequence. Alternatively, the general-purpose overload + of Timeout, can be used. + + + + + Applies a timeout policy to the observable sequence based on a timeout duration computed for each element. + If the next element isn't received within the computed duration starting from its predecessor, a TimeoutException is propagated to the observer. + + The type of the elements in the source sequence. + The type of the elements in the timeout sequences used to indicate the timeout duration for each element in the source sequence. + Source sequence to perform a timeout for. + Selector to retrieve an observable sequence that represents the timeout between the current element and the next element. + The source sequence with a TimeoutException in case of a timeout. + or is null. + + + + Applies a timeout policy to the observable sequence based on a timeout duration computed for each element. + If the next element isn't received within the computed duration starting from its predecessor, the other observable sequence is used to produce future messages from that point on. + + The type of the elements in the source sequence and the other sequence used upon a timeout. + The type of the elements in the timeout sequences used to indicate the timeout duration for each element in the source sequence. + Source sequence to perform a timeout for. + Selector to retrieve an observable sequence that represents the timeout between the current element and the next element. + Sequence to return in case of a timeout. + The source sequence switching to the other sequence in case of a timeout. + or or is null. + + + + Applies a timeout policy to the observable sequence based on an initial timeout duration for the first element, and a timeout duration computed for each subsequent element. + If the next element isn't received within the computed duration starting from its predecessor, a TimeoutException is propagated to the observer. + + The type of the elements in the source sequence. + The type of the elements in the timeout sequences used to indicate the timeout duration for each element in the source sequence. + Source sequence to perform a timeout for. + Observable sequence that represents the timeout for the first element. + Selector to retrieve an observable sequence that represents the timeout between the current element and the next element. + The source sequence with a TimeoutException in case of a timeout. + or or is null. + + + + Applies a timeout policy to the observable sequence based on an initial timeout duration for the first element, and a timeout duration computed for each subsequent element. + If the next element isn't received within the computed duration starting from its predecessor, the other observable sequence is used to produce future messages from that point on. + + The type of the elements in the source sequence and the other sequence used upon a timeout. + The type of the elements in the timeout sequences used to indicate the timeout duration for each element in the source sequence. + Source sequence to perform a timeout for. + Observable sequence that represents the timeout for the first element. + Selector to retrieve an observable sequence that represents the timeout between the current element and the next element. + Sequence to return in case of a timeout. + The source sequence switching to the other sequence in case of a timeout. + or or or is null. + + + + Returns an observable sequence that produces a single value after the specified relative due time has elapsed. + + Relative time at which to produce the value. If this value is less than or equal to TimeSpan.Zero, the timer will fire as soon as possible. + An observable sequence that produces a value after the due time has elapsed. + + + + Returns an observable sequence that produces a single value at the specified absolute due time. + + Absolute time at which to produce the value. If this value is less than or equal to DateTimeOffset.UtcNow, the timer will fire as soon as possible. + An observable sequence that produces a value at due time. + + + + Returns an observable sequence that periodically produces a value after the specified initial relative due time has elapsed. + + Relative time at which to produce the first value. If this value is less than or equal to TimeSpan.Zero, the timer will fire as soon as possible. + Period to produce subsequent values. If this value is equal to TimeSpan.Zero, the timer will recur as fast as possible. + An observable sequence that produces a value after due time has elapsed and then after each period. + is less than TimeSpan.Zero. + + + + Returns an observable sequence that periodically produces a value starting at the specified initial absolute due time. + + Absolute time at which to produce the first value. If this value is less than or equal to DateTimeOffset.UtcNow, the timer will fire as soon as possible. + Period to produce subsequent values. If this value is equal to TimeSpan.Zero, the timer will recur as fast as possible. + An observable sequence that produces a value at due time and then after each period. + is less than TimeSpan.Zero. + + + + Returns an observable sequence that produces a single value after the specified relative due time has elapsed, using the specified scheduler to run the timer. + + Relative time at which to produce the value. If this value is less than or equal to TimeSpan.Zero, the timer will fire as soon as possible. + Scheduler to run the timer on. + An observable sequence that produces a value after the due time has elapsed. + is null. + + + + Returns an observable sequence that produces a single value at the specified absolute due time, using the specified scheduler to run the timer. + + Absolute time at which to produce the value. If this value is less than or equal to DateTimeOffset.UtcNow, the timer will fire as soon as possible. + Scheduler to run the timer on. + An observable sequence that produces a value at due time. + is null. + + + + Returns an observable sequence that periodically produces a value after the specified initial relative due time has elapsed, using the specified scheduler to run timers. + + Relative time at which to produce the first value. If this value is less than or equal to TimeSpan.Zero, the timer will fire as soon as possible. + Period to produce subsequent values. If this value is equal to TimeSpan.Zero, the timer will recur as fast as possible. + Scheduler to run timers on. + An observable sequence that produces a value after due time has elapsed and then each period. + is less than TimeSpan.Zero. + is null. + + + + Returns an observable sequence that periodically produces a value starting at the specified initial absolute due time, using the specified scheduler to run timers. + + Absolute time at which to produce the first value. If this value is less than or equal to DateTimeOffset.UtcNow, the timer will fire as soon as possible. + Period to produce subsequent values. If this value is equal to TimeSpan.Zero, the timer will recur as fast as possible. + Scheduler to run timers on. + An observable sequence that produces a value at due time and then after each period. + is less than TimeSpan.Zero. + is null. + + + + Timestamps each element in an observable sequence using the local system clock. + + The type of the elements in the source sequence. + Source sequence to timestamp elements for. + An observable sequence with timestamp information on elements. + is null. + + + + Timestamp each element in an observable sequence using the clock of the specified scheduler. + + The type of the elements in the source sequence. + Source sequence to timestamp elements for. + Scheduler used to compute timestamps. + An observable sequence with timestamp information on elements. + or is null. + + + + Projects each element of an observable sequence into consecutive non-overlapping windows which are produced based on timing information. + + The type of the elements in the source sequence, and in the windows in the result sequence. + Source sequence to produce windows over. + Length of each window. + The sequence of windows. + is null. + is less than TimeSpan.Zero. + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create windows as fast as it can. + Because all source sequence elements end up in one of the windows, some windows won't have a zero time span. This is a side-effect of the asynchrony introduced + by the scheduler, where the action to close the current window and to create a new window may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Projects each element of an observable sequence into consecutive non-overlapping windows which are produced based on timing information, using the specified scheduler to run timers. + + The type of the elements in the source sequence, and in the windows in the result sequence. + Source sequence to produce windows over. + Length of each window. + Scheduler to run windowing timers on. + An observable sequence of windows. + or is null. + is less than TimeSpan.Zero. + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create windows as fast as it can. + Because all source sequence elements end up in one of the windows, some windows won't have a zero time span. This is a side-effect of the asynchrony introduced + by the scheduler, where the action to close the current window and to create a new window may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Projects each element of an observable sequence into zero or more windows which are produced based on timing information. + + The type of the elements in the source sequence, and in the windows in the result sequence. + Source sequence to produce windows over. + Length of each window. + Interval between creation of consecutive windows. + An observable sequence of windows. + is null. + or is less than TimeSpan.Zero. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create windows with minimum duration + length. However, some windows won't have a zero time span. This is a side-effect of the asynchrony introduced by the scheduler, where the action to close the + current window may not execute immediately, despite the TimeSpan.Zero due time. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create windows as fast as it can. + However, this doesn't mean all windows will start at the beginning of the source sequence. This is a side-effect of the asynchrony introduced by the scheduler, + where the action to create a new window may not execute immediately, despite the TimeSpan.Zero due time. + + + + + + Projects each element of an observable sequence into zero or more windows which are produced based on timing information, using the specified scheduler to run timers. + + The type of the elements in the source sequence, and in the windows in the result sequence. + Source sequence to produce windows over. + Length of each window. + Interval between creation of consecutive windows. + Scheduler to run windowing timers on. + An observable sequence of windows. + or is null. + or is less than TimeSpan.Zero. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create windows with minimum duration + length. However, some windows won't have a zero time span. This is a side-effect of the asynchrony introduced by the scheduler, where the action to close the + current window may not execute immediately, despite the TimeSpan.Zero due time. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create windows as fast as it can. + However, this doesn't mean all windows will start at the beginning of the source sequence. This is a side-effect of the asynchrony introduced by the scheduler, + where the action to create a new window may not execute immediately, despite the TimeSpan.Zero due time. + + + + + + Projects each element of an observable sequence into a window that is completed when either it's full or a given amount of time has elapsed. + A useful real-world analogy of this overload is the behavior of a ferry leaving the dock when all seats are taken, or at the scheduled time of departure, whichever event occurs first. + + The type of the elements in the source sequence, and in the windows in the result sequence. + Source sequence to produce windows over. + Maximum time length of a window. + Maximum element count of a window. + An observable sequence of windows. + is null. + is less than TimeSpan.Zero. -or- is less than or equal to zero. + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create windows as fast as it can. + Because all source sequence elements end up in one of the windows, some windows won't have a zero time span. This is a side-effect of the asynchrony introduced + by the scheduler, where the action to close the current window and to create a new window may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Projects each element of an observable sequence into a window that is completed when either it's full or a given amount of time has elapsed, using the specified scheduler to run timers. + A useful real-world analogy of this overload is the behavior of a ferry leaving the dock when all seats are taken, or at the scheduled time of departure, whichever event occurs first. + + The type of the elements in the source sequence, and in the windows in the result sequence. + Source sequence to produce windows over. + Maximum time length of a window. + Maximum element count of a window. + Scheduler to run windowing timers on. + An observable sequence of windows. + or is null. + is less than TimeSpan.Zero. -or- is less than or equal to zero. + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create windows as fast as it can. + Because all source sequence elements end up in one of the windows, some windows won't have a zero time span. This is a side-effect of the asynchrony introduced + by the scheduler, where the action to close the current window and to create a new window may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Provides a set of static methods for writing in-memory queries over observable sequences. + + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + First observable source. + Second observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + First observable source. + Second observable source. + Third observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or is null. + + + + Merges two observable sequences into one observable sequence by combining each element from the first source with the latest element from the second source, if any. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + First observable source. + Second observable source. + An observable sequence containing the result of combining each element of the first source with the latest element from the second source, if any, as a tuple value. + or is null. + + + + Merges an observable sequence and an enumerable sequence into one observable sequence of tuple values. + + The type of the elements in the first observable source sequence. + The type of the elements in the second enumerable source sequence. + First observable source. + Second enumerable source. + An observable sequence containing the result of pairwise combining the elements of the first and second source as a tuple value. + or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + First observable source. + Second observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + First observable source. + Second observable source. + Third observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or is null. + + + + Subscribes to each observable sequence returned by the iteratorMethod in sequence and returns the observable sequence of values sent to the observer given to the iteratorMethod. + + The type of the elements in the produced sequence. + Iterator method that produces elements in the resulting sequence by calling the given observer. + An observable sequence obtained by running the iterator and returning the elements that were sent to the observer. + is null. + + + + Subscribes to each observable sequence returned by the iteratorMethod in sequence and produces a Unit value on the resulting sequence for each step of the iteration. + + Iterator method that drives the resulting observable sequence. + An observable sequence obtained by running the iterator and returning Unit values for each iteration step. + is null. + + + + Expands an observable sequence by recursively invoking selector, using the specified scheduler to enumerate the queue of obtained sequences. + + The type of the elements in the source sequence and each of the recursively expanded sources obtained by running the selector function. + Source sequence with the initial elements. + Selector function to invoke for each produced element, resulting in another sequence to which the selector will be invoked recursively again. + Scheduler on which to perform the expansion by enumerating the internal queue of obtained sequences. + An observable sequence containing all the elements produced by the recursive expansion. + or or is null. + + + + Expands an observable sequence by recursively invoking selector. + + The type of the elements in the source sequence and each of the recursively expanded sources obtained by running the selector function. + Source sequence with the initial elements. + Selector function to invoke for each produced element, resulting in another sequence to which the selector will be invoked recursively again. + An observable sequence containing all the elements produced by the recursive expansion. + or is null. + + + + Runs two observable sequences in parallel and combines their last elements. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable sequence. + Second observable sequence. + Result selector function to invoke with the last elements of both sequences. + An observable sequence with the result of calling the selector function with the last elements of both input sequences. + or or is null. + + + + Runs all specified observable sequences in parallel and collects their last elements. + + The type of the elements in the source sequences. + Observable sequence to collect the last elements for. + An observable sequence with an array collecting the last elements of all the input sequences. + is null. + + + + Runs all observable sequences in the enumerable sources sequence in parallel and collect their last elements. + + The type of the elements in the source sequences. + Observable sequence to collect the last elements for. + An observable sequence with an array collecting the last elements of all the input sequences. + is null. + + + + Returns an observable sequence that is the result of invoking the selector on the source sequence, without sharing subscriptions. + This operator allows for a fluent style of writing queries that use the same sequence multiple times. + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence that will be shared in the selector function. + Selector function which can use the source sequence as many times as needed, without sharing subscriptions to the source sequence. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + or is null. + + + + Comonadic bind operator. + + + + + Comonadic bind operator. + + + + + Immediately subscribes to source and retains the elements in the observable sequence. + + The type of the elements in the source sequence. + Source sequence. + Object that's both an observable sequence and a list which can be used to access the source sequence's elements. + is null. + + + + Provides a set of static methods for writing queries over observable sequences, allowing translation to a target query language. + + + + + Gets the local query provider which will retarget Qbservable-based queries to the corresponding Observable-based query for in-memory execution upon subscription. + + + + + Converts an in-memory observable sequence into an sequence with an expression tree representing the source sequence. + + The type of the elements in the source sequence. + Source sequence. + sequence representing the given observable source sequence. + is null. + + + + Returns the input typed as an . + This operator is used to separate the part of the query that's captured as an expression tree from the part that's executed locally. + + The type of the elements in the source sequence. + An sequence to convert to an sequence. + The original source object, but typed as an . + is null. + + + + Converts an enumerable sequence to an observable sequence. + + The type of the elements in the source sequence. + Enumerable sequence to convert to an observable sequence. + The observable sequence whose elements are pulled from the given enumerable sequence. + is null. + This operator requires the source's object (see ) to implement . + + + + Converts an enumerable sequence to an observable sequence, using the specified scheduler to run the enumeration loop. + + The type of the elements in the source sequence. + Enumerable sequence to convert to an observable sequence. + Scheduler to run the enumeration of the input sequence on. + The observable sequence whose elements are pulled from the given enumerable sequence. + or is null. + This operator requires the source's object (see ) to implement . + + + + Applies an accumulator function over an observable sequence, returning the result of the aggregation as a single element in the result sequence. + For aggregation behavior with incremental intermediate results, see . + + The type of the elements in the source sequence and the result of the aggregation. + An observable sequence to aggregate over. + An accumulator function to be invoked on each element. + An observable sequence containing a single element with the final accumulator value. + + or is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Applies an accumulator function over an observable sequence, returning the result of the aggregation as a single element in the result sequence. The specified seed value is used as the initial accumulator value. + For aggregation behavior with incremental intermediate results, see . + + The type of the elements in the source sequence. + The type of the result of the aggregation. + An observable sequence to aggregate over. + The initial accumulator value. + An accumulator function to be invoked on each element. + An observable sequence containing a single element with the final accumulator value. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Applies an accumulator function over an observable sequence, returning the result of the aggregation as a single element in the result sequence. The specified seed value is used as the initial accumulator value, + and the specified result selector function is used to select the result value. + + The type of the elements in the source sequence. + The type of the accumulator value. + The type of the resulting value. + An observable sequence to aggregate over. + The initial accumulator value. + An accumulator function to be invoked on each element. + A function to transform the final accumulator value into the result value. + An observable sequence containing a single element with the final accumulator value. + + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Determines whether all elements of an observable sequence satisfy a condition. + + The type of the elements in the source sequence. + An observable sequence whose elements to apply the predicate to. + A function to test each element for a condition. + An observable sequence containing a single element determining whether all elements in the source sequence pass the test in the specified predicate. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Propagates the observable sequence that reacts first. + + The type of the elements in the source sequences. + First observable sequence. + Second observable sequence. + An observable sequence that surfaces either of the given sequences, whichever reacted first. + + or is null. + + + + Propagates the observable sequence that reacts first. + + Query provider used to construct the data source. + The type of the elements in the source sequences. + Observable sources competing to react first. + An observable sequence that surfaces any of the given sequences, whichever reacted first. + + is null. + + + + Propagates the observable sequence that reacts first. + + Query provider used to construct the data source. + The type of the elements in the source sequences. + Observable sources competing to react first. + An observable sequence that surfaces any of the given sequences, whichever reacted first. + + is null. + + + + Determines whether an observable sequence contains any elements. + + The type of the elements in the source sequence. + An observable sequence to check for non-emptiness. + An observable sequence containing a single element determining whether the source sequence contains any elements. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Determines whether any element of an observable sequence satisfies a condition. + + The type of the elements in the source sequence. + An observable sequence whose elements to apply the predicate to. + A function to test each element for a condition. + An observable sequence containing a single element determining whether any elements in the source sequence pass the test in the specified predicate. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Append a value to an observable sequence. + + The type of the elements in the source sequence. + Source sequence to append the value to. + Value to append to the specified sequence. + The source sequence appended with the specified value. + + is null. + + + + Append a value to an observable sequence. + + The type of the elements in the source sequence. + Source sequence to append the value to. + Value to append to the specified sequence. + Scheduler to emit the append values on. + The source sequence appended with the specified value. + + is null. + + + + Automatically connect the upstream IConnectableObservable at most once when the + specified number of IObservers have subscribed to this IObservable. + + Query provider used to construct the data source. + The type of the elements in the source sequence. + Connectable observable sequence. + The number of observers required to subscribe before the connection to source happens, non-positive value will trigger an immediate subscription. + If not null, the connection's IDisposable is provided to it. + An observable sequence that connects to the source at most once when the given number of observers have subscribed to it. + + is null. + + + + Computes the average of an observable sequence of values. + + A sequence of values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values. + + is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values. + + A sequence of values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values. + + is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values. + + A sequence of values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values. + + is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values. + + A sequence of values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values. + + is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of nullable values. + + A sequence of nullable values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + + is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of nullable values. + + A sequence of nullable values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + + is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of nullable values. + + A sequence of nullable values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + + is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + (Asynchronous) The sum of the elements in the source sequence is larger than . + + + + Computes the average of an observable sequence of nullable values. + + A sequence of nullable values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + + is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of nullable values. + + A sequence of nullable values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + + is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values. + + A sequence of values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values. + + is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values. + + or is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values. + + or is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values. + + or is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values. + + or is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values. + + or is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + + or is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + + or is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + + or is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + + or is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + + or is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Projects each element of an observable sequence into consecutive non-overlapping buffers which are produced based on element count information. + + The type of the elements in the source sequence, and in the lists in the result sequence. + Source sequence to produce buffers over. + Length of each buffer. + An observable sequence of buffers. + + is null. + + is less than or equal to zero. + + + + Projects each element of an observable sequence into zero or more buffers which are produced based on element count information. + + The type of the elements in the source sequence, and in the lists in the result sequence. + Source sequence to produce buffers over. + Length of each buffer. + Number of elements to skip between creation of consecutive buffers. + An observable sequence of buffers. + + is null. + + or is less than or equal to zero. + + + + Projects each element of an observable sequence into consecutive non-overlapping buffers which are produced based on timing information. + + The type of the elements in the source sequence, and in the lists in the result sequence. + Source sequence to produce buffers over. + Length of each buffer. + An observable sequence of buffers. + + is null. + + is less than TimeSpan.Zero. + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create buffers as fast as it can. + Because all source sequence elements end up in one of the buffers, some buffers won't have a zero time span. This is a side-effect of the asynchrony introduced + by the scheduler, where the action to close the current buffer and to create a new buffer may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Projects each element of an observable sequence into a buffer that's sent out when either it's full or a given amount of time has elapsed. + A useful real-world analogy of this overload is the behavior of a ferry leaving the dock when all seats are taken, or at the scheduled time of departure, whichever event occurs first. + + The type of the elements in the source sequence, and in the lists in the result sequence. + Source sequence to produce buffers over. + Maximum time length of a window. + Maximum element count of a window. + An observable sequence of buffers. + + is null. + + is less than TimeSpan.Zero. -or- is less than or equal to zero. + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create buffers as fast as it can. + Because all source sequence elements end up in one of the buffers, some buffers won't have a zero time span. This is a side-effect of the asynchrony introduced + by the scheduler, where the action to close the current buffer and to create a new buffer may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Projects each element of an observable sequence into a buffer that's sent out when either it's full or a given amount of time has elapsed, using the specified scheduler to run timers. + A useful real-world analogy of this overload is the behavior of a ferry leaving the dock when all seats are taken, or at the scheduled time of departure, whichever event occurs first. + + The type of the elements in the source sequence, and in the lists in the result sequence. + Source sequence to produce buffers over. + Maximum time length of a buffer. + Maximum element count of a buffer. + Scheduler to run buffering timers on. + An observable sequence of buffers. + + or is null. + + is less than TimeSpan.Zero. -or- is less than or equal to zero. + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create buffers as fast as it can. + Because all source sequence elements end up in one of the buffers, some buffers won't have a zero time span. This is a side-effect of the asynchrony introduced + by the scheduler, where the action to close the current buffer and to create a new buffer may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Projects each element of an observable sequence into consecutive non-overlapping buffers which are produced based on timing information, using the specified scheduler to run timers. + + The type of the elements in the source sequence, and in the lists in the result sequence. + Source sequence to produce buffers over. + Length of each buffer. + Scheduler to run buffering timers on. + An observable sequence of buffers. + + or is null. + + is less than TimeSpan.Zero. + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create buffers as fast as it can. + Because all source sequence elements end up in one of the buffers, some buffers won't have a zero time span. This is a side-effect of the asynchrony introduced + by the scheduler, where the action to close the current buffer and to create a new buffer may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Projects each element of an observable sequence into zero or more buffers which are produced based on timing information. + + The type of the elements in the source sequence, and in the lists in the result sequence. + Source sequence to produce buffers over. + Length of each buffer. + Interval between creation of consecutive buffers. + An observable sequence of buffers. + + is null. + + or is less than TimeSpan.Zero. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create buffers with minimum duration + length. However, some buffers won't have a zero time span. This is a side-effect of the asynchrony introduced by the scheduler, where the action to close the + current buffer may not execute immediately, despite the TimeSpan.Zero due time. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create buffers as fast as it can. + However, this doesn't mean all buffers will start at the beginning of the source sequence. This is a side-effect of the asynchrony introduced by the scheduler, + where the action to create a new buffer may not execute immediately, despite the TimeSpan.Zero due time. + + + + + + Projects each element of an observable sequence into zero or more buffers which are produced based on timing information, using the specified scheduler to run timers. + + The type of the elements in the source sequence, and in the lists in the result sequence. + Source sequence to produce buffers over. + Length of each buffer. + Interval between creation of consecutive buffers. + Scheduler to run buffering timers on. + An observable sequence of buffers. + + or is null. + + or is less than TimeSpan.Zero. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create buffers with minimum duration + length. However, some buffers won't have a zero time span. This is a side-effect of the asynchrony introduced by the scheduler, where the action to close the + current buffer may not execute immediately, despite the TimeSpan.Zero due time. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create buffers as fast as it can. + However, this doesn't mean all buffers will start at the beginning of the source sequence. This is a side-effect of the asynchrony introduced by the scheduler, + where the action to create a new buffer may not execute immediately, despite the TimeSpan.Zero due time. + + + + + + Projects each element of an observable sequence into consecutive non-overlapping buffers. + + The type of the elements in the source sequence, and in the lists in the result sequence. + The type of the elements in the sequences indicating buffer boundary events. + Source sequence to produce buffers over. + Sequence of buffer boundary markers. The current buffer is closed and a new buffer is opened upon receiving a boundary marker. + An observable sequence of buffers. + + or is null. + + + + Projects each element of an observable sequence into consecutive non-overlapping buffers. + + The type of the elements in the source sequence, and in the lists in the result sequence. + The type of the elements in the sequences indicating buffer closing events. + Source sequence to produce buffers over. + A function invoked to define the boundaries of the produced buffers. A new buffer is started when the previous one is closed. + An observable sequence of buffers. + + or is null. + + + + Projects each element of an observable sequence into zero or more buffers. + + The type of the elements in the source sequence, and in the lists in the result sequence. + The type of the elements in the sequence indicating buffer opening events, also passed to the closing selector to obtain a sequence of buffer closing events. + The type of the elements in the sequences indicating buffer closing events. + Source sequence to produce buffers over. + Observable sequence whose elements denote the creation of new buffers. + A function invoked to define the closing of each produced buffer. + An observable sequence of buffers. + + or or is null. + + + + Uses to determine which source in to return, choosing an empty sequence if no match is found. + + Query provider used to construct the data source. + The type of the value returned by the selector function, used to look up the resulting source. + The type of the elements in the result sequence. + Selector function invoked to determine the source to lookup in the dictionary. + Dictionary of sources to select from based on the invocation result. + The observable sequence retrieved from the dictionary based on the invocation result, or an empty sequence if no match is found. + + or is null. + + + + Uses to determine which source in to return, choosing if no match is found. + + Query provider used to construct the data source. + The type of the value returned by the selector function, used to look up the resulting source. + The type of the elements in the result sequence. + Selector function invoked to determine the source to lookup in the dictionary. + Dictionary of sources to select from based on the invocation result. + Default source to select in case no matching source in is found. + The observable sequence retrieved from the dictionary based on the invocation result, or if no match is found. + + or or is null. + + + + Uses to determine which source in to return, choosing an empty sequence on the specified scheduler if no match is found. + + Query provider used to construct the data source. + The type of the value returned by the selector function, used to look up the resulting source. + The type of the elements in the result sequence. + Selector function invoked to determine the source to lookup in the dictionary. + Dictionary of sources to select from based on the invocation result. + Scheduler to generate an empty sequence on in case no matching source in is found. + The observable sequence retrieved from the dictionary based on the invocation result, or an empty sequence if no match is found. + + or or is null. + + + + Converts the elements of an observable sequence to the specified type. + + The type to convert the elements in the source sequence to. + The observable sequence that contains the elements to be converted. + An observable sequence that contains each element of the source sequence converted to the specified type. + + is null. + + + + Continues an observable sequence that is terminated by an exception with the next observable sequence. + + The type of the elements in the source sequence and handler sequence. + First observable sequence whose exception (if any) is caught. + Second observable sequence used to produce results when an error occurred in the first sequence. + An observable sequence containing the first sequence's elements, followed by the elements of the second sequence in case an exception occurred. + + or is null. + + + + Continues an observable sequence that is terminated by an exception with the next observable sequence. + + Query provider used to construct the data source. + The type of the elements in the source and handler sequences. + Observable sequences to catch exceptions for. + An observable sequence containing elements from consecutive source sequences until a source sequence terminates successfully. + + is null. + + + + Continues an observable sequence that is terminated by an exception with the next observable sequence. + + Query provider used to construct the data source. + The type of the elements in the source and handler sequences. + Observable sequences to catch exceptions for. + An observable sequence containing elements from consecutive source sequences until a source sequence terminates successfully. + + is null. + + + + Continues an observable sequence that is terminated by an exception of the specified type with the observable sequence produced by the handler. + + The type of the elements in the source sequence and sequences returned by the exception handler function. + The type of the exception to catch and handle. Needs to derive from . + Source sequence. + Exception handler function, producing another observable sequence. + An observable sequence containing the source sequence's elements, followed by the elements produced by the handler's resulting observable sequence in case an exception occurred. + + or is null. + + + + Produces an enumerable sequence of consecutive (possibly empty) chunks of the source sequence. + + The type of the elements in the source sequence. + Source observable sequence. + The enumerable sequence that returns consecutive (possibly empty) chunks upon each iteration. + + is null. + This operator requires the source's object (see ) to implement . + + + + Produces an enumerable sequence that returns elements collected/aggregated from the source sequence between consecutive iterations. + + The type of the elements in the source sequence. + The type of the elements produced by the merge operation during collection. + Source observable sequence. + Factory to create the initial collector object. + Merges a sequence element with the current collector. + Factory to replace the current collector by a new collector. + The enumerable sequence that returns collected/aggregated elements from the source sequence upon each iteration. + + or or or is null. + This operator requires the source's object (see ) to implement . + + + + Produces an enumerable sequence that returns elements collected/aggregated from the source sequence between consecutive iterations. + + The type of the elements in the source sequence. + The type of the elements produced by the merge operation during collection. + Source observable sequence. + Factory to create a new collector object. + Merges a sequence element with the current collector. + The enumerable sequence that returns collected/aggregated elements from the source sequence upon each iteration. + + or or is null. + This operator requires the source's object (see ) to implement . + + + + Merges the specified observable sequences into one observable sequence by emitting a list with the latest source elements whenever any of the observable sequences produces an element. + + Query provider used to construct the data source. + The type of the elements in the source sequences, and in the lists in the result sequence. + Observable sources. + An observable sequence containing lists of the latest elements of the sources. + + is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by emitting a list with the latest source elements whenever any of the observable sequences produces an element. + + Query provider used to construct the data source. + The type of the elements in the source sequences, and in the lists in the result sequence. + Observable sources. + An observable sequence containing lists of the latest elements of the sources. + + is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + Query provider used to construct the data source. + The type of the elements in the source sequences. + The type of the elements in the result sequence, returned by the selector function. + Observable sources. + Function to invoke whenever any of the sources produces an element. For efficiency, the input list is reused after the selector returns. Either aggregate or copy the values during the function call. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges two observable sequences into one observable sequence by using the selector function whenever one of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Function to invoke whenever either of the sources produces an element. + An observable sequence containing the result of combining elements of both sources using the specified result selector function. + + or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Fourteenth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the fifteenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Fourteenth observable source. + Fifteenth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or or or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the fifteenth source sequence. + The type of the elements in the sixteenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Fourteenth observable source. + Fifteenth observable source. + Sixteenth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or or or or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Concatenates the second observable sequence to the first observable sequence upon successful termination of the first. + + The type of the elements in the source sequences. + First observable sequence. + Second observable sequence. + An observable sequence that contains the elements of the first sequence, followed by those of the second the sequence. + + or is null. + + + + Concatenates all of the specified observable sequences, as long as the previous observable sequence terminated successfully. + + Query provider used to construct the data source. + The type of the elements in the source sequences. + Observable sequences to concatenate. + An observable sequence that contains the elements of each given sequence, in sequential order. + + is null. + + + + Concatenates all observable sequences in the given enumerable sequence, as long as the previous observable sequence terminated successfully. + + Query provider used to construct the data source. + The type of the elements in the source sequences. + Observable sequences to concatenate. + An observable sequence that contains the elements of each given sequence, in sequential order. + + is null. + + + + Concatenates all inner observable sequences, as long as the previous observable sequence terminated successfully. + + The type of the elements in the source sequences. + Observable sequence of inner observable sequences. + An observable sequence that contains the elements of each observed inner sequence, in sequential order. + + is null. + + + + Concatenates all task results, as long as the previous task terminated successfully. + + The type of the results produced by the tasks. + Observable sequence of tasks. + An observable sequence that contains the results of each task, in sequential order. + + is null. + If the tasks support cancellation, consider manual conversion of the tasks using , followed by a concatenation operation using . + + + + Determines whether an observable sequence contains a specified element by using the default equality comparer. + + The type of the elements in the source sequence. + An observable sequence in which to locate a value. + The value to locate in the source sequence. + An observable sequence containing a single element determining whether the source sequence contains an element that has the specified value. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Determines whether an observable sequence contains a specified element by using a specified System.Collections.Generic.IEqualityComparer{T}. + + The type of the elements in the source sequence. + An observable sequence in which to locate a value. + The value to locate in the source sequence. + An equality comparer to compare elements. + An observable sequence containing a single element determining whether the source sequence contains an element that has the specified value. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns an observable sequence containing an that represents the total number of elements in an observable sequence. + + The type of the elements in the source sequence. + An observable sequence that contains elements to be counted. + An observable sequence containing a single element with the number of elements in the input sequence. + + is null. + (Asynchronous) The number of elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns an observable sequence containing an that represents how many elements in the specified observable sequence satisfy a condition. + + The type of the elements in the source sequence. + An observable sequence that contains elements to be counted. + A function to test each element for a condition. + An observable sequence containing a single element with a number that represents how many elements in the input sequence satisfy the condition in the predicate function. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates an observable sequence from a specified Subscribe method implementation. + + Query provider used to construct the data source. + The type of the elements in the produced sequence. + Implementation of the resulting observable sequence's Subscribe method. + The observable sequence with the specified implementation for the Subscribe method. + + is null. + + Use of this operator is preferred over manual implementation of the interface. In case + you need a type implementing rather than an anonymous implementation, consider using + the abstract base class. + + + + + Creates an observable sequence from a specified Subscribe method implementation. + + Query provider used to construct the data source. + The type of the elements in the produced sequence. + Implementation of the resulting observable sequence's Subscribe method, returning an Action delegate that will be wrapped in an IDisposable. + The observable sequence with the specified implementation for the Subscribe method. + + is null. + + Use of this operator is preferred over manual implementation of the interface. In case + you need a type implementing rather than an anonymous implementation, consider using + the abstract base class. + + + + + Creates an observable sequence from a specified cancellable asynchronous Subscribe method. + The CancellationToken passed to the asynchronous Subscribe method is tied to the returned disposable subscription, allowing best-effort cancellation. + + Query provider used to construct the data source. + The type of the elements in the produced sequence. + Asynchronous method used to produce elements. + The observable sequence surfacing the elements produced by the asynchronous method. + + is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + When a subscription to the resulting sequence is disposed, the CancellationToken that was fed to the asynchronous subscribe function will be signaled. + + + + Creates an observable sequence from a specified asynchronous Subscribe method. + + Query provider used to construct the data source. + The type of the elements in the produced sequence. + Asynchronous method used to produce elements. + The observable sequence surfacing the elements produced by the asynchronous method. + + is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + + + + Creates an observable sequence from a specified cancellable asynchronous Subscribe method. + The CancellationToken passed to the asynchronous Subscribe method is tied to the returned disposable subscription, allowing best-effort cancellation. + + Query provider used to construct the data source. + The type of the elements in the produced sequence. + Asynchronous method used to implement the resulting sequence's Subscribe method. + The observable sequence with the specified implementation for the Subscribe method. + + is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + When a subscription to the resulting sequence is disposed, the CancellationToken that was fed to the asynchronous subscribe function will be signaled. + + + + Creates an observable sequence from a specified asynchronous Subscribe method. + + Query provider used to construct the data source. + The type of the elements in the produced sequence. + Asynchronous method used to implement the resulting sequence's Subscribe method. + The observable sequence with the specified implementation for the Subscribe method. + + is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + + + + Creates an observable sequence from a specified cancellable asynchronous Subscribe method. + The CancellationToken passed to the asynchronous Subscribe method is tied to the returned disposable subscription, allowing best-effort cancellation. + + Query provider used to construct the data source. + The type of the elements in the produced sequence. + Asynchronous method used to implement the resulting sequence's Subscribe method, returning an Action delegate that will be wrapped in an IDisposable. + The observable sequence with the specified implementation for the Subscribe method. + + is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + When a subscription to the resulting sequence is disposed, the CancellationToken that was fed to the asynchronous subscribe function will be signaled. + + + + Creates an observable sequence from a specified asynchronous Subscribe method. + + Query provider used to construct the data source. + The type of the elements in the produced sequence. + Asynchronous method used to implement the resulting sequence's Subscribe method, returning an Action delegate that will be wrapped in an IDisposable. + The observable sequence with the specified implementation for the Subscribe method. + + is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + + + + Returns the elements of the specified sequence or the type parameter's default value in a singleton sequence if the sequence is empty. + + The type of the elements in the source sequence (if any), whose default value will be taken if the sequence is empty. + The sequence to return a default value for if it is empty. + An observable sequence that contains the default value for the TSource type if the source is empty; otherwise, the elements of the source itself. + + is null. + + + + Returns the elements of the specified sequence or the specified value in a singleton sequence if the sequence is empty. + + The type of the elements in the source sequence (if any), and the specified default value which will be taken if the sequence is empty. + The sequence to return the specified value for if it is empty. + The value to return if the sequence is empty. + An observable sequence that contains the specified default value if the source is empty; otherwise, the elements of the source itself. + + is null. + + + + Returns an observable sequence that invokes the specified factory function whenever a new observer subscribes. + + Query provider used to construct the data source. + The type of the elements in the sequence returned by the factory function, and in the resulting sequence. + Observable factory function to invoke for each observer that subscribes to the resulting sequence. + An observable sequence whose observers trigger an invocation of the given observable factory function. + + is null. + + + + Returns an observable sequence that starts the specified asynchronous factory function whenever a new observer subscribes. + + Query provider used to construct the data source. + The type of the elements in the sequence returned by the factory function, and in the resulting sequence. + Asynchronous factory function to start for each observer that subscribes to the resulting sequence. + An observable sequence whose observers trigger the given asynchronous observable factory function to be started. + + is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + + + + Returns an observable sequence that starts the specified cancellable asynchronous factory function whenever a new observer subscribes. + The CancellationToken passed to the asynchronous factory function is tied to the returned disposable subscription, allowing best-effort cancellation. + + Query provider used to construct the data source. + The type of the elements in the sequence returned by the factory function, and in the resulting sequence. + Asynchronous factory function to start for each observer that subscribes to the resulting sequence. + An observable sequence whose observers trigger the given asynchronous observable factory function to be started. + + is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + When a subscription to the resulting sequence is disposed, the CancellationToken that was fed to the asynchronous observable factory function will be signaled. + + + + Time shifts the observable sequence to start propagating notifications at the specified absolute time. + The relative time intervals between the values are preserved. + + The type of the elements in the source sequence. + Source sequence to delay values for. + Absolute time used to shift the observable sequence; the relative time shift gets computed upon subscription. If this value is less than or equal to DateTimeOffset.UtcNow, the scheduler will dispatch observer callbacks as soon as possible. + Time-shifted sequence. + + is null. + + + This operator is less efficient than DelaySubscription because it records all notifications and time-delays those. This allows for immediate propagation of errors. + + + Observer callbacks for the resulting sequence will be run on the default scheduler. This effect is similar to using ObserveOn. + + + Exceptions signaled by the source sequence through an OnError callback are forwarded immediately to the result sequence. Any OnNext notifications that were in the queue at the point of the OnError callback will be dropped. + In order to delay error propagation, consider using the Observable.Materialize and Observable.Dematerialize operators, or use DelaySubscription. + + + + + + Time shifts the observable sequence to start propagating notifications at the specified absolute time, using the specified scheduler to run timers. + The relative time intervals between the values are preserved. + + The type of the elements in the source sequence. + Source sequence to delay values for. + Absolute time used to shift the observable sequence; the relative time shift gets computed upon subscription. If this value is less than or equal to DateTimeOffset.UtcNow, the scheduler will dispatch observer callbacks as soon as possible. + Scheduler to run the delay timers on. + Time-shifted sequence. + + or is null. + + + This operator is less efficient than DelaySubscription because it records all notifications and time-delays those. This allows for immediate propagation of errors. + + + Observer callbacks for the resulting sequence will be run on the specified scheduler. This effect is similar to using ObserveOn. + + + Exceptions signaled by the source sequence through an OnError callback are forwarded immediately to the result sequence. Any OnNext notifications that were in the queue at the point of the OnError callback will be dropped. + In order to delay error propagation, consider using the Observable.Materialize and Observable.Dematerialize operators, or use DelaySubscription. + + + + + + Time shifts the observable sequence by the specified relative time duration. + The relative time intervals between the values are preserved. + + The type of the elements in the source sequence. + Source sequence to delay values for. + Relative time by which to shift the observable sequence. If this value is equal to TimeSpan.Zero, the scheduler will dispatch observer callbacks as soon as possible. + Time-shifted sequence. + + is null. + + is less than TimeSpan.Zero. + + + This operator is less efficient than DelaySubscription because it records all notifications and time-delays those. This allows for immediate propagation of errors. + + + Observer callbacks for the resulting sequence will be run on the default scheduler. This effect is similar to using ObserveOn. + + + Exceptions signaled by the source sequence through an OnError callback are forwarded immediately to the result sequence. Any OnNext notifications that were in the queue at the point of the OnError callback will be dropped. + In order to delay error propagation, consider using the Observable.Materialize and Observable.Dematerialize operators, or use DelaySubscription. + + + + + + Time shifts the observable sequence by the specified relative time duration, using the specified scheduler to run timers. + The relative time intervals between the values are preserved. + + The type of the elements in the source sequence. + Source sequence to delay values for. + Relative time by which to shift the observable sequence. If this value is equal to TimeSpan.Zero, the scheduler will dispatch observer callbacks as soon as possible. + Scheduler to run the delay timers on. + Time-shifted sequence. + + or is null. + + is less than TimeSpan.Zero. + + + This operator is less efficient than DelaySubscription because it records all notifications and time-delays those. This allows for immediate propagation of errors. + + + Observer callbacks for the resulting sequence will be run on the specified scheduler. This effect is similar to using ObserveOn. + + + Exceptions signaled by the source sequence through an OnError callback are forwarded immediately to the result sequence. Any OnNext notifications that were in the queue at the point of the OnError callback will be dropped. + + + Exceptions signaled by the source sequence through an OnError callback are forwarded immediately to the result sequence. Any OnNext notifications that were in the queue at the point of the OnError callback will be dropped. + In order to delay error propagation, consider using the Observable.Materialize and Observable.Dematerialize operators, or use DelaySubscription. + + + + + + Time shifts the observable sequence based on a delay selector function for each element. + + The type of the elements in the source sequence. + The type of the elements in the delay sequences used to denote the delay duration of each element in the source sequence. + Source sequence to delay values for. + Selector function to retrieve a sequence indicating the delay for each given element. + Time-shifted sequence. + + or is null. + + + + Time shifts the observable sequence based on a subscription delay and a delay selector function for each element. + + The type of the elements in the source sequence. + The type of the elements in the delay sequences used to denote the delay duration of each element in the source sequence. + Source sequence to delay values for. + Sequence indicating the delay for the subscription to the source. + Selector function to retrieve a sequence indicating the delay for each given element. + Time-shifted sequence. + + or or is null. + + + + Time shifts the observable sequence by delaying the subscription to the specified absolute time. + + The type of the elements in the source sequence. + Source sequence to delay subscription for. + Absolute time to perform the subscription at. + Time-shifted sequence. + + is null. + + + This operator is more efficient than Delay but postpones all side-effects of subscription and affects error propagation timing. + + + The side-effects of subscribing to the source sequence will be run on the default scheduler. Observer callbacks will not be affected. + + + + + + Time shifts the observable sequence by delaying the subscription to the specified absolute time, using the specified scheduler to run timers. + + The type of the elements in the source sequence. + Source sequence to delay subscription for. + Absolute time to perform the subscription at. + Scheduler to run the subscription delay timer on. + Time-shifted sequence. + + or is null. + + + This operator is more efficient than Delay but postpones all side-effects of subscription and affects error propagation timing. + + + The side-effects of subscribing to the source sequence will be run on the specified scheduler. Observer callbacks will not be affected. + + + + + + Time shifts the observable sequence by delaying the subscription with the specified relative time duration. + + The type of the elements in the source sequence. + Source sequence to delay subscription for. + Relative time shift of the subscription. + Time-shifted sequence. + + is null. + + is less than TimeSpan.Zero. + + + This operator is more efficient than Delay but postpones all side-effects of subscription and affects error propagation timing. + + + The side-effects of subscribing to the source sequence will be run on the default scheduler. Observer callbacks will not be affected. + + + + + + Time shifts the observable sequence by delaying the subscription with the specified relative time duration, using the specified scheduler to run timers. + + The type of the elements in the source sequence. + Source sequence to delay subscription for. + Relative time shift of the subscription. + Scheduler to run the subscription delay timer on. + Time-shifted sequence. + + or is null. + + is less than TimeSpan.Zero. + + + This operator is more efficient than Delay but postpones all side-effects of subscription and affects error propagation timing. + + + The side-effects of subscribing to the source sequence will be run on the specified scheduler. Observer callbacks will not be affected. + + + + + + Dematerializes the explicit notification values of an observable sequence as implicit notifications. + + The type of the elements materialized in the source sequence notification objects. + An observable sequence containing explicit notification values which have to be turned into implicit notifications. + An observable sequence exhibiting the behavior corresponding to the source sequence's notification values. + + is null. + + + + Returns an observable sequence that contains only distinct elements. + + The type of the elements in the source sequence. + An observable sequence to retain distinct elements for. + An observable sequence only containing the distinct elements from the source sequence. + + is null. + Usage of this operator should be considered carefully due to the maintenance of an internal lookup structure which can grow large. + + + + Returns an observable sequence that contains only distinct elements according to the comparer. + + The type of the elements in the source sequence. + An observable sequence to retain distinct elements for. + Equality comparer for source elements. + An observable sequence only containing the distinct elements from the source sequence. + + or is null. + Usage of this operator should be considered carefully due to the maintenance of an internal lookup structure which can grow large. + + + + Returns an observable sequence that contains only distinct elements according to the keySelector. + + The type of the elements in the source sequence. + The type of the discriminator key computed for each element in the source sequence. + An observable sequence to retain distinct elements for. + A function to compute the comparison key for each element. + An observable sequence only containing the distinct elements, based on a computed key value, from the source sequence. + + or is null. + Usage of this operator should be considered carefully due to the maintenance of an internal lookup structure which can grow large. + + + + Returns an observable sequence that contains only distinct elements according to the keySelector and the comparer. + + The type of the elements in the source sequence. + The type of the discriminator key computed for each element in the source sequence. + An observable sequence to retain distinct elements for. + A function to compute the comparison key for each element. + Equality comparer for source elements. + An observable sequence only containing the distinct elements, based on a computed key value, from the source sequence. + + or or is null. + Usage of this operator should be considered carefully due to the maintenance of an internal lookup structure which can grow large. + + + + Returns an observable sequence that contains only distinct contiguous elements. + + The type of the elements in the source sequence. + An observable sequence to retain distinct contiguous elements for. + An observable sequence only containing the distinct contiguous elements from the source sequence. + + is null. + + + + Returns an observable sequence that contains only distinct contiguous elements according to the comparer. + + The type of the elements in the source sequence. + An observable sequence to retain distinct contiguous elements for. + Equality comparer for source elements. + An observable sequence only containing the distinct contiguous elements from the source sequence. + + or is null. + + + + Returns an observable sequence that contains only distinct contiguous elements according to the keySelector. + + The type of the elements in the source sequence. + The type of the discriminator key computed for each element in the source sequence. + An observable sequence to retain distinct contiguous elements for, based on a computed key value. + A function to compute the comparison key for each element. + An observable sequence only containing the distinct contiguous elements, based on a computed key value, from the source sequence. + + or is null. + + + + Returns an observable sequence that contains only distinct contiguous elements according to the keySelector and the comparer. + + The type of the elements in the source sequence. + The type of the discriminator key computed for each element in the source sequence. + An observable sequence to retain distinct contiguous elements for, based on a computed key value. + A function to compute the comparison key for each element. + Equality comparer for computed key values. + An observable sequence only containing the distinct contiguous elements, based on a computed key value, from the source sequence. + + or or is null. + + + + Invokes the observer's methods for each message in the source sequence. + This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + + The type of the elements in the source sequence. + Source sequence. + Observer whose methods to invoke as part of the source sequence's observation. + The source sequence with the side-effecting behavior applied. + + or is null. + + + + Invokes an action for each element in the observable sequence, and propagates all observer messages through the result sequence. + This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + + The type of the elements in the source sequence. + Source sequence. + Action to invoke for each element in the observable sequence. + The source sequence with the side-effecting behavior applied. + + or is null. + + + + Invokes an action for each element in the observable sequence and invokes an action upon graceful termination of the observable sequence. + This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + + The type of the elements in the source sequence. + Source sequence. + Action to invoke for each element in the observable sequence. + Action to invoke upon graceful termination of the observable sequence. + The source sequence with the side-effecting behavior applied. + + or or is null. + + + + Invokes an action for each element in the observable sequence and invokes an action upon exceptional termination of the observable sequence. + This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + + The type of the elements in the source sequence. + Source sequence. + Action to invoke for each element in the observable sequence. + Action to invoke upon exceptional termination of the observable sequence. + The source sequence with the side-effecting behavior applied. + + or or is null. + + + + Invokes an action for each element in the observable sequence and invokes an action upon graceful or exceptional termination of the observable sequence. + This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + + The type of the elements in the source sequence. + Source sequence. + Action to invoke for each element in the observable sequence. + Action to invoke upon exceptional termination of the observable sequence. + Action to invoke upon graceful termination of the observable sequence. + The source sequence with the side-effecting behavior applied. + + or or or is null. + + + + Repeats the given as long as the specified holds, where the is evaluated after each repeated completed. + + The type of the elements in the source sequence. + Source to repeat as long as the function evaluates to true. + Condition that will be evaluated upon the completion of an iteration through the , to determine whether repetition of the source is required. + The observable sequence obtained by concatenating the sequence as long as the holds. + + or is null. + + + + Returns the element at a specified index in a sequence. + + The type of the elements in the source sequence. + Observable sequence to return the element from. + The zero-based index of the element to retrieve. + An observable sequence that produces the element at the specified position in the source sequence. + + is null. + + is less than zero. + (Asynchronous) is greater than or equal to the number of elements in the source sequence. + + + + Returns the element at a specified index in a sequence or a default value if the index is out of range. + + The type of the elements in the source sequence. + Observable sequence to return the element from. + The zero-based index of the element to retrieve. + An observable sequence that produces the element at the specified position in the source sequence, or a default value if the index is outside the bounds of the source sequence. + + is null. + + is less than zero. + + + + Returns an empty observable sequence. + + Query provider used to construct the data source. + The type used for the type parameter of the resulting sequence. + An observable sequence with no elements. + + + + Returns an empty observable sequence, using the specified scheduler to send out the single OnCompleted message. + + Query provider used to construct the data source. + The type used for the type parameter of the resulting sequence. + Scheduler to send the termination call on. + An observable sequence with no elements. + + is null. + + + + Returns an empty observable sequence, using the specified scheduler to send out the single OnCompleted message. + + Query provider used to construct the data source. + The type used for the type parameter of the resulting sequence. + Scheduler to send the termination call on. + Object solely used to infer the type of the type parameter. This parameter is typically used when creating a sequence of anonymously typed elements. + An observable sequence with no elements. + + is null. + + + + Returns an empty observable sequence. + + Query provider used to construct the data source. + The type used for the type parameter of the resulting sequence. + Object solely used to infer the type of the type parameter. This parameter is typically used when creating a sequence of anonymously typed elements. + An observable sequence with no elements. + + + + Invokes a specified action after the source observable sequence terminates gracefully or exceptionally. + + The type of the elements in the source sequence. + Source sequence. + Action to invoke after the source observable sequence terminates. + Source sequence with the action-invoking termination behavior applied. + + or is null. + + + + Returns the first element of an observable sequence. + + The type of the elements in the source sequence. + Source observable sequence. + Sequence containing the first element in the observable sequence. + + is null. + (Asynchronous) The source sequence is empty. + + + + Returns the first element of an observable sequence that satisfies the condition in the predicate. + + The type of the elements in the source sequence. + Source observable sequence. + A predicate function to evaluate for elements in the source sequence. + Sequence containing the first element in the observable sequence that satisfies the condition in the predicate. + + or is null. + (Asynchronous) No element satisfies the condition in the predicate. -or- The source sequence is empty. + + + + Returns the first element of an observable sequence, or a default value if no such element exists. + + The type of the elements in the source sequence. + Source observable sequence. + Sequence containing the first element in the observable sequence, or a default value if no such element exists. + + is null. + + + + Returns the first element of an observable sequence that satisfies the condition in the predicate, or a default value if no such element exists. + + The type of the elements in the source sequence. + Source observable sequence. + A predicate function to evaluate for elements in the source sequence. + Sequence containing the first element in the observable sequence that satisfies the condition in the predicate, or a default value if no such element exists. + + or is null. + + + + Concatenates the observable sequences obtained by running the for each element in the given enumerable . + + Query provider used to construct the data source. + The type of the elements in the enumerable source sequence. + The type of the elements in the observable result sequence. + Enumerable source for which each element will be mapped onto an observable source that will be concatenated in the result sequence. + Function to select an observable source for each element in the . + The observable sequence obtained by concatenating the sources returned by for each element in the . + + or is null. + + + + Converts to asynchronous action into an observable sequence. Each subscription to the resulting sequence causes the action to be started. + + Query provider used to construct the data source. + Asynchronous action to convert. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + + is null. + + + + Converts to asynchronous action into an observable sequence. Each subscription to the resulting sequence causes the action to be started. + + Query provider used to construct the data source. + Asynchronous action to convert. + Scheduler on which to notify observers. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + + is null or is null. + + + + Converts to asynchronous action into an observable sequence. Each subscription to the resulting sequence causes the action to be started. + The CancellationToken passed to the asynchronous action is tied to the observable sequence's subscription that triggered the action's invocation and can be used for best-effort cancellation. + + Query provider used to construct the data source. + Asynchronous action to convert. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + When a subscription to the resulting sequence is disposed, the CancellationToken that was fed to the asynchronous function will be signaled. + + is null. + + + + Converts to asynchronous action into an observable sequence. Each subscription to the resulting sequence causes the action to be started. + The CancellationToken passed to the asynchronous action is tied to the observable sequence's subscription that triggered the action's invocation and can be used for best-effort cancellation. + + Query provider used to construct the data source. + Asynchronous action to convert. + Scheduler on which to notify observers. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + When a subscription to the resulting sequence is disposed, the CancellationToken that was fed to the asynchronous function will be signaled. + + is null or is null. + + + + Converts to asynchronous function into an observable sequence. Each subscription to the resulting sequence causes the function to be started. + + Query provider used to construct the data source. + The type of the result returned by the asynchronous function. + Asynchronous function to convert. + An observable sequence exposing the result of invoking the function, or an exception. + + is null. + + + + Converts to asynchronous function into an observable sequence. Each subscription to the resulting sequence causes the function to be started. + The CancellationToken passed to the asynchronous function is tied to the observable sequence's subscription that triggered the function's invocation and can be used for best-effort cancellation. + + Query provider used to construct the data source. + The type of the result returned by the asynchronous function. + Asynchronous function to convert. + An observable sequence exposing the result of invoking the function, or an exception. + + is null. + When a subscription to the resulting sequence is disposed, the CancellationToken that was fed to the asynchronous function will be signaled. + + + + Converts to asynchronous function into an observable sequence. Each subscription to the resulting sequence causes the function to be started. + + Query provider used to construct the data source. + The type of the result returned by the asynchronous function. + Asynchronous function to convert. + Scheduler on which to notify observers. + An observable sequence exposing the result of invoking the function, or an exception. + + is null or is null. + + + + Converts to asynchronous function into an observable sequence. Each subscription to the resulting sequence causes the function to be started. + The CancellationToken passed to the asynchronous function is tied to the observable sequence's subscription that triggered the function's invocation and can be used for best-effort cancellation. + + Query provider used to construct the data source. + The type of the result returned by the asynchronous function. + Asynchronous function to convert. + Scheduler on which to notify observers. + An observable sequence exposing the result of invoking the function, or an exception. + + is null or is null. + When a subscription to the resulting sequence is disposed, the CancellationToken that was fed to the asynchronous function will be signaled. + + + + Converts an Action-based .NET event to an observable sequence. Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events conforming to the standard .NET event pattern, use any of the FromEventPattern overloads instead. + + Query provider used to construct the data source. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains the event argument objects passed to the invocations of the underlying .NET event. + + or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEvent, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEvent, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEvent calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts an Action-based .NET event to an observable sequence. Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events conforming to the standard .NET event pattern, use any of the FromEventPattern overloads instead. + + Query provider used to construct the data source. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains the event argument objects passed to the invocations of the underlying .NET event. + + or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEvent calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEvent that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a .NET event to an observable sequence, using a supplied event delegate type. Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events conforming to the standard .NET event pattern, use any of the FromEventPattern overloads instead. + + Query provider used to construct the data source. + The delegate type of the event to be converted. + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains the event argument objects passed to the invocations of the underlying .NET event. + + or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEvent, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEvent, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEvent calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a .NET event to an observable sequence, using a supplied event delegate type. Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events conforming to the standard .NET event pattern, use any of the FromEventPattern overloads instead. + + Query provider used to construct the data source. + The delegate type of the event to be converted. + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains the event argument objects passed to the invocations of the underlying .NET event. + + or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEvent calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEvent that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a .NET event to an observable sequence, using a conversion function to obtain the event delegate. Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events conforming to the standard .NET event pattern, use any of the FromEventPattern overloads instead. + + Query provider used to construct the data source. + The delegate type of the event to be converted. + The type of the event data generated by the event. + A function used to convert the given event handler to a delegate compatible with the underlying .NET event. The resulting delegate is used in calls to the addHandler and removeHandler action parameters. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains the event argument objects passed to the invocations of the underlying .NET event. + + or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEvent, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEvent, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEvent calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a .NET event to an observable sequence, using a conversion function to obtain the event delegate. Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events conforming to the standard .NET event pattern, use any of the FromEventPattern overloads instead. + + Query provider used to construct the data source. + The delegate type of the event to be converted. + The type of the event data generated by the event. + A function used to convert the given event handler to a delegate compatible with the underlying .NET event. The resulting delegate is used in calls to the addHandler and removeHandler action parameters. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains the event argument objects passed to the invocations of the underlying .NET event. + + or or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEvent calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEvent that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a generic Action-based .NET event to an observable sequence. Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events conforming to the standard .NET event pattern, use any of the FromEventPattern overloads instead. + + Query provider used to construct the data source. + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains the event argument objects passed to the invocations of the underlying .NET event. + + or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEvent, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEvent, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEvent calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a generic Action-based .NET event to an observable sequence. Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events conforming to the standard .NET event pattern, use any of the FromEventPattern overloads instead. + + Query provider used to construct the data source. + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains the event argument objects passed to the invocations of the underlying .NET event. + + or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEvent calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEvent that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on , to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on , to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts an instance .NET event, conforming to the standard .NET event pattern with an parameter, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the target object type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + Object instance that exposes the event to convert. + Name of the event to convert. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts an instance .NET event, conforming to the standard .NET event pattern with an parameter, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the target object type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + Object instance that exposes the event to convert. + Name of the event to convert. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a static .NET event, conforming to the standard .NET event pattern with an parameter, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the specified type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + Type that exposes the static event to convert. + Name of the event to convert. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a static .NET event, conforming to the standard .NET event pattern with an parameter, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the specified type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + Type that exposes the static event to convert. + Name of the event to convert. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on a supplied event delegate type, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + The delegate type of the event to be converted. + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on a supplied event delegate type, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + The delegate type of the event to be converted. + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on , to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + The delegate type of the event to be converted. + The type of the event data generated by the event. + A function used to convert the given event handler to a delegate compatible with the underlying .NET event. The resulting delegate is used in calls to the addHandler and removeHandler action parameters. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on , to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + The delegate type of the event to be converted. + The type of the event data generated by the event. + A function used to convert the given event handler to a delegate compatible with the underlying .NET event. The resulting delegate is used in calls to the addHandler and removeHandler action parameters. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on a supplied event delegate type with a strongly typed sender parameter, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + The delegate type of the event to be converted. + The type of the sender that raises the event. + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on a supplied event delegate type with a strongly typed sender parameter, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + The delegate type of the event to be converted. + The type of the sender that raises the event. + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on , to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on , to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts an instance .NET event, conforming to the standard .NET event pattern with strongly typed event arguments, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the target object type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + The type of the event data generated by the event. + Object instance that exposes the event to convert. + Name of the event to convert. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. -or- The event's second argument type is not assignable to TEventArgs. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts an instance .NET event, conforming to the standard .NET event pattern with strongly typed event arguments, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the target object type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + The type of the event data generated by the event. + Object instance that exposes the event to convert. + Name of the event to convert. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. -or- The event's second argument type is not assignable to TEventArgs. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a static .NET event, conforming to the standard .NET event pattern with strongly typed event arguments, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the specified type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + The type of the event data generated by the event. + Type that exposes the static event to convert. + Name of the event to convert. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. -or- The event's second argument type is not assignable to TEventArgs. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a static .NET event, conforming to the standard .NET event pattern with strongly typed event arguments, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the specified type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + The type of the event data generated by the event. + Type that exposes the static event to convert. + Name of the event to convert. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. -or- The event's second argument type is not assignable to TEventArgs. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts an instance .NET event, conforming to the standard .NET event pattern with a strongly typed sender and strongly typed event arguments, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the target object type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + The type of the sender that raises the event. + The type of the event data generated by the event. + Object instance that exposes the event to convert. + Name of the event to convert. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. -or- The event's first argument type is not assignable to TSender. -or- The event's second argument type is not assignable to TEventArgs. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts an instance .NET event, conforming to the standard .NET event pattern with a strongly typed sender and strongly typed event arguments, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the target object type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + The type of the sender that raises the event. + The type of the event data generated by the event. + Object instance that exposes the event to convert. + Name of the event to convert. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. -or- The event's first argument type is not assignable to TSender. -or- The event's second argument type is not assignable to TEventArgs. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a static .NET event, conforming to the standard .NET event pattern with a strongly typed sender and strongly typed event arguments, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the specified type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + The type of the sender that raises the event. + The type of the event data generated by the event. + Type that exposes the static event to convert. + Name of the event to convert. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. -or- The event's first argument type is not assignable to TSender. -or- The event's second argument type is not assignable to TEventArgs. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a static .NET event, conforming to the standard .NET event pattern with a strongly typed sender and strongly typed event arguments, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the specified type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + The type of the sender that raises the event. + The type of the event data generated by the event. + Type that exposes the static event to convert. + Name of the event to convert. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. -or- The event's first argument type is not assignable to TSender. -or- The event's second argument type is not assignable to TEventArgs. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Generates an observable sequence by running a state-driven loop producing the sequence's elements. + + Query provider used to construct the data source. + The type of the state used in the generator loop. + The type of the elements in the produced sequence. + Initial state. + Condition to terminate generation (upon returning false). + Iteration step function. + Selector function for results produced in the sequence. + The generated sequence. + + or or is null. + + + + Generates an observable sequence by running a state-driven loop producing the sequence's elements, using the specified scheduler to send out observer messages. + + Query provider used to construct the data source. + The type of the state used in the generator loop. + The type of the elements in the produced sequence. + Initial state. + Condition to terminate generation (upon returning false). + Iteration step function. + Selector function for results produced in the sequence. + Scheduler on which to run the generator loop. + The generated sequence. + + or or or is null. + + + + Generates an observable sequence by running a state-driven and temporal loop producing the sequence's elements. + + Query provider used to construct the data source. + The type of the state used in the generator loop. + The type of the elements in the produced sequence. + Initial state. + Condition to terminate generation (upon returning false). + Iteration step function. + Selector function for results produced in the sequence. + Time selector function to control the speed of values being produced each iteration. + The generated sequence. + + or or or is null. + + + + Generates an observable sequence by running a state-driven and temporal loop producing the sequence's elements. + + Query provider used to construct the data source. + The type of the state used in the generator loop. + The type of the elements in the produced sequence. + Initial state. + Condition to terminate generation (upon returning false). + Iteration step function. + Selector function for results produced in the sequence. + Time selector function to control the speed of values being produced each iteration. + The generated sequence. + + or or or is null. + + + + Generates an observable sequence by running a state-driven and temporal loop producing the sequence's elements, using the specified scheduler to run timers and to send out observer messages. + + Query provider used to construct the data source. + The type of the state used in the generator loop. + The type of the elements in the produced sequence. + Initial state. + Condition to terminate generation (upon returning false). + Iteration step function. + Selector function for results produced in the sequence. + Time selector function to control the speed of values being produced each iteration. + Scheduler on which to run the generator loop. + The generated sequence. + + or or or or is null. + + + + Generates an observable sequence by running a state-driven and temporal loop producing the sequence's elements, using the specified scheduler to run timers and to send out observer messages. + + Query provider used to construct the data source. + The type of the state used in the generator loop. + The type of the elements in the produced sequence. + Initial state. + Condition to terminate generation (upon returning false). + Iteration step function. + Selector function for results produced in the sequence. + Time selector function to control the speed of values being produced each iteration. + Scheduler on which to run the generator loop. + The generated sequence. + + or or or or is null. + + + + Groups the elements of an observable sequence according to a specified key selector function. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + An observable sequence whose elements to group. + A function to extract the key for each element. + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + + or is null. + + + + Groups the elements of an observable sequence with the specified initial capacity according to a specified key selector function. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + An observable sequence whose elements to group. + A function to extract the key for each element. + The initial number of elements that the underlying dictionary can contain. + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + + or is null. + + is less than 0. + + + + Groups the elements of an observable sequence with the specified initial capacity according to a specified key selector function and comparer. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + An observable sequence whose elements to group. + A function to extract the key for each element. + The initial number of elements that the underlying dictionary can contain. + An equality comparer to compare keys with. + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + + or or is null. + + is less than 0. + + + + Groups the elements of an observable sequence according to a specified key selector function and comparer. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + An observable sequence whose elements to group. + A function to extract the key for each element. + An equality comparer to compare keys with. + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + + or or is null. + + + + Groups the elements of an observable sequence and selects the resulting elements by using a specified function. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements within the groups computed for each element in the source sequence. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to map each source element to an element in an observable group. + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + + or or is null. + + + + Groups the elements of an observable sequence with the specified initial capacity and selects the resulting elements by using a specified function. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements within the groups computed for each element in the source sequence. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to map each source element to an element in an observable group. + The initial number of elements that the underlying dictionary can contain. + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + + or or is null. + + is less than 0. + + + + Groups the elements of an observable sequence with the specified initial capacity according to a specified key selector function and comparer and selects the resulting elements by using a specified function. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements within the groups computed for each element in the source sequence. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to map each source element to an element in an observable group. + The initial number of elements that the underlying dictionary can contain. + An equality comparer to compare keys with. + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + + or or or is null. + + is less than 0. + + + + Groups the elements of an observable sequence according to a specified key selector function and comparer and selects the resulting elements by using a specified function. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements within the groups computed for each element in the source sequence. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to map each source element to an element in an observable group. + An equality comparer to compare keys with. + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + + or or or is null. + + + + Groups the elements of an observable sequence according to a specified key selector function. + A duration selector function is used to control the lifetime of groups. When a group expires, it receives an OnCompleted notification. When a new element with the same + key value as a reclaimed group occurs, the group will be reborn with a new lifetime request. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements in the duration sequences obtained for each group to denote its lifetime. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to signal the expiration of a group. + + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + If a group's lifetime expires, a new group with the same key value can be created once an element with such a key value is encountered. + + + or or is null. + + + + Groups the elements of an observable sequence with the specified initial capacity according to a specified key selector function. + A duration selector function is used to control the lifetime of groups. When a group expires, it receives an OnCompleted notification. When a new element with the same + key value as a reclaimed group occurs, the group will be reborn with a new lifetime request. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements in the duration sequences obtained for each group to denote its lifetime. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to signal the expiration of a group. + The initial number of elements that the underlying dictionary can contain. + + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + If a group's lifetime expires, a new group with the same key value can be created once an element with such a key value is encountered. + + + or or is null. + + is less than 0. + + + + Groups the elements of an observable sequence with the specified initial capacity according to a specified key selector function and comparer. + A duration selector function is used to control the lifetime of groups. When a group expires, it receives an OnCompleted notification. When a new element with the same + key value as a reclaimed group occurs, the group will be reborn with a new lifetime request. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements in the duration sequences obtained for each group to denote its lifetime. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to signal the expiration of a group. + The initial number of elements that the underlying dictionary can contain. + An equality comparer to compare keys with. + + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + If a group's lifetime expires, a new group with the same key value can be created once an element with such a key value is encountered. + + + or or or is null. + + is less than 0. + + + + Groups the elements of an observable sequence according to a specified key selector function and comparer. + A duration selector function is used to control the lifetime of groups. When a group expires, it receives an OnCompleted notification. When a new element with the same + key value as a reclaimed group occurs, the group will be reborn with a new lifetime request. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements in the duration sequences obtained for each group to denote its lifetime. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to signal the expiration of a group. + An equality comparer to compare keys with. + + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + If a group's lifetime expires, a new group with the same key value can be created once an element with such a key value is encountered. + + + or or or is null. + + + + Groups the elements of an observable sequence according to a specified key selector function and selects the resulting elements by using a specified function. + A duration selector function is used to control the lifetime of groups. When a group expires, it receives an OnCompleted notification. When a new element with the same + key value as a reclaimed group occurs, the group will be reborn with a new lifetime request. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements within the groups computed for each element in the source sequence. + The type of the elements in the duration sequences obtained for each group to denote its lifetime. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to map each source element to an element in an observable group. + A function to signal the expiration of a group. + + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + If a group's lifetime expires, a new group with the same key value can be created once an element with such a key value is encountered. + + + or or or is null. + + + + Groups the elements of an observable sequence with the specified initial capacity according to a specified key selector function and selects the resulting elements by using a specified function. + A duration selector function is used to control the lifetime of groups. When a group expires, it receives an OnCompleted notification. When a new element with the same + key value as a reclaimed group occurs, the group will be reborn with a new lifetime request. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements within the groups computed for each element in the source sequence. + The type of the elements in the duration sequences obtained for each group to denote its lifetime. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to map each source element to an element in an observable group. + A function to signal the expiration of a group. + The initial number of elements that the underlying dictionary can contain. + + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + If a group's lifetime expires, a new group with the same key value can be created once an element with such a key value is encountered. + + + or or or is null. + + is less than 0. + + + + Groups the elements of an observable sequence with the specified initial capacity according to a specified key selector function and comparer and selects the resulting elements by using a specified function. + A duration selector function is used to control the lifetime of groups. When a group expires, it receives an OnCompleted notification. When a new element with the same + key value as a reclaimed group occurs, the group will be reborn with a new lifetime request. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements within the groups computed for each element in the source sequence. + The type of the elements in the duration sequences obtained for each group to denote its lifetime. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to map each source element to an element in an observable group. + A function to signal the expiration of a group. + The initial number of elements that the underlying dictionary can contain. + An equality comparer to compare keys with. + + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + If a group's lifetime expires, a new group with the same key value can be created once an element with such a key value is encountered. + + + or or or or is null. + + is less than 0. + + + + Groups the elements of an observable sequence according to a specified key selector function and comparer and selects the resulting elements by using a specified function. + A duration selector function is used to control the lifetime of groups. When a group expires, it receives an OnCompleted notification. When a new element with the same + key value as a reclaimed group occurs, the group will be reborn with a new lifetime request. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements within the groups computed for each element in the source sequence. + The type of the elements in the duration sequences obtained for each group to denote its lifetime. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to map each source element to an element in an observable group. + A function to signal the expiration of a group. + An equality comparer to compare keys with. + + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + If a group's lifetime expires, a new group with the same key value can be created once an element with such a key value is encountered. + + + or or or or is null. + + + + Correlates the elements of two sequences based on overlapping durations, and groups the results. + + The type of the elements in the left source sequence. + The type of the elements in the right source sequence. + The type of the elements in the duration sequence denoting the computed duration of each element in the left source sequence. + The type of the elements in the duration sequence denoting the computed duration of each element in the right source sequence. + The type of the elements in the result sequence, obtained by invoking the result selector function for source elements with overlapping duration. + The left observable sequence to join elements for. + The right observable sequence to join elements for. + A function to select the duration of each element of the left observable sequence, used to determine overlap. + A function to select the duration of each element of the right observable sequence, used to determine overlap. + A function invoked to compute a result element for any element of the left sequence with overlapping elements from the right observable sequence. + An observable sequence that contains result elements computed from source elements that have an overlapping duration. + + or or or or is null. + + + + If the specified evaluates true, select the sequence. Otherwise, return an empty sequence. + + Query provider used to construct the data source. + The type of the elements in the result sequence. + Condition evaluated to decide which sequence to return. + Sequence returned in case evaluates true. + + if evaluates true; an empty sequence otherwise. + + or is null. + + + + If the specified evaluates true, select the sequence. Otherwise, select the sequence. + + Query provider used to construct the data source. + The type of the elements in the result sequence. + Condition evaluated to decide which sequence to return. + Sequence returned in case evaluates true. + Sequence returned in case evaluates false. + + if evaluates true; otherwise. + + or or is null. + + + + If the specified evaluates true, select the sequence. Otherwise, return an empty sequence generated on the specified scheduler. + + Query provider used to construct the data source. + The type of the elements in the result sequence. + Condition evaluated to decide which sequence to return. + Sequence returned in case evaluates true. + Scheduler to generate an empty sequence on in case evaluates false. + + if evaluates true; an empty sequence otherwise. + + or or is null. + + + + Ignores all elements in an observable sequence leaving only the termination messages. + + The type of the elements in the source sequence. + Source sequence. + An empty observable sequence that signals termination, successful or exceptional, of the source sequence. + + is null. + + + + Returns an observable sequence that produces a value after each period. + + Query provider used to construct the data source. + Period for producing the values in the resulting sequence. If this value is equal to TimeSpan.Zero, the timer will recur as fast as possible. + An observable sequence that produces a value after each period. + + is less than TimeSpan.Zero. + + Intervals are measured between the start of subsequent notifications, not between the end of the previous and the start of the next notification. + If the observer takes longer than the interval period to handle the message, the subsequent notification will be delivered immediately after the + current one has been handled. In case you need to control the time between the end and the start of consecutive notifications, consider using the + + operator instead. + + + + + Returns an observable sequence that produces a value after each period, using the specified scheduler to run timers and to send out observer messages. + + Query provider used to construct the data source. + Period for producing the values in the resulting sequence. If this value is equal to TimeSpan.Zero, the timer will recur as fast as possible. + Scheduler to run the timer on. + An observable sequence that produces a value after each period. + + is less than TimeSpan.Zero. + + is null. + + Intervals are measured between the start of subsequent notifications, not between the end of the previous and the start of the next notification. + If the observer takes longer than the interval period to handle the message, the subsequent notification will be delivered immediately after the + current one has been handled. In case you need to control the time between the end and the start of consecutive notifications, consider using the + + operator instead. + + + + + Determines whether an observable sequence is empty. + + The type of the elements in the source sequence. + An observable sequence to check for emptiness. + An observable sequence containing a single element determining whether the source sequence is empty. + + is null. + + + + Correlates the elements of two sequences based on overlapping durations. + + The type of the elements in the left source sequence. + The type of the elements in the right source sequence. + The type of the elements in the duration sequence denoting the computed duration of each element in the left source sequence. + The type of the elements in the duration sequence denoting the computed duration of each element in the right source sequence. + The type of the elements in the result sequence, obtained by invoking the result selector function for source elements with overlapping duration. + The left observable sequence to join elements for. + The right observable sequence to join elements for. + A function to select the duration of each element of the left observable sequence, used to determine overlap. + A function to select the duration of each element of the right observable sequence, used to determine overlap. + A function invoked to compute a result element for any two overlapping elements of the left and right observable sequences. + An observable sequence that contains result elements computed from source elements that have an overlapping duration. + + or or or or is null. + + + + Returns the last element of an observable sequence. + + The type of the elements in the source sequence. + Source observable sequence. + Sequence containing the last element in the observable sequence. + + is null. + (Asynchronous) The source sequence is empty. + + + + Returns the last element of an observable sequence that satisfies the condition in the predicate. + + The type of the elements in the source sequence. + Source observable sequence. + A predicate function to evaluate for elements in the source sequence. + Sequence containing the last element in the observable sequence that satisfies the condition in the predicate. + + or is null. + (Asynchronous) No element satisfies the condition in the predicate. -or- The source sequence is empty. + + + + Returns the last element of an observable sequence, or a default value if no such element exists. + + The type of the elements in the source sequence. + Source observable sequence. + Sequence containing the last element in the observable sequence, or a default value if no such element exists. + + is null. + + + + Returns the last element of an observable sequence that satisfies the condition in the predicate, or a default value if no such element exists. + + The type of the elements in the source sequence. + Source observable sequence. + A predicate function to evaluate for elements in the source sequence. + Sequence containing the last element in the observable sequence that satisfies the condition in the predicate, or a default value if no such element exists. + + or is null. + + + + Returns an enumerable sequence whose enumeration returns the latest observed element in the source observable sequence. + Enumerators on the resulting sequence will never produce the same element repeatedly, and will block until the next element becomes available. + + The type of the elements in the source sequence. + Source observable sequence. + The enumerable sequence that returns the last sampled element upon each iteration and subsequently blocks until the next element in the observable source sequence becomes available. + This operator requires the source's object (see ) to implement . + + + + Returns an observable sequence containing an that represents the total number of elements in an observable sequence. + + The type of the elements in the source sequence. + An observable sequence that contains elements to be counted. + An observable sequence containing a single element with the number of elements in the input sequence. + + is null. + (Asynchronous) The number of elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns an observable sequence containing an that represents how many elements in the specified observable sequence satisfy a condition. + + The type of the elements in the source sequence. + An observable sequence that contains elements to be counted. + A function to test each element for a condition. + An observable sequence containing a single element with a number that represents how many elements in the input sequence satisfy the condition in the predicate function. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Materializes the implicit notifications of an observable sequence as explicit notification values. + + The type of the elements in the source sequence. + An observable sequence to get notification values for. + An observable sequence containing the materialized notification values from the source sequence. + + is null. + + + + Returns the maximum value in an observable sequence of values. + + A sequence of values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of values. + + A sequence of values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of values. + + A sequence of values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of values. + + A sequence of values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of values. + + A sequence of values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum element in an observable sequence. + + The type of the elements in the source sequence. + An observable sequence to determine the maximum element of. + An observable sequence containing a single element with the maximum element in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence according to the specified comparer. + + The type of the elements in the source sequence. + An observable sequence to determine the maximum element of. + Comparer used to compare elements. + An observable sequence containing a single element with the maximum element in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum value. + + The type of the elements in the source sequence. + The type of the objects derived from the elements in the source sequence to determine the maximum of. + An observable sequence to determine the minimum element of. + A transform function to apply to each element. + An observable sequence containing a single element with the value that corresponds to the maximum element in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum value according to the specified comparer. + + The type of the elements in the source sequence. + The type of the objects derived from the elements in the source sequence to determine the maximum of. + An observable sequence to determine the minimum element of. + A transform function to apply to each element. + Comparer used to compare elements. + An observable sequence containing a single element with the value that corresponds to the maximum element in the source sequence. + + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the elements in an observable sequence with the maximum key value. + + The type of the elements in the source sequence. + The type of the key computed for each element in the source sequence. + An observable sequence to get the maximum elements for. + Key selector function. + An observable sequence containing a list of zero or more elements that have a maximum key value. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the elements in an observable sequence with the maximum key value according to the specified comparer. + + The type of the elements in the source sequence. + The type of the key computed for each element in the source sequence. + An observable sequence to get the maximum elements for. + Key selector function. + Comparer used to compare key values. + An observable sequence containing a list of zero or more elements that have a maximum key value. + + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Merges elements from two observable sequences into a single observable sequence. + + The type of the elements in the source sequences. + First observable sequence. + Second observable sequence. + The observable sequence that merges the elements of the given sequences. + + or is null. + + + + Merges elements from two observable sequences into a single observable sequence, using the specified scheduler for enumeration of and subscription to the sources. + + The type of the elements in the source sequences. + First observable sequence. + Second observable sequence. + Scheduler used to introduce concurrency for making subscriptions to the given sequences. + The observable sequence that merges the elements of the given sequences. + + or or is null. + + + + Merges elements from all of the specified observable sequences into a single observable sequence, using the specified scheduler for enumeration of and subscription to the sources. + + Query provider used to construct the data source. + The type of the elements in the source sequences. + Observable sequences. + Scheduler to run the enumeration of the sequence of sources on. + The observable sequence that merges the elements of the observable sequences. + + or is null. + + + + Merges elements from all inner observable sequences into a single observable sequence. + + The type of the elements in the source sequences. + Observable sequence of inner observable sequences. + The observable sequence that merges the elements of the inner sequences. + + is null. + + + + Merges results from all source tasks into a single observable sequence. + + The type of the results produced by the source tasks. + Observable sequence of tasks. + The observable sequence that merges the results of the source tasks. + + is null. + If the tasks support cancellation, consider manual conversion of the tasks using , followed by a merge operation using . + + + + Merges elements from all of the specified observable sequences into a single observable sequence. + + Query provider used to construct the data source. + The type of the elements in the source sequences. + Observable sequences. + The observable sequence that merges the elements of the observable sequences. + + is null. + + + + Merges elements from all observable sequences in the given enumerable sequence into a single observable sequence. + + Query provider used to construct the data source. + The type of the elements in the source sequences. + Enumerable sequence of observable sequences. + The observable sequence that merges the elements of the observable sequences. + + is null. + + + + Merges elements from all inner observable sequences into a single observable sequence, limiting the number of concurrent subscriptions to inner sequences. + + The type of the elements in the source sequences. + Observable sequence of inner observable sequences. + Maximum number of inner observable sequences being subscribed to concurrently. + The observable sequence that merges the elements of the inner sequences. + + is null. + + is less than or equal to zero. + + + + Merges elements from all observable sequences in the given enumerable sequence into a single observable sequence, limiting the number of concurrent subscriptions to inner sequences. + + Query provider used to construct the data source. + The type of the elements in the source sequences. + Enumerable sequence of observable sequences. + Maximum number of observable sequences being subscribed to concurrently. + The observable sequence that merges the elements of the observable sequences. + + is null. + + is less than or equal to zero. + + + + Merges elements from all observable sequences in the given enumerable sequence into a single observable sequence, limiting the number of concurrent subscriptions to inner sequences, and using the specified scheduler for enumeration of and subscription to the sources. + + Query provider used to construct the data source. + The type of the elements in the source sequences. + Enumerable sequence of observable sequences. + Maximum number of observable sequences being subscribed to concurrently. + Scheduler to run the enumeration of the sequence of sources on. + The observable sequence that merges the elements of the observable sequences. + + or is null. + + is less than or equal to zero. + + + + Merges elements from all observable sequences in the given enumerable sequence into a single observable sequence, using the specified scheduler for enumeration of and subscription to the sources. + + Query provider used to construct the data source. + The type of the elements in the source sequences. + Enumerable sequence of observable sequences. + Scheduler to run the enumeration of the sequence of sources on. + The observable sequence that merges the elements of the observable sequences. + + or is null. + + + + Returns the minimum value in an observable sequence of values. + + A sequence of values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of values. + + A sequence of values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of values. + + A sequence of values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of values. + + A sequence of values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of values. + + A sequence of values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum element in an observable sequence. + + The type of the elements in the source sequence. + An observable sequence to determine the minimum element of. + An observable sequence containing a single element with the minimum element in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum element in an observable sequence according to the specified comparer. + + The type of the elements in the source sequence. + An observable sequence to determine the minimum element of. + Comparer used to compare elements. + An observable sequence containing a single element with the minimum element in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum value. + + The type of the elements in the source sequence. + The type of the objects derived from the elements in the source sequence to determine the minimum of. + An observable sequence to determine the minimum element of. + A transform function to apply to each element. + An observable sequence containing a single element with the value that corresponds to the minimum element in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum value according to the specified comparer. + + The type of the elements in the source sequence. + The type of the objects derived from the elements in the source sequence to determine the minimum of. + An observable sequence to determine the minimum element of. + A transform function to apply to each element. + Comparer used to compare elements. + An observable sequence containing a single element with the value that corresponds to the minimum element in the source sequence. + + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the elements in an observable sequence with the minimum key value. + + The type of the elements in the source sequence. + The type of the key computed for each element in the source sequence. + An observable sequence to get the minimum elements for. + Key selector function. + An observable sequence containing a list of zero or more elements that have a minimum key value. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the elements in an observable sequence with the minimum key value according to the specified comparer. + + The type of the elements in the source sequence. + The type of the key computed for each element in the source sequence. + An observable sequence to get the minimum elements for. + Key selector function. + Comparer used to compare key values. + An observable sequence containing a list of zero or more elements that have a minimum key value. + + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns an enumerable sequence whose enumeration returns the most recently observed element in the source observable sequence, using the specified initial value in case no element has been sampled yet. + Enumerators on the resulting sequence never block and can produce the same element repeatedly. + + The type of the elements in the source sequence. + Source observable sequence. + Initial value that will be yielded by the enumerable sequence if no element has been sampled yet. + The enumerable sequence that returns the last sampled element upon each iteration. + + is null. + This operator requires the source's object (see ) to implement . + + + + Multicasts the source sequence notifications through an instantiated subject into all uses of the sequence within a selector function. Each + subscription to the resulting sequence causes a separate multicast invocation, exposing the sequence resulting from the selector function's + invocation. For specializations with fixed subject types, see Publish, PublishLast, and Replay. + + The type of the elements in the source sequence. + The type of the elements produced by the intermediate subject. + The type of the elements in the result sequence. + Source sequence which will be multicasted in the specified selector function. + Factory function to create an intermediate subject through which the source sequence's elements will be multicast to the selector function. + Selector function which can use the multicasted source sequence subject to the policies enforced by the created subject. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + + or or is null. + + + + Returns a non-terminating observable sequence, which can be used to denote an infinite duration (e.g. when using reactive joins). + + Query provider used to construct the data source. + The type used for the type parameter of the resulting sequence. + An observable sequence whose observers will never get called. + + + + Returns a non-terminating observable sequence, which can be used to denote an infinite duration (e.g. when using reactive joins). + + Query provider used to construct the data source. + The type used for the type parameter of the resulting sequence. + Object solely used to infer the type of the type parameter. This parameter is typically used when creating a sequence of anonymously typed elements. + An observable sequence whose observers will never get called. + + + + Returns an enumerable sequence whose enumeration blocks until the next element in the source observable sequence becomes available. + Enumerators on the resulting sequence will block until the next element becomes available. + + The type of the elements in the source sequence. + Source observable sequence. + The enumerable sequence that blocks upon each iteration until the next element in the observable source sequence becomes available. + + is null. + This operator requires the source's object (see ) to implement . + + + + Wraps the source sequence in order to run its observer callbacks on the specified synchronization context. + + The type of the elements in the source sequence. + Source sequence. + Synchronization context to notify observers on. + The source sequence whose observations happen on the specified synchronization context. + + or is null. + + This only invokes observer callbacks on a synchronization context. In case the subscription and/or unsubscription actions have side-effects + that require to be run on a synchronization context, use . + + + + + Wraps the source sequence in order to run its observer callbacks on the specified scheduler. + + The type of the elements in the source sequence. + Source sequence. + Scheduler to notify observers on. + The source sequence whose observations happen on the specified scheduler. + + or is null. + + This only invokes observer callbacks on a scheduler. In case the subscription and/or unsubscription actions have side-effects + that require to be run on a scheduler, use . + + + + + Filters the elements of an observable sequence based on the specified type. + + The type to filter the elements in the source sequence on. + The observable sequence that contains the elements to be filtered. + An observable sequence that contains elements from the input sequence of type TResult. + + is null. + + + + Concatenates the second observable sequence to the first observable sequence upon successful or exceptional termination of the first. + + The type of the elements in the source sequences. + First observable sequence whose exception (if any) is caught. + Second observable sequence used to produce results after the first sequence terminates. + An observable sequence that concatenates the first and second sequence, even if the first sequence terminates exceptionally. + + or is null. + + + + Concatenates all of the specified observable sequences, even if the previous observable sequence terminated exceptionally. + + Query provider used to construct the data source. + The type of the elements in the source sequences. + Observable sequences to concatenate. + An observable sequence that concatenates the source sequences, even if a sequence terminates exceptionally. + + is null. + + + + Concatenates all observable sequences in the given enumerable sequence, even if the previous observable sequence terminated exceptionally. + + Query provider used to construct the data source. + The type of the elements in the source sequences. + Observable sequences to concatenate. + An observable sequence that concatenates the source sequences, even if a sequence terminates exceptionally. + + is null. + + + + Prepend a value to an observable sequence. + + The type of the elements in the source sequence. + Source sequence to prepend the value to. + Value to prepend to the specified sequence. + The source sequence prepended with the specified value. + + is null. + + + + Prepend a value to an observable sequence. + + The type of the elements in the source sequence. + Source sequence to prepend the value to. + Value to prepend to the specified sequence. + Scheduler to emit the prepend values on. + The source sequence prepended with the specified value. + + is null. + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence. + This operator is a specialization of Multicast using a regular . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all notifications of the source from the time of the subscription on. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + + or is null. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence and starts with initialValue. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive immediately receive the initial value, followed by all notifications of the source from the time of the subscription on. + Initial value received by observers upon subscription. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + + or is null. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence containing only the last notification. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will only receive the last notification of the source. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + + or is null. + + + + + Generates an observable sequence of integral numbers within a specified range. + + Query provider used to construct the data source. + The value of the first integer in the sequence. + The number of sequential integers to generate. + An observable sequence that contains a range of sequential integral numbers. + + is less than zero. -or- + - 1 is larger than . + + + + Generates an observable sequence of integral numbers within a specified range, using the specified scheduler to send out observer messages. + + Query provider used to construct the data source. + The value of the first integer in the sequence. + The number of sequential integers to generate. + Scheduler to run the generator loop on. + An observable sequence that contains a range of sequential integral numbers. + + is less than zero. -or- + - 1 is larger than . + + is null. + + + + Returns an observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + + Query provider used to construct the data source. + The type of the elements in the source sequence. + Connectable observable sequence. + An observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + + is null. + + + + Returns an observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + + Query provider used to construct the data source. + The type of the elements in the source sequence. + Connectable observable sequence. + The time span that should be waited before possibly unsubscribing from the connectable observable. + An observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + + is null. + + + + Returns an observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + + Query provider used to construct the data source. + The type of the elements in the source sequence. + Connectable observable sequence. + The time span that should be waited before possibly unsubscribing from the connectable observable. + The scheduler to use for delayed unsubscription. + An observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + + is null. + + + + Returns an observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + + Query provider used to construct the data source. + The type of the elements in the source sequence. + Connectable observable sequence. + The minimum number of observers required to subscribe before establishing the connection to the source. + An observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + + is null. + is non-positive. + + + + Returns an observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + + Query provider used to construct the data source. + The type of the elements in the source sequence. + Connectable observable sequence. + The minimum number of observers required to subscribe before establishing the connection to the source. + The time span that should be waited before possibly unsubscribing from the connectable observable. + An observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + + is null. + is non-positive. + + + + Returns an observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + + Query provider used to construct the data source. + The type of the elements in the source sequence. + Connectable observable sequence. + The minimum number of observers required to subscribe before establishing the connection to the source. + The time span that should be waited before possibly unsubscribing from the connectable observable. + The scheduler to use for delayed unsubscription. + An observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + + is null. + is non-positive. + + + + Generates an observable sequence that repeats the given element infinitely. + + Query provider used to construct the data source. + The type of the element that will be repeated in the produced sequence. + Element to repeat. + An observable sequence that repeats the given element infinitely. + + + + Generates an observable sequence that repeats the given element the specified number of times. + + Query provider used to construct the data source. + The type of the element that will be repeated in the produced sequence. + Element to repeat. + Number of times to repeat the element. + An observable sequence that repeats the given element the specified number of times. + + is less than zero. + + + + Generates an observable sequence that repeats the given element the specified number of times, using the specified scheduler to send out observer messages. + + Query provider used to construct the data source. + The type of the element that will be repeated in the produced sequence. + Element to repeat. + Number of times to repeat the element. + Scheduler to run the producer loop on. + An observable sequence that repeats the given element the specified number of times. + + is less than zero. + + is null. + + + + Generates an observable sequence that repeats the given element infinitely, using the specified scheduler to send out observer messages. + + Query provider used to construct the data source. + The type of the element that will be repeated in the produced sequence. + Element to repeat. + Scheduler to run the producer loop on. + An observable sequence that repeats the given element infinitely. + + is null. + + + + Repeats the observable sequence indefinitely. + + The type of the elements in the source sequence. + Observable sequence to repeat. + The observable sequence producing the elements of the given sequence repeatedly and sequentially. + + is null. + + + + Repeats the observable sequence a specified number of times. + + The type of the elements in the source sequence. + Observable sequence to repeat. + Number of times to repeat the sequence. + The observable sequence producing the elements of the given sequence repeatedly. + + is null. + + is less than zero. + + + + Repeatedly resubscribes to the source observable after a normal completion and when the observable + returned by a handler produces an arbitrary item. + + The type of the elements in the source sequence. + The arbitrary element type signaled by the handler observable. + Observable sequence to keep repeating when it successfully terminates. + The function that is called for each observer and takes an observable sequence objects. + It should return an observable of arbitrary items that should signal that arbitrary item in + response to receiving the completion signal from the source observable. If this observable signals + a terminal event, the sequence is terminated with that signal instead. + An observable sequence producing the elements of the given sequence repeatedly while each repetition terminates successfully. + is null. + is null. + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying all notifications. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all the notifications of the source. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + + or is null. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum element count for the replay buffer. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all the notifications of the source subject to the specified replay buffer trimming policy. + Maximum element count of the replay buffer. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + + or is null. + + is less than zero. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum element count for the replay buffer. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all the notifications of the source subject to the specified replay buffer trimming policy. + Maximum element count of the replay buffer. + Scheduler where connected observers within the selector function will be invoked on. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + + or or is null. + + is less than zero. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum time length and element count for the replay buffer. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all the notifications of the source subject to the specified replay buffer trimming policy. + Maximum element count of the replay buffer. + Maximum time length of the replay buffer. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + + or is null. + + is less than zero. + + is less than TimeSpan.Zero. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum time length and element count for the replay buffer. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all the notifications of the source subject to the specified replay buffer trimming policy. + Maximum element count of the replay buffer. + Maximum time length of the replay buffer. + Scheduler where connected observers within the selector function will be invoked on. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + + or or is null. + + is less than zero. + + is less than TimeSpan.Zero. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying all notifications. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all the notifications of the source. + Scheduler where connected observers within the selector function will be invoked on. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + + or or is null. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum time length for the replay buffer. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all the notifications of the source subject to the specified replay buffer trimming policy. + Maximum time length of the replay buffer. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + + or is null. + + is less than TimeSpan.Zero. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum time length for the replay buffer. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all the notifications of the source subject to the specified replay buffer trimming policy. + Maximum time length of the replay buffer. + Scheduler where connected observers within the selector function will be invoked on. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + + or or is null. + + is less than TimeSpan.Zero. + + + + + Repeats the source observable sequence until it successfully terminates. + + The type of the elements in the source sequence. + Observable sequence to repeat until it successfully terminates. + An observable sequence producing the elements of the given sequence repeatedly until it terminates successfully. + + is null. + + + + Repeats the source observable sequence the specified number of times or until it successfully terminates. + + The type of the elements in the source sequence. + Observable sequence to repeat until it successfully terminates. + Number of times to repeat the sequence. + An observable sequence producing the elements of the given sequence repeatedly until it terminates successfully. + + is null. + + is less than zero. + + + + Retries (resubscribes to) the source observable after a failure and when the observable + returned by a handler produces an arbitrary item. + + The type of the elements in the source sequence. + The arbitrary element type signaled by the handler observable. + Observable sequence to repeat until it successfully terminates. + The function that is called for each observer and takes an observable sequence of + errors. It should return an observable of arbitrary items that should signal that arbitrary item in + response to receiving the failure Exception from the source observable. If this observable signals + a terminal event, the sequence is terminated with that signal instead. + An observable sequence producing the elements of the given sequence repeatedly until it terminates successfully. + + is null. + + is null. + + + + Returns an observable sequence that contains a single element. + + Query provider used to construct the data source. + The type of the element that will be returned in the produced sequence. + Single element in the resulting observable sequence. + An observable sequence containing the single specified element. + + + + Returns an observable sequence that contains a single element, using the specified scheduler to send out observer messages. + + Query provider used to construct the data source. + The type of the element that will be returned in the produced sequence. + Single element in the resulting observable sequence. + Scheduler to send the single element on. + An observable sequence containing the single specified element. + + is null. + + + + Samples the observable sequence at each interval. + Upon each sampling tick, the latest element (if any) in the source sequence during the last sampling interval is sent to the resulting sequence. + + The type of the elements in the source sequence. + Source sequence to sample. + Interval at which to sample. If this value is equal to TimeSpan.Zero, the scheduler will continuously sample the stream. + Sampled observable sequence. + + is null. + + is less than TimeSpan.Zero. + + Specifying a TimeSpan.Zero value for doesn't guarantee all source sequence elements will be preserved. This is a side-effect + of the asynchrony introduced by the scheduler, where the sampling action may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Samples the observable sequence at each interval, using the specified scheduler to run sampling timers. + Upon each sampling tick, the latest element (if any) in the source sequence during the last sampling interval is sent to the resulting sequence. + + The type of the elements in the source sequence. + Source sequence to sample. + Interval at which to sample. If this value is equal to TimeSpan.Zero, the scheduler will continuously sample the stream. + Scheduler to run the sampling timer on. + Sampled observable sequence. + + or is null. + + is less than TimeSpan.Zero. + + Specifying a TimeSpan.Zero value for doesn't guarantee all source sequence elements will be preserved. This is a side-effect + of the asynchrony introduced by the scheduler, where the sampling action may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Samples the source observable sequence using a sampler observable sequence producing sampling ticks. + Upon each sampling tick, the latest element (if any) in the source sequence during the last sampling interval is sent to the resulting sequence. + + The type of the elements in the source sequence. + The type of the elements in the sampling sequence. + Source sequence to sample. + Sampling tick sequence. + Sampled observable sequence. + + or is null. + + + + Applies an accumulator function over an observable sequence and returns each intermediate result. + For aggregation behavior with no intermediate results, see . + + The type of the elements in the source sequence and the result of the aggregation. + An observable sequence to accumulate over. + An accumulator function to be invoked on each element. + An observable sequence containing the accumulated values. + + or is null. + + + + Applies an accumulator function over an observable sequence and returns each intermediate result. The specified seed value is used as the initial accumulator value. + For aggregation behavior with no intermediate results, see . + + The type of the elements in the source sequence. + The type of the result of the aggregation. + An observable sequence to accumulate over. + The initial accumulator value. + An accumulator function to be invoked on each element. + An observable sequence containing the accumulated values. + + or is null. + + + + Projects each element of an observable sequence into a new form. + + The type of the elements in the source sequence. + The type of the elements in the result sequence, obtained by running the selector function for each element in the source sequence. + A sequence of elements to invoke a transform function on. + A transform function to apply to each source element. + An observable sequence whose elements are the result of invoking the transform function on each element of source. + + or is null. + + + + Projects each element of an observable sequence into a new form by incorporating the element's index. + + The type of the elements in the source sequence. + The type of the elements in the result sequence, obtained by running the selector function for each element in the source sequence. + A sequence of elements to invoke a transform function on. + A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + An observable sequence whose elements are the result of invoking the transform function on each element of source. + + or is null. + + + + Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected intermediate sequences. + The type of the elements in the result sequence, obtained by using the selector to combine source sequence elements with their corresponding intermediate sequence elements. + An observable sequence of elements to project. + A transform function to apply to each element. + A transform function to apply to each element of the intermediate sequence. + An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + + or or is null. + + + + Projects each element of an observable sequence to an observable sequence by incorporating the element's index, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected intermediate sequences. + The type of the elements in the result sequence, obtained by using the selector to combine source sequence elements with their corresponding intermediate sequence elements. + An observable sequence of elements to project. + A transform function to apply to each element; the second parameter of the function represents the index of the source element. + A transform function to apply to each element of the intermediate sequence; the second parameter of the function represents the index of the source element and the fourth parameter represents the index of the intermediate element. + An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + + or or is null. + + + + Projects each element of an observable sequence to an enumerable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected intermediate enumerable sequences. + The type of the elements in the result sequence, obtained by using the selector to combine source sequence elements with their corresponding intermediate sequence elements. + An observable sequence of elements to project. + A transform function to apply to each element. + A transform function to apply to each element of the intermediate sequence. + An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + + or or is null. + The projected sequences are enumerated synchronously within the OnNext call of the source sequence. In order to do a concurrent, non-blocking merge, change the selector to return an observable sequence obtained using the conversion. + + + + Projects each element of an observable sequence to an enumerable sequence by incorporating the element's index, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected intermediate enumerable sequences. + The type of the elements in the result sequence, obtained by using the selector to combine source sequence elements with their corresponding intermediate sequence elements. + An observable sequence of elements to project. + A transform function to apply to each element; the second parameter of the function represents the index of the source element. + A transform function to apply to each element of the intermediate sequence; the second parameter of the function represents the index of the source element and the fourth parameter represents the index of the intermediate element. + An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + + or or is null. + The projected sequences are enumerated synchronously within the OnNext call of the source sequence. In order to do a concurrent, non-blocking merge, change the selector to return an observable sequence obtained using the conversion. + + + + Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the other sequence and the elements in the result sequence. + An observable sequence of elements to project. + An observable sequence to project each element from the source sequence onto. + An observable sequence whose elements are the result of projecting each source element onto the other sequence and merging all the resulting sequences together. + + or is null. + + + + Projects each notification of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected inner sequences and the elements in the merged result sequence. + An observable sequence of notifications to project. + A transform function to apply to each element. + A transform function to apply when an error occurs in the source sequence. + A transform function to apply when the end of the source sequence is reached. + An observable sequence whose elements are the result of invoking the one-to-many transform function corresponding to each notification in the input sequence. + + or or or is null. + + + + Projects each notification of an observable sequence to an observable sequence by incorporating the element's index and merges the resulting observable sequences into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected inner sequences and the elements in the merged result sequence. + An observable sequence of notifications to project. + A transform function to apply to each element; the second parameter of the function represents the index of the source element. + A transform function to apply when an error occurs in the source sequence. + A transform function to apply when the end of the source sequence is reached. + An observable sequence whose elements are the result of invoking the one-to-many transform function corresponding to each notification in the input sequence. + + or or or is null. + + + + Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected inner sequences and the elements in the merged result sequence. + An observable sequence of elements to project. + A transform function to apply to each element. + An observable sequence whose elements are the result of invoking the one-to-many transform function on each element of the input sequence. + + or is null. + + + + Projects each element of an observable sequence to an observable sequence by incorporating the element's index and merges the resulting observable sequences into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected inner sequences and the elements in the merged result sequence. + An observable sequence of elements to project. + A transform function to apply to each element; the second parameter of the function represents the index of the source element. + An observable sequence whose elements are the result of invoking the one-to-many transform function on each element of the input sequence. + + or is null. + + + + Projects each element of an observable sequence to a task and merges all of the task results into one observable sequence. + + The type of the elements in the source sequence. + The type of the result produced by the projected tasks and the elements in the merged result sequence. + An observable sequence of elements to project. + A transform function to apply to each element. + An observable sequence whose elements are the result of the tasks executed for each element of the input sequence. + This overload supports composition of observable sequences and tasks, without requiring manual conversion of the tasks to observable sequences using . + + or is null. + + + + Projects each element of an observable sequence to a task by incorporating the element's index and merges all of the task results into one observable sequence. + + The type of the elements in the source sequence. + The type of the result produced by the projected tasks and the elements in the merged result sequence. + An observable sequence of elements to project. + A transform function to apply to each element; the second parameter of the function represents the index of the source element. + An observable sequence whose elements are the result of the tasks executed for each element of the input sequence. + This overload supports composition of observable sequences and tasks, without requiring manual conversion of the tasks to observable sequences using . + + or is null. + + + + Projects each element of an observable sequence to a task with cancellation support and merges all of the task results into one observable sequence. + + The type of the elements in the source sequence. + The type of the result produced by the projected tasks and the elements in the merged result sequence. + An observable sequence of elements to project. + A transform function to apply to each element. + An observable sequence whose elements are the result of the tasks executed for each element of the input sequence. + This overload supports composition of observable sequences and tasks, without requiring manual conversion of the tasks to observable sequences using . + + or is null. + + + + Projects each element of an observable sequence to a task by incorporating the element's index with cancellation support and merges all of the task results into one observable sequence. + + The type of the elements in the source sequence. + The type of the result produced by the projected tasks and the elements in the merged result sequence. + An observable sequence of elements to project. + A transform function to apply to each element; the second parameter of the function represents the index of the source element. + An observable sequence whose elements are the result of the tasks executed for each element of the input sequence. + This overload supports composition of observable sequences and tasks, without requiring manual conversion of the tasks to observable sequences using . + + or is null. + + + + Projects each element of an observable sequence to an enumerable sequence and concatenates the resulting enumerable sequences into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected inner enumerable sequences and the elements in the merged result sequence. + An observable sequence of elements to project. + A transform function to apply to each element. + An observable sequence whose elements are the result of invoking the one-to-many transform function on each element of the input sequence. + + or is null. + The projected sequences are enumerated synchronously within the OnNext call of the source sequence. In order to do a concurrent, non-blocking merge, change the selector to return an observable sequence obtained using the conversion. + + + + Projects each element of an observable sequence to an enumerable sequence by incorporating the element's index and concatenates the resulting enumerable sequences into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected inner enumerable sequences and the elements in the merged result sequence. + An observable sequence of elements to project. + A transform function to apply to each element; the second parameter of the function represents the index of the source element. + An observable sequence whose elements are the result of invoking the one-to-many transform function on each element of the input sequence. + + or is null. + The projected sequences are enumerated synchronously within the OnNext call of the source sequence. In order to do a concurrent, non-blocking merge, change the selector to return an observable sequence obtained using the conversion. + + + + Projects each element of an observable sequence to a task, invokes the result selector for the source element and the task result, and merges the results into one observable sequence. + + The type of the elements in the source sequence. + The type of the results produced by the projected intermediate tasks. + The type of the elements in the result sequence, obtained by using the selector to combine source sequence elements with their corresponding intermediate task results. + An observable sequence of elements to project. + A transform function to apply to each element. + A transform function to apply to each element of the intermediate sequence. + An observable sequence whose elements are the result of obtaining a task for each element of the input sequence and then mapping the task's result and its corresponding source element to a result element. + + or or is null. + This overload supports using LINQ query comprehension syntax in C# and Visual Basic to compose observable sequences and tasks, without requiring manual conversion of the tasks to observable sequences using . + + + + Projects each element of an observable sequence to a task by incorporating the element's index, invokes the result selector for the source element and the task result, and merges the results into one observable sequence. + + The type of the elements in the source sequence. + The type of the results produced by the projected intermediate tasks. + The type of the elements in the result sequence, obtained by using the selector to combine source sequence elements with their corresponding intermediate task results. + An observable sequence of elements to project. + A transform function to apply to each element; the second parameter of the function represents the index of the source element. + A transform function to apply to each element of the intermediate sequence; the second parameter of the function represents the index of the source element. + An observable sequence whose elements are the result of obtaining a task for each element of the input sequence and then mapping the task's result and its corresponding source element to a result element. + + or or is null. + This overload supports using LINQ query comprehension syntax in C# and Visual Basic to compose observable sequences and tasks, without requiring manual conversion of the tasks to observable sequences using . + + + + Projects each element of an observable sequence to a task with cancellation support, invokes the result selector for the source element and the task result, and merges the results into one observable sequence. + + The type of the elements in the source sequence. + The type of the results produced by the projected intermediate tasks. + The type of the elements in the result sequence, obtained by using the selector to combine source sequence elements with their corresponding intermediate task results. + An observable sequence of elements to project. + A transform function to apply to each element. + A transform function to apply to each element of the intermediate sequence. + An observable sequence whose elements are the result of obtaining a task for each element of the input sequence and then mapping the task's result and its corresponding source element to a result element. + + or or is null. + This overload supports using LINQ query comprehension syntax in C# and Visual Basic to compose observable sequences and tasks, without requiring manual conversion of the tasks to observable sequences using . + + + + Projects each element of an observable sequence to a task by incorporating the element's index with cancellation support, invokes the result selector for the source element and the task result, and merges the results into one observable sequence. + + The type of the elements in the source sequence. + The type of the results produced by the projected intermediate tasks. + The type of the elements in the result sequence, obtained by using the selector to combine source sequence elements with their corresponding intermediate task results. + An observable sequence of elements to project. + A transform function to apply to each element; the second parameter of the function represents the index of the source element. + A transform function to apply to each element of the intermediate sequence; the second parameter of the function represents the index of the source element. + An observable sequence whose elements are the result of obtaining a task for each element of the input sequence and then mapping the task's result and its corresponding source element to a result element. + + or or is null. + This overload supports using LINQ query comprehension syntax in C# and Visual Basic to compose observable sequences and tasks, without requiring manual conversion of the tasks to observable sequences using . + + + + Determines whether two sequences are equal by comparing the elements pairwise. + + The type of the elements in the source sequence. + First observable sequence to compare. + Second observable sequence to compare. + An observable sequence that contains a single element which indicates whether both sequences are of equal length and their corresponding elements are equal according to the default equality comparer for their type. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Determines whether an observable and enumerable sequence are equal by comparing the elements pairwise. + + The type of the elements in the source sequence. + First observable sequence to compare. + Second observable sequence to compare. + An observable sequence that contains a single element which indicates whether both sequences are of equal length and their corresponding elements are equal according to the default equality comparer for their type. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Determines whether two sequences are equal by comparing the elements pairwise using a specified equality comparer. + + The type of the elements in the source sequence. + First observable sequence to compare. + Second observable sequence to compare. + Comparer used to compare elements of both sequences. + An observable sequence that contains a single element which indicates whether both sequences are of equal length and their corresponding elements are equal according to the specified equality comparer. + + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Determines whether an observable and enumerable sequence are equal by comparing the elements pairwise using a specified equality comparer. + + The type of the elements in the source sequence. + First observable sequence to compare. + Second observable sequence to compare. + Comparer used to compare elements of both sequences. + An observable sequence that contains a single element which indicates whether both sequences are of equal length and their corresponding elements are equal according to the specified equality comparer. + + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the only element of an observable sequence, and reports an exception if there is not exactly one element in the observable sequence. + + The type of the elements in the source sequence. + Source observable sequence. + Sequence containing the single element in the observable sequence. + + is null. + (Asynchronous) The source sequence contains more than one element. -or- The source sequence is empty. + + + + Returns the only element of an observable sequence that satisfies the condition in the predicate, and reports an exception if there is not exactly one element in the observable sequence. + + The type of the elements in the source sequence. + Source observable sequence. + A predicate function to evaluate for elements in the source sequence. + Sequence containing the single element in the observable sequence that satisfies the condition in the predicate. + + or is null. + (Asynchronous) No element satisfies the condition in the predicate. -or- More than one element satisfies the condition in the predicate. -or- The source sequence is empty. + + + + Returns the only element of an observable sequence, or a default value if the observable sequence is empty; this method reports an exception if there is more than one element in the observable sequence. + + The type of the elements in the source sequence. + Source observable sequence. + Sequence containing the single element in the observable sequence, or a default value if no such element exists. + + is null. + (Asynchronous) The source sequence contains more than one element. + + + + Returns the only element of an observable sequence that matches the predicate, or a default value if no such element exists; this method reports an exception if there is more than one element in the observable sequence. + + The type of the elements in the source sequence. + Source observable sequence. + A predicate function to evaluate for elements in the source sequence. + Sequence containing the single element in the observable sequence that satisfies the condition in the predicate, or a default value if no such element exists. + + or is null. + (Asynchronous) The sequence contains more than one element that satisfies the condition in the predicate. + + + + Bypasses a specified number of elements in an observable sequence and then returns the remaining elements. + + The type of the elements in the source sequence. + The sequence to take elements from. + The number of elements to skip before returning the remaining elements. + An observable sequence that contains the elements that occur after the specified index in the input sequence. + + is null. + + is less than zero. + + + + Skips elements for the specified duration from the start of the observable source sequence. + + The type of the elements in the source sequence. + Source sequence to skip elements for. + Duration for skipping elements from the start of the sequence. + An observable sequence with the elements skipped during the specified duration from the start of the source sequence. + + is null. + + is less than TimeSpan.Zero. + + + Specifying a TimeSpan.Zero value for doesn't guarantee no elements will be dropped from the start of the source sequence. + This is a side-effect of the asynchrony introduced by the scheduler, where the action that causes callbacks from the source sequence to be forwarded + may not execute immediately, despite the TimeSpan.Zero due time. + + + Errors produced by the source sequence are always forwarded to the result sequence, even if the error occurs before the . + + + + + + Skips elements for the specified duration from the start of the observable source sequence, using the specified scheduler to run timers. + + The type of the elements in the source sequence. + Source sequence to skip elements for. + Duration for skipping elements from the start of the sequence. + Scheduler to run the timer on. + An observable sequence with the elements skipped during the specified duration from the start of the source sequence. + + or is null. + + is less than TimeSpan.Zero. + + + Specifying a TimeSpan.Zero value for doesn't guarantee no elements will be dropped from the start of the source sequence. + This is a side-effect of the asynchrony introduced by the scheduler, where the action that causes callbacks from the source sequence to be forwarded + may not execute immediately, despite the TimeSpan.Zero due time. + + + Errors produced by the source sequence are always forwarded to the result sequence, even if the error occurs before the . + + + + + + Bypasses a specified number of elements at the end of an observable sequence. + + The type of the elements in the source sequence. + Source sequence. + Number of elements to bypass at the end of the source sequence. + An observable sequence containing the source sequence elements except for the bypassed ones at the end. + + is null. + + is less than zero. + + This operator accumulates a queue with a length enough to store the first elements. As more elements are + received, elements are taken from the front of the queue and produced on the result sequence. This causes elements to be delayed. + + + + + Skips elements for the specified duration from the end of the observable source sequence. + + The type of the elements in the source sequence. + Source sequence to skip elements for. + Duration for skipping elements from the end of the sequence. + An observable sequence with the elements skipped during the specified duration from the end of the source sequence. + + is null. + + is less than TimeSpan.Zero. + + This operator accumulates a queue with a length enough to store elements received during the initial window. + As more elements are received, elements older than the specified are taken from the queue and produced on the + result sequence. This causes elements to be delayed with . + + + + + Skips elements for the specified duration from the end of the observable source sequence, using the specified scheduler to run timers. + + The type of the elements in the source sequence. + Source sequence to skip elements for. + Duration for skipping elements from the end of the sequence. + Scheduler to run the timer on. + An observable sequence with the elements skipped during the specified duration from the end of the source sequence. + + or is null. + + is less than TimeSpan.Zero. + + This operator accumulates a queue with a length enough to store elements received during the initial window. + As more elements are received, elements older than the specified are taken from the queue and produced on the + result sequence. This causes elements to be delayed with . + + + + + Skips elements from the observable source sequence until the specified start time. + + The type of the elements in the source sequence. + Source sequence to skip elements for. + Time to start taking elements from the source sequence. If this value is less than or equal to DateTimeOffset.UtcNow, no elements will be skipped. + An observable sequence with the elements skipped until the specified start time. + + is null. + + Errors produced by the source sequence are always forwarded to the result sequence, even if the error occurs before the . + + + + + Skips elements from the observable source sequence until the specified start time, using the specified scheduler to run timers. + + The type of the elements in the source sequence. + Source sequence to skip elements for. + Time to start taking elements from the source sequence. If this value is less than or equal to DateTimeOffset.UtcNow, no elements will be skipped. + Scheduler to run the timer on. + An observable sequence with the elements skipped until the specified start time. + + or is null. + + Errors produced by the source sequence are always forwarded to the result sequence, even if the error occurs before the . + + + + + Returns the elements from the source observable sequence only after the other observable sequence produces an element. + Starting from Rx.NET 4.0, this will subscribe to before subscribing to + so in case emits an element right away, elements from are not missed. + + The type of the elements in the source sequence. + The type of the elements in the other sequence that indicates the end of skip behavior. + Source sequence to propagate elements for. + Observable sequence that triggers propagation of elements of the source sequence. + An observable sequence containing the elements of the source sequence starting from the point the other sequence triggered propagation. + + or is null. + + + + Bypasses elements in an observable sequence as long as a specified condition is true and then returns the remaining elements. + + The type of the elements in the source sequence. + An observable sequence to return elements from. + A function to test each element for a condition. + An observable sequence that contains the elements from the input sequence starting at the first element in the linear series that does not pass the test specified by predicate. + + or is null. + + + + Bypasses elements in an observable sequence as long as a specified condition is true and then returns the remaining elements. + The element's index is used in the logic of the predicate function. + + The type of the elements in the source sequence. + An observable sequence to return elements from. + A function to test each element for a condition; the second parameter of the function represents the index of the source element. + An observable sequence that contains the elements from the input sequence starting at the first element in the linear series that does not pass the test specified by predicate. + + or is null. + + + + Invokes the action asynchronously, surfacing the result through an observable sequence. + + Query provider used to construct the data source. + Action to run asynchronously. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + + is null. + + + + The action is called immediately, not during the subscription of the resulting sequence. + + + Multiple subscriptions to the resulting sequence can observe the action's outcome. + + + + + + + Invokes the action asynchronously on the specified scheduler, surfacing the result through an observable sequence. + + Query provider used to construct the data source. + Action to run asynchronously. + Scheduler to run the action on. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + + or is null. + + + + The action is called immediately, not during the subscription of the resulting sequence. + + + Multiple subscriptions to the resulting sequence can observe the action's outcome. + + + + + + + Invokes the specified function asynchronously, surfacing the result through an observable sequence. + + Query provider used to construct the data source. + The type of the result returned by the function. + Function to run asynchronously. + An observable sequence exposing the function's result value, or an exception. + + is null. + + + + The function is called immediately, not during the subscription of the resulting sequence. + + + Multiple subscriptions to the resulting sequence can observe the function's result. + + + + + + + Invokes the specified function asynchronously on the specified scheduler, surfacing the result through an observable sequence + + Query provider used to construct the data source. + The type of the result returned by the function. + Function to run asynchronously. + Scheduler to run the function on. + An observable sequence exposing the function's result value, or an exception. + + or is null. + + + + The function is called immediately, not during the subscription of the resulting sequence. + + + Multiple subscriptions to the resulting sequence can observe the function's result. + + + + + + + Invokes the asynchronous action, surfacing the result through an observable sequence. + + Query provider used to construct the data source. + Asynchronous action to run. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + + is null. + + + + The action is started immediately, not during the subscription of the resulting sequence. + + + Multiple subscriptions to the resulting sequence can observe the action's outcome. + + + + + + + Invokes the asynchronous action, surfacing the result through an observable sequence. + + Query provider used to construct the data source. + Asynchronous action to run. + Scheduler on which to notify observers. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + + is null or is null. + + + + The action is started immediately, not during the subscription of the resulting sequence. + + + Multiple subscriptions to the resulting sequence can observe the action's outcome. + + + + + + + Invokes the asynchronous action, surfacing the result through an observable sequence. + The CancellationToken is shared by all subscriptions on the resulting observable sequence. See the remarks section for more information. + + Query provider used to construct the data source. + Asynchronous action to run. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + + is null. + + + + The action is started immediately, not during the subscription of the resulting sequence. + + + Multiple subscriptions to the resulting sequence can observe the action's outcome. + + + + If any subscription to the resulting sequence is disposed, the CancellationToken is set. The observer associated to the disposed + subscription won't see the TaskCanceledException, but other observers will. You can protect against this using the Catch operator. + Be careful when handing out the resulting sequence because of this behavior. The most common use is to have a single subscription + to the resulting sequence, which controls the CancellationToken state. Alternatively, you can control subscription behavior using + multicast operators. + + + + + + + + Invokes the asynchronous action, surfacing the result through an observable sequence. + The CancellationToken is shared by all subscriptions on the resulting observable sequence. See the remarks section for more information. + + Query provider used to construct the data source. + Asynchronous action to run. + Scheduler on which to notify observers. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + + is null or is null. + + + + The action is started immediately, not during the subscription of the resulting sequence. + + + Multiple subscriptions to the resulting sequence can observe the action's outcome. + + + + If any subscription to the resulting sequence is disposed, the CancellationToken is set. The observer associated to the disposed + subscription won't see the TaskCanceledException, but other observers will. You can protect against this using the Catch operator. + Be careful when handing out the resulting sequence because of this behavior. The most common use is to have a single subscription + to the resulting sequence, which controls the CancellationToken state. Alternatively, you can control subscription behavior using + multicast operators. + + + + + + + + Invokes the asynchronous function, surfacing the result through an observable sequence. + + Query provider used to construct the data source. + The type of the result returned by the asynchronous function. + Asynchronous function to run. + An observable sequence exposing the function's result value, or an exception. + + is null. + + + + The function is started immediately, not during the subscription of the resulting sequence. + + + Multiple subscriptions to the resulting sequence can observe the function's result. + + + + + + + Invokes the asynchronous function, surfacing the result through an observable sequence. + The CancellationToken is shared by all subscriptions on the resulting observable sequence. See the remarks section for more information. + + Query provider used to construct the data source. + The type of the result returned by the asynchronous function. + Asynchronous function to run. + An observable sequence exposing the function's result value, or an exception. + + is null. + + + + The function is started immediately, not during the subscription of the resulting sequence. + + + Multiple subscriptions to the resulting sequence can observe the function's result. + + + + If any subscription to the resulting sequence is disposed, the CancellationToken is set. The observer associated to the disposed + subscription won't see the TaskCanceledException, but other observers will. You can protect against this using the Catch operator. + Be careful when handing out the resulting sequence because of this behavior. The most common use is to have a single subscription + to the resulting sequence, which controls the CancellationToken state. Alternatively, you can control subscription behavior using + multicast operators. + + + + + + + + Invokes the asynchronous function, surfacing the result through an observable sequence. + + Query provider used to construct the data source. + The type of the result returned by the asynchronous function. + Asynchronous function to run. + Scheduler on which to notify observers. + An observable sequence exposing the function's result value, or an exception. + + is null or is null. + + + + The function is started immediately, not during the subscription of the resulting sequence. + + + Multiple subscriptions to the resulting sequence can observe the function's result. + + + + + + + Invokes the asynchronous function, surfacing the result through an observable sequence. + The CancellationToken is shared by all subscriptions on the resulting observable sequence. See the remarks section for more information. + + Query provider used to construct the data source. + The type of the result returned by the asynchronous function. + Asynchronous function to run. + Scheduler on which to notify observers. + An observable sequence exposing the function's result value, or an exception. + + is null or is null. + + + + The function is started immediately, not during the subscription of the resulting sequence. + + + Multiple subscriptions to the resulting sequence can observe the function's result. + + + + If any subscription to the resulting sequence is disposed, the CancellationToken is set. The observer associated to the disposed + subscription won't see the TaskCanceledException, but other observers will. You can protect against this using the Catch operator. + Be careful when handing out the resulting sequence because of this behavior. The most common use is to have a single subscription + to the resulting sequence, which controls the CancellationToken state. Alternatively, you can control subscription behavior using + multicast operators. + + + + + + + + Prepends a sequence of values to an observable sequence. + + The type of the elements in the source sequence. + Source sequence to prepend values to. + Scheduler to emit the prepended values on. + Values to prepend to the specified sequence. + The source sequence prepended with the specified values. + + or or is null. + + + + Prepends a sequence of values to an observable sequence. + + The type of the elements in the source sequence. + Source sequence to prepend values to. + Scheduler to emit the prepended values on. + Values to prepend to the specified sequence. + The source sequence prepended with the specified values. + + or or is null. + + + + Prepends a sequence of values to an observable sequence. + + The type of the elements in the source sequence. + Source sequence to prepend values to. + Values to prepend to the specified sequence. + The source sequence prepended with the specified values. + + or is null. + + + + Prepends a sequence of values to an observable sequence. + + The type of the elements in the source sequence. + Source sequence to prepend values to. + Values to prepend to the specified sequence. + The source sequence prepended with the specified values. + + or is null. + + + + Wraps the source sequence in order to run its subscription and unsubscription logic on the specified synchronization context. This operation is not commonly used; + see the remarks section for more information on the distinction between SubscribeOn and ObserveOn. + + The type of the elements in the source sequence. + Source sequence. + Synchronization context to perform subscription and unsubscription actions on. + The source sequence whose subscriptions and unsubscriptions happen on the specified synchronization context. + + or is null. + + This only performs the side-effects of subscription and unsubscription on the specified synchronization context. In order to invoke observer + callbacks on a synchronization context, use . + + + + + Wraps the source sequence in order to run its subscription and unsubscription logic on the specified scheduler. This operation is not commonly used; + see the remarks section for more information on the distinction between SubscribeOn and ObserveOn. + + The type of the elements in the source sequence. + Source sequence. + Scheduler to perform subscription and unsubscription actions on. + The source sequence whose subscriptions and unsubscriptions happen on the specified scheduler. + + or is null. + + This only performs the side-effects of subscription and unsubscription on the specified scheduler. In order to invoke observer + callbacks on a scheduler, use . + + + + + Computes the sum of a sequence of values. + + A sequence of values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + + is null. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of values. + + A sequence of values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of values. + + A sequence of values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + + is null. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of values. + + A sequence of values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + + is null. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values. + + A sequence of nullable values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + + is null. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values. + + A sequence of nullable values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values. + + A sequence of nullable values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + + is null. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values. + + A sequence of nullable values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + + is null. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values. + + A sequence of nullable values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of values. + + A sequence of values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + + or is null. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + + or is null. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + + or is null. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + + or is null. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + + or is null. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + + or is null. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Transforms an observable sequence of observable sequences into an observable sequence + producing values only from the most recent observable sequence. + Each time a new inner observable sequence is received, unsubscribe from the + previous inner observable sequence. + + The type of the elements in the source sequences. + Observable sequence of inner observable sequences. + The observable sequence that at any point in time produces the elements of the most recent inner observable sequence that has been received. + + is null. + + + + Transforms an observable sequence of tasks into an observable sequence + producing values only from the most recent observable sequence. + Each time a new task is received, the previous task's result is ignored. + + The type of the results produced by the source tasks. + Observable sequence of tasks. + The observable sequence that at any point in time produces the result of the most recent task that has been received. + + is null. + If the tasks support cancellation, consider manual conversion of the tasks using , followed by a switch operation using . + + + + Synchronizes the observable sequence such that observer notifications cannot be delivered concurrently. + This overload is useful to "fix" an observable sequence that exhibits concurrent callbacks on individual observers, which is invalid behavior for the query processor. + + The type of the elements in the source sequence. + Source sequence. + The source sequence whose outgoing calls to observers are synchronized. + + is null. + + It's invalid behavior - according to the observer grammar - for a sequence to exhibit concurrent callbacks on a given observer. + This operator can be used to "fix" a source that doesn't conform to this rule. + + + + + Synchronizes the observable sequence such that observer notifications cannot be delivered concurrently, using the specified gate object. + This overload is useful when writing n-ary query operators, in order to prevent concurrent callbacks from different sources by synchronizing on a common gate object. + + The type of the elements in the source sequence. + Source sequence. + Gate object to synchronize each observer call on. + The source sequence whose outgoing calls to observers are synchronized on the given gate object. + + or is null. + + + + Returns a specified number of contiguous elements from the start of an observable sequence. + + The type of the elements in the source sequence. + The sequence to take elements from. + The number of elements to return. + An observable sequence that contains the specified number of elements from the start of the input sequence. + + is null. + + is less than zero. + + + + Returns a specified number of contiguous elements from the start of an observable sequence, using the specified scheduler for the edge case of Take(0). + + The type of the elements in the source sequence. + The sequence to take elements from. + The number of elements to return. + Scheduler used to produce an OnCompleted message in case count is set to 0. + An observable sequence that contains the specified number of elements from the start of the input sequence. + + or is null. + + is less than zero. + + + + Takes elements for the specified duration from the start of the observable source sequence. + + The type of the elements in the source sequence. + Source sequence to take elements from. + Duration for taking elements from the start of the sequence. + An observable sequence with the elements taken during the specified duration from the start of the source sequence. + + is null. + + is less than TimeSpan.Zero. + + Specifying a TimeSpan.Zero value for doesn't guarantee an empty sequence will be returned. This is a side-effect + of the asynchrony introduced by the scheduler, where the action that stops forwarding callbacks from the source sequence may not execute + immediately, despite the TimeSpan.Zero due time. + + + + + Takes elements for the specified duration from the start of the observable source sequence, using the specified scheduler to run timers. + + The type of the elements in the source sequence. + Source sequence to take elements from. + Duration for taking elements from the start of the sequence. + Scheduler to run the timer on. + An observable sequence with the elements taken during the specified duration from the start of the source sequence. + + or is null. + + is less than TimeSpan.Zero. + + Specifying a TimeSpan.Zero value for doesn't guarantee an empty sequence will be returned. This is a side-effect + of the asynchrony introduced by the scheduler, where the action that stops forwarding callbacks from the source sequence may not execute + immediately, despite the TimeSpan.Zero due time. + + + + + Returns a specified number of contiguous elements from the end of an observable sequence. + + The type of the elements in the source sequence. + Source sequence. + Number of elements to take from the end of the source sequence. + An observable sequence containing the specified number of elements from the end of the source sequence. + + is null. + + is less than zero. + + This operator accumulates a buffer with a length enough to store elements elements. Upon completion of + the source sequence, this buffer is drained on the result sequence. This causes the elements to be delayed. + + + + + Returns a specified number of contiguous elements from the end of an observable sequence, using the specified scheduler to drain the queue. + + The type of the elements in the source sequence. + Source sequence. + Number of elements to take from the end of the source sequence. + Scheduler used to drain the queue upon completion of the source sequence. + An observable sequence containing the specified number of elements from the end of the source sequence. + + or is null. + + is less than zero. + + This operator accumulates a buffer with a length enough to store elements elements. Upon completion of + the source sequence, this buffer is drained on the result sequence. This causes the elements to be delayed. + + + + + Returns elements within the specified duration from the end of the observable source sequence. + + The type of the elements in the source sequence. + Source sequence to take elements from. + Duration for taking elements from the end of the sequence. + An observable sequence with the elements taken during the specified duration from the end of the source sequence. + + is null. + + is less than TimeSpan.Zero. + + This operator accumulates a buffer with a length enough to store elements for any window during the lifetime of + the source sequence. Upon completion of the source sequence, this buffer is drained on the result sequence. This causes the result elements + to be delayed with . + + + + + Returns elements within the specified duration from the end of the observable source sequence, using the specified scheduler to run timers. + + The type of the elements in the source sequence. + Source sequence to take elements from. + Duration for taking elements from the end of the sequence. + Scheduler to run the timer on. + An observable sequence with the elements taken during the specified duration from the end of the source sequence. + + or is null. + + is less than TimeSpan.Zero. + + This operator accumulates a buffer with a length enough to store elements for any window during the lifetime of + the source sequence. Upon completion of the source sequence, this buffer is drained on the result sequence. This causes the result elements + to be delayed with . + + + + + Returns elements within the specified duration from the end of the observable source sequence, using the specified schedulers to run timers and to drain the collected elements. + + The type of the elements in the source sequence. + Source sequence to take elements from. + Duration for taking elements from the end of the sequence. + Scheduler to run the timer on. + Scheduler to drain the collected elements. + An observable sequence with the elements taken during the specified duration from the end of the source sequence. + + or or is null. + + is less than TimeSpan.Zero. + + This operator accumulates a buffer with a length enough to store elements for any window during the lifetime of + the source sequence. Upon completion of the source sequence, this buffer is drained on the result sequence. This causes the result elements + to be delayed with . + + + + + Returns a list with the specified number of contiguous elements from the end of an observable sequence. + + The type of the elements in the source sequence. + Source sequence. + Number of elements to take from the end of the source sequence. + An observable sequence containing a single list with the specified number of elements from the end of the source sequence. + + is null. + + is less than zero. + + This operator accumulates a buffer with a length enough to store elements. Upon completion of the + source sequence, this buffer is produced on the result sequence. + + + + + Returns a list with the elements within the specified duration from the end of the observable source sequence. + + The type of the elements in the source sequence. + Source sequence to take elements from. + Duration for taking elements from the end of the sequence. + An observable sequence containing a single list with the elements taken during the specified duration from the end of the source sequence. + + is null. + + is less than TimeSpan.Zero. + + This operator accumulates a buffer with a length enough to store elements for any window during the lifetime of + the source sequence. Upon completion of the source sequence, this buffer is produced on the result sequence. + + + + + Returns a list with the elements within the specified duration from the end of the observable source sequence, using the specified scheduler to run timers. + + The type of the elements in the source sequence. + Source sequence to take elements from. + Duration for taking elements from the end of the sequence. + Scheduler to run the timer on. + An observable sequence containing a single list with the elements taken during the specified duration from the end of the source sequence. + + or is null. + + is less than TimeSpan.Zero. + + This operator accumulates a buffer with a length enough to store elements for any window during the lifetime of + the source sequence. Upon completion of the source sequence, this buffer is produced on the result sequence. + + + + + Takes elements for the specified duration until the specified end time. + + The type of the elements in the source sequence. + Source sequence to take elements from. + Time to stop taking elements from the source sequence. If this value is less than or equal to DateTimeOffset.UtcNow, the result stream will complete immediately. + An observable sequence with the elements taken until the specified end time. + + is null. + + + + Takes elements for the specified duration until the specified end time, using the specified scheduler to run timers. + + The type of the elements in the source sequence. + Source sequence to take elements from. + Time to stop taking elements from the source sequence. If this value is less than or equal to DateTimeOffset.UtcNow, the result stream will complete immediately. + Scheduler to run the timer on. + An observable sequence with the elements taken until the specified end time. + + or is null. + + + + Returns the elements from the source observable sequence until the other observable sequence produces an element. + + The type of the elements in the source sequence. + The type of the elements in the other sequence that indicates the end of take behavior. + Source sequence to propagate elements for. + Observable sequence that terminates propagation of elements of the source sequence. + An observable sequence containing the elements of the source sequence up to the point the other sequence interrupted further propagation. + + or is null. + + + + Relays elements from the source observable sequence and calls the predicate after an + emission to check if the sequence should stop after that specific item. + + The type of the elements in the source and result sequences. + The source sequence to relay elements of. + Called after each upstream item has been emitted with + that upstream item and should return true to indicate the sequence should + complete. + The observable sequence with the source elements until the stop predicate returns true. + + The following sequence will stop after the value 5 has been encountered: + + Observable.Range(1, 10) + .TakeUntil(item => item == 5) + .Subscribe(Console.WriteLine); + + + If or is null. + + + + Returns elements from an observable sequence as long as a specified condition is true. + + The type of the elements in the source sequence. + A sequence to return elements from. + A function to test each element for a condition. + An observable sequence that contains the elements from the input sequence that occur before the element at which the test no longer passes. + + or is null. + + + + Returns elements from an observable sequence as long as a specified condition is true. + The element's index is used in the logic of the predicate function. + + The type of the elements in the source sequence. + A sequence to return elements from. + A function to test each element for a condition; the second parameter of the function represents the index of the source element. + An observable sequence that contains the elements from the input sequence that occur before the element at which the test no longer passes. + + or is null. + + + + Ignores elements from an observable sequence which are followed by another element within a specified relative time duration. + + The type of the elements in the source sequence. + Source sequence to throttle. + Throttling duration for each element. + The throttled sequence. + + is null. + + is less than TimeSpan.Zero. + + + This operator throttles the source sequence by holding on to each element for the duration specified in . If another + element is produced within this time window, the element is dropped and a new timer is started for the current element, repeating this whole + process. For streams that never have gaps larger than or equal to between elements, the resulting stream won't + produce any elements. In order to reduce the volume of a stream whilst guaranteeing the periodic production of elements, consider using the + Observable.Sample set of operators. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing throttling timers to be scheduled + that are due immediately. However, this doesn't guarantee all elements will be retained in the result sequence. This is a side-effect of the + asynchrony introduced by the scheduler, where the action to forward the current element may not execute immediately, despite the TimeSpan.Zero + due time. In such cases, the next element may arrive before the scheduler gets a chance to run the throttling action. + + + + + + Ignores elements from an observable sequence which are followed by another element within a specified relative time duration, using the specified scheduler to run throttling timers. + + The type of the elements in the source sequence. + Source sequence to throttle. + Throttling duration for each element. + Scheduler to run the throttle timers on. + The throttled sequence. + + or is null. + + is less than TimeSpan.Zero. + + + This operator throttles the source sequence by holding on to each element for the duration specified in . If another + element is produced within this time window, the element is dropped and a new timer is started for the current element, repeating this whole + process. For streams that never have gaps larger than or equal to between elements, the resulting stream won't + produce any elements. In order to reduce the volume of a stream whilst guaranteeing the periodic production of elements, consider using the + Observable.Sample set of operators. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing throttling timers to be scheduled + that are due immediately. However, this doesn't guarantee all elements will be retained in the result sequence. This is a side-effect of the + asynchrony introduced by the scheduler, where the action to forward the current element may not execute immediately, despite the TimeSpan.Zero + due time. In such cases, the next element may arrive before the scheduler gets a chance to run the throttling action. + + + + + + Ignores elements from an observable sequence which are followed by another value within a computed throttle duration. + + The type of the elements in the source sequence. + The type of the elements in the throttle sequences selected for each element in the source sequence. + Source sequence to throttle. + Selector function to retrieve a sequence indicating the throttle duration for each given element. + The throttled sequence. + + or is null. + + This operator throttles the source sequence by holding on to each element for the duration denoted by . + If another element is produced within this time window, the element is dropped and a new timer is started for the current element, repeating this + whole process. For streams where the duration computed by applying the to each element overlaps with + the occurrence of the successor element, the resulting stream won't produce any elements. In order to reduce the volume of a stream whilst + guaranteeing the periodic production of elements, consider using the Observable.Sample set of operators. + + + + + Returns an observable sequence that terminates with an exception. + + Query provider used to construct the data source. + The type used for the type parameter of the resulting sequence. + Exception object used for the sequence's termination. + The observable sequence that terminates exceptionally with the specified exception object. + + is null. + + + + Returns an observable sequence that terminates with an exception, using the specified scheduler to send out the single OnError message. + + Query provider used to construct the data source. + The type used for the type parameter of the resulting sequence. + Exception object used for the sequence's termination. + Scheduler to send the exceptional termination call on. + The observable sequence that terminates exceptionally with the specified exception object. + + or is null. + + + + Returns an observable sequence that terminates with an exception, using the specified scheduler to send out the single OnError message. + + Query provider used to construct the data source. + The type used for the type parameter of the resulting sequence. + Exception object used for the sequence's termination. + Scheduler to send the exceptional termination call on. + Object solely used to infer the type of the type parameter. This parameter is typically used when creating a sequence of anonymously typed elements. + The observable sequence that terminates exceptionally with the specified exception object. + + or is null. + + + + Returns an observable sequence that terminates with an exception. + + Query provider used to construct the data source. + The type used for the type parameter of the resulting sequence. + Exception object used for the sequence's termination. + Object solely used to infer the type of the type parameter. This parameter is typically used when creating a sequence of anonymously typed elements. + The observable sequence that terminates exceptionally with the specified exception object. + + is null. + + + + Records the time interval between consecutive elements in an observable sequence. + + The type of the elements in the source sequence. + Source sequence to record time intervals for. + An observable sequence with time interval information on elements. + + is null. + + + + Records the time interval between consecutive elements in an observable sequence, using the specified scheduler to compute time intervals. + + The type of the elements in the source sequence. + Source sequence to record time intervals for. + Scheduler used to compute time intervals. + An observable sequence with time interval information on elements. + + or is null. + + + + Applies a timeout policy to the observable sequence based on an absolute time. + If the sequence doesn't terminate before the specified absolute due time, a TimeoutException is propagated to the observer. + + The type of the elements in the source sequence. + Source sequence to perform a timeout for. + Time when a timeout occurs. If this value is less than or equal to DateTimeOffset.UtcNow, the timeout occurs immediately. + The source sequence with a TimeoutException in case of a timeout. + + is null. + (Asynchronous) If the sequence hasn't terminated before . + + In case you only want to timeout on the first element, consider using the + operator applied to the source sequence and a delayed sequence. Alternatively, the general-purpose overload + of Timeout, can be used. + + + + + Applies a timeout policy to the observable sequence based on an absolute time. + If the sequence doesn't terminate before the specified absolute due time, the other observable sequence is used to produce future messages from that point on. + + The type of the elements in the source sequence and the other sequence used upon a timeout. + Source sequence to perform a timeout for. + Time when a timeout occurs. If this value is less than or equal to DateTimeOffset.UtcNow, the timeout occurs immediately. + Sequence to return in case of a timeout. + The source sequence switching to the other sequence in case of a timeout. + + or is null. + + In case you only want to timeout on the first element, consider using the + operator applied to the source sequence and a delayed sequence. Alternatively, the general-purpose overload + of Timeout, can be used. + + + + + Applies a timeout policy to the observable sequence based on an absolute time, using the specified scheduler to run timeout timers. + If the sequence doesn't terminate before the specified absolute due time, the other observable sequence is used to produce future messages from that point on. + + The type of the elements in the source sequence and the other sequence used upon a timeout. + Source sequence to perform a timeout for. + Time when a timeout occurs. If this value is less than or equal to DateTimeOffset.UtcNow, the timeout occurs immediately. + Sequence to return in case of a timeout. + Scheduler to run the timeout timers on. + The source sequence switching to the other sequence in case of a timeout. + + or or is null. + + In case you only want to timeout on the first element, consider using the + operator applied to the source sequence and a delayed sequence. Alternatively, the general-purpose overload + of Timeout, can be used. + + + + + Applies a timeout policy to the observable sequence based on an absolute time, using the specified scheduler to run timeout timers. + If the sequence doesn't terminate before the specified absolute due time, a TimeoutException is propagated to the observer. + + The type of the elements in the source sequence. + Source sequence to perform a timeout for. + Time when a timeout occurs. If this value is less than or equal to DateTimeOffset.UtcNow, the timeout occurs immediately. + Scheduler to run the timeout timers on. + The source sequence with a TimeoutException in case of a timeout. + + or is null. + (Asynchronous) If the sequence hasn't terminated before . + + In case you only want to timeout on the first element, consider using the + operator applied to the source sequence and a delayed sequence. Alternatively, the general-purpose overload + of Timeout, can be used. + + + + + Applies a timeout policy for each element in the observable sequence. + If the next element isn't received within the specified timeout duration starting from its predecessor, a TimeoutException is propagated to the observer. + + The type of the elements in the source sequence. + Source sequence to perform a timeout for. + Maximum duration between values before a timeout occurs. + The source sequence with a TimeoutException in case of a timeout. + + is null. + + is less than TimeSpan.Zero. + (Asynchronous) If no element is produced within from the previous element. + + + In case you only want to timeout on the first element, consider using the + operator applied to the source sequence and a delayed sequence. Alternatively, the general-purpose overload + of Timeout, can be used. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing timeout timers to be scheduled that are due + immediately. However, this doesn't guarantee a timeout will occur, even for the first element. This is a side-effect of the asynchrony introduced by the + scheduler, where the action to propagate a timeout may not execute immediately, despite the TimeSpan.Zero due time. In such cases, the next element may + arrive before the scheduler gets a chance to run the timeout action. + + + + + + Applies a timeout policy for each element in the observable sequence. + If the next element isn't received within the specified timeout duration starting from its predecessor, the other observable sequence is used to produce future messages from that point on. + + The type of the elements in the source sequence and the other sequence used upon a timeout. + Source sequence to perform a timeout for. + Maximum duration between values before a timeout occurs. + Sequence to return in case of a timeout. + The source sequence switching to the other sequence in case of a timeout. + + or is null. + + is less than TimeSpan.Zero. + + + In case you only want to timeout on the first element, consider using the + operator applied to the source sequence and a delayed sequence. Alternatively, the general-purpose overload + of Timeout, can be used. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing timeout timers to be scheduled that are due + immediately. However, this doesn't guarantee a timeout will occur, even for the first element. This is a side-effect of the asynchrony introduced by the + scheduler, where the action to propagate a timeout may not execute immediately, despite the TimeSpan.Zero due time. In such cases, the next element may + arrive before the scheduler gets a chance to run the timeout action. + + + + + + Applies a timeout policy for each element in the observable sequence, using the specified scheduler to run timeout timers. + If the next element isn't received within the specified timeout duration starting from its predecessor, the other observable sequence is used to produce future messages from that point on. + + The type of the elements in the source sequence and the other sequence used upon a timeout. + Source sequence to perform a timeout for. + Maximum duration between values before a timeout occurs. + Sequence to return in case of a timeout. + Scheduler to run the timeout timers on. + The source sequence switching to the other sequence in case of a timeout. + + or or is null. + + is less than TimeSpan.Zero. + + + In case you only want to timeout on the first element, consider using the + operator applied to the source sequence and a delayed sequence. Alternatively, the general-purpose overload + of Timeout, can be used. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing timeout timers to be scheduled that are due + immediately. However, this doesn't guarantee a timeout will occur, even for the first element. This is a side-effect of the asynchrony introduced by the + scheduler, where the action to propagate a timeout may not execute immediately, despite the TimeSpan.Zero due time. In such cases, the next element may + arrive before the scheduler gets a chance to run the timeout action. + + + + + + Applies a timeout policy for each element in the observable sequence, using the specified scheduler to run timeout timers. + If the next element isn't received within the specified timeout duration starting from its predecessor, a TimeoutException is propagated to the observer. + + The type of the elements in the source sequence. + Source sequence to perform a timeout for. + Maximum duration between values before a timeout occurs. + Scheduler to run the timeout timers on. + The source sequence with a TimeoutException in case of a timeout. + + or is null. + + is less than TimeSpan.Zero. + (Asynchronous) If no element is produced within from the previous element. + + + In case you only want to timeout on the first element, consider using the + operator applied to the source sequence and a delayed sequence. Alternatively, the general-purpose overload + of Timeout, can be used. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing timeout timers to be scheduled that are due + immediately. However, this doesn't guarantee a timeout will occur, even for the first element. This is a side-effect of the asynchrony introduced by the + scheduler, where the action to propagate a timeout may not execute immediately, despite the TimeSpan.Zero due time. In such cases, the next element may + arrive before the scheduler gets a chance to run the timeout action. + + + + + + Applies a timeout policy to the observable sequence based on an initial timeout duration for the first element, and a timeout duration computed for each subsequent element. + If the next element isn't received within the computed duration starting from its predecessor, a TimeoutException is propagated to the observer. + + The type of the elements in the source sequence. + The type of the elements in the timeout sequences used to indicate the timeout duration for each element in the source sequence. + Source sequence to perform a timeout for. + Observable sequence that represents the timeout for the first element. + Selector to retrieve an observable sequence that represents the timeout between the current element and the next element. + The source sequence with a TimeoutException in case of a timeout. + + or or is null. + + + + Applies a timeout policy to the observable sequence based on an initial timeout duration for the first element, and a timeout duration computed for each subsequent element. + If the next element isn't received within the computed duration starting from its predecessor, the other observable sequence is used to produce future messages from that point on. + + The type of the elements in the source sequence and the other sequence used upon a timeout. + The type of the elements in the timeout sequences used to indicate the timeout duration for each element in the source sequence. + Source sequence to perform a timeout for. + Observable sequence that represents the timeout for the first element. + Selector to retrieve an observable sequence that represents the timeout between the current element and the next element. + Sequence to return in case of a timeout. + The source sequence switching to the other sequence in case of a timeout. + + or or or is null. + + + + Applies a timeout policy to the observable sequence based on a timeout duration computed for each element. + If the next element isn't received within the computed duration starting from its predecessor, a TimeoutException is propagated to the observer. + + The type of the elements in the source sequence. + The type of the elements in the timeout sequences used to indicate the timeout duration for each element in the source sequence. + Source sequence to perform a timeout for. + Selector to retrieve an observable sequence that represents the timeout between the current element and the next element. + The source sequence with a TimeoutException in case of a timeout. + + or is null. + + + + Applies a timeout policy to the observable sequence based on a timeout duration computed for each element. + If the next element isn't received within the computed duration starting from its predecessor, the other observable sequence is used to produce future messages from that point on. + + The type of the elements in the source sequence and the other sequence used upon a timeout. + The type of the elements in the timeout sequences used to indicate the timeout duration for each element in the source sequence. + Source sequence to perform a timeout for. + Selector to retrieve an observable sequence that represents the timeout between the current element and the next element. + Sequence to return in case of a timeout. + The source sequence switching to the other sequence in case of a timeout. + + or or is null. + + + + Returns an observable sequence that produces a single value at the specified absolute due time. + + Query provider used to construct the data source. + Absolute time at which to produce the value. If this value is less than or equal to DateTimeOffset.UtcNow, the timer will fire as soon as possible. + An observable sequence that produces a value at due time. + + + + Returns an observable sequence that periodically produces a value starting at the specified initial absolute due time. + + Query provider used to construct the data source. + Absolute time at which to produce the first value. If this value is less than or equal to DateTimeOffset.UtcNow, the timer will fire as soon as possible. + Period to produce subsequent values. If this value is equal to TimeSpan.Zero, the timer will recur as fast as possible. + An observable sequence that produces a value at due time and then after each period. + + is less than TimeSpan.Zero. + + + + Returns an observable sequence that periodically produces a value starting at the specified initial absolute due time, using the specified scheduler to run timers. + + Query provider used to construct the data source. + Absolute time at which to produce the first value. If this value is less than or equal to DateTimeOffset.UtcNow, the timer will fire as soon as possible. + Period to produce subsequent values. If this value is equal to TimeSpan.Zero, the timer will recur as fast as possible. + Scheduler to run timers on. + An observable sequence that produces a value at due time and then after each period. + + is less than TimeSpan.Zero. + + is null. + + + + Returns an observable sequence that produces a single value at the specified absolute due time, using the specified scheduler to run the timer. + + Query provider used to construct the data source. + Absolute time at which to produce the value. If this value is less than or equal to DateTimeOffset.UtcNow, the timer will fire as soon as possible. + Scheduler to run the timer on. + An observable sequence that produces a value at due time. + + is null. + + + + Returns an observable sequence that produces a single value after the specified relative due time has elapsed. + + Query provider used to construct the data source. + Relative time at which to produce the value. If this value is less than or equal to TimeSpan.Zero, the timer will fire as soon as possible. + An observable sequence that produces a value after the due time has elapsed. + + + + Returns an observable sequence that periodically produces a value after the specified initial relative due time has elapsed. + + Query provider used to construct the data source. + Relative time at which to produce the first value. If this value is less than or equal to TimeSpan.Zero, the timer will fire as soon as possible. + Period to produce subsequent values. If this value is equal to TimeSpan.Zero, the timer will recur as fast as possible. + An observable sequence that produces a value after due time has elapsed and then after each period. + + is less than TimeSpan.Zero. + + + + Returns an observable sequence that periodically produces a value after the specified initial relative due time has elapsed, using the specified scheduler to run timers. + + Query provider used to construct the data source. + Relative time at which to produce the first value. If this value is less than or equal to TimeSpan.Zero, the timer will fire as soon as possible. + Period to produce subsequent values. If this value is equal to TimeSpan.Zero, the timer will recur as fast as possible. + Scheduler to run timers on. + An observable sequence that produces a value after due time has elapsed and then each period. + + is less than TimeSpan.Zero. + + is null. + + + + Returns an observable sequence that produces a single value after the specified relative due time has elapsed, using the specified scheduler to run the timer. + + Query provider used to construct the data source. + Relative time at which to produce the value. If this value is less than or equal to TimeSpan.Zero, the timer will fire as soon as possible. + Scheduler to run the timer on. + An observable sequence that produces a value after the due time has elapsed. + + is null. + + + + Timestamps each element in an observable sequence using the local system clock. + + The type of the elements in the source sequence. + Source sequence to timestamp elements for. + An observable sequence with timestamp information on elements. + + is null. + + + + Timestamp each element in an observable sequence using the clock of the specified scheduler. + + The type of the elements in the source sequence. + Source sequence to timestamp elements for. + Scheduler used to compute timestamps. + An observable sequence with timestamp information on elements. + + or is null. + + + + Creates an array from an observable sequence. + + The type of the elements in the source sequence. + The source observable sequence to get an array of elements for. + An observable sequence containing a single element with an array containing all the elements of the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates a dictionary from an observable sequence according to a specified key selector function. + + The type of the elements in the source sequence. + The type of the dictionary key computed for each element in the source sequence. + An observable sequence to create a dictionary for. + A function to extract a key from each element. + An observable sequence containing a single element with a dictionary mapping unique key values onto the corresponding source sequence's element. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates a dictionary from an observable sequence according to a specified key selector function, and a comparer. + + The type of the elements in the source sequence. + The type of the dictionary key computed for each element in the source sequence. + An observable sequence to create a dictionary for. + A function to extract a key from each element. + An equality comparer to compare keys. + An observable sequence containing a single element with a dictionary mapping unique key values onto the corresponding source sequence's element. + + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates a dictionary from an observable sequence according to a specified key selector function, and an element selector function. + + The type of the elements in the source sequence. + The type of the dictionary key computed for each element in the source sequence. + The type of the dictionary value computed for each element in the source sequence. + An observable sequence to create a dictionary for. + A function to extract a key from each element. + A transform function to produce a result element value from each element. + An observable sequence containing a single element with a dictionary mapping unique key values onto the corresponding source sequence's element. + + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates a dictionary from an observable sequence according to a specified key selector function, a comparer, and an element selector function. + + The type of the elements in the source sequence. + The type of the dictionary key computed for each element in the source sequence. + The type of the dictionary value computed for each element in the source sequence. + An observable sequence to create a dictionary for. + A function to extract a key from each element. + A transform function to produce a result element value from each element. + An equality comparer to compare keys. + An observable sequence containing a single element with a dictionary mapping unique key values onto the corresponding source sequence's element. + + or or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Converts an observable sequence to an enumerable sequence. + + The type of the elements in the source sequence. + An observable sequence to convert to an enumerable sequence. + The enumerable sequence containing the elements in the observable sequence. + + is null. + This operator requires the source's object (see ) to implement . + + + + Creates a list from an observable sequence. + + The type of the elements in the source sequence. + The source observable sequence to get a list of elements for. + An observable sequence containing a single element with a list containing all the elements of the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates a lookup from an observable sequence according to a specified key selector function. + + The type of the elements in the source sequence. + The type of the lookup key computed for each element in the source sequence. + An observable sequence to create a lookup for. + A function to extract a key from each element. + An observable sequence containing a single element with a lookup mapping unique key values onto the corresponding source sequence's elements. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates a lookup from an observable sequence according to a specified key selector function, and a comparer. + + The type of the elements in the source sequence. + The type of the lookup key computed for each element in the source sequence. + An observable sequence to create a lookup for. + A function to extract a key from each element. + An equality comparer to compare keys. + An observable sequence containing a single element with a lookup mapping unique key values onto the corresponding source sequence's elements. + + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates a lookup from an observable sequence according to a specified key selector function, and an element selector function. + + The type of the elements in the source sequence. + The type of the lookup key computed for each element in the source sequence. + The type of the lookup value computed for each element in the source sequence. + An observable sequence to create a lookup for. + A function to extract a key from each element. + A transform function to produce a result element value from each element. + An observable sequence containing a single element with a lookup mapping unique key values onto the corresponding source sequence's elements. + + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates a lookup from an observable sequence according to a specified key selector function, a comparer, and an element selector function. + + The type of the elements in the source sequence. + The type of the lookup key computed for each element in the source sequence. + The type of the lookup value computed for each element in the source sequence. + An observable sequence to create a lookup for. + A function to extract a key from each element. + A transform function to produce a result element value from each element. + An equality comparer to compare keys. + An observable sequence containing a single element with a lookup mapping unique key values onto the corresponding source sequence's elements. + + or or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Converts an enumerable sequence to an observable sequence. + + Query provider used to construct the data source. + The type of the elements in the source sequence. + Enumerable sequence to convert to an observable sequence. + The observable sequence whose elements are pulled from the given enumerable sequence. + + is null. + + + + Converts an enumerable sequence to an observable sequence, using the specified scheduler to run the enumeration loop. + + Query provider used to construct the data source. + The type of the elements in the source sequence. + Enumerable sequence to convert to an observable sequence. + Scheduler to run the enumeration of the input sequence on. + The observable sequence whose elements are pulled from the given enumerable sequence. + + or is null. + + + + Constructs an observable sequence that depends on a resource object, whose lifetime is tied to the resulting observable sequence's lifetime. + + Query provider used to construct the data source. + The type of the elements in the produced sequence. + The type of the resource used during the generation of the resulting sequence. Needs to implement . + Factory function to obtain a resource object. + Factory function to obtain an observable sequence that depends on the obtained resource. + An observable sequence whose lifetime controls the lifetime of the dependent resource object. + + or is null. + + + + Constructs an observable sequence that depends on a resource object, whose lifetime is tied to the resulting observable sequence's lifetime. The resource is obtained and used through asynchronous methods. + The CancellationToken passed to the asynchronous methods is tied to the returned disposable subscription, allowing best-effort cancellation at any stage of the resource acquisition or usage. + + Query provider used to construct the data source. + The type of the elements in the produced sequence. + The type of the resource used during the generation of the resulting sequence. Needs to implement . + Asynchronous factory function to obtain a resource object. + Asynchronous factory function to obtain an observable sequence that depends on the obtained resource. + An observable sequence whose lifetime controls the lifetime of the dependent resource object. + + or is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + When a subscription to the resulting sequence is disposed, the CancellationToken that was fed to the asynchronous resource factory and observable factory functions will be signaled. + + + + Filters the elements of an observable sequence based on a predicate. + + The type of the elements in the source sequence. + An observable sequence whose elements to filter. + A function to test each source element for a condition. + An observable sequence that contains elements from the input sequence that satisfy the condition. + + or is null. + + + + Filters the elements of an observable sequence based on a predicate by incorporating the element's index. + + The type of the elements in the source sequence. + An observable sequence whose elements to filter. + A function to test each source element for a condition; the second parameter of the function represents the index of the source element. + An observable sequence that contains elements from the input sequence that satisfy the condition. + + or is null. + + + + Repeats the given as long as the specified holds, where the is evaluated before each repeated is subscribed to. + + Query provider used to construct the data source. + The type of the elements in the source sequence. + Source to repeat as long as the function evaluates to true. + Condition that will be evaluated before subscription to the , to determine whether repetition of the source is required. + The observable sequence obtained by concatenating the sequence as long as the holds. + + or is null. + + + + Projects each element of an observable sequence into consecutive non-overlapping windows which are produced based on element count information. + + The type of the elements in the source sequence, and in the windows in the result sequence. + Source sequence to produce windows over. + Length of each window. + An observable sequence of windows. + + is null. + + is less than or equal to zero. + + + + Projects each element of an observable sequence into zero or more windows which are produced based on element count information. + + The type of the elements in the source sequence, and in the windows in the result sequence. + Source sequence to produce windows over. + Length of each window. + Number of elements to skip between creation of consecutive windows. + An observable sequence of windows. + + is null. + + or is less than or equal to zero. + + + + Projects each element of an observable sequence into consecutive non-overlapping windows which are produced based on timing information. + + The type of the elements in the source sequence, and in the windows in the result sequence. + Source sequence to produce windows over. + Length of each window. + The sequence of windows. + + is null. + + is less than TimeSpan.Zero. + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create windows as fast as it can. + Because all source sequence elements end up in one of the windows, some windows won't have a zero time span. This is a side-effect of the asynchrony introduced + by the scheduler, where the action to close the current window and to create a new window may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Projects each element of an observable sequence into a window that is completed when either it's full or a given amount of time has elapsed. + A useful real-world analogy of this overload is the behavior of a ferry leaving the dock when all seats are taken, or at the scheduled time of departure, whichever event occurs first. + + The type of the elements in the source sequence, and in the windows in the result sequence. + Source sequence to produce windows over. + Maximum time length of a window. + Maximum element count of a window. + An observable sequence of windows. + + is null. + + is less than TimeSpan.Zero. -or- is less than or equal to zero. + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create windows as fast as it can. + Because all source sequence elements end up in one of the windows, some windows won't have a zero time span. This is a side-effect of the asynchrony introduced + by the scheduler, where the action to close the current window and to create a new window may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Projects each element of an observable sequence into a window that is completed when either it's full or a given amount of time has elapsed, using the specified scheduler to run timers. + A useful real-world analogy of this overload is the behavior of a ferry leaving the dock when all seats are taken, or at the scheduled time of departure, whichever event occurs first. + + The type of the elements in the source sequence, and in the windows in the result sequence. + Source sequence to produce windows over. + Maximum time length of a window. + Maximum element count of a window. + Scheduler to run windowing timers on. + An observable sequence of windows. + + or is null. + + is less than TimeSpan.Zero. -or- is less than or equal to zero. + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create windows as fast as it can. + Because all source sequence elements end up in one of the windows, some windows won't have a zero time span. This is a side-effect of the asynchrony introduced + by the scheduler, where the action to close the current window and to create a new window may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Projects each element of an observable sequence into consecutive non-overlapping windows which are produced based on timing information, using the specified scheduler to run timers. + + The type of the elements in the source sequence, and in the windows in the result sequence. + Source sequence to produce windows over. + Length of each window. + Scheduler to run windowing timers on. + An observable sequence of windows. + + or is null. + + is less than TimeSpan.Zero. + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create windows as fast as it can. + Because all source sequence elements end up in one of the windows, some windows won't have a zero time span. This is a side-effect of the asynchrony introduced + by the scheduler, where the action to close the current window and to create a new window may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Projects each element of an observable sequence into zero or more windows which are produced based on timing information. + + The type of the elements in the source sequence, and in the windows in the result sequence. + Source sequence to produce windows over. + Length of each window. + Interval between creation of consecutive windows. + An observable sequence of windows. + + is null. + + or is less than TimeSpan.Zero. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create windows with minimum duration + length. However, some windows won't have a zero time span. This is a side-effect of the asynchrony introduced by the scheduler, where the action to close the + current window may not execute immediately, despite the TimeSpan.Zero due time. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create windows as fast as it can. + However, this doesn't mean all windows will start at the beginning of the source sequence. This is a side-effect of the asynchrony introduced by the scheduler, + where the action to create a new window may not execute immediately, despite the TimeSpan.Zero due time. + + + + + + Projects each element of an observable sequence into zero or more windows which are produced based on timing information, using the specified scheduler to run timers. + + The type of the elements in the source sequence, and in the windows in the result sequence. + Source sequence to produce windows over. + Length of each window. + Interval between creation of consecutive windows. + Scheduler to run windowing timers on. + An observable sequence of windows. + + or is null. + + or is less than TimeSpan.Zero. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create windows with minimum duration + length. However, some windows won't have a zero time span. This is a side-effect of the asynchrony introduced by the scheduler, where the action to close the + current window may not execute immediately, despite the TimeSpan.Zero due time. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create windows as fast as it can. + However, this doesn't mean all windows will start at the beginning of the source sequence. This is a side-effect of the asynchrony introduced by the scheduler, + where the action to create a new window may not execute immediately, despite the TimeSpan.Zero due time. + + + + + + Projects each element of an observable sequence into consecutive non-overlapping windows. + + The type of the elements in the source sequence, and in the windows in the result sequence. + The type of the elements in the sequences indicating window boundary events. + Source sequence to produce windows over. + Sequence of window boundary markers. The current window is closed and a new window is opened upon receiving a boundary marker. + An observable sequence of windows. + + or is null. + + + + Projects each element of an observable sequence into consecutive non-overlapping windows. + + The type of the elements in the source sequence, and in the windows in the result sequence. + The type of the elements in the sequences indicating window closing events. + Source sequence to produce windows over. + A function invoked to define the boundaries of the produced windows. A new window is started when the previous one is closed. + An observable sequence of windows. + + or is null. + + + + Projects each element of an observable sequence into zero or more windows. + + The type of the elements in the source sequence, and in the windows in the result sequence. + The type of the elements in the sequence indicating window opening events, also passed to the closing selector to obtain a sequence of window closing events. + The type of the elements in the sequences indicating window closing events. + Source sequence to produce windows over. + Observable sequence whose elements denote the creation of new windows. + A function invoked to define the closing of each produced window. + An observable sequence of windows. + + or or is null. + + + + Merges two observable sequences into one observable sequence by combining each element from the first source with the latest element from the second source, if any. + Starting from Rx.NET 4.0, this will subscribe to before subscribing to to have a latest element readily available + in case emits an element right away. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Function to invoke for each element from the first source combined with the latest element from the second source, if any. + An observable sequence containing the result of combining each element of the first source with the latest element from the second source, if any, using the specified result selector function. + + or or is null. + + + + Merges the specified observable sequences into one observable sequence by emitting a list with the elements of the observable sequences at corresponding indexes. + + Query provider used to construct the data source. + The type of the elements in the source sequences, and in the lists in the result sequence. + Observable sources. + An observable sequence containing lists of elements at corresponding indexes. + + is null. + + + + Merges the specified observable sequences into one observable sequence by emitting a list with the elements of the observable sequences at corresponding indexes. + + Query provider used to construct the data source. + The type of the elements in the source sequences, and in the lists in the result sequence. + Observable sources. + An observable sequence containing lists of elements at corresponding indexes. + + is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + Query provider used to construct the data source. + The type of the elements in the source sequences. + The type of the elements in the result sequence, returned by the selector function. + Observable sources. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or is null. + + + + Merges two observable sequences into one observable sequence by combining their elements in a pairwise fashion. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Function to invoke for each consecutive pair of elements from the first and second source. + An observable sequence containing the result of pairwise combining the elements of the first and second source using the specified result selector function. + + or or is null. + + + + Merges an observable sequence and an enumerable sequence into one observable sequence by using the selector function. + + The type of the elements in the first observable source sequence. + The type of the elements in the second enumerable source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second enumerable source. + Function to invoke for each consecutive pair of elements from the first and second source. + An observable sequence containing the result of pairwise combining the elements of the first and second source using the specified result selector function. + + or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Fourteenth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the fifteenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Fourteenth observable source. + Fifteenth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the fifteenth source sequence. + The type of the elements in the sixteenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Fourteenth observable source. + Fifteenth observable source. + Sixteenth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or or or or or or or or or or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Query provider used to construct the data source. + Action to convert to an asynchronous action. + Asynchronous action. + + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Query provider used to construct the data source. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + The type of the thirteenth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + The type of the thirteenth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + The type of the thirteenth argument passed to the action. + The type of the fourteenth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + The type of the thirteenth argument passed to the action. + The type of the fourteenth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + The type of the thirteenth argument passed to the action. + The type of the fourteenth argument passed to the action. + The type of the fifteenth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + The type of the thirteenth argument passed to the action. + The type of the fourteenth argument passed to the action. + The type of the fifteenth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + The type of the thirteenth argument passed to the action. + The type of the fourteenth argument passed to the action. + The type of the fifteenth argument passed to the action. + The type of the sixteenth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + The type of the thirteenth argument passed to the action. + The type of the fourteenth argument passed to the action. + The type of the fifteenth argument passed to the action. + The type of the sixteenth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + Query provider used to construct the data source. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + Query provider used to construct the data source. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the thirteenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the thirteenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the thirteenth argument passed to the function. + The type of the fourteenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the thirteenth argument passed to the function. + The type of the fourteenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the thirteenth argument passed to the function. + The type of the fourteenth argument passed to the function. + The type of the fifteenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the thirteenth argument passed to the function. + The type of the fourteenth argument passed to the function. + The type of the fifteenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the thirteenth argument passed to the function. + The type of the fourteenth argument passed to the function. + The type of the fifteenth argument passed to the function. + The type of the sixteenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the thirteenth argument passed to the function. + The type of the fourteenth argument passed to the function. + The type of the fifteenth argument passed to the function. + The type of the sixteenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + + or is null. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The type of the eleventh argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The type of the eleventh argument passed to the begin delegate. + The type of the twelfth argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The type of the eleventh argument passed to the begin delegate. + The type of the twelfth argument passed to the begin delegate. + The type of the thirteenth argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The type of the eleventh argument passed to the begin delegate. + The type of the twelfth argument passed to the begin delegate. + The type of the thirteenth argument passed to the begin delegate. + The type of the fourteenth argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The type of the eleventh argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The type of the eleventh argument passed to the begin delegate. + The type of the twelfth argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The type of the eleventh argument passed to the begin delegate. + The type of the twelfth argument passed to the begin delegate. + The type of the thirteenth argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The type of the eleventh argument passed to the begin delegate. + The type of the twelfth argument passed to the begin delegate. + The type of the thirteenth argument passed to the begin delegate. + The type of the fourteenth argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Creates a pattern that matches when both observable sequences have an available element. + + The type of the elements in the left sequence. + The type of the elements in the right sequence. + Observable sequence to match with the right sequence. + Observable sequence to match with the left sequence. + Pattern object that matches when both observable sequences have an available element. + or is null. + + + + Matches when the observable sequence has an available element and projects the element by invoking the selector function. + + The type of the elements in the source sequence. + The type of the elements in the result sequence, returned by the selector function. + Observable sequence to apply the selector on. + Selector that will be invoked for elements in the source sequence. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + or is null. + + + + Joins together the results from several patterns. + + The type of the elements in the result sequence, obtained from the specified patterns. + Query provider used to construct the data source. + A series of plans created by use of the Then operator on patterns. + An observable sequence with the results from matching several patterns. + or is null. + + + + Joins together the results from several patterns. + + The type of the elements in the result sequence, obtained from the specified patterns. + Query provider used to construct the data source. + A series of plans created by use of the Then operator on patterns. + An observable sequence with the results form matching several patterns. + or is null. + + + + Try winning the race for the right of emission. + + If true, the contender is the left source. + True if the contender has won the race. + + + + If true, this observer won the race and now can emit + on a fast path. + + + + + Automatically connect the upstream IConnectableObservable once the + specified number of IObservers have subscribed to this IObservable. + + The upstream value type. + + + + The only instance for a TResult type: this source + is completely stateless and has a constant behavior. + + + + + No need for instantiating this more than once per TResult. + + + + + Contains the current active connection's state or null + if no connection is active at the moment. + Should be manipulated while holding the lock. + + + + + Contains the connection reference the downstream observer + has subscribed to. Its purpose is to + avoid subscribing, connecting and disconnecting + while holding a lock. + + + + + Holds an individual connection state: the observer count and + the connection's IDisposable. + + + + + Relays items to the downstream until the predicate returns true. + + The element type of the sequence + + + + Provides a set of static methods for writing queries over observable sequences, allowing translation to a target query language. + + + + + Subscribes to each observable sequence returned by the iteratorMethod in sequence and produces a Unit value on the resulting sequence for each step of the iteration. + + Query provider used to construct the data source. + Iterator method that drives the resulting observable sequence. + An observable sequence obtained by running the iterator and returning Unit values for each iteration step. + + is null. + + + + Subscribes to each observable sequence returned by the iteratorMethod in sequence and returns the observable sequence of values sent to the observer given to the iteratorMethod. + + Query provider used to construct the data source. + The type of the elements in the produced sequence. + Iterator method that produces elements in the resulting sequence by calling the given observer. + An observable sequence obtained by running the iterator and returning the elements that were sent to the observer. + + is null. + + + + Expands an observable sequence by recursively invoking selector. + + The type of the elements in the source sequence and each of the recursively expanded sources obtained by running the selector function. + Source sequence with the initial elements. + Selector function to invoke for each produced element, resulting in another sequence to which the selector will be invoked recursively again. + An observable sequence containing all the elements produced by the recursive expansion. + + or is null. + + + + Expands an observable sequence by recursively invoking selector, using the specified scheduler to enumerate the queue of obtained sequences. + + The type of the elements in the source sequence and each of the recursively expanded sources obtained by running the selector function. + Source sequence with the initial elements. + Selector function to invoke for each produced element, resulting in another sequence to which the selector will be invoked recursively again. + Scheduler on which to perform the expansion by enumerating the internal queue of obtained sequences. + An observable sequence containing all the elements produced by the recursive expansion. + + or or is null. + + + + Runs all specified observable sequences in parallel and collects their last elements. + + Query provider used to construct the data source. + The type of the elements in the source sequences. + Observable sequence to collect the last elements for. + An observable sequence with an array collecting the last elements of all the input sequences. + + is null. + + + + Runs all observable sequences in the enumerable sources sequence in parallel and collect their last elements. + + Query provider used to construct the data source. + The type of the elements in the source sequences. + Observable sequence to collect the last elements for. + An observable sequence with an array collecting the last elements of all the input sequences. + + is null. + + + + Runs two observable sequences in parallel and combines their last elements. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable sequence. + Second observable sequence. + Result selector function to invoke with the last elements of both sequences. + An observable sequence with the result of calling the selector function with the last elements of both input sequences. + + or or is null. + + + + Returns an observable sequence that is the result of invoking the selector on the source sequence, without sharing subscriptions. + This operator allows for a fluent style of writing queries that use the same sequence multiple times. + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence that will be shared in the selector function. + Selector function which can use the source sequence as many times as needed, without sharing subscriptions to the source sequence. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + + or is null. + + + + Comonadic bind operator. + + + + + Comonadic bind operator. + + + + + Merges two observable sequences into one observable sequence by combining each element from the first source with the latest element from the second source, if any. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + First observable source. + Second observable source. + An observable sequence containing the result of combining each element of the first source with the latest element from the second source, if any, as a tuple value. + or is null. + + + + Merges an observable sequence and an enumerable sequence into one observable sequence of tuple values. + + The type of the elements in the first observable source sequence. + The type of the elements in the second enumerable source sequence. + First observable source. + Second enumerable source. + An observable sequence containing the result of pairwise combining the elements of the first and second source as a tuple value. + or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + First observable source. + Second observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + First observable source. + Second observable source. + Third observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Fourteenth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the fifteenth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Fourteenth observable source. + Fifteenth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the fifteenth source sequence. + The type of the elements in the sixteenth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Fourteenth observable source. + Fifteenth observable source. + Sixteenth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + First observable source. + Second observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + First observable source. + Second observable source. + Third observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Fourteenth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the fifteenth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Fourteenth observable source. + Fifteenth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the fifteenth source sequence. + The type of the elements in the sixteenth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Fourteenth observable source. + Fifteenth observable source. + Sixteenth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or or or or or or or or or is null. + + + + (Infrastructure) Implement query debugger services. + + + + + The System.Reactive.Linq namespace contains interfaces and classes that support expressing queries over observable sequences, using Language Integrated Query (LINQ). + Query operators are made available as extension methods for and defined on the Observable and Qbservable classes, respectively. + + + + + An ObserveOn operator implementation that uses lock-free + techniques to signal events to the downstream. + + The element type of the sequence. + + + + The current task representing a running drain operation. + + + + + Indicates the work-in-progress state of this operator, + zero means no work is currently being done. + + + + + If true, the upstream has issued OnCompleted. + + + + + If is true and this is non-null, the upstream + failed with an OnError. + + + + + Indicates a dispose has been requested. + + + + + Remove remaining elements from the queue upon + cancellation or failure. + + The queue to use. The argument ensures that the + _queue field is not re-read from memory unnecessarily + due to the memory barriers inside TryDequeue mandating it + despite the field is read-only. + + + + Submit the drain task via the appropriate scheduler if + there is no drain currently running (wip > 0). + + + + + The static action to be scheduled on a simple scheduler. + Avoids creating a delegate that captures this + whenever the signals have to be drained. + + + + + Emits at most one signal per run on a scheduler that doesn't like + long running tasks. + + The scheduler to use for scheduling the next signal emission if necessary. + The IDisposable of the recursively scheduled task or an empty disposable. + + + + Executes a drain step by checking the disposed state, + checking for the terminated state and for an + empty queue, issuing the appropriate signals to the + given downstream. + + The queue to use. The argument ensures that the + _queue field is not re-read from memory due to the memory barriers + inside TryDequeue mandating it despite the field is read-only. + In addition, the DrainStep is invoked from the DrainLongRunning's loop + so reading _queue inside this method would still incur the same barrier + overhead otherwise. + + + + Signals events on a ISchedulerLongRunning by blocking the emission thread while waiting + for them from the upstream. + + The element type of the sequence. + + + + This will run a suspending drain task, hogging the backing thread + until the sequence terminates or gets disposed. + + + + + The queue for holding the OnNext items, terminal signals have their own fields. + + + + + Protects the suspension and resumption of the long running drain task. + + + + + The work-in-progress counter. If it jumps from 0 to 1, the drain task is resumed, + if it reaches 0 again, the drain task is suspended. + + + + + Set to true if the upstream terminated. + + + + + Set to a non-null Exception if the upstream terminated with OnError. + + + + + Indicates the sequence has been disposed and the drain task should quit. + + + + + Makes sure the drain task is scheduled only once, when the first signal + from upstream arrives. + + + + + The disposable tracking the drain task. + + + + + Static reference to the Drain method, saves allocation. + + + + + Override this method to dispose additional resources. + The method is guaranteed to be called at most once. + + If true, the method was called from . + + + + Base class for implementation of query operators, providing a lightweight sink that can be disposed to mute the outgoing observer. + + Type of the resulting sequence's elements. + + Implementations of sinks are responsible to enforce the message grammar on the associated observer. Upon sending a terminal message, a pairing Dispose call should be made to trigger cancellation of related resources and to mute the outgoing observer. + + + + Holds onto a singleton IDisposable indicating a ready state. + + + + + This indicates the operation has been prepared and ready for + the next step. + + + + + Provides a mechanism for receiving push-based notifications and returning a response. + + + The type of the elements received by the observer. + This type parameter is contravariant. That is, you can use either the type you specified or any type that is less derived. For more information about covariance and contravariance, see Covariance and Contravariance in Generics. + + + The type of the result returned from the observer's notification handlers. + This type parameter is covariant. That is, you can use either the type you specified or any type that is more derived. For more information about covariance and contravariance, see Covariance and Contravariance in Generics. + + + + + Notifies the observer of a new element in the sequence. + + The new element in the sequence. + Result returned upon observation of a new element. + + + + Notifies the observer that an exception has occurred. + + The exception that occurred. + Result returned upon observation of an error. + + + + Notifies the observer of the end of the sequence. + + Result returned upon observation of the sequence completion. + + + + Abstract base class for join patterns. + + + + + Represents a join pattern over one observable sequence. + + The type of the elements in the first source sequence. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over two observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + + + + Creates a pattern that matches when all three observable sequences have an available element. + + The type of the elements in the third observable sequence. + Observable sequence to match with the two previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over three observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + + + + Creates a pattern that matches when all four observable sequences have an available element. + + The type of the elements in the fourth observable sequence. + Observable sequence to match with the three previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over four observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + + + + Creates a pattern that matches when all five observable sequences have an available element. + + The type of the elements in the fifth observable sequence. + Observable sequence to match with the four previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over five observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + + + + Creates a pattern that matches when all six observable sequences have an available element. + + The type of the elements in the sixth observable sequence. + Observable sequence to match with the five previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over six observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + + + + Creates a pattern that matches when all seven observable sequences have an available element. + + The type of the elements in the seventh observable sequence. + Observable sequence to match with the six previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over seven observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + + + + Creates a pattern that matches when all eight observable sequences have an available element. + + The type of the elements in the eighth observable sequence. + Observable sequence to match with the seven previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over eight observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + + + + Creates a pattern that matches when all nine observable sequences have an available element. + + The type of the elements in the ninth observable sequence. + Observable sequence to match with the eight previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over nine observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + + + + Creates a pattern that matches when all ten observable sequences have an available element. + + The type of the elements in the tenth observable sequence. + Observable sequence to match with the nine previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over ten observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + + + + Creates a pattern that matches when all eleven observable sequences have an available element. + + The type of the elements in the eleventh observable sequence. + Observable sequence to match with the ten previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over eleven observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + + + + Creates a pattern that matches when all twelve observable sequences have an available element. + + The type of the elements in the twelfth observable sequence. + Observable sequence to match with the eleven previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over twelve observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + + + + Creates a pattern that matches when all thirteen observable sequences have an available element. + + The type of the elements in the thirteenth observable sequence. + Observable sequence to match with the twelve previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over thirteen observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + + + + Creates a pattern that matches when all fourteen observable sequences have an available element. + + The type of the elements in the fourteenth observable sequence. + Observable sequence to match with the thirteen previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over fourteen observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + + + + Creates a pattern that matches when all fifteen observable sequences have an available element. + + The type of the elements in the fifteenth observable sequence. + Observable sequence to match with the fourteen previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over fifteen observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the fifteenth source sequence. + + + + Creates a pattern that matches when all sixteen observable sequences have an available element. + + The type of the elements in the sixteenth observable sequence. + Observable sequence to match with the fifteen previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over sixteen observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the fifteenth source sequence. + The type of the elements in the sixteenth source sequence. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents an execution plan for join patterns. + + The type of the results produced by the plan. + + + + Abstract base class for join patterns represented by an expression tree. + + + + + Creates a new join pattern object using the specified expression tree representation. + + Expression tree representing the join pattern. + + + + Gets the expression tree representing the join pattern. + + + + + Represents a join pattern over two observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + + + + Creates a pattern that matches when all three observable sequences have an available element. + + The type of the elements in the third observable sequence. + Observable sequence to match with the two previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over three observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + + + + Creates a pattern that matches when all four observable sequences have an available element. + + The type of the elements in the fourth observable sequence. + Observable sequence to match with the three previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over four observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + + + + Creates a pattern that matches when all five observable sequences have an available element. + + The type of the elements in the fifth observable sequence. + Observable sequence to match with the four previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over five observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + + + + Creates a pattern that matches when all six observable sequences have an available element. + + The type of the elements in the sixth observable sequence. + Observable sequence to match with the five previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over six observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + + + + Creates a pattern that matches when all seven observable sequences have an available element. + + The type of the elements in the seventh observable sequence. + Observable sequence to match with the six previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over seven observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + + + + Creates a pattern that matches when all eight observable sequences have an available element. + + The type of the elements in the eighth observable sequence. + Observable sequence to match with the seven previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over eight observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + + + + Creates a pattern that matches when all nine observable sequences have an available element. + + The type of the elements in the ninth observable sequence. + Observable sequence to match with the eight previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over nine observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + + + + Creates a pattern that matches when all ten observable sequences have an available element. + + The type of the elements in the tenth observable sequence. + Observable sequence to match with the nine previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over ten observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + + + + Creates a pattern that matches when all eleven observable sequences have an available element. + + The type of the elements in the eleventh observable sequence. + Observable sequence to match with the ten previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over eleven observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + + + + Creates a pattern that matches when all twelve observable sequences have an available element. + + The type of the elements in the twelfth observable sequence. + Observable sequence to match with the eleven previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over twelve observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + + + + Creates a pattern that matches when all thirteen observable sequences have an available element. + + The type of the elements in the thirteenth observable sequence. + Observable sequence to match with the twelve previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over thirteen observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + + + + Creates a pattern that matches when all fourteen observable sequences have an available element. + + The type of the elements in the fourteenth observable sequence. + Observable sequence to match with the thirteen previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over fourteen observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + + + + Creates a pattern that matches when all fifteen observable sequences have an available element. + + The type of the elements in the fifteenth observable sequence. + Observable sequence to match with the fourteen previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over fifteen observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the fifteenth source sequence. + + + + Creates a pattern that matches when all sixteen observable sequences have an available element. + + The type of the elements in the sixteenth observable sequence. + Observable sequence to match with the fifteen previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over sixteen observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the fifteenth source sequence. + The type of the elements in the sixteenth source sequence. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents an execution plan for join patterns represented by an expression tree. + + The type of the results produced by the plan. + + + + Gets the expression tree representing the join pattern execution plan. + + + + + The System.Reactive.Joins namespace contains classes used to express join patterns over observable sequences using fluent method syntax. + + + + + Represents an object that retains the elements of the observable sequence and signals the end of the sequence. + + The type of elements received from the source sequence. + + + + Constructs an object that retains the values of source and signals the end of the sequence. + + The observable sequence whose elements will be retained in the list. + is null. + + + + Returns the last value of the observable sequence. + + + + + Determines the index of a specific item in the ListObservable. + + The element to determine the index for. + The index of the specified item in the list; -1 if not found. + + + + Inserts an item to the ListObservable at the specified index. + + The index to insert the item at. + The item to insert in the list. + + + + Removes the ListObservable item at the specified index. + + The index of the item to remove. + + + + Gets or sets the element at the specified index. + + The index of the item to retrieve or set. + + + + Adds an item to the ListObservable. + + The item to add to the list. + + + + Removes all items from the ListObservable. + + + + + Determines whether the ListObservable contains a specific value. + + The item to search for in the list. + true if found; false otherwise. + + + + Copies the elements of the ListObservable to an System.Array, starting at a particular System.Array index. + + The array to copy elements to. + The start index in the array to start copying elements to. + + + + Gets the number of elements contained in the ListObservable. + + + + + Gets a value that indicates whether the ListObservable is read-only. + + + + + Removes the first occurrence of a specific object from the ListObservable. + + The item to remove from the list. + true if the item was found; false otherwise. + + + + Returns an enumerator that iterates through the collection. + + Enumerator over the list. + + + + Subscribes an observer to the ListObservable which will be notified upon completion. + + The observer to send completion or error messages to. + The disposable resource that can be used to unsubscribe. + is null. + + + + The System.Reactive namespace contains interfaces and classes used throughout the Reactive Extensions library. + + + + + The System.Reactive.Subjects namespace contains interfaces and classes to represent subjects, which are objects implementing both and . + Subjects are often used as sources of events, allowing one party to raise events and allowing another party to write queries over the event stream. Because of their ability to + have multiple registered observers, subjects are also used as a facility to provide multicast behavior for event streams in queries. + + + + + Represents the result of an asynchronous operation. + The last value before the OnCompleted notification, or the error received through OnError, is sent to all subscribed observers. + + The type of the elements processed by the subject. + + + + A pre-allocated empty array indicating the AsyncSubject has terminated. + + + + + A pre-allocated empty array indicating the AsyncSubject has been disposed. + + + + + Creates a subject that can only receive one value and that value is cached for all future observations. + + + + + Indicates whether the subject has observers subscribed to it. + + + + + Indicates whether the subject has been disposed. + + + + + Notifies all subscribed observers about the end of the sequence, also causing the last received value to be sent out (if any). + + + + + Notifies all subscribed observers about the exception. + + The exception to send to all observers. + is null. + + + + Sends a value to the subject. The last value received before successful termination will be sent to all subscribed and future observers. + + The value to store in the subject. + + + + Subscribes an observer to the subject. + + Observer to subscribe to the subject. + Disposable object that can be used to unsubscribe the observer from the subject. + is null. + + + + A disposable connecting the AsyncSubject and an IObserver. + + + + + Unsubscribe all observers and release resources. + + + + + Gets an awaitable object for the current AsyncSubject. + + Object that can be awaited. + + + + Specifies a callback action that will be invoked when the subject completes. + + Callback action that will be invoked when the subject completes. + is null. + + + + Gets whether the AsyncSubject has completed. + + + + + Gets the last element of the subject, potentially blocking until the subject completes successfully or exceptionally. + + The last element of the subject. Throws an InvalidOperationException if no element was received. + The source sequence is empty. + + + + Represents a value that changes over time. + Observers can subscribe to the subject to receive the last (or initial) value and all subsequent notifications. + + The type of the elements processed by the subject. + + + + Initializes a new instance of the class which creates a subject that caches its last value and starts with the specified value. + + Initial value sent to observers when no other value has been received by the subject yet. + + + + Indicates whether the subject has observers subscribed to it. + + + + + Indicates whether the subject has been disposed. + + + + + Gets the current value or throws an exception. + + The initial value passed to the constructor until is called; after which, the last value passed to . + + is frozen after is called. + After is called, always throws the specified exception. + An exception is always thrown after is called. + + Reading is a thread-safe operation, though there's a potential race condition when or are being invoked concurrently. + In some cases, it may be necessary for a caller to use external synchronization to avoid race conditions. + + + Dispose was called. + + + + Tries to get the current value or throws an exception. + + The initial value passed to the constructor until is called; after which, the last value passed to . + true if a value is available; false if the subject was disposed. + + The value returned from is frozen after is called. + After is called, always throws the specified exception. + + Calling is a thread-safe operation, though there's a potential race condition when or are being invoked concurrently. + In some cases, it may be necessary for a caller to use external synchronization to avoid race conditions. + + + + + + Notifies all subscribed observers about the end of the sequence. + + + + + Notifies all subscribed observers about the exception. + + The exception to send to all observers. + is null. + + + + Notifies all subscribed observers about the arrival of the specified element in the sequence. + + The value to send to all observers. + + + + Subscribes an observer to the subject. + + Observer to subscribe to the subject. + Disposable object that can be used to unsubscribe the observer from the subject. + is null. + + + + Unsubscribe all observers and release resources. + + + + + Represents an observable wrapper that can be connected and disconnected from its underlying observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the resulting sequence, after transformation through the subject. + + + + Creates an observable that can be connected and disconnected from its source. + + Underlying observable source sequence that can be connected and disconnected from the wrapper. + Subject exposed by the connectable observable, receiving data from the underlying source sequence upon connection. + + + + Connects the observable wrapper to its source. All subscribed observers will receive values from the underlying observable sequence as long as the connection is established. + + Disposable object used to disconnect the observable wrapper from its source, causing subscribed observer to stop receiving values from the underlying observable sequence. + + + + Subscribes an observer to the observable sequence. No values from the underlying observable source will be received unless a connection was established through the Connect method. + + Observer that will receive values from the underlying observable source when the current ConnectableObservable instance is connected through a call to Connect. + Disposable used to unsubscribe from the observable sequence. + + + + Represents an observable wrapper that can be connected and disconnected from its underlying observable sequence. + + + The type of the elements in the sequence. + This type parameter is covariant. That is, you can use either the type you specified or any type that is more derived. For more information about covariance and contravariance, see Covariance and Contravariance in Generics. + + + + + Connects the observable wrapper to its source. All subscribed observers will receive values from the underlying observable sequence as long as the connection is established. + + Disposable used to disconnect the observable wrapper from its source, causing subscribed observer to stop receiving values from the underlying observable sequence. + + + + Represents an object that is both an observable sequence as well as an observer. + + The type of the elements processed by the subject. + + + + Represents an object that is both an observable sequence as well as an observer. + + + The type of the elements received by the subject. + This type parameter is contravariant. That is, you can use either the type you specified or any type that is less derived. For more information about covariance and contravariance, see Covariance and Contravariance in Generics. + + + The type of the elements produced by the subject. + This type parameter is covariant. That is, you can use either the type you specified or any type that is more derived. For more information about covariance and contravariance, see Covariance and Contravariance in Generics. + + + + + Represents an object that is both an observable sequence as well as an observer. + Each notification is broadcasted to all subscribed and future observers, subject to buffer trimming policies. + + The type of the elements processed by the subject. + + + + Underlying optimized implementation of the replay subject. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified scheduler. + + Scheduler the observers are invoked on. + is null. + + + + Initializes a new instance of the class with the specified buffer size. + + Maximum element count of the replay buffer. + is less than zero. + + + + Initializes a new instance of the class with the specified buffer size and scheduler. + + Maximum element count of the replay buffer. + Scheduler the observers are invoked on. + is null. + is less than zero. + + + + Initializes a new instance of the class with the specified window. + + Maximum time length of the replay buffer. + is less than . + + + + Initializes a new instance of the class with the specified window and scheduler. + + Maximum time length of the replay buffer. + Scheduler the observers are invoked on. + is null. + is less than . + + + + Initializes a new instance of the class with the specified buffer size and window. + + Maximum element count of the replay buffer. + Maximum time length of the replay buffer. + is less than zero. -or- is less than . + + + + Initializes a new instance of the class with the specified buffer size, window and scheduler. + + Maximum element count of the replay buffer. + Maximum time length of the replay buffer. + Scheduler the observers are invoked on. + is less than zero. -or- is less than . + is null. + + + + Indicates whether the subject has observers subscribed to it. + + + + + Indicates whether the subject has been disposed. + + + + + Notifies all subscribed and future observers about the arrival of the specified element in the sequence. + + The value to send to all observers. + + + + Notifies all subscribed and future observers about the specified exception. + + The exception to send to all observers. + is null. + + + + Notifies all subscribed and future observers about the end of the sequence. + + + + + Subscribes an observer to the subject. + + Observer to subscribe to the subject. + Disposable object that can be used to unsubscribe the observer from the subject. + is null. + + + + Releases all resources used by the current instance of the class and unsubscribe all observers. + + + + + Original implementation of the ReplaySubject with time based operations (Scheduling, Stopwatch, buffer-by-time). + + + + + Specialized scheduled observer similar to a scheduled observer for the immediate scheduler. + + Type of the elements processed by the observer. + + + + Gate to control ownership transfer and protect data structures. + + + + + Observer to forward notifications to. + + + + + Queue to enqueue OnNext notifications into. + + + + + Standby queue to swap out for _queue when transferring ownership. This allows to reuse + queues in case of busy subjects where the initial replay doesn't suffice to catch up. + + + + + Exception passed to an OnError notification, if any. + + + + + Indicates whether an OnCompleted notification was received. + + + + + Indicates whether the observer is busy, i.e. some thread is actively draining the + notifications that were queued up. + + + + + Indicates whether a failure occurred when the owner was draining the queue. This will + prevent future work to be processed. + + + + + Creates a new scheduled observer that proxies to the specified observer. + + Observer to forward notifications to. + + + + Disposes the observer. + + + + + Notifies the observer of pending work. This will either cause the current owner to + process the newly enqueued notifications, or it will cause the calling thread to + become the owner and start processing the notification queue. + + + + + Notifies the observer of pending work. This will either cause the current owner to + process the newly enqueued notifications, or it will cause the calling thread to + become the owner and start processing the notification queue. + + The number of enqueued notifications to process (ignored). + + + + Enqueues an OnCompleted notification. + + + + + Enqueues an OnError notification. + + Error of the notification. + + + + Enqueues an OnNext notification. + + Value of the notification. + + + + Terminates the observer upon receiving terminal notifications, thus preventing + future notifications to go out. + + Observer to send terminal notifications to. + + + + Represents an object that is both an observable sequence as well as an observer. + Each notification is broadcasted to all subscribed observers. + + The type of the elements processed by the subject. + + + + Creates a subject. + + + + + Indicates whether the subject has observers subscribed to it. + + + + + Indicates whether the subject has been disposed. + + + + + Notifies all subscribed observers about the end of the sequence. + + + + + Notifies all subscribed observers about the specified exception. + + The exception to send to all currently subscribed observers. + is null. + + + + Notifies all subscribed observers about the arrival of the specified element in the sequence. + + The value to send to all currently subscribed observers. + + + + Subscribes an observer to the subject. + + Observer to subscribe to the subject. + Disposable object that can be used to unsubscribe the observer from the subject. + is null. + + + + Releases all resources used by the current instance of the class and unsubscribes all observers. + + + + + Provides a set of static methods for creating subjects. + + + + + Creates a subject from the specified observer and observable. + + The type of the elements received by the observer. + The type of the elements produced by the observable sequence. + The observer used to send messages to the subject. + The observable used to subscribe to messages sent from the subject. + Subject implemented using the given observer and observable. + or is null. + + + + Creates a subject from the specified observer and observable. + + The type of the elements received by the observer and produced by the observable sequence. + The observer used to send messages to the subject. + The observable used to subscribe to messages sent from the subject. + Subject implemented using the given observer and observable. + or is null. + + + + Synchronizes the messages sent to the subject. + + The type of the elements received by the subject. + The type of the elements produced by the subject. + The subject to synchronize. + Subject whose messages are synchronized. + is null. + + + + Synchronizes the messages sent to the subject. + + The type of the elements received and produced by the subject. + The subject to synchronize. + Subject whose messages are synchronized. + is null. + + + + Synchronizes the messages sent to the subject and notifies observers on the specified scheduler. + + The type of the elements received by the subject. + The type of the elements produced by the subject. + The subject to synchronize. + Scheduler to notify observers on. + Subject whose messages are synchronized and whose observers are notified on the given scheduler. + or is null. + + + + Synchronizes the messages sent to the subject and notifies observers on the specified scheduler. + + The type of the elements received and produced by the subject. + The subject to synchronize. + Scheduler to notify observers on. + Subject whose messages are synchronized and whose observers are notified on the given scheduler. + or is null. + + + + Base class for objects that are both an observable sequence as well as an observer. + + The type of the elements processed by the subject. + + + + Indicates whether the subject has observers subscribed to it. + + + + + Indicates whether the subject has been disposed. + + + + + Releases all resources used by the current instance of the subject and unsubscribes all observers. + + + + + Notifies all subscribed observers about the end of the sequence. + + + + + Notifies all subscribed observers about the specified exception. + + The exception to send to all currently subscribed observers. + is null. + + + + Notifies all subscribed observers about the arrival of the specified element in the sequence. + + The value to send to all currently subscribed observers. + + + + Subscribes an observer to the subject. + + Observer to subscribe to the subject. + Disposable object that can be used to unsubscribe the observer from the subject. + is null. + + + + Indicates the type of a notification. + + + + + Represents an OnNext notification. + + + + + Represents an OnError notification. + + + + + Represents an OnCompleted notification. + + + + + Represents a notification to an observer. + + The type of the elements received by the observer. + + + + Default constructor used by derived types. + + + + + Returns the value of an OnNext notification or throws an exception. + + + + + Returns a value that indicates whether the notification has a value. + + + + + Returns the exception of an OnError notification or returns null. + + + + + Gets the kind of notification that is represented. + + + + + Represents an OnNext notification to an observer. + + + + + Constructs a notification of a new value. + + + + + Returns the value of an OnNext notification. + + + + + Returns null. + + + + + Returns true. + + + + + Returns . + + + + + Returns the hash code for this instance. + + + + + Indicates whether this instance and a specified object are equal. + + + + + Returns a string representation of this instance. + + + + + Invokes the observer's method corresponding to the notification. + + Observer to invoke the notification on. + + + + Invokes the observer's method corresponding to the notification and returns the produced result. + + Observer to invoke the notification on. + Result produced by the observation. + + + + Invokes the delegate corresponding to the notification. + + Delegate to invoke for an OnNext notification. + Delegate to invoke for an OnError notification. + Delegate to invoke for an OnCompleted notification. + + + + Invokes the delegate corresponding to the notification and returns the produced result. + + Delegate to invoke for an OnNext notification. + Delegate to invoke for an OnError notification. + Delegate to invoke for an OnCompleted notification. + Result produced by the observation. + + + + Represents an OnError notification to an observer. + + + + + Constructs a notification of an exception. + + + + + Throws the exception. + + + + + Returns the exception. + + + + + Returns false. + + + + + Returns . + + + + + Returns the hash code for this instance. + + + + + Indicates whether this instance and other are equal. + + + + + Returns a string representation of this instance. + + + + + Invokes the observer's method corresponding to the notification. + + Observer to invoke the notification on. + + + + Invokes the observer's method corresponding to the notification and returns the produced result. + + Observer to invoke the notification on. + Result produced by the observation. + + + + Invokes the delegate corresponding to the notification. + + Delegate to invoke for an OnNext notification. + Delegate to invoke for an OnError notification. + Delegate to invoke for an OnCompleted notification. + + + + Invokes the delegate corresponding to the notification and returns the produced result. + + Delegate to invoke for an OnNext notification. + Delegate to invoke for an OnError notification. + Delegate to invoke for an OnCompleted notification. + Result produced by the observation. + + + + Represents an OnCompleted notification to an observer. + + + + + Complete notifications are stateless thus only one instance + can ever exist per type. + + + + + Constructs a notification of the end of a sequence. + + + + + Throws an . + + + + + Returns null. + + + + + Returns false. + + + + + Returns . + + + + + Returns the hash code for this instance. + + + + + Indicates whether this instance and other are equal. + + + + + Returns a string representation of this instance. + + + + + Invokes the observer's method corresponding to the notification. + + Observer to invoke the notification on. + + + + Invokes the observer's method corresponding to the notification and returns the produced result. + + Observer to invoke the notification on. + Result produced by the observation. + + + + Invokes the delegate corresponding to the notification. + + Delegate to invoke for an OnNext notification. + Delegate to invoke for an OnError notification. + Delegate to invoke for an OnCompleted notification. + + + + Invokes the delegate corresponding to the notification and returns the produced result. + + Delegate to invoke for an OnNext notification. + Delegate to invoke for an OnError notification. + Delegate to invoke for an OnCompleted notification. + Result produced by the observation. + + + + Determines whether the current object has the same observer message payload as a specified value. + + An object to compare to the current object. + true if both objects have the same observer message payload; otherwise, false. + + Equality of objects is based on the equality of the observer message payload they represent, including the notification Kind and the Value or Exception (if any). + This means two objects can be equal even though they don't represent the same observer method call, but have the same Kind and have equal parameters passed to the observer method. + In case one wants to determine whether two objects represent the same observer method call, use Object.ReferenceEquals identity equality instead. + + + + + Determines whether the two specified objects have the same observer message payload. + + The first to compare, or null. + The second to compare, or null. + true if the first value has the same observer message payload as the second value; otherwise, false. + + Equality of objects is based on the equality of the observer message payload they represent, including the notification Kind and the Value or Exception (if any). + This means two objects can be equal even though they don't represent the same observer method call, but have the same Kind and have equal parameters passed to the observer method. + In case one wants to determine whether two objects represent the same observer method call, use Object.ReferenceEquals identity equality instead. + + + + + Determines whether the two specified objects have a different observer message payload. + + The first to compare, or null. + The second to compare, or null. + true if the first value has a different observer message payload as the second value; otherwise, false. + + Equality of objects is based on the equality of the observer message payload they represent, including the notification Kind and the Value or Exception (if any). + This means two objects can be equal even though they don't represent the same observer method call, but have the same Kind and have equal parameters passed to the observer method. + In case one wants to determine whether two objects represent a different observer method call, use Object.ReferenceEquals identity equality instead. + + + + + Determines whether the specified System.Object is equal to the current . + + The System.Object to compare with the current . + true if the specified System.Object is equal to the current ; otherwise, false. + + Equality of objects is based on the equality of the observer message payload they represent, including the notification Kind and the Value or Exception (if any). + This means two objects can be equal even though they don't represent the same observer method call, but have the same Kind and have equal parameters passed to the observer method. + In case one wants to determine whether two objects represent the same observer method call, use Object.ReferenceEquals identity equality instead. + + + + + Invokes the observer's method corresponding to the notification. + + Observer to invoke the notification on. + + + + Invokes the observer's method corresponding to the notification and returns the produced result. + + The type of the result returned from the observer's notification handlers. + Observer to invoke the notification on. + Result produced by the observation. + + + + Invokes the delegate corresponding to the notification. + + Delegate to invoke for an OnNext notification. + Delegate to invoke for an OnError notification. + Delegate to invoke for an OnCompleted notification. + + + + Invokes the delegate corresponding to the notification and returns the produced result. + + The type of the result returned from the notification handler delegates. + Delegate to invoke for an OnNext notification. + Delegate to invoke for an OnError notification. + Delegate to invoke for an OnCompleted notification. + Result produced by the observation. + + + + Returns an observable sequence with a single notification, using the immediate scheduler. + + The observable sequence that surfaces the behavior of the notification upon subscription. + + + + Returns an observable sequence with a single notification. + + Scheduler to send out the notification calls on. + The observable sequence that surfaces the behavior of the notification upon subscription. + + + + Provides a set of static methods for constructing notifications. + + + + + Creates an object that represents an OnNext notification to an observer. + + The type of the elements received by the observer. Upon dematerialization of the notifications into an observable sequence, this type is used as the element type for the sequence. + The value contained in the notification. + The OnNext notification containing the value. + + + + Creates an object that represents an OnError notification to an observer. + + The type of the elements received by the observer. Upon dematerialization of the notifications into an observable sequence, this type is used as the element type for the sequence. + The exception contained in the notification. + The OnError notification containing the exception. + is null. + + + + Creates an object that represents an OnCompleted notification to an observer. + + The type of the elements received by the observer. Upon dematerialization of the notifications into an observable sequence, this type is used as the element type for the sequence. + The OnCompleted notification. + + + + Abstract base class for implementations of the interface. + + + If you don't need a named type to create an observable sequence (i.e. you rather need + an instance rather than a reusable type), use the Observable.Create method to create + an observable sequence with specified subscription behavior. + + The type of the elements in the sequence. + + + + Subscribes the given observer to the observable sequence. + + Observer that will receive notifications from the observable sequence. + Disposable object representing an observer's subscription to the observable sequence. + is null. + + + + Implement this method with the core subscription logic for the observable sequence. + + Observer to send notifications to. + Disposable object representing an observer's subscription to the observable sequence. + + + + Provides a set of static methods for creating observers. + + + + + Creates an observer from a notification callback. + + The type of the elements received by the observer. + Action that handles a notification. + The observer object that invokes the specified handler using a notification corresponding to each message it receives. + is null. + + + + Creates a notification callback from an observer. + + The type of the elements received by the observer. + Observer object. + The action that forwards its input notification to the underlying observer. + is null. + + + + Creates an observer from the specified OnNext action. + + The type of the elements received by the observer. + Observer's OnNext action implementation. + The observer object implemented using the given actions. + is null. + + + + Creates an observer from the specified OnNext and OnError actions. + + The type of the elements received by the observer. + Observer's OnNext action implementation. + Observer's OnError action implementation. + The observer object implemented using the given actions. + or is null. + + + + Creates an observer from the specified OnNext and OnCompleted actions. + + The type of the elements received by the observer. + Observer's OnNext action implementation. + Observer's OnCompleted action implementation. + The observer object implemented using the given actions. + or is null. + + + + Creates an observer from the specified OnNext, OnError, and OnCompleted actions. + + The type of the elements received by the observer. + Observer's OnNext action implementation. + Observer's OnError action implementation. + Observer's OnCompleted action implementation. + The observer object implemented using the given actions. + or or is null. + + + + Hides the identity of an observer. + + The type of the elements received by the source observer. + An observer whose identity to hide. + An observer that hides the identity of the specified observer. + is null. + + + + Checks access to the observer for grammar violations. This includes checking for multiple OnError or OnCompleted calls, as well as reentrancy in any of the observer methods. + If a violation is detected, an InvalidOperationException is thrown from the offending observer method call. + + The type of the elements received by the source observer. + The observer whose callback invocations should be checked for grammar violations. + An observer that checks callbacks invocations against the observer grammar and, if the checks pass, forwards those to the specified observer. + is null. + + + + Synchronizes access to the observer such that its callback methods cannot be called concurrently from multiple threads. This overload is useful when coordinating access to an observer. + Notice reentrant observer callbacks on the same thread are still possible. + + The type of the elements received by the source observer. + The observer whose callbacks should be synchronized. + An observer that delivers callbacks to the specified observer in a synchronized manner. + is null. + + Because a Monitor is used to perform the synchronization, there's no protection against reentrancy from the same thread. + Hence, overlapped observer callbacks are still possible, which is invalid behavior according to the observer grammar. In order to protect against this behavior as + well, use the overload, passing true for the second parameter. + + + + + Synchronizes access to the observer such that its callback methods cannot be called concurrently. This overload is useful when coordinating access to an observer. + The parameter configures the type of lock used for synchronization. + + The type of the elements received by the source observer. + The observer whose callbacks should be synchronized. + If set to true, reentrant observer callbacks will be queued up and get delivered to the observer in a sequential manner. + An observer that delivers callbacks to the specified observer in a synchronized manner. + is null. + + When the parameter is set to false, behavior is identical to the overload which uses + a Monitor for synchronization. When the parameter is set to true, an + is used to queue up callbacks to the specified observer if a reentrant call is made. + + + + + Synchronizes access to the observer such that its callback methods cannot be called concurrently by multiple threads, using the specified gate object for use by a Monitor-based lock. + This overload is useful when coordinating multiple observers that access shared state by synchronizing on a common gate object. + Notice reentrant observer callbacks on the same thread are still possible. + + The type of the elements received by the source observer. + The observer whose callbacks should be synchronized. + Gate object to synchronize each observer call on. + An observer that delivers callbacks to the specified observer in a synchronized manner. + or is null. + + Because a Monitor is used to perform the synchronization, there's no protection against reentrancy from the same thread. + Hence, overlapped observer callbacks are still possible, which is invalid behavior according to the observer grammar. In order to protect against this behavior as + well, use the overload. + + + + + Synchronizes access to the observer such that its callback methods cannot be called concurrently, using the specified asynchronous lock to protect against concurrent and reentrant access. + This overload is useful when coordinating multiple observers that access shared state by synchronizing on a common asynchronous lock. + + The type of the elements received by the source observer. + The observer whose callbacks should be synchronized. + Gate object to synchronize each observer call on. + An observer that delivers callbacks to the specified observer in a synchronized manner. + or is null. + + + + Schedules the invocation of observer methods on the given scheduler. + + The type of the elements received by the source observer. + The observer to schedule messages for. + Scheduler to schedule observer messages on. + Observer whose messages are scheduled on the given scheduler. + or is null. + + + + Schedules the invocation of observer methods on the given synchronization context. + + The type of the elements received by the source observer. + The observer to schedule messages for. + Synchronization context to schedule observer messages on. + Observer whose messages are scheduled on the given synchronization context. + or is null. + + + + Converts an observer to a progress object. + + The type of the progress objects received by the source observer. + The observer to convert. + Progress object whose Report messages correspond to the observer's OnNext messages. + is null. + + + + Converts an observer to a progress object, using the specified scheduler to invoke the progress reporting method. + + The type of the progress objects received by the source observer. + The observer to convert. + Scheduler to report progress on. + Progress object whose Report messages correspond to the observer's OnNext messages. + or is null. + + + + Converts a progress object to an observer. + + The type of the progress objects received by the progress reporter. + The progress object to convert. + Observer whose OnNext messages correspond to the progress object's Report messages. + is null. + + + + Abstract base class for implementations of the interface. + + This base class enforces the grammar of observers where and are terminal messages. + The type of the elements in the sequence. + + + + Creates a new observer in a non-stopped state. + + + + + Notifies the observer of a new element in the sequence. + + Next element in the sequence. + + + + Implement this method to react to the receival of a new element in the sequence. + + Next element in the sequence. + This method only gets called when the observer hasn't stopped yet. + + + + Notifies the observer that an exception has occurred. + + The error that has occurred. + is null. + + + + Implement this method to react to the occurrence of an exception. + + The error that has occurred. + This method only gets called when the observer hasn't stopped yet, and causes the observer to stop. + + + + Notifies the observer of the end of the sequence. + + + + + Implement this method to react to the end of the sequence. + + This method only gets called when the observer hasn't stopped yet, and causes the observer to stop. + + + + Disposes the observer, causing it to transition to the stopped state. + + + + + Core implementation of . + + true if the Dispose call was triggered by the method; false if it was triggered by the finalizer. + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to Using the Scheduler.{0} property is no longer supported due to refactoring of the API surface and elimination of platform-specific dependencies. Please include System.Reactive.PlatformServices for your target platform and use the {0}Scheduler type instead. If you're building a Windows Store app, notice some schedulers are no longer supported. Consider using Scheduler.Default instead.. + + + + + Looks up a localized string similar to OnCompleted notification doesn't have a value.. + + + + + Looks up a localized string similar to Disposable has already been assigned.. + + + + + Looks up a localized string similar to Disposables collection can not contain null values.. + + + + + Looks up a localized string similar to Failed to start monitoring system clock changes.. + + + + + Looks up a localized string similar to Heap is empty.. + + + + + Looks up a localized string similar to Observer has already terminated.. + + + + + Looks up a localized string similar to Reentrancy has been detected.. + + + + + Looks up a localized string similar to This scheduler operation has already been awaited.. + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to {0} cannot be called when the scheduler is already running. Try using Sleep instead.. + + + + + Looks up a localized string similar to Could not find event '{0}' on object of type '{1}'.. + + + + + Looks up a localized string similar to Could not find event '{0}' on type '{1}'.. + + + + + Looks up a localized string similar to Add method should take 1 parameter.. + + + + + Looks up a localized string similar to The second parameter of the event delegate must be assignable to '{0}'.. + + + + + Looks up a localized string similar to Event is missing the add method.. + + + + + Looks up a localized string similar to Event is missing the remove method.. + + + + + Looks up a localized string similar to The event delegate must have a void return type.. + + + + + Looks up a localized string similar to The event delegate must have exactly two parameters.. + + + + + Looks up a localized string similar to Remove method should take 1 parameter.. + + + + + Looks up a localized string similar to The first parameter of the event delegate must be assignable to '{0}'.. + + + + + Looks up a localized string similar to Remove method of a WinRT event should take an EventRegistrationToken.. + + + + + Looks up a localized string similar to Sequence contains more than one element.. + + + + + Looks up a localized string similar to Sequence contains more than one matching element.. + + + + + Looks up a localized string similar to Sequence contains no elements.. + + + + + Looks up a localized string similar to Sequence contains no matching element.. + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to The WinRT thread pool doesn't support creating periodic timers with a period below 1 millisecond.. + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to Expected Qbservable.ToQueryable.. + + + + + Looks up a localized string similar to Invalid expression tree type.. + + + + + Looks up a localized string similar to There is no method '{0}' on type '{1}' that matches the specified arguments.. + + + + + Extension of the interface compatible with async method return types. + + + This class implements a "task-like" type that can be used as the return type of an asynchronous + method in C# 7.0 and beyond. For example: + + async ITaskObservable<int> RxAsync() + { + var res = await Observable.Return(21).Delay(TimeSpan.FromSeconds(1)); + return res * 2; + } + + + The type of the elements in the sequence. + + + + Gets an awaiter that can be used to await the eventual completion of the observable sequence. + + An awaiter that can be used to await the eventual completion of the observable sequence. + + + + Interface representing an awaiter for an . + + The type of the elements in the sequence. + + + + Gets a Boolean indicating whether the observable sequence has completed. + + + + + Gets the result produced by the observable sequence. + + The result produced by the observable sequence. + + + + The System.Reactive.Threading.Tasks namespace contains helpers for the conversion between tasks and observable sequences. + + + + + Provides a set of static methods for converting tasks to observable sequences. + + + + + Returns an observable sequence that signals when the task completes. + + Task to convert to an observable sequence. + An observable sequence that produces a unit value when the task completes, or propagates the exception produced by the task. + is null. + If the specified task object supports cancellation, consider using instead. + + + + Returns an observable sequence that signals when the task completes. + + Task to convert to an observable sequence. + Scheduler on which to notify observers about completion, cancellation or failure. + An observable sequence that produces a unit value when the task completes, or propagates the exception produced by the task. + is null or is null. + If the specified task object supports cancellation, consider using instead. + + + + Returns an observable sequence that propagates the result of the task. + + The type of the result produced by the task. + Task to convert to an observable sequence. + An observable sequence that produces the task's result, or propagates the exception produced by the task. + is null. + If the specified task object supports cancellation, consider using instead. + + + + Returns an observable sequence that propagates the result of the task. + + The type of the result produced by the task. + Task to convert to an observable sequence. + Scheduler on which to notify observers about completion, cancellation or failure. + An observable sequence that produces the task's result, or propagates the exception produced by the task. + is null or is null. + If the specified task object supports cancellation, consider using instead. + + + + Returns a task that will receive the last value or the exception produced by the observable sequence. + + The type of the elements in the source sequence. + Observable sequence to convert to a task. + A task that will receive the last element or the exception produced by the observable sequence. + is null. + + + + Returns a task that will receive the last value or the exception produced by the observable sequence. + + The type of the elements in the source sequence. + Observable sequence to convert to a task. + The scheduler used for overriding where the task completion signals will be issued. + A task that will receive the last element or the exception produced by the observable sequence. + or is null. + + + + Returns a task that will receive the last value or the exception produced by the observable sequence. + + The type of the elements in the source sequence. + Observable sequence to convert to a task. + The state to use as the underlying task's AsyncState. + A task that will receive the last element or the exception produced by the observable sequence. + is null. + + + + Returns a task that will receive the last value or the exception produced by the observable sequence. + + The type of the elements in the source sequence. + Observable sequence to convert to a task. + The state to use as the underlying task's AsyncState. + The scheduler used for overriding where the task completion signals will be issued. + A task that will receive the last element or the exception produced by the observable sequence. + or is null. + + + + Returns a task that will receive the last value or the exception produced by the observable sequence. + + The type of the elements in the source sequence. + Observable sequence to convert to a task. + Cancellation token that can be used to cancel the task, causing unsubscription from the observable sequence. + A task that will receive the last element or the exception produced by the observable sequence. + is null. + + + + Returns a task that will receive the last value or the exception produced by the observable sequence. + + The type of the elements in the source sequence. + Observable sequence to convert to a task. + Cancellation token that can be used to cancel the task, causing unsubscription from the observable sequence. + The scheduler used for overriding where the task completion signals will be issued. + A task that will receive the last element or the exception produced by the observable sequence. + or is null. + + + + Returns a task that will receive the last value or the exception produced by the observable sequence. + + The type of the elements in the source sequence. + Observable sequence to convert to a task. + Cancellation token that can be used to cancel the task, causing unsubscription from the observable sequence. + The state to use as the underlying task's . + A task that will receive the last element or the exception produced by the observable sequence. + is null. + + + + Returns a task that will receive the last value or the exception produced by the observable sequence. + + The type of the elements in the source sequence. + Observable sequence to convert to a task. + Cancellation token that can be used to cancel the task, causing unsubscription from the observable sequence. + The state to use as the underlying task's . + The scheduler used for overriding where the task completion signals will be issued. + A task that will receive the last element or the exception produced by the observable sequence. + or is null. + + + + Represents a value associated with time interval information. + The time interval can represent the time it took to produce the value, the interval relative to a previous value, the value's delivery time relative to a base, etc. + + The type of the value being annotated with time interval information. + + + + Constructs a time interval value. + + The value to be annotated with a time interval. + Time interval associated with the value. + + + + Gets the value. + + + + + Gets the interval. + + + + + Deconstructs the time interval value into a value and a time interval. + + The value. + Time interval associated with the value. + + + + Determines whether the current value has the same and as a specified value. + + An object to compare to the current value. + true if both values have the same and ; otherwise, false. + + + + Determines whether the two specified values have the same and . + + The first value to compare. + The second value to compare. + true if the first value has the same and as the second value; otherwise, false. + + + + Determines whether the two specified values don't have the same and . + + The first value to compare. + The second value to compare. + true if the first value has a different or as the second value; otherwise, false. + + + + Determines whether the specified System.Object is equal to the current . + + The System.Object to compare with the current . + true if the specified System.Object is equal to the current ; otherwise, false. + + + + Returns the hash code for the current value. + + A hash code for the current value. + + + + Returns a string representation of the current value. + + String representation of the current value. + + + + Represents value with a timestamp on it. + The timestamp typically represents the time the value was received, using an IScheduler's clock to obtain the current time. + + The type of the value being timestamped. + + + + Constructs a timestamped value. + + The value to be annotated with a timestamp. + Timestamp associated with the value. + + + + Gets the value. + + + + + Gets the timestamp. + + + + + Deconstructs the timestamped value into a value and a timestamp. + + The value. + Timestamp associated with the value. + + + + Determines whether the current value has the same and as a specified value. + + An object to compare to the current value. + true if both values have the same and ; otherwise, false. + + + + Determines whether the two specified values have the same and . + + The first value to compare. + The second value to compare. + true if the first value has the same and as the second value; otherwise, false. + + + + Determines whether the two specified values don't have the same and . + + The first value to compare. + The second value to compare. + true if the first value has a different or as the second value; otherwise, false. + + + + Determines whether the specified System.Object is equal to the current . + + The System.Object to compare with the current . + true if the specified System.Object is equal to the current ; otherwise, false. + + + + Returns the hash code for the current value. + + A hash code for the current value. + + + + Returns a string representation of the current value. + + String representation of the current value. + + + + A helper class with a factory method for creating instances. + + + + + Creates an instance of a . This is syntactic sugar that uses type inference + to avoid specifying a type in a constructor call, which is very useful when using anonymous types. + + The value to be annotated with a timestamp. + Timestamp associated with the value. + Creates a new timestamped value. + + + + Represents a type with a single value. This type is often used to denote the successful completion of a void-returning method (C#) or a Sub procedure (Visual Basic). + + + + + Determines whether the specified value is equal to the current . Because has a single value, this always returns true. + + An object to compare to the current value. + Because has a single value, this always returns true. + + + + Determines whether the specified System.Object is equal to the current . + + The System.Object to compare with the current . + true if the specified System.Object is a value; otherwise, false. + + + + Returns the hash code for the current value. + + A hash code for the current value. + + + + Returns a string representation of the current value. + + String representation of the current value. + + + + Determines whether the two specified values are equal. Because has a single value, this always returns true. + + The first value to compare. + The second value to compare. + Because has a single value, this always returns true. + + + + Determines whether the two specified values are not equal. Because has a single value, this always returns false. + + The first value to compare. + The second value to compare. + Because has a single value, this always returns false. + + + + Gets the single value. + + + + + Provides a set of static methods for subscribing delegates to observables. + + + + + Subscribes to the observable sequence without specifying any handlers. + This method can be used to evaluate the observable sequence for its side-effects only. + + The type of the elements in the source sequence. + Observable sequence to subscribe to. + object used to unsubscribe from the observable sequence. + is null. + + + + Subscribes an element handler to an observable sequence. + + The type of the elements in the source sequence. + Observable sequence to subscribe to. + Action to invoke for each element in the observable sequence. + object used to unsubscribe from the observable sequence. + or is null. + + + + Subscribes an element handler and an exception handler to an observable sequence. + + The type of the elements in the source sequence. + Observable sequence to subscribe to. + Action to invoke for each element in the observable sequence. + Action to invoke upon exceptional termination of the observable sequence. + object used to unsubscribe from the observable sequence. + or or is null. + + + + Subscribes an element handler and a completion handler to an observable sequence. + + The type of the elements in the source sequence. + Observable sequence to subscribe to. + Action to invoke for each element in the observable sequence. + Action to invoke upon graceful termination of the observable sequence. + object used to unsubscribe from the observable sequence. + or or is null. + + + + Subscribes an element handler, an exception handler, and a completion handler to an observable sequence. + + The type of the elements in the source sequence. + Observable sequence to subscribe to. + Action to invoke for each element in the observable sequence. + Action to invoke upon exceptional termination of the observable sequence. + Action to invoke upon graceful termination of the observable sequence. + object used to unsubscribe from the observable sequence. + or or or is null. + + + + Subscribes an observer to an observable sequence, using a to support unsubscription. + + The type of the elements in the source sequence. + Observable sequence to subscribe to. + Observer to subscribe to the sequence. + CancellationToken that can be signaled to unsubscribe from the source sequence. + or is null. + + + + Subscribes to the observable sequence without specifying any handlers, using a to support unsubscription. + This method can be used to evaluate the observable sequence for its side-effects only. + + The type of the elements in the source sequence. + Observable sequence to subscribe to. + CancellationToken that can be signaled to unsubscribe from the source sequence. + is null. + + + + Subscribes an element handler to an observable sequence, using a to support unsubscription. + + The type of the elements in the source sequence. + Observable sequence to subscribe to. + Action to invoke for each element in the observable sequence. + CancellationToken that can be signaled to unsubscribe from the source sequence. + or is null. + + + + Subscribes an element handler and an exception handler to an observable sequence, using a to support unsubscription. + + The type of the elements in the source sequence. + Observable sequence to subscribe to. + Action to invoke for each element in the observable sequence. + Action to invoke upon exceptional termination of the observable sequence. + CancellationToken that can be signaled to unsubscribe from the source sequence. + or or is null. + + + + Subscribes an element handler and a completion handler to an observable sequence, using a to support unsubscription. + + The type of the elements in the source sequence. + Observable sequence to subscribe to. + Action to invoke for each element in the observable sequence. + Action to invoke upon graceful termination of the observable sequence. + CancellationToken that can be signaled to unsubscribe from the source sequence. + or or is null. + + + + Subscribes an element handler, an exception handler, and a completion handler to an observable sequence, using a to support unsubscription. + + The type of the elements in the source sequence. + Observable sequence to subscribe to. + Action to invoke for each element in the observable sequence. + Action to invoke upon exceptional termination of the observable sequence. + Action to invoke upon graceful termination of the observable sequence. + CancellationToken that can be signaled to unsubscribe from the source sequence. + or or or is null. + + + + Subscribes to the specified source, re-routing synchronous exceptions during invocation of the method to the observer's channel. + This method is typically used when writing query operators. + + The type of the elements in the source sequence. + Observable sequence to subscribe to. + Observer that will be passed to the observable sequence, and that will be used for exception propagation. + object used to unsubscribe from the observable sequence. + or is null. + + + + Represents a builder for asynchronous methods that return a task-like . + + The type of the elements in the sequence. + + + + The compiler-generated asynchronous state machine representing the execution flow of the asynchronous + method whose return type is a task-like . + + + + + The underlying observable sequence representing the result produced by the asynchronous method. + + + + + Creates an instance of the struct. + + A new instance of the struct. + + + + Begins running the builder with the associated state machine. + + The type of the state machine. + The state machine instance, passed by reference. + is null. + + + + Associates the builder with the specified state machine. + + The state machine instance to associate with the builder. + is null. + The state machine was previously set. + + + + Marks the observable as successfully completed. + + The result to use to complete the observable sequence. + The observable has already completed. + + + + Marks the observable as failed and binds the specified exception to the observable sequence. + + The exception to bind to the observable sequence. + is null. + The observable has already completed. + + + + Gets the observable sequence for this builder. + + + + + Schedules the state machine to proceed to the next action when the specified awaiter completes. + + The type of the awaiter. + The type of the state machine. + The awaiter. + The state machine. + + + + Schedules the state machine to proceed to the next action when the specified awaiter completes. + + The type of the awaiter. + The type of the state machine. + The awaiter. + The state machine. + + + + Rethrows an exception that was thrown from an awaiter's OnCompleted methods. + + The exception to rethrow. + + + + Implementation of the IObservable<T> interface compatible with async method return types. + + + This class implements a "task-like" type that can be used as the return type of an asynchronous + method in C# 7.0 and beyond. For example: + + async Observable<int> RxAsync() + { + var res = await Observable.Return(21).Delay(TimeSpan.FromSeconds(1)); + return res * 2; + } + + + + + + The underlying observable sequence to subscribe to in case the asynchronous method did not + finish synchronously. + + + + + The result returned by the asynchronous method in case the method finished synchronously. + + + + + The exception thrown by the asynchronous method in case the method finished synchronously. + + + + + Creates a new for an asynchronous method that has not finished yet. + + + + + Creates a new for an asynchronous method that synchronously returned + the specified value. + + The result returned by the asynchronous method. + + + + Creates a new for an asynchronous method that synchronously threw + the specified . + + The exception thrown by the asynchronous method. + + + + Marks the observable as successfully completed. + + The result to use to complete the observable sequence. + The observable has already completed. + + + + Marks the observable as failed and binds the specified exception to the observable sequence. + + The exception to bind to the observable sequence. + is null. + The observable has already completed. + + + + Subscribes the given observer to the observable sequence. + + Observer that will receive notifications from the observable sequence. + Disposable object representing an observer's subscription to the observable sequence. + is null. + + + + Gets an awaiter that can be used to await the eventual completion of the observable sequence. + + An awaiter that can be used to await the eventual completion of the observable sequence. + + + + Gets a Boolean indicating whether the observable sequence has completed. + + + + + Gets the result produced by the observable sequence. + + The result produced by the observable sequence. + + + + Attaches the specified to the observable sequence. + + The continuation to attach. + + + diff --git a/Game/Assets/Supabase/System.Reactive.5.0.0/lib/net5.0/System.Reactive.xml.meta b/Game/Assets/Supabase/System.Reactive.5.0.0/lib/net5.0/System.Reactive.xml.meta new file mode 100644 index 0000000..98e1c8c --- /dev/null +++ b/Game/Assets/Supabase/System.Reactive.5.0.0/lib/net5.0/System.Reactive.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 68e0f03aa8d73cc488df71db999719b4 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Reactive.5.0.0/lib/netcoreapp3.1.meta b/Game/Assets/Supabase/System.Reactive.5.0.0/lib/netcoreapp3.1.meta new file mode 100644 index 0000000..9e5b944 --- /dev/null +++ b/Game/Assets/Supabase/System.Reactive.5.0.0/lib/netcoreapp3.1.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 83595569bfeb2c043a7ff6c63c19fb5a +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Reactive.5.0.0/lib/netcoreapp3.1/_._ b/Game/Assets/Supabase/System.Reactive.5.0.0/lib/netcoreapp3.1/_._ new file mode 100644 index 0000000..e69de29 diff --git a/Game/Assets/Supabase/System.Reactive.5.0.0/lib/netcoreapp3.1/_._.meta b/Game/Assets/Supabase/System.Reactive.5.0.0/lib/netcoreapp3.1/_._.meta new file mode 100644 index 0000000..bf9ca47 --- /dev/null +++ b/Game/Assets/Supabase/System.Reactive.5.0.0/lib/netcoreapp3.1/_._.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 3e6b322ad7485684f94ee99aa6a5ec48 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Reactive.5.0.0/lib/netstandard2.0.meta b/Game/Assets/Supabase/System.Reactive.5.0.0/lib/netstandard2.0.meta new file mode 100644 index 0000000..8d69bd8 --- /dev/null +++ b/Game/Assets/Supabase/System.Reactive.5.0.0/lib/netstandard2.0.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 18eb6253f99160541a16a225dee30dca +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Reactive.5.0.0/lib/netstandard2.0/System.Reactive.dll b/Game/Assets/Supabase/System.Reactive.5.0.0/lib/netstandard2.0/System.Reactive.dll new file mode 100644 index 0000000..a03bc9f --- /dev/null +++ b/Game/Assets/Supabase/System.Reactive.5.0.0/lib/netstandard2.0/System.Reactive.dll @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eafa9a048b8f5d0cc13098b3f078a29b49090d9b24ebe69021c78b9ae5bc077a +size 1456592 diff --git a/Game/Assets/Supabase/System.Reactive.5.0.0/lib/netstandard2.0/System.Reactive.dll.meta b/Game/Assets/Supabase/System.Reactive.5.0.0/lib/netstandard2.0/System.Reactive.dll.meta new file mode 100644 index 0000000..251c9a4 --- /dev/null +++ b/Game/Assets/Supabase/System.Reactive.5.0.0/lib/netstandard2.0/System.Reactive.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: d037c210b2fd5654d810632a1507f28b +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Reactive.5.0.0/lib/netstandard2.0/System.Reactive.xml b/Game/Assets/Supabase/System.Reactive.5.0.0/lib/netstandard2.0/System.Reactive.xml new file mode 100644 index 0000000..206290f --- /dev/null +++ b/Game/Assets/Supabase/System.Reactive.5.0.0/lib/netstandard2.0/System.Reactive.xml @@ -0,0 +1,27828 @@ + + + + System.Reactive + + + + + Class to create an instance from a delegate-based implementation of the method. + + The type of the elements in the sequence. + + + + Creates an observable sequence object from the specified subscription function. + + method implementation. + is null. + + + + Calls the subscription function that was supplied to the constructor. + + Observer to send notifications to. + Disposable object representing an observer's subscription to the observable sequence. + + + + Class to create an instance from delegate-based implementations of the On* methods. + + The type of the elements in the sequence. + + + + Creates an observer from the specified , , and actions. + + Observer's action implementation. + Observer's action implementation. + Observer's action implementation. + or or is null. + + + + Creates an observer from the specified action. + + Observer's action implementation. + is null. + + + + Creates an observer from the specified and actions. + + Observer's action implementation. + Observer's action implementation. + or is null. + + + + Creates an observer from the specified and actions. + + Observer's action implementation. + Observer's action implementation. + or is null. + + + + Calls the action implementing . + + Next element in the sequence. + + + + Calls the action implementing . + + The error that has occurred. + + + + Calls the action implementing . + + + + + This class fuses logic from ObserverBase, AnonymousObserver, and SafeObserver into one class. When an observer + needs to be safeguarded, an instance of this type can be created by SafeObserver.Create when it detects its + input is an AnonymousObserver, which is commonly used by end users when using the Subscribe extension methods + that accept delegates for the On* handlers. By doing the fusion, we make the call stack depth shorter which + helps debugging and some performance. + + + + + Asynchronous lock. + + + + + Queues the action for execution. If the caller acquires the lock and becomes the owner, + the queue is processed. If the lock is already owned, the action is queued and will get + processed by the owner. + + Action to queue for execution. + is null. + + + + Queues the action for execution. If the caller acquires the lock and becomes the owner, + the queue is processed. If the lock is already owned, the action is queued and will get + processed by the owner. + + Action to queue for execution. + The state to pass to the action when it gets invoked under the lock. + is null. + In case TState is a value type, this operation will involve boxing of . + However, this is often an improvement over the allocation of a closure object and a delegate. + + + + Clears the work items in the queue and drops further work being queued. + + + + + (Infrastructure) Concurrency abstraction layer. + + + + + Gets the current CAL. If no CAL has been set yet, it will be initialized to the default. + + + + + (Infrastructure) Concurrency abstraction layer interface. + + + This type is used by the Rx infrastructure and not meant for public consumption or implementation. + No guarantees are made about forward compatibility of the type's functionality and its usage. + + + + + Queues a method for execution at the specified relative time. + + Method to execute. + State to pass to the method. + Time to execute the method on. + Disposable object that can be used to stop the timer. + + + + Queues a method for periodic execution based on the specified period. + + Method to execute; should be safe for reentrancy. + Period for running the method periodically. + Disposable object that can be used to stop the timer. + + + + Queues a method for execution. + + Method to execute. + State to pass to the method. + Disposable object that can be used to cancel the queued method. + + + + Blocking sleep operation. + + Time to sleep. + + + + Starts a new stopwatch object. + + New stopwatch object; started at the time of the request. + + + + Gets whether long-running scheduling is supported. + + + + + Starts a new long-running thread. + + Method to execute. + State to pass to the method. + + + + Represents an object that schedules units of work on the current thread. + + Singleton instance of this type exposed through this static property. + + + + Gets the singleton instance of the current thread scheduler. + + + + + Gets a value that indicates whether the caller must call a Schedule method. + + + + + Gets a value that indicates whether the caller must call a Schedule method. + + + + + Schedules an action to be executed after dueTime. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + Relative time after which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Represents an object that schedules units of work on the platform's default scheduler. + + Singleton instance of this type exposed through this static property. + + + + Gets the singleton instance of the default scheduler. + + + + + Schedules an action to be executed. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Schedules an action to be executed after dueTime, using a System.Threading.Timer object. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + Relative time after which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Schedules a periodic piece of work, using a System.Threading.Timer object. + + The type of the state passed to the scheduled action. + Initial state passed to the action upon the first iteration. + Period for running the work periodically. + Action to be executed, potentially updating the state. + The disposable object used to cancel the scheduled recurring action (best effort). + is less than . + is null. + + + + Discovers scheduler services by interface type. + + Scheduler service interface type to discover. + Object implementing the requested service, if available; null otherwise. + + + + Represents an object that schedules units of work on a designated thread. + + + + + Counter for diagnostic purposes, to name the threads. + + + + + Thread factory function. + + + + + Stopwatch for timing free of absolute time dependencies. + + + + + Thread used by the event loop to run work items on. No work should be run on any other thread. + If ExitIfEmpty is set, the thread can quit and a new thread will be created when new work is scheduled. + + + + + Gate to protect data structures, including the work queue and the ready list. + + + + + Semaphore to count requests to re-evaluate the queue, from either Schedule requests or when a timer + expires and moves on to the next item in the queue. + + + + + Queue holding work items. Protected by the gate. + + + + + Queue holding items that are ready to be run as soon as possible. Protected by the gate. + + + + + Work item that will be scheduled next. Used upon reevaluation of the queue to check whether the next + item is still the same. If not, a new timer needs to be started (see below). + + + + + Disposable that always holds the timer to dispatch the first element in the queue. + + + + + Flag indicating whether the event loop should quit. When set, the event should be signaled as well to + wake up the event loop thread, which will subsequently abandon all work. + + + + + Creates an object that schedules units of work on a designated thread. + + + + + Creates an object that schedules units of work on a designated thread, using the specified factory to control thread creation options. + + Factory function for thread creation. + is null. + + + + Indicates whether the event loop thread is allowed to quit when no work is left. If new work + is scheduled afterwards, a new event loop thread is created. This property is used by the + NewThreadScheduler which uses an event loop for its recursive invocations. + + + + + Schedules an action to be executed after dueTime. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + Relative time after which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + is null. + The scheduler has been disposed and doesn't accept new work. + + + + Schedules a periodic piece of work on the designated thread. + + The type of the state passed to the scheduled action. + Initial state passed to the action upon the first iteration. + Period for running the work periodically. + Action to be executed, potentially updating the state. + The disposable object used to cancel the scheduled recurring action (best effort). + is null. + is less than . + The scheduler has been disposed and doesn't accept new work. + + + + Starts a new stopwatch object. + + New stopwatch object; started at the time of the request. + + + + Ends the thread associated with this scheduler. All remaining work in the scheduler queue is abandoned. + + + + + Ensures there is an event loop thread running. Should be called under the gate. + + + + + Event loop scheduled on the designated event loop thread. The loop is suspended/resumed using the event + which gets set by calls to Schedule, the next item timer, or calls to Dispose. + + + + + Base class for historical schedulers, which are virtual time schedulers that use for absolute time and for relative time. + + + + + Creates a new historical scheduler with the minimum value of as the initial clock value. + + + + + Creates a new historical scheduler with the specified initial clock value. + + Initial clock value. + + + + Creates a new historical scheduler with the specified initial clock value and absolute time comparer. + + Initial value for the clock. + Comparer to determine causality of events based on absolute time. + + + + Adds a relative time value to an absolute time value. + + Absolute time value. + Relative time value to add. + The resulting absolute time sum value. + + + + Converts the absolute time value to a value. + + Absolute time value to convert. + The corresponding value. + + + + Converts the value to a relative time value. + + value to convert. + The corresponding relative time value. + + + + Provides a virtual time scheduler that uses for absolute time and for relative time. + + + + + Creates a new historical scheduler with the minimum value of as the initial clock value. + + + + + Creates a new historical scheduler with the specified initial clock value. + + Initial value for the clock. + + + + Creates a new historical scheduler with the specified initial clock value. + + Initial value for the clock. + Comparer to determine causality of events based on absolute time. + is null. + + + + Gets the next scheduled item to be executed. + + The next scheduled item. + + + + Schedules an action to be executed at . + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + Absolute time at which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Represents an object that schedules units of work to run immediately on the current thread. + + Singleton instance of this type exposed through this static property. + + + + Gets the singleton instance of the immediate scheduler. + + + + + Schedules an action to be executed. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Schedules an action to be executed after dueTime. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + Relative time after which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Represents a work item that has been scheduled. + + Absolute time representation type. + + + + Gets the absolute time at which the item is due for invocation. + + + + + Invokes the work item. + + + + + Represents an object that schedules units of work. + + + + + Gets the scheduler's notion of current time. + + + + + Schedules an action to be executed. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + + + + Schedules an action to be executed after dueTime. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + Relative time after which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + + + + Schedules an action to be executed at dueTime. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + Absolute time at which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + + + + Scheduler with support for starting long-running tasks. + This type of scheduler can be used to run loops more efficiently instead of using recursive scheduling. + + + + + Schedules a long-running piece of work. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + + Notes to implementers + The returned disposable object should not prevent the work from starting, but only set the cancellation flag passed to the specified action. + + + + + Scheduler with support for running periodic tasks. + This type of scheduler can be used to run timers more efficiently instead of using recursive scheduling. + + + + + Schedules a periodic piece of work. + + The type of the state passed to the scheduled action. + Initial state passed to the action upon the first iteration. + Period for running the work periodically. + Action to be executed, potentially updating the state. + The disposable object used to cancel the scheduled recurring action (best effort). + + + + Abstraction for a stopwatch to compute time relative to a starting point. + + + + + Gets the time elapsed since the stopwatch object was obtained. + + + + + Provider for objects. + + + + + Starts a new stopwatch object. + + New stopwatch object; started at the time of the request. + + + + Abstract base class for machine-local schedulers, using the local system clock for time-based operations. + + + + + Gets the scheduler's notion of current time. + + + + + Schedules an action to be executed. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Schedules an action to be executed after dueTime. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + Relative time after which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + + + + Schedules an action to be executed at dueTime. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + Absolute time at which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Starts a new stopwatch object. + + New stopwatch object; started at the time of the request. + + Platform-specific scheduler implementations should reimplement + to provide a more efficient implementation (if available). + + + + + Discovers scheduler services by interface type. The base class implementation returns + requested services for each scheduler interface implemented by the derived class. For + more control over service discovery, derived types can override this method. + + Scheduler service interface type to discover. + Object implementing the requested service, if available; null otherwise. + + + + Gate to protect local scheduler queues. + + + + + Gate to protect queues and to synchronize scheduling decisions and system clock + change management. + + + + + Long term work queue. Contains work that's due beyond SHORTTERM, computed at the + time of enqueueing. + + + + + Disposable resource for the long term timer that will reevaluate and dispatch the + first item in the long term queue. A serial disposable is used to make "dispose + current and assign new" logic easier. The disposable itself is never disposed. + + + + + Item at the head of the long term queue for which the current long term timer is + running. Used to detect changes in the queue and decide whether we should replace + or can continue using the current timer (because no earlier long term work was + added to the queue). + + + + + Short term work queue. Contains work that's due soon, computed at the time of + enqueueing or upon reevaluation of the long term queue causing migration of work + items. This queue is kept in order to be able to relocate short term items back + to the long term queue in case a system clock change occurs. + + + + + Set of disposable handles to all of the current short term work Schedule calls, + allowing those to be cancelled upon a system clock change. + + + + + Threshold where an item is considered to be short term work or gets moved from + long term to short term. + + + + + Maximum error ratio for timer drift. We've seen machines with 10s drift on a + daily basis, which is in the order 10E-4, so we allow for extra margin here. + This value is used to calculate early arrival for the long term queue timer + that will reevaluate work for the short term queue. + + Example: -------------------------------...---------------------*-----$ + ^ ^ + | | + early due + 0.999 1.0 + + We also make the gap between early and due at least LONGTOSHORT so we have + enough time to transition work to short term and as a courtesy to the + destination scheduler to manage its queues etc. + + + + + Minimum threshold for the long term timer to fire before the queue is reevaluated + for short term work. This value is chosen to be less than SHORTTERM in order to + ensure the timer fires and has work to transition to the short term queue. + + + + + Threshold used to determine when a short term timer has fired too early compared + to the absolute due time. This provides a last chance protection against early + completion of scheduled work, which can happen in case of time adjustment in the + operating system (cf. GetSystemTimeAdjustment). + + + + + Longest interval supported by timers in the BCL. + + + + + Creates a new local scheduler. + + + + + Enqueues absolute time scheduled work in the timer queue or the short term work list. + + State to pass to the action. + Absolute time to run the work on. The timer queue is responsible to execute the work close to the specified time, also accounting for system clock changes. + Action to run, potentially recursing into the scheduler. + Disposable object to prevent the work from running. + + + + Schedule work that's due in the short term. This leads to relative scheduling calls to the + underlying scheduler for short TimeSpan values. If the system clock changes in the meantime, + the short term work is attempted to be cancelled and reevaluated. + + Work item to schedule in the short term. The caller is responsible to determine the work is indeed short term. + + + + Callback to process the next short term work item. + + Recursive scheduler supplied by the underlying scheduler. + Disposable used to identify the work the timer was triggered for (see code for usage). + Empty disposable. Recursive work cancellation is wired through the original WorkItem. + + + + Schedule work that's due on the long term. This leads to the work being queued up for + eventual transitioning to the short term work list. + + Work item to schedule on the long term. The caller is responsible to determine the work is indeed long term. + + + + Updates the long term timer which is responsible to transition work from the head of the + long term queue to the short term work list. + + Should be called under the scheduler lock. + + + + Evaluates the long term queue, transitioning short term work to the short term list, + and adjusting the new long term processing timer accordingly. + + + + + Callback invoked when a system clock change is observed in order to adjust and reevaluate + the internal scheduling queues. + + Currently not used. + Currently not used. + + + + Represents a work item in the absolute time scheduler. + + + This type is very similar to ScheduledItem, but we need a different Invoke signature to allow customization + of the target scheduler (e.g. when called in a recursive scheduling context, see ExecuteNextShortTermWorkItem). + + + + + Represents a work item that closes over scheduler invocation state. Subtyping is + used to have a common type for the scheduler queues. + + + + + Represents an object that schedules each unit of work on a separate thread. + + + + + Creates an object that schedules each unit of work on a separate thread. + + + + + Gets an instance of this scheduler that uses the default Thread constructor. + + + + + Creates an object that schedules each unit of work on a separate thread. + + Factory function for thread creation. + is null. + + + + Schedules an action to be executed after dueTime. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + Relative time after which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Schedules a long-running task by creating a new thread. Cancellation happens through polling. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Schedules a periodic piece of work by creating a new thread that goes to sleep when work has been dispatched and wakes up again at the next periodic due time. + + The type of the state passed to the scheduled action. + Initial state passed to the action upon the first iteration. + Period for running the work periodically. + Action to be executed, potentially updating the state. + The disposable object used to cancel the scheduled recurring action (best effort). + is null. + is less than . + + + + Starts a new stopwatch object. + + New stopwatch object; started at the time of the request. + + + + Abstract base class for scheduled work items. + + Absolute time representation type. + + + + Creates a new scheduled work item to run at the specified time. + + Absolute time at which the work item has to be executed. + Comparer used to compare work items based on their scheduled time. + is null. + + + + Gets the absolute time at which the item is due for invocation. + + + + + Invokes the work item. + + + + + Implement this method to perform the work item invocation, returning a disposable object for deep cancellation. + + Disposable object used to cancel the work item and/or derived work items. + + + + Compares the work item with another work item based on absolute time values. + + Work item to compare the current work item to. + Relative ordering between this and the specified work item. + The inequality operators are overloaded to provide results consistent with the implementation. Equality operators implement traditional reference equality semantics. + + + + Determines whether one specified object is due before a second specified object. + + The first object to compare. + The second object to compare. + true if the value of left is earlier than the value of right; otherwise, false. + This operator provides results consistent with the implementation. + + + + Determines whether one specified object is due before or at the same of a second specified object. + + The first object to compare. + The second object to compare. + true if the value of left is earlier than or simultaneous with the value of right; otherwise, false. + This operator provides results consistent with the implementation. + + + + Determines whether one specified object is due after a second specified object. + + The first object to compare. + The second object to compare. + true if the value of left is later than the value of right; otherwise, false. + This operator provides results consistent with the implementation. + + + + Determines whether one specified object is due after or at the same time of a second specified object. + + The first object to compare. + The second object to compare. + true if the value of left is later than or simultaneous with the value of right; otherwise, false. + This operator provides results consistent with the implementation. + + + + Determines whether two specified objects are equal. + + The first object to compare. + The second object to compare. + true if both are equal; otherwise, false. + This operator does not provide results consistent with the IComparable implementation. Instead, it implements reference equality. + + + + Determines whether two specified objects are inequal. + + The first object to compare. + The second object to compare. + true if both are inequal; otherwise, false. + This operator does not provide results consistent with the IComparable implementation. Instead, it implements reference equality. + + + + Determines whether a object is equal to the specified object. + + The object to compare to the current object. + true if the obj parameter is a object and is equal to the current object; otherwise, false. + + + + Returns the hash code for the current object. + + A 32-bit signed integer hash code. + + + + Cancels the work item by disposing the resource returned by as soon as possible. + + + + + Gets whether the work item has received a cancellation request. + + + + + Represents a scheduled work item based on the materialization of an IScheduler.Schedule method call. + + Absolute time representation type. + Type of the state passed to the scheduled action. + + + + Creates a materialized work item. + + Recursive scheduler to invoke the scheduled action with. + State to pass to the scheduled action. + Scheduled action. + Time at which to run the scheduled action. + Comparer used to compare work items based on their scheduled time. + or or is null. + + + + Creates a materialized work item. + + Recursive scheduler to invoke the scheduled action with. + State to pass to the scheduled action. + Scheduled action. + Time at which to run the scheduled action. + or is null. + + + + Invokes the scheduled action with the supplied recursive scheduler and state. + + Cancellation resource returned by the scheduled action. + + + + Provides a set of static properties to access commonly used schedulers. + + + + + Yields execution of the current work item on the scheduler to another work item on the scheduler. + The caller should await the result of calling Yield to schedule the remainder of the current work item (known as the continuation). + + Scheduler to yield work on. + Scheduler operation object to await in order to schedule the continuation. + is null. + + + + Yields execution of the current work item on the scheduler to another work item on the scheduler. + The caller should await the result of calling Yield to schedule the remainder of the current work item (known as the continuation). + + Scheduler to yield work on. + Cancellation token to cancel the continuation to run. + Scheduler operation object to await in order to schedule the continuation. + is null. + + + + Suspends execution of the current work item on the scheduler for the specified duration. + The caller should await the result of calling Sleep to schedule the remainder of the current work item (known as the continuation) after the specified duration. + + Scheduler to yield work on. + Time when the continuation should run. + Scheduler operation object to await in order to schedule the continuation. + is null. + + + + Suspends execution of the current work item on the scheduler for the specified duration. + The caller should await the result of calling Sleep to schedule the remainder of the current work item (known as the continuation) after the specified duration. + + Scheduler to yield work on. + Time when the continuation should run. + Cancellation token to cancel the continuation to run. + Scheduler operation object to await in order to schedule the continuation. + is null. + + + + Suspends execution of the current work item on the scheduler until the specified due time. + The caller should await the result of calling Sleep to schedule the remainder of the current work item (known as the continuation) at the specified due time. + + Scheduler to yield work on. + Time when the continuation should run. + Scheduler operation object to await in order to schedule the continuation. + is null. + + + + Suspends execution of the current work item on the scheduler until the specified due time. + The caller should await the result of calling Sleep to schedule the remainder of the current work item (known as the continuation) at the specified due time. + + Scheduler to yield work on. + Time when the continuation should run. + Cancellation token to cancel the continuation to run. + Scheduler operation object to await in order to schedule the continuation. + is null. + + + + Schedules work using an asynchronous method, allowing for cooperative scheduling in an imperative coding style. + + The type of the state passed to the scheduled action. + Scheduler to schedule work on. + State to pass to the asynchronous method. + Asynchronous method to run the work, using Yield and Sleep operations for cooperative scheduling and injection of cancellation points. + Disposable object that allows to cancel outstanding work on cooperative cancellation points or through the cancellation token passed to the asynchronous method. + or is null. + + + + Schedules work using an asynchronous method, allowing for cooperative scheduling in an imperative coding style. + + The type of the state passed to the scheduled action. + Scheduler to schedule work on. + State to pass to the asynchronous method. + Asynchronous method to run the work, using Yield and Sleep operations for cooperative scheduling and injection of cancellation points. + Disposable object that allows to cancel outstanding work on cooperative cancellation points or through the cancellation token passed to the asynchronous method. + or is null. + + + + Schedules work using an asynchronous method, allowing for cooperative scheduling in an imperative coding style. + + Scheduler to schedule work on. + Asynchronous method to run the work, using Yield and Sleep operations for cooperative scheduling and injection of cancellation points. + Disposable object that allows to cancel outstanding work on cooperative cancellation points or through the cancellation token passed to the asynchronous method. + or is null. + + + + Schedules work using an asynchronous method, allowing for cooperative scheduling in an imperative coding style. + + Scheduler to schedule work on. + Asynchronous method to run the work, using Yield and Sleep operations for cooperative scheduling and injection of cancellation points. + Disposable object that allows to cancel outstanding work on cooperative cancellation points or through the cancellation token passed to the asynchronous method. + or is null. + + + + Schedules work using an asynchronous method, allowing for cooperative scheduling in an imperative coding style. + + The type of the state passed to the scheduled action. + Scheduler to schedule work on. + State to pass to the asynchronous method. + Relative time after which to execute the action. + Asynchronous method to run the work, using Yield and Sleep operations for cooperative scheduling and injection of cancellation points. + Disposable object that allows to cancel outstanding work on cooperative cancellation points or through the cancellation token passed to the asynchronous method. + or is null. + + + + Schedules work using an asynchronous method, allowing for cooperative scheduling in an imperative coding style. + + The type of the state passed to the scheduled action. + Scheduler to schedule work on. + State to pass to the asynchronous method. + Relative time after which to execute the action. + Asynchronous method to run the work, using Yield and Sleep operations for cooperative scheduling and injection of cancellation points. + Disposable object that allows to cancel outstanding work on cooperative cancellation points or through the cancellation token passed to the asynchronous method. + or is null. + + + + Schedules work using an asynchronous method, allowing for cooperative scheduling in an imperative coding style. + + Scheduler to schedule work on. + Relative time after which to execute the action. + Asynchronous method to run the work, using Yield and Sleep operations for cooperative scheduling and injection of cancellation points. + Disposable object that allows to cancel outstanding work on cooperative cancellation points or through the cancellation token passed to the asynchronous method. + or is null. + + + + Schedules work using an asynchronous method, allowing for cooperative scheduling in an imperative coding style. + + Scheduler to schedule work on. + Relative time after which to execute the action. + Asynchronous method to run the work, using Yield and Sleep operations for cooperative scheduling and injection of cancellation points. + Disposable object that allows to cancel outstanding work on cooperative cancellation points or through the cancellation token passed to the asynchronous method. + or is null. + + + + Schedules work using an asynchronous method, allowing for cooperative scheduling in an imperative coding style. + + The type of the state passed to the scheduled action. + Scheduler to schedule work on. + State to pass to the asynchronous method. + Absolute time at which to execute the action. + Asynchronous method to run the work, using Yield and Sleep operations for cooperative scheduling and injection of cancellation points. + Disposable object that allows to cancel outstanding work on cooperative cancellation points or through the cancellation token passed to the asynchronous method. + or is null. + + + + Schedules work using an asynchronous method, allowing for cooperative scheduling in an imperative coding style. + + The type of the state passed to the scheduled action. + Scheduler to schedule work on. + State to pass to the asynchronous method. + Absolute time at which to execute the action. + Asynchronous method to run the work, using Yield and Sleep operations for cooperative scheduling and injection of cancellation points. + Disposable object that allows to cancel outstanding work on cooperative cancellation points or through the cancellation token passed to the asynchronous method. + or is null. + + + + Schedules work using an asynchronous method, allowing for cooperative scheduling in an imperative coding style. + + Scheduler to schedule work on. + Absolute time at which to execute the action. + Asynchronous method to run the work, using Yield and Sleep operations for cooperative scheduling and injection of cancellation points. + Disposable object that allows to cancel outstanding work on cooperative cancellation points or through the cancellation token passed to the asynchronous method. + or is null. + + + + Schedules work using an asynchronous method, allowing for cooperative scheduling in an imperative coding style. + + Scheduler to schedule work on. + Absolute time at which to execute the action. + Asynchronous method to run the work, using Yield and Sleep operations for cooperative scheduling and injection of cancellation points. + Disposable object that allows to cancel outstanding work on cooperative cancellation points or through the cancellation token passed to the asynchronous method. + or is null. + + + + Gets the current time according to the local machine's system clock. + + + + + Normalizes the specified value to a positive value. + + The value to normalize. + The specified TimeSpan value if it is zero or positive; otherwise, . + + + + Gets a scheduler that schedules work immediately on the current thread. + + + + + Gets a scheduler that schedules work as soon as possible on the current thread. + + + + + Gets a scheduler that schedules work on the platform's default scheduler. + + + + + Gets a scheduler that schedules work on the thread pool. + + + + + Gets a scheduler that schedules work on a new thread using default thread creation options. + + + + + Gets a scheduler that schedules work on Task Parallel Library (TPL) task pool using the default TaskScheduler. + + + + + Schedules an action to be executed recursively. + + Scheduler to execute the recursive action on. + Action to execute recursively. The parameter passed to the action is used to trigger recursive scheduling of the action. + The disposable object used to cancel the scheduled action (best effort). + or is null. + + + + Schedules an action to be executed recursively. + + The type of the state passed to the scheduled action. + Scheduler to execute the recursive action on. + State passed to the action to be executed. + Action to execute recursively. The last parameter passed to the action is used to trigger recursive scheduling of the action, passing in recursive invocation state. + The disposable object used to cancel the scheduled action (best effort). + or is null. + + + + Schedules an action to be executed recursively after a specified relative due time. + + Scheduler to execute the recursive action on. + Action to execute recursively. The parameter passed to the action is used to trigger recursive scheduling of the action at the specified relative time. + Relative time after which to execute the action for the first time. + The disposable object used to cancel the scheduled action (best effort). + or is null. + + + + Schedules an action to be executed recursively after a specified relative due time. + + The type of the state passed to the scheduled action. + Scheduler to execute the recursive action on. + State passed to the action to be executed. + Action to execute recursively. The last parameter passed to the action is used to trigger recursive scheduling of the action, passing in the recursive due time and invocation state. + Relative time after which to execute the action for the first time. + The disposable object used to cancel the scheduled action (best effort). + or is null. + + + + Schedules an action to be executed recursively at a specified absolute due time. + + Scheduler to execute the recursive action on. + Action to execute recursively. The parameter passed to the action is used to trigger recursive scheduling of the action at the specified absolute time. + Absolute time at which to execute the action for the first time. + The disposable object used to cancel the scheduled action (best effort). + or is null. + + + + Schedules an action to be executed recursively at a specified absolute due time. + + The type of the state passed to the scheduled action. + Scheduler to execute the recursive action on. + State passed to the action to be executed. + Action to execute recursively. The last parameter passed to the action is used to trigger recursive scheduling of the action, passing in the recursive due time and invocation state. + Absolute time at which to execute the action for the first time. + The disposable object used to cancel the scheduled action (best effort). + or is null. + + + + Returns the implementation of the specified scheduler, or null if no such implementation is available. + + Scheduler to get the implementation for. + The scheduler's implementation if available; null otherwise. + + This helper method is made available for query operator authors in order to discover scheduler services by using the required + IServiceProvider pattern, which allows for interception or redefinition of scheduler services. + + + + + Returns the implementation of the specified scheduler, or null if no such implementation is available. + + Scheduler to get the implementation for. + The scheduler's implementation if available; null otherwise. + + + This helper method is made available for query operator authors in order to discover scheduler services by using the required + IServiceProvider pattern, which allows for interception or redefinition of scheduler services. + + + Consider using in case a stopwatch is required, but use of emulation stopwatch based + on the scheduler's clock is acceptable. Use of this method is recommended for best-effort use of the stopwatch provider + scheduler service, where the caller falls back to not using stopwatches if this facility wasn't found. + + + + + + Returns the implementation of the specified scheduler, or null if no such implementation is available. + + Scheduler to get the implementation for. + The scheduler's implementation if available; null otherwise. + + + This helper method is made available for query operator authors in order to discover scheduler services by using the required + IServiceProvider pattern, which allows for interception or redefinition of scheduler services. + + + Consider using the extension methods for in case periodic scheduling + is required and emulation of periodic behavior using other scheduler services is desirable. Use of this method is recommended + for best-effort use of the periodic scheduling service, where the caller falls back to not using periodic scheduling if this + facility wasn't found. + + + + + + Schedules a periodic piece of work by dynamically discovering the scheduler's capabilities. + If the scheduler supports periodic scheduling, the request will be forwarded to the periodic scheduling implementation. + If the scheduler provides stopwatch functionality, the periodic task will be emulated using recursive scheduling with a stopwatch to correct for time slippage. + Otherwise, the periodic task will be emulated using recursive scheduling. + + The type of the state passed to the scheduled action. + The scheduler to run periodic work on. + Initial state passed to the action upon the first iteration. + Period for running the work periodically. + Action to be executed, potentially updating the state. + The disposable object used to cancel the scheduled recurring action (best effort). + or is null. + is less than . + + + + Schedules a periodic piece of work by dynamically discovering the scheduler's capabilities. + If the scheduler supports periodic scheduling, the request will be forwarded to the periodic scheduling implementation. + If the scheduler provides stopwatch functionality, the periodic task will be emulated using recursive scheduling with a stopwatch to correct for time slippage. + Otherwise, the periodic task will be emulated using recursive scheduling. + + The type of the state passed to the scheduled action. + Scheduler to execute the action on. + State passed to the action to be executed. + Period for running the work periodically. + Action to be executed. + The disposable object used to cancel the scheduled recurring action (best effort). + or is null. + is less than . + + + + Schedules a periodic piece of work by dynamically discovering the scheduler's capabilities. + If the scheduler supports periodic scheduling, the request will be forwarded to the periodic scheduling implementation. + If the scheduler provides stopwatch functionality, the periodic task will be emulated using recursive scheduling with a stopwatch to correct for time slippage. + Otherwise, the periodic task will be emulated using recursive scheduling. + + Scheduler to execute the action on. + Period for running the work periodically. + Action to be executed. + The disposable object used to cancel the scheduled recurring action (best effort). + or is null. + is less than . + + + + Starts a new stopwatch object by dynamically discovering the scheduler's capabilities. + If the scheduler provides stopwatch functionality, the request will be forwarded to the stopwatch provider implementation. + Otherwise, the stopwatch will be emulated using the scheduler's notion of absolute time. + + Scheduler to obtain a stopwatch for. + New stopwatch object; started at the time of the request. + is null. + The resulting stopwatch object can have non-monotonic behavior. + + + + Schedules an action to be executed. + + Scheduler to execute the action on. + Action to execute. + The disposable object used to cancel the scheduled action (best effort). + or is null. + + + + Schedules an action to be executed. + + Scheduler to execute the action on. + A state object to be passed to . + Action to execute. + The disposable object used to cancel the scheduled action (best effort). + or is null. + + + + Schedules an action to be executed. + + Scheduler to execute the action on. + A state object to be passed to . + Action to execute. + The disposable object used to cancel the scheduled action (best effort). + or is null. + + + + Schedules an action to be executed after the specified relative due time. + + Scheduler to execute the action on. + Action to execute. + Relative time after which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + or is null. + + + + Schedules an action to be executed after the specified relative due time. + + Scheduler to execute the action on. + Action to execute. + A state object to be passed to . + Relative time after which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + or is null. + + + + Schedules an action to be executed after the specified relative due time. + + Scheduler to execute the action on. + Action to execute. + A state object to be passed to . + Relative time after which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + or is null. + + + + Schedules an action to be executed at the specified absolute due time. + + Scheduler to execute the action on. + Action to execute. + Absolute time at which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + or is null. + + + + Schedules an action to be executed after the specified relative due time. + + Scheduler to execute the action on. + Action to execute. + A state object to be passed to . + Relative time after which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + or is null. + + + + Schedules an action to be executed after the specified relative due time. + + Scheduler to execute the action on. + Action to execute. + A state object to be passed to . + Relative time after which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + or is null. + + + + Schedules an action to be executed. + + Scheduler to execute the action on. + Action to execute. + The disposable object used to cancel the scheduled action (best effort). + or is null. + + + + Returns a scheduler that represents the original scheduler, without any of its interface-based optimizations (e.g. long running scheduling). + + Scheduler to disable all optimizations for. + Proxy to the original scheduler but without any optimizations enabled. + is null. + + + + Returns a scheduler that represents the original scheduler, without the specified set of interface-based optimizations (e.g. long running scheduling). + + Scheduler to disable the specified optimizations for. + Types of the optimization interfaces that have to be disabled. + Proxy to the original scheduler but without the specified optimizations enabled. + or is null. + + + + Returns a scheduler that wraps the original scheduler, adding exception handling for scheduled actions. + + Type of the exception to check for. + Scheduler to apply an exception filter for. + Handler that's run if an exception is caught. The exception will be rethrown if the handler returns false. + Wrapper around the original scheduler, enforcing exception handling. + or is null. + + + + Represents an awaitable scheduler operation. Awaiting the object causes the continuation to be posted back to the originating scheduler's work queue. + + + + + Controls whether the continuation is run on the originating synchronization context (false by default). + + true to run the continuation on the captured synchronization context; false otherwise (default). + Scheduler operation object with configured await behavior. + + + + Gets an awaiter for the scheduler operation, used to post back the continuation. + + Awaiter for the scheduler operation. + + + + (Infrastructure) Scheduler operation awaiter type used by the code generated for C# await and Visual Basic Await expressions. + + + + + Indicates whether the scheduler operation has completed. Returns false unless cancellation was already requested. + + + + + Completes the scheduler operation, throwing an OperationCanceledException in case cancellation was requested. + + + + + Registers the continuation with the scheduler operation. + + Continuation to be run on the originating scheduler. + + + + Efficient scheduler queue that maintains scheduled items sorted by absolute time. + + Absolute time representation type. + This type is not thread safe; users should ensure proper synchronization. + + + + Creates a new scheduler queue with a default initial capacity. + + + + + Creates a new scheduler queue with the specified initial capacity. + + Initial capacity of the scheduler queue. + is less than zero. + + + + Gets the number of scheduled items in the scheduler queue. + + + + + Enqueues the specified work item to be scheduled. + + Work item to be scheduled. + + + + Removes the specified work item from the scheduler queue. + + Work item to be removed from the scheduler queue. + true if the item was found; false otherwise. + + + + Dequeues the next work item from the scheduler queue. + + Next work item in the scheduler queue (removed). + + + + Peeks the next work item in the scheduler queue. + + Next work item in the scheduler queue (not removed). + + + + Provides basic synchronization and scheduling services for observable sequences. + + + + + Wraps the source sequence in order to run its subscription and unsubscription logic on the specified scheduler. + + The type of the elements in the source sequence. + Source sequence. + Scheduler to perform subscription and unsubscription actions on. + The source sequence whose subscriptions and unsubscriptions happen on the specified scheduler. + or is null. + + Only the side-effects of subscribing to the source sequence and disposing subscriptions to the source sequence are run on the specified scheduler. + In order to invoke observer callbacks on the specified scheduler, e.g. to offload callback processing to a dedicated thread, use . + + + + + Wraps the source sequence in order to run its subscription and unsubscription logic on the specified synchronization context. + + The type of the elements in the source sequence. + Source sequence. + Synchronization context to perform subscription and unsubscription actions on. + The source sequence whose subscriptions and unsubscriptions happen on the specified synchronization context. + or is null. + + Only the side-effects of subscribing to the source sequence and disposing subscriptions to the source sequence are run on the specified synchronization context. + In order to invoke observer callbacks on the specified synchronization context, e.g. to post callbacks to a UI thread represented by the synchronization context, use . + + + + + Wraps the source sequence in order to run its observer callbacks on the specified scheduler. + + The type of the elements in the source sequence. + Source sequence. + Scheduler to notify observers on. + The source sequence whose observations happen on the specified scheduler. + or is null. + + + + Wraps the source sequence in order to run its observer callbacks on the specified synchronization context. + + The type of the elements in the source sequence. + Source sequence. + Synchronization context to notify observers on. + The source sequence whose observations happen on the specified synchronization context. + or is null. + + + + Wraps the source sequence in order to ensure observer callbacks are properly serialized. + + The type of the elements in the source sequence. + Source sequence. + The source sequence whose outgoing calls to observers are synchronized. + is null. + + + + Wraps the source sequence in order to ensure observer callbacks are synchronized using the specified gate object. + + The type of the elements in the source sequence. + Source sequence. + Gate object to synchronize each observer call on. + The source sequence whose outgoing calls to observers are synchronized on the given gate object. + or is null. + + + + The new ObserveOn operator run with an IScheduler in a lock-free manner. + + + + + The new ObserveOn operator run with an ISchedulerLongRunning in a mostly lock-free manner. + + + + + Represents an object that schedules units of work on a provided . + + + + + Creates an object that schedules units of work on the provided . + + Synchronization context to schedule units of work on. + is null. + + + + Creates an object that schedules units of work on the provided . + + Synchronization context to schedule units of work on. + Configures whether scheduling always posts to the synchronization context, regardless whether the caller is on the same synchronization context. + is null. + + + + Schedules an action to be executed. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Schedules an action to be executed after dueTime. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + Relative time after which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Represents an object that schedules units of work on the Task Parallel Library (TPL) task pool. + + Instance of this type using the default TaskScheduler to schedule work on the TPL task pool. + + + + Creates an object that schedules units of work using the provided . + + Task factory used to create tasks to run units of work. + is null. + + + + Gets an instance of this scheduler that uses the default . + + + + + Schedules an action to be executed. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Schedules an action to be executed after dueTime. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + Relative time after which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Schedules a long-running task by creating a new task using TaskCreationOptions.LongRunning. Cancellation happens through polling. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Gets a new stopwatch object. + + New stopwatch object; started at the time of the request. + + + + Schedules a periodic piece of work by running a platform-specific timer to create tasks periodically. + + The type of the state passed to the scheduled action. + Initial state passed to the action upon the first iteration. + Period for running the work periodically. + Action to be executed, potentially updating the state. + The disposable object used to cancel the scheduled recurring action (best effort). + is null. + is less than . + + + + Represents an object that schedules units of work on the CLR thread pool. + + Singleton instance of this type exposed through this static property. + + + + Gets the singleton instance of the CLR thread pool scheduler. + + + + + Schedules an action to be executed. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Schedules an action to be executed after dueTime, using a System.Threading.Timer object. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + Relative time after which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Schedules a long-running task by creating a new thread. Cancellation happens through polling. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Starts a new stopwatch object. + + New stopwatch object; started at the time of the request. + + + + Schedules a periodic piece of work, using a System.Threading.Timer object. + + The type of the state passed to the scheduled action. + Initial state passed to the action upon the first iteration. + Period for running the work periodically. + Action to be executed, potentially updating the state. + The disposable object used to cancel the scheduled recurring action (best effort). + is null. + is less than zero. + + + + Base class for virtual time schedulers. + + Absolute time representation type. + Relative time representation type. + + + + Creates a new virtual time scheduler with the default value of TAbsolute as the initial clock value. + + + + + Creates a new virtual time scheduler with the specified initial clock value and absolute time comparer. + + Initial value for the clock. + Comparer to determine causality of events based on absolute time. + is null. + + + + Adds a relative time value to an absolute time value. + + Absolute time value. + Relative time value to add. + The resulting absolute time sum value. + + + + Converts the absolute time value to a DateTimeOffset value. + + Absolute time value to convert. + The corresponding DateTimeOffset value. + + + + Converts the TimeSpan value to a relative time value. + + TimeSpan value to convert. + The corresponding relative time value. + + + + Gets whether the scheduler is enabled to run work. + + + + + Gets the comparer used to compare absolute time values. + + + + + Schedules an action to be executed at dueTime. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Absolute time at which to execute the action. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + + + + Schedules an action to be executed at dueTime. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Relative time after which to execute the action. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + + + + Schedules an action to be executed. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Schedules an action to be executed after dueTime. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Relative time after which to execute the action. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Schedules an action to be executed at dueTime. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Absolute time at which to execute the action. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Starts the virtual time scheduler. + + + + + Stops the virtual time scheduler. + + + + + Advances the scheduler's clock to the specified time, running all work till that point. + + Absolute time to advance the scheduler's clock to. + is in the past. + The scheduler is already running. VirtualTimeScheduler doesn't support running nested work dispatch loops. To simulate time slippage while running work on the scheduler, use . + + + + Advances the scheduler's clock by the specified relative time, running all work scheduled for that timespan. + + Relative time to advance the scheduler's clock by. + is negative. + The scheduler is already running. VirtualTimeScheduler doesn't support running nested work dispatch loops. To simulate time slippage while running work on the scheduler, use . + + + + Advances the scheduler's clock by the specified relative time. + + Relative time to advance the scheduler's clock by. + is negative. + + + + Gets the scheduler's absolute time clock value. + + + + + Gets the scheduler's notion of current time. + + + + + Gets the next scheduled item to be executed. + + The next scheduled item. + + + + Discovers scheduler services by interface type. The base class implementation supports + only the IStopwatchProvider service. To influence service discovery - such as adding + support for other scheduler services - derived types can override this method. + + Scheduler service interface type to discover. + Object implementing the requested service, if available; null otherwise. + + + + Starts a new stopwatch object. + + New stopwatch object; started at the time of the request. + + + + Base class for virtual time schedulers using a priority queue for scheduled items. + + Absolute time representation type. + Relative time representation type. + + + + Creates a new virtual time scheduler with the default value of TAbsolute as the initial clock value. + + + + + Creates a new virtual time scheduler. + + Initial value for the clock. + Comparer to determine causality of events based on absolute time. + is null. + + + + Gets the next scheduled item to be executed. + + The next scheduled item. + + + + Schedules an action to be executed at dueTime. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + Absolute time at which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Provides a set of extension methods for virtual time scheduling. + + + + + Schedules an action to be executed at . + + Absolute time representation type. + Relative time representation type. + Scheduler to execute the action on. + Relative time after which to execute the action. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + or is null. + + + + Schedules an action to be executed at . + + Absolute time representation type. + Relative time representation type. + Scheduler to execute the action on. + Absolute time at which to execute the action. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + or is null. + + + + The System.Reactive.Concurrency namespace contains interfaces and classes that provide the scheduler infrastructure used by Reactive Extensions to construct and + process event streams. Schedulers are used to parameterize the concurrency introduced by query operators, provide means to virtualize time, to process historical data, + and to write unit tests for functionality built using Reactive Extensions constructs. + + + + + Represents an Action-based disposable. + + + + + Constructs a new disposable with the given action used for disposal. + + Disposal action which will be run upon calling Dispose. + + + + Gets a value that indicates whether the object is disposed. + + + + + Calls the disposal action if and only if the current instance hasn't been disposed yet. + + + + + Represents a Action-based disposable that can hold onto some state. + + + + + Constructs a new disposable with the given action used for disposal. + + The state to be passed to the disposal action. + Disposal action which will be run upon calling Dispose. + + + + Gets a value that indicates whether the object is disposed. + + + + + Calls the disposal action if and only if the current instance hasn't been disposed yet. + + + + + Represents a disposable resource that can be checked for disposal status. + + + + + Initializes a new instance of the class. + + + + + Gets a value that indicates whether the object is disposed. + + + + + Sets the status to disposed, which can be observer through the property. + + + + + Represents a disposable resource that has an associated that will be set to the cancellation requested state upon disposal. + + + + + Initializes a new instance of the class that uses an existing . + + used for cancellation. + is null. + + + + Initializes a new instance of the class that uses a new . + + + + + Gets the used by this . + + + + + Cancels the underlying . + + + + + Gets a value that indicates whether the object is disposed. + + + + + Represents a group of disposable resources that are disposed together. + + + + + Initializes a new instance of the class with no disposables contained by it initially. + + + + + Initializes a new instance of the class with the specified number of disposables. + + The number of disposables that the new CompositeDisposable can initially store. + is less than zero. + + + + Initializes a new instance of the class from a group of disposables. + + Disposables that will be disposed together. + is null. + Any of the disposables in the collection is null. + + + + Initializes a new instance of the class from a group of disposables. + + Disposables that will be disposed together. + is null. + Any of the disposables in the collection is null. + + + + Gets the number of disposables contained in the . + + + + + Adds a disposable to the or disposes the disposable if the is disposed. + + Disposable to add. + is null. + + + + Removes and disposes the first occurrence of a disposable from the . + + Disposable to remove. + true if found; false otherwise. + is null. + + + + Disposes all disposables in the group and removes them from the group. + + + + + Removes and disposes all disposables from the , but does not dispose the . + + + + + Determines whether the contains a specific disposable. + + Disposable to search for. + true if the disposable was found; otherwise, false. + is null. + + + + Copies the disposables contained in the to an array, starting at a particular array index. + + Array to copy the contained disposables to. + Target index at which to copy the first disposable of the group. + is null. + is less than zero. -or - is larger than or equal to the array length. + + + + Always returns false. + + + + + Returns an enumerator that iterates through the . + + An enumerator to iterate over the disposables. + + + + Returns an enumerator that iterates through the . + + An enumerator to iterate over the disposables. + + + + Gets a value that indicates whether the object is disposed. + + + + + An empty enumerator for the + method to avoid allocation on disposed or empty composites. + + + + + An enumerator for an array of disposables. + + + + + Represents a disposable resource whose disposal invocation will be posted to the specified . + + + + + Initializes a new instance of the class that uses the specified on which to dispose the specified disposable resource. + + Context to perform disposal on. + Disposable whose Dispose operation to run on the given synchronization context. + or is null. + + + + Gets the provided . + + + + + Gets a value that indicates whether the object is disposed. + + + + + Disposes the underlying disposable on the provided . + + + + + Provides a set of static methods for creating objects. + + + + + Represents a disposable that does nothing on disposal. + + + + + Singleton default disposable. + + + + + Does nothing. + + + + + Gets the disposable that does nothing when disposed. + + + + + Creates a disposable object that invokes the specified action when disposed. + + Action to run during the first call to . The action is guaranteed to be run at most once. + The disposable object that runs the given action upon disposal. + is null. + + + + Creates a disposable object that invokes the specified action when disposed. + + The state to be passed to the action. + Action to run during the first call to . The action is guaranteed to be run at most once. + The disposable object that runs the given action upon disposal. + is null. + + + + Gets the value stored in or a null if + was already disposed. + + + + + Gets the value stored in or a no-op-Disposable if + was already disposed. + + + + + Tries to assign to . + + A value indicating the outcome of the operation. + + + + Tries to assign to . If + is not disposed and is assigned a different value, it will not be disposed. + + true if was successfully assigned to . + false has been disposed. + + + + Tries to assign to . If + is not disposed and is assigned a different value, it will be disposed. + + true if was successfully assigned to . + false has been disposed. + + + + Disposes . + + + + + Disposable resource with disposal state tracking. + + + + + Gets a value that indicates whether the object is disposed. + + + + + Represents a disposable resource whose underlying disposable resource can be swapped for another disposable resource. + + + + + Initializes a new instance of the class with no current underlying disposable. + + + + + Gets a value that indicates whether the object is disposed. + + + + + Gets or sets the underlying disposable. After disposal, the result of getting this property is undefined. + + If the has already been disposed, assignment to this property causes immediate disposal of the given disposable object. + + + + Disposes the underlying disposable as well as all future replacements. + + + + + Represents a disposable resource whose underlying disposable resource can be swapped for another disposable resource. + + + + + Gets a value that indicates whether the object is disposed. + + + + + Gets or sets the underlying disposable. After disposal, the result of getting this property is undefined. + + If the has already been disposed, assignment to this property causes immediate disposal of the given disposable object. + + + + Disposes the underlying disposable as well as all future replacements. + + + + + Represents a disposable resource that only disposes its underlying disposable resource when all dependent disposable objects have been disposed. + + + + + Holds the number of active child disposables and the + indicator bit (31) if the main _disposable has been marked + for disposition. + + + + + Initializes a new instance of the class with the specified disposable. + + Underlying disposable. + is null. + + + + Initializes a new instance of the class with the specified disposable. + + Underlying disposable. + Indicates whether subsequent calls to should throw when this instance is disposed. + is null. + + + + Gets a value that indicates whether the object is disposed. + + + + + Returns a dependent disposable that when disposed decreases the refcount on the underlying disposable. + + A dependent disposable contributing to the reference count that manages the underlying disposable's lifetime. + This instance has been disposed and is configured to throw in this case by . + + + + Disposes the underlying disposable only when all dependent disposables have been disposed. + + + + + Represents a disposable resource whose disposal invocation will be scheduled on the specified . + + + + + Initializes a new instance of the class that uses an on which to dispose the disposable. + + Scheduler where the disposable resource will be disposed on. + Disposable resource to dispose on the given scheduler. + or is null. + + + + Gets the scheduler where the disposable resource will be disposed on. + + + + + Gets the underlying disposable. After disposal, the result is undefined. + + + + + Gets a value that indicates whether the object is disposed. + + + + + Disposes the wrapped disposable on the provided scheduler. + + + + + Represents a disposable resource whose underlying disposable resource can be replaced by another disposable resource, causing automatic disposal of the previous underlying disposable resource. + + + + + Initializes a new instance of the class. + + + + + Gets a value that indicates whether the object is disposed. + + + + + Gets or sets the underlying disposable. + + If the SerialDisposable has already been disposed, assignment to this property causes immediate disposal of the given disposable object. Assigning this property disposes the previous disposable object. + + + + Disposes the underlying disposable as well as all future replacements. + + + + + Represents a disposable resource whose underlying disposable resource can be replaced by another disposable resource, causing automatic disposal of the previous underlying disposable resource. + + + + + Gets a value that indicates whether the object is disposed. + + + + + Gets or sets the underlying disposable. + + If the SerialDisposable has already been disposed, assignment to this property causes immediate disposal of the given disposable object. Assigning this property disposes the previous disposable object. + + + + Disposes the underlying disposable as well as all future replacements. + + + + + Represents a disposable resource which only allows a single assignment of its underlying disposable resource. + If an underlying disposable resource has already been set, future attempts to set the underlying disposable resource will throw an . + + + + + Initializes a new instance of the class. + + + + + Gets a value that indicates whether the object is disposed. + + + + + Gets or sets the underlying disposable. After disposal, the result of getting this property is undefined. + + Thrown if the has already been assigned to. + + + + Disposes the underlying disposable. + + + + + Represents a disposable resource which only allows a single assignment of its underlying disposable resource. + If an underlying disposable resource has already been set, future attempts to set the underlying disposable resource will throw an . + + + + + Gets a value that indicates whether the object is disposed. + + + + + Gets or sets the underlying disposable. After disposal, the result of getting this property is undefined. + + Thrown if the has already been assigned to. + + + + Disposes the underlying disposable. + + + + + Represents a group of disposable resources that are disposed together. + + + + + Creates a new group containing two disposable resources that are disposed together. + + The first disposable resource to add to the group. + The second disposable resource to add to the group. + Group of disposable resources that are disposed together. + + + + Creates a new group of disposable resources that are disposed together. + + Disposable resources to add to the group. + Group of disposable resources that are disposed together. + + + + Creates a group of disposable resources that are disposed together + and without copying or checking for nulls inside the group. + + The array of disposables that is trusted + to not contain nulls and gives no need to defensively copy it. + Group of disposable resources that are disposed together. + + + + Creates a new group of disposable resources that are disposed together. + + Disposable resources to add to the group. + Group of disposable resources that are disposed together. + + + + Disposes all disposables in the group. + + + + + Gets a value that indicates whether the object is disposed. + + + + + A stable composite that doesn't do defensive copy of + the input disposable array nor checks it for null. + + + + + The System.Reactive.Disposables namespace contains interfaces and classes that provide a compositional set of constructs used to deal with resource and subscription + management in Reactive Extensions. Those types are used extensively within the implementation of Reactive Extensions and are useful when writing custom query operators or + schedulers. + + + + + Provides access to the platform enlightenments used by other Rx libraries to improve system performance and + runtime efficiency. While Rx can run without platform enlightenments loaded, it's recommended to deploy the + System.Reactive.PlatformServices assembly with your application and call during + application startup to ensure enlightenments are properly loaded. + + + + + Ensures that the calling assembly has a reference to the System.Reactive.PlatformServices assembly with + platform enlightenments. If no reference is made from the user code, it's possible for the build process + to drop the deployment of System.Reactive.PlatformServices, preventing its runtime discovery. + + + true if the loaded enlightenment provider matches the provided defined in the current assembly; false + otherwise. When a custom enlightenment provider is installed by the host, false will be returned. + + + + + (Infrastructure) Provider for platform-specific framework enlightenments. + + + + + (Infrastructure) Tries to gets the specified service. + + Service type. + Optional set of arguments. + Service instance or null if not found. + + + + (Infrastructure) Services to rethrow exceptions. + + + This type is used by the Rx infrastructure and not meant for public consumption or implementation. + No guarantees are made about forward compatibility of the type's functionality and its usage. + + + + + Rethrows the specified exception. + + Exception to rethrow. + + + + (Infrastructure) Provides access to the host's lifecycle management services. + + + + + Event that gets raised when the host suspends the application. + + + + + Event that gets raised when the host resumes the application. + + + + + Adds a reference to the host lifecycle manager, causing it to be sending notifications. + + + + + Removes a reference to the host lifecycle manager, causing it to stop sending notifications + if the removed reference was the last one. + + + + + (Infrastructure) Provides notifications about the host's lifecycle events. + + + + + Event that gets raised when the host suspends. + + + + + Event that gets raised when the host resumes. + + + + + (Infrastructure) Event arguments for host suspension events. + + + + + (Infrastructure) Event arguments for host resumption events. + + + + + (Infrastructure) Interface for enlightenment providers. + + + This type is used by the Rx infrastructure and not meant for public consumption or implementation. + No guarantees are made about forward compatibility of the type's functionality and its usage. + + + + + (Infrastructure) Tries to gets the specified service. + + Service type. + Optional set of arguments. + Service instance or null if not found. + + + + (Infrastructure) Provider for platform-specific framework enlightenments. + + + This type is used by the Rx infrastructure and not meant for public consumption or implementation. + + + + + (Infrastructure) Gets the current enlightenment provider. If none is loaded yet, accessing this property triggers provider resolution. + + + This member is used by the Rx infrastructure and not meant for public consumption or implementation. + + + + + (Infrastructure) Provides access to local system clock services. + + + This type is used by the Rx infrastructure and not meant for public consumption or implementation. + No guarantees are made about forward compatibility of the type's functionality and its usage. + + + + + Gets the local system clock time. + + + + + Adds a reference to the system clock monitor, causing it to be sending notifications. + + Thrown when the system doesn't support sending clock change notifications. + + + + Removes a reference to the system clock monitor, causing it to stop sending notifications + if the removed reference was the last one. + + + + + (Infrastructure) Provides access to the local system clock. + + + This type is used by the Rx infrastructure and not meant for public consumption or implementation. + No guarantees are made about forward compatibility of the type's functionality and its usage. + + + + + Gets the current time. + + + + + (Infrastructure) Provides a mechanism to notify local schedulers about system clock changes. + + + This type is used by the Rx infrastructure and not meant for public consumption or implementation. + No guarantees are made about forward compatibility of the type's functionality and its usage. + + + + + Event that gets raised when a system clock change is detected. + + + + + (Infrastructure) Event arguments for system clock change notifications. + + + This type is used by the Rx infrastructure and not meant for public consumption or implementation. + No guarantees are made about forward compatibility of the type's functionality and its usage. + + + + + Creates a new system clock notification object with unknown old and new times. + + + + + Creates a new system clock notification object with the specified old and new times. + + Time before the system clock changed, or DateTimeOffset.MinValue if not known. + Time after the system clock changed, or DateTimeOffset.MaxValue if not known. + + + + Gets the time before the system clock changed, or DateTimeOffset.MinValue if not known. + + + + + Gets the time after the system clock changed, or DateTimeOffset.MaxValue if not known. + + + + + (Infrastructure) Provides access to the local system clock. + + + + + Gets the current time. + + + + + (Infrastructure) Monitors for system clock changes based on a periodic timer. + + + + + Use the Unix milliseconds for the current time + so it can be atomically read/written without locking. + + + + + Creates a new monitor for system clock changes with the specified polling frequency. + + Polling frequency for system clock changes. + + + + Event that gets raised when a system clock change is detected. + + + + + The System.Reactive.PlatformServices namespace contains interfaces and classes used by the runtime infrastructure of Reactive Extensions. + Those are not intended to be used directly from user code and are subject to change in future releases of the product. + + + + + Represents a .NET event invocation consisting of the weakly typed object that raised the event and the data that was generated by the event. + + The type of the event data generated by the event. + + + + Creates a new data representation instance of a .NET event invocation with the given sender and event data. + + The sender object that raised the event. + The event data that was generated by the event. + + + + Represents a .NET event invocation consisting of the strongly typed object that raised the event and the data that was generated by the event. + + The type of the sender that raised the event. + The type of the event data generated by the event. + + + + Creates a new data representation instance of a .NET event invocation with the given sender and event data. + + The sender object that raised the event. + The event data that was generated by the event. + + + + Gets the sender object that raised the event. + + + + + Gets the event data that was generated by the event. + + + + + Deconstructs the event pattern value into a sender and event data. + + The sender object that raised the event. + The event data that was generated by the event. + + + + Determines whether the current object represents the same event as a specified object. + + An object to compare to the current object. + true if both objects represent the same event; otherwise, false. + + + + Determines whether the specified System.Object is equal to the current . + + The System.Object to compare with the current . + true if the specified System.Object is equal to the current ; otherwise, false. + + + + Returns the hash code for the current instance. + + A hash code for the current instance. + + + + Determines whether two specified objects represent the same event. + + The first to compare, or null. + The second to compare, or null. + true if both objects represent the same event; otherwise, false. + + + + Determines whether two specified objects represent a different event. + + The first to compare, or null. + The second to compare, or null. + true if both objects don't represent the same event; otherwise, false. + + + + Base class for classes that expose an observable sequence as a well-known event pattern (sender, event arguments). + Contains functionality to maintain a map of event handler delegates to observable sequence subscriptions. Subclasses + should only add an event with custom add and remove methods calling into the base class's operations. + + The type of the sender that raises the event. + The type of the event data generated by the event. + + + + Creates a new event pattern source. + + Source sequence to expose as an event. + Delegate used to invoke the event for each element of the sequence. + or is null. + + + + Adds the specified event handler, causing a subscription to the underlying source. + + Event handler to add. The same delegate should be passed to the operation in order to remove the event handler. + Invocation delegate to raise the event in the derived class. + or is null. + + + + Removes the specified event handler, causing a disposal of the corresponding subscription to the underlying source that was created during the operation. + + Event handler to remove. This should be the same delegate as one that was passed to the operation. + is null. + + + + Marks the program elements that are experimental. This class cannot be inherited. + + + + + Represents a .NET event invocation consisting of the strongly typed object that raised the event and the data that was generated by the event. + + + The type of the sender that raised the event. + This type parameter is covariant. That is, you can use either the type you specified or any type that is more derived. For more information about covariance and contravariance, see Covariance and Contravariance in Generics. + + + The type of the event data generated by the event. + This type parameter is covariant. That is, you can use either the type you specified or any type that is more derived. For more information about covariance and contravariance, see Covariance and Contravariance in Generics. + + + + + Gets the sender object that raised the event. + + + + + Gets the event data that was generated by the event. + + + + + Represents a data stream signaling its elements by means of an event. + + The type of the event data generated by the event. + + + + Event signaling the next element in the data stream. + + + + + Represents a data stream signaling its elements by means of an event. + + + The type of the event data generated by the event. + This type parameter is covariant. That is, you can use either the type you specified or any type that is more derived. For more information about covariance and contravariance, see Covariance and Contravariance in Generics. + + + + + Event signaling the next element in the data stream. + + + + + Utility methods to handle lock-free combining of Exceptions + as well as hosting a terminal-exception indicator for + lock-free termination support. + + + + + The singleton instance of the exception indicating a terminal state, + DO NOT LEAK or signal this via OnError! + + + + + Tries to atomically set the Exception on the given field if it is + still null. + + The target field to try to set atomically. + The exception to set, not null (not verified). + True if the operation succeeded, false if the target was not null. + + + + Utility methods for dealing with serializing OnXXX signals + for an IObserver where concurrent OnNext is still not allowed + but concurrent OnError/OnCompleted may happen. + This serialization case is generally lower overhead than + a full SerializedObserver wrapper and doesn't need + allocation. + + + + + Signals the given item to the observer in a serialized fashion + allowing a concurrent OnError or OnCompleted emission to be delayed until + the observer.OnNext returns. + Do not call OnNext from multiple threads as it may lead to ignored items. + Use a full SerializedObserver wrapper for merging multiple sequences. + + The element type of the observer. + The observer to signal events in a serialized fashion. + The item to signal. + Indicates there is an emission going on currently. + The field containing an error or terminal indicator. + + + + Signals the given exception to the observer. If there is a concurrent + OnNext emission is happening, saves the exception into the given field + otherwise to be picked up by . + This method can be called concurrently with itself and the other methods of this + helper class but only one terminal signal may actually win. + + The element type of the observer. + The observer to signal events in a serialized fashion. + The exception to signal sooner or later. + Indicates there is an emission going on currently. + The field containing an error or terminal indicator. + + + + Signals OnCompleted on the observer. If there is a concurrent + OnNext emission happening, the error field will host a special + terminal exception signal to be picked up by once it finishes with OnNext and signal the + OnCompleted as well. + This method can be called concurrently with itself and the other methods of this + helper class but only one terminal signal may actually win. + + The element type of the observer. + The observer to signal events in a serialized fashion. + Indicates there is an emission going on currently. + The field containing an error or terminal indicator. + + + + Base interface for observers that can dispose of a resource on a terminal notification + or when disposed itself. + + + + + + Interface with variance annotation; allows for better type checking when detecting capabilities in SubscribeSafe. + + Type of the resulting sequence's elements. + + + + Base class for implementation of query operators, providing performance benefits over the use of Observable.Create. + + Type of the resulting sequence's elements. + + + + Publicly visible Subscribe method. + + Observer to send notifications on. The implementation of a producer must ensure the correct message grammar on the observer. + IDisposable to cancel the subscription. This causes the underlying sink to be notified of unsubscription, causing it to prevent further messages from being sent to the observer. + + + + Core implementation of the query operator, called upon a new subscription to the producer object. + + Observer to send notifications on. The implementation of a producer must ensure the correct message grammar on the observer. + Disposable representing all the resources and/or subscriptions the operator uses to process events. + The observer passed in to this method is not protected using auto-detach behavior upon an OnError or OnCompleted call. The implementation must ensure proper resource disposal and enforce the message grammar. + + + + Publicly visible Subscribe method. + + Observer to send notifications on. The implementation of a producer must ensure the correct message grammar on the observer. + IDisposable to cancel the subscription. This causes the underlying sink to be notified of unsubscription, causing it to prevent further messages from being sent to the observer. + + + + Core implementation of the query operator, called upon a new subscription to the producer object. + + The sink object. + + + + Represents an observable sequence of elements that have a common key. + + + The type of the key shared by all elements in the group. + This type parameter is covariant. That is, you can use either the type you specified or any type that is more derived. For more information about covariance and contravariance, see Covariance and Contravariance in Generics. + + + The type of the elements in the group. + This type parameter is covariant. That is, you can use either the type you specified or any type that is more derived. For more information about covariance and contravariance, see Covariance and Contravariance in Generics. + + + + + Gets the common key. + + + + + Provides functionality to evaluate queries against a specific data source wherein the type of the data is known. + + + The type of the data in the data source. + This type parameter is covariant. That is, you can use either the type you specified or any type that is more derived. For more information about covariance and contravariance, see Covariance and Contravariance in Generics. + + + + + Provides functionality to evaluate queries against a specific data source wherein the type of the data is not specified. + + + + + Gets the type of the element(s) that are returned when the expression tree associated with this instance of IQbservable is executed. + + + + + Gets the expression tree that is associated with the instance of IQbservable. + + + + + Gets the query provider that is associated with this data source. + + + + + Defines methods to create and execute queries that are described by an IQbservable object. + + + + + Constructs an object that can evaluate the query represented by a specified expression tree. + + The type of the elements of the that is returned. + Expression tree representing the query. + IQbservable object that can evaluate the given query expression. + + + + Internal interface describing the LINQ to Events query language. + + + + + Internal interface describing the LINQ to Events query language. + + + + + Attribute applied to static classes providing expression tree forms of query methods, + mapping those to the corresponding methods for local query execution on the specified + target class type. + + + + + Creates a new mapping to the specified local execution query method implementation type. + + Type with query methods for local execution. + + + + Gets the type with the implementation of local query methods. + + + + + Provides a set of static methods for writing in-memory queries over observable sequences. + + + + + Applies an accumulator function over an observable sequence, returning the result of the aggregation as a single element in the result sequence. The specified seed value is used as the initial accumulator value. + For aggregation behavior with incremental intermediate results, see . + + The type of the elements in the source sequence. + The type of the result of the aggregation. + An observable sequence to aggregate over. + The initial accumulator value. + An accumulator function to be invoked on each element. + An observable sequence containing a single element with the final accumulator value. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Applies an accumulator function over an observable sequence, returning the result of the aggregation as a single element in the result sequence. The specified seed value is used as the initial accumulator value, + and the specified result selector function is used to select the result value. + + The type of the elements in the source sequence. + The type of the accumulator value. + The type of the resulting value. + An observable sequence to aggregate over. + The initial accumulator value. + An accumulator function to be invoked on each element. + A function to transform the final accumulator value into the result value. + An observable sequence containing a single element with the final accumulator value. + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Applies an accumulator function over an observable sequence, returning the result of the aggregation as a single element in the result sequence. + For aggregation behavior with incremental intermediate results, see . + + The type of the elements in the source sequence and the result of the aggregation. + An observable sequence to aggregate over. + An accumulator function to be invoked on each element. + An observable sequence containing a single element with the final accumulator value. + or is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Determines whether all elements of an observable sequence satisfy a condition. + + The type of the elements in the source sequence. + An observable sequence whose elements to apply the predicate to. + A function to test each element for a condition. + An observable sequence containing a single element determining whether all elements in the source sequence pass the test in the specified predicate. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Determines whether an observable sequence contains any elements. + + The type of the elements in the source sequence. + An observable sequence to check for non-emptiness. + An observable sequence containing a single element determining whether the source sequence contains any elements. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Determines whether any element of an observable sequence satisfies a condition. + + The type of the elements in the source sequence. + An observable sequence whose elements to apply the predicate to. + A function to test each element for a condition. + An observable sequence containing a single element determining whether any elements in the source sequence pass the test in the specified predicate. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values. + + A sequence of values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values. + is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values. + + A sequence of values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values. + is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values. + + A sequence of values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values. + is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values. + + A sequence of values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values. + is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values. + + A sequence of values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values. + is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of nullable values. + + A sequence of nullable values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of nullable values. + + A sequence of nullable values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of nullable values. + + A sequence of nullable values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of nullable values. + + A sequence of nullable values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + (Asynchronous) The sum of the elements in the source sequence is larger than . + + + + Computes the average of an observable sequence of nullable values. + + A sequence of nullable values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values. + or is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values. + or is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values. + or is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values. + or is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values. + or is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + or is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + or is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + or is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + or is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + or is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Determines whether an observable sequence contains a specified element by using the default equality comparer. + + The type of the elements in the source sequence. + An observable sequence in which to locate a value. + The value to locate in the source sequence. + An observable sequence containing a single element determining whether the source sequence contains an element that has the specified value. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Determines whether an observable sequence contains a specified element by using a specified System.Collections.Generic.IEqualityComparer{T}. + + The type of the elements in the source sequence. + An observable sequence in which to locate a value. + The value to locate in the source sequence. + An equality comparer to compare elements. + An observable sequence containing a single element determining whether the source sequence contains an element that has the specified value. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns an observable sequence containing an that represents the total number of elements in an observable sequence. + + The type of the elements in the source sequence. + An observable sequence that contains elements to be counted. + An observable sequence containing a single element with the number of elements in the input sequence. + is null. + (Asynchronous) The number of elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns an observable sequence containing an that represents how many elements in the specified observable sequence satisfy a condition. + + The type of the elements in the source sequence. + An observable sequence that contains elements to be counted. + A function to test each element for a condition. + An observable sequence containing a single element with a number that represents how many elements in the input sequence satisfy the condition in the predicate function. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the element at a specified index in a sequence. + + The type of the elements in the source sequence. + Observable sequence to return the element from. + The zero-based index of the element to retrieve. + An observable sequence that produces the element at the specified position in the source sequence. + is null. + is less than zero. + (Asynchronous) is greater than or equal to the number of elements in the source sequence. + + + + Returns the element at a specified index in a sequence or a default value if the index is out of range. + + The type of the elements in the source sequence. + Observable sequence to return the element from. + The zero-based index of the element to retrieve. + An observable sequence that produces the element at the specified position in the source sequence, or a default value if the index is outside the bounds of the source sequence. + is null. + is less than zero. + + + + Returns the first element of an observable sequence. + + The type of the elements in the source sequence. + Source observable sequence. + Sequence containing the first element in the observable sequence. + is null. + (Asynchronous) The source sequence is empty. + + + + Returns the first element of an observable sequence that satisfies the condition in the predicate. + + The type of the elements in the source sequence. + Source observable sequence. + A predicate function to evaluate for elements in the source sequence. + Sequence containing the first element in the observable sequence that satisfies the condition in the predicate. + or is null. + (Asynchronous) No element satisfies the condition in the predicate. -or- The source sequence is empty. + + + + Returns the first element of an observable sequence, or a default value if no such element exists. + + The type of the elements in the source sequence. + Source observable sequence. + Sequence containing the first element in the observable sequence, or a default value if no such element exists. + is null. + + + + Returns the first element of an observable sequence that satisfies the condition in the predicate, or a default value if no such element exists. + + The type of the elements in the source sequence. + Source observable sequence. + A predicate function to evaluate for elements in the source sequence. + Sequence containing the first element in the observable sequence that satisfies the condition in the predicate, or a default value if no such element exists. + or is null. + + + + Determines whether an observable sequence is empty. + + The type of the elements in the source sequence. + An observable sequence to check for emptiness. + An observable sequence containing a single element determining whether the source sequence is empty. + is null. + + + + Returns the last element of an observable sequence. + + The type of the elements in the source sequence. + Source observable sequence. + Sequence containing the last element in the observable sequence. + is null. + (Asynchronous) The source sequence is empty. + + + + Returns the last element of an observable sequence that satisfies the condition in the predicate. + + The type of the elements in the source sequence. + Source observable sequence. + A predicate function to evaluate for elements in the source sequence. + Sequence containing the last element in the observable sequence that satisfies the condition in the predicate. + or is null. + (Asynchronous) No element satisfies the condition in the predicate. -or- The source sequence is empty. + + + + Returns the last element of an observable sequence, or a default value if no such element exists. + + The type of the elements in the source sequence. + Source observable sequence. + Sequence containing the last element in the observable sequence, or a default value if no such element exists. + is null. + + + + Returns the last element of an observable sequence that satisfies the condition in the predicate, or a default value if no such element exists. + + The type of the elements in the source sequence. + Source observable sequence. + A predicate function to evaluate for elements in the source sequence. + Sequence containing the last element in the observable sequence that satisfies the condition in the predicate, or a default value if no such element exists. + or is null. + + + + Returns an observable sequence containing an that represents the total number of elements in an observable sequence. + + The type of the elements in the source sequence. + An observable sequence that contains elements to be counted. + An observable sequence containing a single element with the number of elements in the input sequence. + is null. + (Asynchronous) The number of elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns an observable sequence containing an that represents how many elements in the specified observable sequence satisfy a condition. + + The type of the elements in the source sequence. + An observable sequence that contains elements to be counted. + A function to test each element for a condition. + An observable sequence containing a single element with a number that represents how many elements in the input sequence satisfy the condition in the predicate function. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum element in an observable sequence. + + The type of the elements in the source sequence. + An observable sequence to determine the maximum element of. + An observable sequence containing a single element with the maximum element in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence according to the specified comparer. + + The type of the elements in the source sequence. + An observable sequence to determine the maximum element of. + Comparer used to compare elements. + An observable sequence containing a single element with the maximum element in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of values. + + A sequence of values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of values. + + A sequence of values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of values. + + A sequence of values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of values. + + A sequence of values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of values. + + A sequence of values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum value. + + The type of the elements in the source sequence. + The type of the objects derived from the elements in the source sequence to determine the maximum of. + An observable sequence to determine the minimum element of. + A transform function to apply to each element. + An observable sequence containing a single element with the value that corresponds to the maximum element in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum value according to the specified comparer. + + The type of the elements in the source sequence. + The type of the objects derived from the elements in the source sequence to determine the maximum of. + An observable sequence to determine the minimum element of. + A transform function to apply to each element. + Comparer used to compare elements. + An observable sequence containing a single element with the value that corresponds to the maximum element in the source sequence. + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the elements in an observable sequence with the maximum key value. + + The type of the elements in the source sequence. + The type of the key computed for each element in the source sequence. + An observable sequence to get the maximum elements for. + Key selector function. + An observable sequence containing a list of zero or more elements that have a maximum key value. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the elements in an observable sequence with the maximum key value according to the specified comparer. + + The type of the elements in the source sequence. + The type of the key computed for each element in the source sequence. + An observable sequence to get the maximum elements for. + Key selector function. + Comparer used to compare key values. + An observable sequence containing a list of zero or more elements that have a maximum key value. + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum element in an observable sequence. + + The type of the elements in the source sequence. + An observable sequence to determine the minimum element of. + An observable sequence containing a single element with the minimum element in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum element in an observable sequence according to the specified comparer. + + The type of the elements in the source sequence. + An observable sequence to determine the minimum element of. + Comparer used to compare elements. + An observable sequence containing a single element with the minimum element in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of values. + + A sequence of values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of values. + + A sequence of values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of values. + + A sequence of values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of values. + + A sequence of values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of values. + + A sequence of values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum value. + + The type of the elements in the source sequence. + The type of the objects derived from the elements in the source sequence to determine the minimum of. + An observable sequence to determine the minimum element of. + A transform function to apply to each element. + An observable sequence containing a single element with the value that corresponds to the minimum element in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum value according to the specified comparer. + + The type of the elements in the source sequence. + The type of the objects derived from the elements in the source sequence to determine the minimum of. + An observable sequence to determine the minimum element of. + A transform function to apply to each element. + Comparer used to compare elements. + An observable sequence containing a single element with the value that corresponds to the minimum element in the source sequence. + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the elements in an observable sequence with the minimum key value. + + The type of the elements in the source sequence. + The type of the key computed for each element in the source sequence. + An observable sequence to get the minimum elements for. + Key selector function. + An observable sequence containing a list of zero or more elements that have a minimum key value. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the elements in an observable sequence with the minimum key value according to the specified comparer. + + The type of the elements in the source sequence. + The type of the key computed for each element in the source sequence. + An observable sequence to get the minimum elements for. + Key selector function. + Comparer used to compare key values. + An observable sequence containing a list of zero or more elements that have a minimum key value. + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Determines whether two sequences are equal by comparing the elements pairwise. + + The type of the elements in the source sequence. + First observable sequence to compare. + Second observable sequence to compare. + An observable sequence that contains a single element which indicates whether both sequences are of equal length and their corresponding elements are equal according to the default equality comparer for their type. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Determines whether two sequences are equal by comparing the elements pairwise using a specified equality comparer. + + The type of the elements in the source sequence. + First observable sequence to compare. + Second observable sequence to compare. + Comparer used to compare elements of both sequences. + An observable sequence that contains a single element which indicates whether both sequences are of equal length and their corresponding elements are equal according to the specified equality comparer. + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Determines whether an observable and enumerable sequence are equal by comparing the elements pairwise. + + The type of the elements in the source sequence. + First observable sequence to compare. + Second observable sequence to compare. + An observable sequence that contains a single element which indicates whether both sequences are of equal length and their corresponding elements are equal according to the default equality comparer for their type. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Determines whether an observable and enumerable sequence are equal by comparing the elements pairwise using a specified equality comparer. + + The type of the elements in the source sequence. + First observable sequence to compare. + Second observable sequence to compare. + Comparer used to compare elements of both sequences. + An observable sequence that contains a single element which indicates whether both sequences are of equal length and their corresponding elements are equal according to the specified equality comparer. + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the only element of an observable sequence, and reports an exception if there is not exactly one element in the observable sequence. + + The type of the elements in the source sequence. + Source observable sequence. + Sequence containing the single element in the observable sequence. + is null. + (Asynchronous) The source sequence contains more than one element. -or- The source sequence is empty. + + + + Returns the only element of an observable sequence that satisfies the condition in the predicate, and reports an exception if there is not exactly one element in the observable sequence. + + The type of the elements in the source sequence. + Source observable sequence. + A predicate function to evaluate for elements in the source sequence. + Sequence containing the single element in the observable sequence that satisfies the condition in the predicate. + or is null. + (Asynchronous) No element satisfies the condition in the predicate. -or- More than one element satisfies the condition in the predicate. -or- The source sequence is empty. + + + + Returns the only element of an observable sequence, or a default value if the observable sequence is empty; this method reports an exception if there is more than one element in the observable sequence. + + The type of the elements in the source sequence. + Source observable sequence. + Sequence containing the single element in the observable sequence, or a default value if no such element exists. + is null. + (Asynchronous) The source sequence contains more than one element. + + + + Returns the only element of an observable sequence that matches the predicate, or a default value if no such element exists; this method reports an exception if there is more than one element in the observable sequence. + + The type of the elements in the source sequence. + Source observable sequence. + A predicate function to evaluate for elements in the source sequence. + Sequence containing the single element in the observable sequence that satisfies the condition in the predicate, or a default value if no such element exists. + or is null. + (Asynchronous) The sequence contains more than one element that satisfies the condition in the predicate. + + + + Computes the sum of a sequence of values. + + A sequence of values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of values. + + A sequence of values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of values. + + A sequence of values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + is null. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of values. + + A sequence of values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + is null. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of values. + + A sequence of values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + is null. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values. + + A sequence of nullable values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values. + + A sequence of nullable values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values. + + A sequence of nullable values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + is null. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values. + + A sequence of nullable values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + is null. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values. + + A sequence of nullable values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + is null. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + or is null. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + or is null. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + or is null. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + or is null. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + or is null. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + or is null. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates an array from an observable sequence. + + The type of the elements in the source sequence. + The source observable sequence to get an array of elements for. + An observable sequence containing a single element with an array containing all the elements of the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates a dictionary from an observable sequence according to a specified key selector function. + + The type of the elements in the source sequence. + The type of the dictionary key computed for each element in the source sequence. + An observable sequence to create a dictionary for. + A function to extract a key from each element. + An observable sequence containing a single element with a dictionary mapping unique key values onto the corresponding source sequence's element. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates a dictionary from an observable sequence according to a specified key selector function, and a comparer. + + The type of the elements in the source sequence. + The type of the dictionary key computed for each element in the source sequence. + An observable sequence to create a dictionary for. + A function to extract a key from each element. + An equality comparer to compare keys. + An observable sequence containing a single element with a dictionary mapping unique key values onto the corresponding source sequence's element. + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates a dictionary from an observable sequence according to a specified key selector function, and an element selector function. + + The type of the elements in the source sequence. + The type of the dictionary key computed for each element in the source sequence. + The type of the dictionary value computed for each element in the source sequence. + An observable sequence to create a dictionary for. + A function to extract a key from each element. + A transform function to produce a result element value from each element. + An observable sequence containing a single element with a dictionary mapping unique key values onto the corresponding source sequence's element. + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates a dictionary from an observable sequence according to a specified key selector function, a comparer, and an element selector function. + + The type of the elements in the source sequence. + The type of the dictionary key computed for each element in the source sequence. + The type of the dictionary value computed for each element in the source sequence. + An observable sequence to create a dictionary for. + A function to extract a key from each element. + A transform function to produce a result element value from each element. + An equality comparer to compare keys. + An observable sequence containing a single element with a dictionary mapping unique key values onto the corresponding source sequence's element. + or or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates a list from an observable sequence. + + The type of the elements in the source sequence. + The source observable sequence to get a list of elements for. + An observable sequence containing a single element with a list containing all the elements of the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates a lookup from an observable sequence according to a specified key selector function. + + The type of the elements in the source sequence. + The type of the lookup key computed for each element in the source sequence. + An observable sequence to create a lookup for. + A function to extract a key from each element. + An observable sequence containing a single element with a lookup mapping unique key values onto the corresponding source sequence's elements. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates a lookup from an observable sequence according to a specified key selector function, and a comparer. + + The type of the elements in the source sequence. + The type of the lookup key computed for each element in the source sequence. + An observable sequence to create a lookup for. + A function to extract a key from each element. + An equality comparer to compare keys. + An observable sequence containing a single element with a lookup mapping unique key values onto the corresponding source sequence's elements. + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates a lookup from an observable sequence according to a specified key selector function, and an element selector function. + + The type of the elements in the source sequence. + The type of the lookup key computed for each element in the source sequence. + The type of the lookup value computed for each element in the source sequence. + An observable sequence to create a lookup for. + A function to extract a key from each element. + A transform function to produce a result element value from each element. + An observable sequence containing a single element with a lookup mapping unique key values onto the corresponding source sequence's elements. + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates a lookup from an observable sequence according to a specified key selector function, a comparer, and an element selector function. + + The type of the elements in the source sequence. + The type of the lookup key computed for each element in the source sequence. + The type of the lookup value computed for each element in the source sequence. + An observable sequence to create a lookup for. + A function to extract a key from each element. + A transform function to produce a result element value from each element. + An equality comparer to compare keys. + An observable sequence containing a single element with a lookup mapping unique key values onto the corresponding source sequence's elements. + or or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The type of the eleventh argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The type of the eleventh argument passed to the begin delegate. + The type of the twelfth argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The type of the eleventh argument passed to the begin delegate. + The type of the twelfth argument passed to the begin delegate. + The type of the thirteenth argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The type of the eleventh argument passed to the begin delegate. + The type of the twelfth argument passed to the begin delegate. + The type of the thirteenth argument passed to the begin delegate. + The type of the fourteenth argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The type of the eleventh argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The type of the eleventh argument passed to the begin delegate. + The type of the twelfth argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The type of the eleventh argument passed to the begin delegate. + The type of the twelfth argument passed to the begin delegate. + The type of the thirteenth argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The type of the eleventh argument passed to the begin delegate. + The type of the twelfth argument passed to the begin delegate. + The type of the thirteenth argument passed to the begin delegate. + The type of the fourteenth argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Invokes the specified function asynchronously, surfacing the result through an observable sequence. + + The type of the result returned by the function. + Function to run asynchronously. + An observable sequence exposing the function's result value, or an exception. + is null. + + + The function is called immediately, not during the subscription of the resulting sequence. + Multiple subscriptions to the resulting sequence can observe the function's result. + + + + + + Invokes the specified function asynchronously on the specified scheduler, surfacing the result through an observable sequence + + The type of the result returned by the function. + Function to run asynchronously. + Scheduler to run the function on. + An observable sequence exposing the function's result value, or an exception. + or is null. + + + The function is called immediately, not during the subscription of the resulting sequence. + Multiple subscriptions to the resulting sequence can observe the function's result. + + + + + + Invokes the asynchronous function, surfacing the result through an observable sequence. + + The type of the result returned by the asynchronous function. + Asynchronous function to run. + An observable sequence exposing the function's result value, or an exception. + is null. + + + The function is started immediately, not during the subscription of the resulting sequence. + Multiple subscriptions to the resulting sequence can observe the function's result. + + + + + + Invokes the asynchronous function, surfacing the result through an observable sequence. + + The type of the result returned by the asynchronous function. + Asynchronous function to run. + Scheduler on which to notify observers. + An observable sequence exposing the function's result value, or an exception. + is null or is null. + + + The function is started immediately, not during the subscription of the resulting sequence. + Multiple subscriptions to the resulting sequence can observe the function's result. + + + + + + Invokes the asynchronous function, surfacing the result through an observable sequence. + The CancellationToken is shared by all subscriptions on the resulting observable sequence. See the remarks section for more information. + + The type of the result returned by the asynchronous function. + Asynchronous function to run. + An observable sequence exposing the function's result value, or an exception. + is null. + + + The function is started immediately, not during the subscription of the resulting sequence. + Multiple subscriptions to the resulting sequence can observe the function's result. + + If any subscription to the resulting sequence is disposed, the CancellationToken is set. The observer associated to the disposed + subscription won't see the TaskCanceledException, but other observers will. You can protect against this using the Catch operator. + Be careful when handing out the resulting sequence because of this behavior. The most common use is to have a single subscription + to the resulting sequence, which controls the CancellationToken state. Alternatively, you can control subscription behavior using + multicast operators. + + + + + + + Invokes the asynchronous function, surfacing the result through an observable sequence. + The CancellationToken is shared by all subscriptions on the resulting observable sequence. See the remarks section for more information. + + The type of the result returned by the asynchronous function. + Asynchronous function to run. + Scheduler on which to notify observers. + An observable sequence exposing the function's result value, or an exception. + is null or is null. + + + The function is started immediately, not during the subscription of the resulting sequence. + Multiple subscriptions to the resulting sequence can observe the function's result. + + If any subscription to the resulting sequence is disposed, the CancellationToken is set. The observer associated to the disposed + subscription won't see the TaskCanceledException, but other observers will. You can protect against this using the Catch operator. + Be careful when handing out the resulting sequence because of this behavior. The most common use is to have a single subscription + to the resulting sequence, which controls the CancellationToken state. Alternatively, you can control subscription behavior using + multicast operators. + + + + + + + Invokes the action asynchronously, surfacing the result through an observable sequence. + + Action to run asynchronously. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + is null. + + + The action is called immediately, not during the subscription of the resulting sequence. + Multiple subscriptions to the resulting sequence can observe the action's outcome. + + + + + + Invokes the action asynchronously on the specified scheduler, surfacing the result through an observable sequence. + + Action to run asynchronously. + Scheduler to run the action on. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + or is null. + + + The action is called immediately, not during the subscription of the resulting sequence. + Multiple subscriptions to the resulting sequence can observe the action's outcome. + + + + + + Invokes the asynchronous action, surfacing the result through an observable sequence. + + Asynchronous action to run. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + is null. + + + The action is started immediately, not during the subscription of the resulting sequence. + Multiple subscriptions to the resulting sequence can observe the action's outcome. + + + + + + Invokes the asynchronous action, surfacing the result through an observable sequence. + + Asynchronous action to run. + Scheduler on which to notify observers. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + is null or is null. + + + The action is started immediately, not during the subscription of the resulting sequence. + Multiple subscriptions to the resulting sequence can observe the action's outcome. + + + + + + Invokes the asynchronous action, surfacing the result through an observable sequence. + The CancellationToken is shared by all subscriptions on the resulting observable sequence. See the remarks section for more information. + + Asynchronous action to run. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + is null. + + + The action is started immediately, not during the subscription of the resulting sequence. + Multiple subscriptions to the resulting sequence can observe the action's outcome. + + If any subscription to the resulting sequence is disposed, the CancellationToken is set. The observer associated to the disposed + subscription won't see the TaskCanceledException, but other observers will. You can protect against this using the Catch operator. + Be careful when handing out the resulting sequence because of this behavior. The most common use is to have a single subscription + to the resulting sequence, which controls the CancellationToken state. Alternatively, you can control subscription behavior using + multicast operators. + + + + + + + Invokes the asynchronous action, surfacing the result through an observable sequence. + The CancellationToken is shared by all subscriptions on the resulting observable sequence. See the remarks section for more information. + + Asynchronous action to run. + Scheduler on which to notify observers. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + is null or is null. + + + The action is started immediately, not during the subscription of the resulting sequence. + Multiple subscriptions to the resulting sequence can observe the action's outcome. + + If any subscription to the resulting sequence is disposed, the CancellationToken is set. The observer associated to the disposed + subscription won't see the TaskCanceledException, but other observers will. You can protect against this using the Catch operator. + Be careful when handing out the resulting sequence because of this behavior. The most common use is to have a single subscription + to the resulting sequence, which controls the CancellationToken state. Alternatively, you can control subscription behavior using + multicast operators. + + + + + + + Converts an asynchronous function into an observable sequence. Each subscription to the resulting sequence causes the function to be started. + + The type of the result returned by the asynchronous function. + Asynchronous function to convert. + An observable sequence exposing the result of invoking the function, or an exception. + is null. + + + + Converts an asynchronous function into an observable sequence. Each subscription to the resulting sequence causes the function to be started. + + The type of the result returned by the asynchronous function. + Asynchronous function to convert. + Scheduler on which to notify observers. + An observable sequence exposing the result of invoking the function, or an exception. + is null or is null. + + + + Converts an asynchronous function into an observable sequence. Each subscription to the resulting sequence causes the function to be started. + The CancellationToken passed to the asynchronous function is tied to the observable sequence's subscription that triggered the function's invocation and can be used for best-effort cancellation. + + The type of the result returned by the asynchronous function. + Asynchronous function to convert. + An observable sequence exposing the result of invoking the function, or an exception. + is null. + When a subscription to the resulting sequence is disposed, the CancellationToken that was fed to the asynchronous function will be signaled. + + + + Converts an asynchronous function into an observable sequence. Each subscription to the resulting sequence causes the function to be started. + The CancellationToken passed to the asynchronous function is tied to the observable sequence's subscription that triggered the function's invocation and can be used for best-effort cancellation. + + The type of the result returned by the asynchronous function. + Asynchronous function to convert. + Scheduler on which to notify observers. + An observable sequence exposing the result of invoking the function, or an exception. + is null or is null. + When a subscription to the resulting sequence is disposed, the CancellationToken that was fed to the asynchronous function will be signaled. + + + + Converts an asynchronous action into an observable sequence. Each subscription to the resulting sequence causes the action to be started. + + Asynchronous action to convert. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + is null. + + + + Converts an asynchronous action into an observable sequence. Each subscription to the resulting sequence causes the action to be started. + + Asynchronous action to convert. + Scheduler on which to notify observers. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + is null or is null. + + + + Converts an asynchronous action into an observable sequence. Each subscription to the resulting sequence causes the action to be started. + The CancellationToken passed to the asynchronous action is tied to the observable sequence's subscription that triggered the action's invocation and can be used for best-effort cancellation. + + Asynchronous action to convert. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + When a subscription to the resulting sequence is disposed, the CancellationToken that was fed to the asynchronous function will be signaled. + is null. + + + + Converts an asynchronous action into an observable sequence. Each subscription to the resulting sequence causes the action to be started. + The CancellationToken passed to the asynchronous action is tied to the observable sequence's subscription that triggered the action's invocation and can be used for best-effort cancellation. + + Asynchronous action to convert. + Scheduler on which to notify observers. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + When a subscription to the resulting sequence is disposed, the CancellationToken that was fed to the asynchronous function will be signaled. + is null or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + The type of the first argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + The type of the first argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the thirteenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the thirteenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the thirteenth argument passed to the function. + The type of the fourteenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the thirteenth argument passed to the function. + The type of the fourteenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the thirteenth argument passed to the function. + The type of the fourteenth argument passed to the function. + The type of the fifteenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the thirteenth argument passed to the function. + The type of the fourteenth argument passed to the function. + The type of the fifteenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the thirteenth argument passed to the function. + The type of the fourteenth argument passed to the function. + The type of the fifteenth argument passed to the function. + The type of the sixteenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the thirteenth argument passed to the function. + The type of the fourteenth argument passed to the function. + The type of the fifteenth argument passed to the function. + The type of the sixteenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Action to convert to an asynchronous action. + Asynchronous action. + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + The type of the first argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + The type of the first argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + The type of the thirteenth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + The type of the thirteenth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + The type of the thirteenth argument passed to the action. + The type of the fourteenth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + The type of the thirteenth argument passed to the action. + The type of the fourteenth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + The type of the thirteenth argument passed to the action. + The type of the fourteenth argument passed to the action. + The type of the fifteenth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + The type of the thirteenth argument passed to the action. + The type of the fourteenth argument passed to the action. + The type of the fifteenth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + The type of the thirteenth argument passed to the action. + The type of the fourteenth argument passed to the action. + The type of the fifteenth argument passed to the action. + The type of the sixteenth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + The type of the thirteenth argument passed to the action. + The type of the fourteenth argument passed to the action. + The type of the fifteenth argument passed to the action. + The type of the sixteenth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + or is null. + + + + Gets an awaiter that returns the last value of the observable sequence or throws an exception if the sequence is empty. + This operation subscribes to the observable sequence, making it hot. + + The type of the elements in the source sequence. + Source sequence to await. + Object that can be awaited. + is null. + + + + Gets an awaiter that returns the last value of the observable sequence or throws an exception if the sequence is empty. + This operation subscribes and connects to the observable sequence, making it hot. + + The type of the elements in the source sequence. + Source sequence to await. + Object that can be awaited. + is null. + + + + Gets an awaiter that returns the last value of the observable sequence or throws an exception if the sequence is empty. + This operation subscribes to the observable sequence, making it hot. The supplied CancellationToken can be used to cancel the subscription. + + The type of the elements in the source sequence. + Source sequence to await. + Cancellation token. + Object that can be awaited. + is null. + + + + Gets an awaiter that returns the last value of the observable sequence or throws an exception if the sequence is empty. + This operation subscribes and connects to the observable sequence, making it hot. The supplied CancellationToken can be used to cancel the subscription and connection. + + The type of the elements in the source sequence. + Source sequence to await. + Cancellation token. + Object that can be awaited. + is null. + + + + Multicasts the source sequence notifications through the specified subject to the resulting connectable observable. Upon connection of the + connectable observable, the subject is subscribed to the source exactly one, and messages are forwarded to the observers registered with + the connectable observable. For specializations with fixed subject types, see Publish, PublishLast, and Replay. + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be pushed into the specified subject. + Subject to push source elements into. + A connectable observable sequence that upon connection causes the source sequence to push results into the specified subject. + or is null. + + + + Multicasts the source sequence notifications through an instantiated subject into all uses of the sequence within a selector function. Each + subscription to the resulting sequence causes a separate multicast invocation, exposing the sequence resulting from the selector function's + invocation. For specializations with fixed subject types, see Publish, PublishLast, and Replay. + + The type of the elements in the source sequence. + The type of the elements produced by the intermediate subject. + The type of the elements in the result sequence. + Source sequence which will be multicasted in the specified selector function. + Factory function to create an intermediate subject through which the source sequence's elements will be multicast to the selector function. + Selector function which can use the multicasted source sequence subject to the policies enforced by the created subject. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + or or is null. + + + + Returns a connectable observable sequence that shares a single subscription to the underlying sequence. + This operator is a specialization of Multicast using a regular . + + The type of the elements in the source sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + A connectable observable sequence that shares a single subscription to the underlying sequence. + is null. + Subscribers will receive all notifications of the source from the time of the subscription on. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence. + This operator is a specialization of Multicast using a regular . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all notifications of the source from the time of the subscription on. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + or is null. + + + + + Returns a connectable observable sequence that shares a single subscription to the underlying sequence and starts with initialValue. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Initial value received by observers upon subscription. + A connectable observable sequence that shares a single subscription to the underlying sequence. + is null. + Subscribers will receive immediately receive the initial value, followed by all notifications of the source from the time of the subscription on. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence and starts with initialValue. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive immediately receive the initial value, followed by all notifications of the source from the time of the subscription on. + Initial value received by observers upon subscription. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + or is null. + + + + + Returns a connectable observable sequence that shares a single subscription to the underlying sequence containing only the last notification. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + A connectable observable sequence that shares a single subscription to the underlying sequence. + is null. + Subscribers will only receive the last notification of the source. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence containing only the last notification. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will only receive the last notification of the source. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + or is null. + + + + + Returns an observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + + The type of the elements in the source sequence. + Connectable observable sequence. + An observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + is null. + + + + Returns an observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + + The type of the elements in the source sequence. + Connectable observable sequence. + The time span that should be waited before possibly unsubscribing from the connectable observable. + An observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + is null. + + + + Returns an observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + + The type of the elements in the source sequence. + Connectable observable sequence. + The time span that should be waited before possibly unsubscribing from the connectable observable. + The scheduler to use for delayed unsubscription. + An observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + is null. + + + + Returns an observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + + The type of the elements in the source sequence. + Connectable observable sequence. + The minimum number of observers required to subscribe before establishing the connection to the source. + An observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + is null. + is non-positive. + + + + Returns an observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + + The type of the elements in the source sequence. + Connectable observable sequence. + The minimum number of observers required to subscribe before establishing the connection to the source. + The time span that should be waited before possibly unsubscribing from the connectable observable. + An observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + is null. + is non-positive. + + + + Returns an observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + + The type of the elements in the source sequence. + Connectable observable sequence. + The minimum number of observers required to subscribe before establishing the connection to the source. + The time span that should be waited before possibly unsubscribing from the connectable observable. + The scheduler to use for delayed unsubscription. + An observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + is null. + is non-positive. + + + + Automatically connect the upstream IConnectableObservable at most once when the + specified number of IObservers have subscribed to this IObservable. + + The type of the elements in the source sequence. + Connectable observable sequence. + The number of observers required to subscribe before the connection to source happens, non-positive value will trigger an immediate subscription. + If not null, the connection's IDisposable is provided to it. + An observable sequence that connects to the source at most once when the given number of observers have subscribed to it. + is null. + + + + Returns a connectable observable sequence that shares a single subscription to the underlying sequence replaying all notifications. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + A connectable observable sequence that shares a single subscription to the underlying sequence. + is null. + Subscribers will receive all the notifications of the source. + + + + + Returns a connectable observable sequence that shares a single subscription to the underlying sequence replaying all notifications. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Scheduler where connected observers will be invoked on. + A connectable observable sequence that shares a single subscription to the underlying sequence. + or is null. + Subscribers will receive all the notifications of the source. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying all notifications. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all the notifications of the source. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + or is null. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying all notifications. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all the notifications of the source. + Scheduler where connected observers within the selector function will be invoked on. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + or or is null. + + + + + Returns a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum time length for the replay buffer. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Maximum time length of the replay buffer. + A connectable observable sequence that shares a single subscription to the underlying sequence. + is null. + is less than TimeSpan.Zero. + Subscribers will receive all the notifications of the source subject to the specified replay buffer trimming policy. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum time length for the replay buffer. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all the notifications of the source subject to the specified replay buffer trimming policy. + Maximum time length of the replay buffer. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + or is null. + is less than TimeSpan.Zero. + + + + + Returns a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum time length for the replay buffer. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Maximum time length of the replay buffer. + Scheduler where connected observers will be invoked on. + A connectable observable sequence that shares a single subscription to the underlying sequence. + or is null. + is less than TimeSpan.Zero. + Subscribers will receive all the notifications of the source subject to the specified replay buffer trimming policy. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum time length for the replay buffer. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all the notifications of the source subject to the specified replay buffer trimming policy. + Maximum time length of the replay buffer. + Scheduler where connected observers within the selector function will be invoked on. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + or or is null. + is less than TimeSpan.Zero. + + + + + Returns a connectable observable sequence that shares a single subscription to the underlying sequence replaying bufferSize notifications. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Maximum element count of the replay buffer. + Scheduler where connected observers will be invoked on. + A connectable observable sequence that shares a single subscription to the underlying sequence. + or is null. + is less than zero. + Subscribers will receive all the notifications of the source subject to the specified replay buffer trimming policy. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum element count for the replay buffer. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all the notifications of the source subject to the specified replay buffer trimming policy. + Maximum element count of the replay buffer. + Scheduler where connected observers within the selector function will be invoked on. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + or or is null. + is less than zero. + + + + + Returns a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum element count for the replay buffer. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Maximum element count of the replay buffer. + A connectable observable sequence that shares a single subscription to the underlying sequence. + is null. + is less than zero. + Subscribers will receive all the notifications of the source subject to the specified replay buffer trimming policy. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum element count for the replay buffer. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all the notifications of the source subject to the specified replay buffer trimming policy. + Maximum element count of the replay buffer. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + or is null. + is less than zero. + + + + + Returns a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum time length and element count for the replay buffer. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Maximum element count of the replay buffer. + Maximum time length of the replay buffer. + A connectable observable sequence that shares a single subscription to the underlying sequence. + is null. + is less than zero. + is less than TimeSpan.Zero. + Subscribers will receive all the notifications of the source subject to the specified replay buffer trimming policy. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum time length and element count for the replay buffer. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all the notifications of the source subject to the specified replay buffer trimming policy. + Maximum element count of the replay buffer. + Maximum time length of the replay buffer. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + or is null. + is less than zero. + is less than TimeSpan.Zero. + + + + + Returns a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum time length and element count for the replay buffer. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Maximum element count of the replay buffer. + Maximum time length of the replay buffer. + Scheduler where connected observers will be invoked on. + A connectable observable sequence that shares a single subscription to the underlying sequence. + or is null. + is less than zero. + is less than TimeSpan.Zero. + Subscribers will receive all the notifications of the source subject to the specified replay buffer trimming policy. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum time length and element count for the replay buffer. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all the notifications of the source subject to the specified replay buffer trimming policy. + Maximum element count of the replay buffer. + Maximum time length of the replay buffer. + Scheduler where connected observers within the selector function will be invoked on. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + or or is null. + is less than zero. + is less than TimeSpan.Zero. + + + + + Produces an enumerable sequence of consecutive (possibly empty) chunks of the source sequence. + + The type of the elements in the source sequence. + Source observable sequence. + The enumerable sequence that returns consecutive (possibly empty) chunks upon each iteration. + is null. + + + + Produces an enumerable sequence that returns elements collected/aggregated from the source sequence between consecutive iterations. + + The type of the elements in the source sequence. + The type of the elements produced by the merge operation during collection. + Source observable sequence. + Factory to create a new collector object. + Merges a sequence element with the current collector. + The enumerable sequence that returns collected/aggregated elements from the source sequence upon each iteration. + or or is null. + + + + Produces an enumerable sequence that returns elements collected/aggregated from the source sequence between consecutive iterations. + + The type of the elements in the source sequence. + The type of the elements produced by the merge operation during collection. + Source observable sequence. + Factory to create the initial collector object. + Merges a sequence element with the current collector. + Factory to replace the current collector by a new collector. + The enumerable sequence that returns collected/aggregated elements from the source sequence upon each iteration. + or or or is null. + + + + Returns the first element of an observable sequence. + + The type of the elements in the source sequence. + Source observable sequence. + The first element in the observable sequence. + is null. + The source sequence is empty. + + + + + Returns the first element of an observable sequence that satisfies the condition in the predicate. + + The type of the elements in the source sequence. + Source observable sequence. + A predicate function to evaluate for elements in the source sequence. + The first element in the observable sequence that satisfies the condition in the predicate. + or is null. + No element satisfies the condition in the predicate. -or- The source sequence is empty. + + + + + Returns the first element of an observable sequence, or a default value if no such element exists. + + The type of the elements in the source sequence. + Source observable sequence. + The first element in the observable sequence, or a default value if no such element exists. + is null. + + + + + Returns the first element of an observable sequence that satisfies the condition in the predicate, or a default value if no such element exists. + + The type of the elements in the source sequence. + Source observable sequence. + A predicate function to evaluate for elements in the source sequence. + The first element in the observable sequence that satisfies the condition in the predicate, or a default value if no such element exists. + or is null. + + + + + Invokes an action for each element in the observable sequence, and blocks until the sequence is terminated. + + The type of the elements in the source sequence. + Source sequence. + Action to invoke for each element in the observable sequence. + or is null. + Because of its blocking nature, this operator is mainly used for testing. + + + + Invokes an action for each element in the observable sequence, incorporating the element's index, and blocks until the sequence is terminated. + + The type of the elements in the source sequence. + Source sequence. + Action to invoke for each element in the observable sequence. + or is null. + Because of its blocking nature, this operator is mainly used for testing. + + + + Returns an enumerator that enumerates all values of the observable sequence. + + The type of the elements in the source sequence. + An observable sequence to get an enumerator for. + The enumerator that can be used to enumerate over the elements in the observable sequence. + is null. + + + + Returns the last element of an observable sequence. + + The type of the elements in the source sequence. + Source observable sequence. + The last element in the observable sequence. + is null. + The source sequence is empty. + + + + + Returns the last element of an observable sequence that satisfies the condition in the predicate. + + The type of the elements in the source sequence. + Source observable sequence. + A predicate function to evaluate for elements in the source sequence. + The last element in the observable sequence that satisfies the condition in the predicate. + or is null. + No element satisfies the condition in the predicate. -or- The source sequence is empty. + + + + + Returns the last element of an observable sequence, or a default value if no such element exists. + + The type of the elements in the source sequence. + Source observable sequence. + The last element in the observable sequence, or a default value if no such element exists. + is null. + + + + + Returns the last element of an observable sequence that satisfies the condition in the predicate, or a default value if no such element exists. + + The type of the elements in the source sequence. + Source observable sequence. + A predicate function to evaluate for elements in the source sequence. + The last element in the observable sequence that satisfies the condition in the predicate, or a default value if no such element exists. + or is null. + + + + + Returns an enumerable sequence whose enumeration returns the latest observed element in the source observable sequence. + Enumerators on the resulting sequence will never produce the same element repeatedly, and will block until the next element becomes available. + + The type of the elements in the source sequence. + Source observable sequence. + The enumerable sequence that returns the last sampled element upon each iteration and subsequently blocks until the next element in the observable source sequence becomes available. + + + + Returns an enumerable sequence whose enumeration returns the most recently observed element in the source observable sequence, using the specified initial value in case no element has been sampled yet. + Enumerators on the resulting sequence never block and can produce the same element repeatedly. + + The type of the elements in the source sequence. + Source observable sequence. + Initial value that will be yielded by the enumerable sequence if no element has been sampled yet. + The enumerable sequence that returns the last sampled element upon each iteration. + is null. + + + + Returns an enumerable sequence whose enumeration blocks until the next element in the source observable sequence becomes available. + Enumerators on the resulting sequence will block until the next element becomes available. + + The type of the elements in the source sequence. + Source observable sequence. + The enumerable sequence that blocks upon each iteration until the next element in the observable source sequence becomes available. + is null. + + + + Returns the only element of an observable sequence, and throws an exception if there is not exactly one element in the observable sequence. + + The type of the elements in the source sequence. + Source observable sequence. + The single element in the observable sequence. + is null. + The source sequence contains more than one element. -or- The source sequence is empty. + + + + + Returns the only element of an observable sequence that satisfies the condition in the predicate, and throws an exception if there is not exactly one element matching the predicate in the observable sequence. + + The type of the elements in the source sequence. + Source observable sequence. + A predicate function to evaluate for elements in the source sequence. + The single element in the observable sequence that satisfies the condition in the predicate. + or is null. + No element satisfies the condition in the predicate. -or- More than one element satisfies the condition in the predicate. -or- The source sequence is empty. + + + + + Returns the only element of an observable sequence, or a default value if the observable sequence is empty; this method throws an exception if there is more than one element in the observable sequence. + + The type of the elements in the source sequence. + Source observable sequence. + The single element in the observable sequence, or a default value if no such element exists. + is null. + The source sequence contains more than one element. + + + + + Returns the only element of an observable sequence that satisfies the condition in the predicate, or a default value if no such element exists; this method throws an exception if there is more than one element matching the predicate in the observable sequence. + + The type of the elements in the source sequence. + Source observable sequence. + A predicate function to evaluate for elements in the source sequence. + The single element in the observable sequence that satisfies the condition in the predicate, or a default value if no such element exists. + or is null. + The sequence contains more than one element that satisfies the condition in the predicate. + + + + + Waits for the observable sequence to complete and returns the last element of the sequence. + If the sequence terminates with an OnError notification, the exception is thrown. + + The type of the elements in the source sequence. + Source observable sequence. + The last element in the observable sequence. + is null. + The source sequence is empty. + + + + Wraps the source sequence in order to run its observer callbacks on the specified scheduler. + + The type of the elements in the source sequence. + Source sequence. + Scheduler to notify observers on. + The source sequence whose observations happen on the specified scheduler. + or is null. + + This only invokes observer callbacks on a scheduler. In case the subscription and/or unsubscription actions have side-effects + that require to be run on a scheduler, use . + + + + + Wraps the source sequence in order to run its observer callbacks on the specified synchronization context. + + The type of the elements in the source sequence. + Source sequence. + Synchronization context to notify observers on. + The source sequence whose observations happen on the specified synchronization context. + or is null. + + This only invokes observer callbacks on a synchronization context. In case the subscription and/or unsubscription actions have side-effects + that require to be run on a synchronization context, use . + + + + + Wraps the source sequence in order to run its subscription and unsubscription logic on the specified scheduler. This operation is not commonly used; + see the remarks section for more information on the distinction between SubscribeOn and ObserveOn. + + The type of the elements in the source sequence. + Source sequence. + Scheduler to perform subscription and unsubscription actions on. + The source sequence whose subscriptions and unsubscriptions happen on the specified scheduler. + or is null. + + This only performs the side-effects of subscription and unsubscription on the specified scheduler. In order to invoke observer + callbacks on a scheduler, use . + + + + + Wraps the source sequence in order to run its subscription and unsubscription logic on the specified synchronization context. This operation is not commonly used; + see the remarks section for more information on the distinction between SubscribeOn and ObserveOn. + + The type of the elements in the source sequence. + Source sequence. + Synchronization context to perform subscription and unsubscription actions on. + The source sequence whose subscriptions and unsubscriptions happen on the specified synchronization context. + or is null. + + This only performs the side-effects of subscription and unsubscription on the specified synchronization context. In order to invoke observer + callbacks on a synchronization context, use . + + + + + Synchronizes the observable sequence such that observer notifications cannot be delivered concurrently. + This overload is useful to "fix" an observable sequence that exhibits concurrent callbacks on individual observers, which is invalid behavior for the query processor. + + The type of the elements in the source sequence. + Source sequence. + The source sequence whose outgoing calls to observers are synchronized. + is null. + + It's invalid behavior - according to the observer grammar - for a sequence to exhibit concurrent callbacks on a given observer. + This operator can be used to "fix" a source that doesn't conform to this rule. + + + + + Synchronizes the observable sequence such that observer notifications cannot be delivered concurrently, using the specified gate object. + This overload is useful when writing n-ary query operators, in order to prevent concurrent callbacks from different sources by synchronizing on a common gate object. + + The type of the elements in the source sequence. + Source sequence. + Gate object to synchronize each observer call on. + The source sequence whose outgoing calls to observers are synchronized on the given gate object. + or is null. + + + + Subscribes an observer to an enumerable sequence. + + The type of the elements in the source sequence. + Enumerable sequence to subscribe to. + Observer that will receive notifications from the enumerable sequence. + Disposable object that can be used to unsubscribe the observer from the enumerable + or is null. + + + + Subscribes an observer to an enumerable sequence, using the specified scheduler to run the enumeration loop. + + The type of the elements in the source sequence. + Enumerable sequence to subscribe to. + Observer that will receive notifications from the enumerable sequence. + Scheduler to perform the enumeration on. + Disposable object that can be used to unsubscribe the observer from the enumerable + or or is null. + + + + Converts an observable sequence to an enumerable sequence. + + The type of the elements in the source sequence. + An observable sequence to convert to an enumerable sequence. + The enumerable sequence containing the elements in the observable sequence. + is null. + + + + Exposes an observable sequence as an object with an -based .NET event. + + Observable source sequence. + The event source object. + is null. + + + + Exposes an observable sequence as an object with an -based .NET event. + + The type of the elements in the source sequence. + Observable source sequence. + The event source object. + is null. + + + + Exposes an observable sequence as an object with a .NET event, conforming to the standard .NET event pattern. + + The type of the event data generated by the event. + Observable source sequence. + The event source object. + is null. + + + + Converts an enumerable sequence to an observable sequence. + + The type of the elements in the source sequence. + Enumerable sequence to convert to an observable sequence. + The observable sequence whose elements are pulled from the given enumerable sequence. + is null. + + + + Converts an enumerable sequence to an observable sequence, using the specified scheduler to run the enumeration loop. + + The type of the elements in the source sequence. + Enumerable sequence to convert to an observable sequence. + Scheduler to run the enumeration of the input sequence on. + The observable sequence whose elements are pulled from the given enumerable sequence. + or is null. + + + + Creates an observable sequence from a specified Subscribe method implementation. + + The type of the elements in the produced sequence. + Implementation of the resulting observable sequence's Subscribe method. + The observable sequence with the specified implementation for the Subscribe method. + is null. + + Use of this operator is preferred over manual implementation of the interface. In case + you need a type implementing rather than an anonymous implementation, consider using + the abstract base class. + + + + + Creates an observable sequence from a specified Subscribe method implementation. + + The type of the elements in the produced sequence. + Implementation of the resulting observable sequence's Subscribe method, returning an Action delegate that will be wrapped in an IDisposable. + The observable sequence with the specified implementation for the Subscribe method. + is null. + + Use of this operator is preferred over manual implementation of the interface. In case + you need a type implementing rather than an anonymous implementation, consider using + the abstract base class. + + + + + Creates an observable sequence from a specified cancellable asynchronous Subscribe method. + The CancellationToken passed to the asynchronous Subscribe method is tied to the returned disposable subscription, allowing best-effort cancellation. + + The type of the elements in the produced sequence. + Asynchronous method used to produce elements. + The observable sequence surfacing the elements produced by the asynchronous method. + is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + When a subscription to the resulting sequence is disposed, the CancellationToken that was fed to the asynchronous subscribe function will be signaled. + + + + Creates an observable sequence from a specified asynchronous Subscribe method. + + The type of the elements in the produced sequence. + Asynchronous method used to produce elements. + The observable sequence surfacing the elements produced by the asynchronous method. + is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + + + + Creates an observable sequence from a specified cancellable asynchronous Subscribe method. + The CancellationToken passed to the asynchronous Subscribe method is tied to the returned disposable subscription, allowing best-effort cancellation. + + The type of the elements in the produced sequence. + Asynchronous method used to implement the resulting sequence's Subscribe method. + The observable sequence with the specified implementation for the Subscribe method. + is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + When a subscription to the resulting sequence is disposed, the CancellationToken that was fed to the asynchronous subscribe function will be signaled. + + + + Creates an observable sequence from a specified asynchronous Subscribe method. + + The type of the elements in the produced sequence. + Asynchronous method used to implement the resulting sequence's Subscribe method. + The observable sequence with the specified implementation for the Subscribe method. + is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + + + + Creates an observable sequence from a specified cancellable asynchronous Subscribe method. + The CancellationToken passed to the asynchronous Subscribe method is tied to the returned disposable subscription, allowing best-effort cancellation. + + The type of the elements in the produced sequence. + Asynchronous method used to implement the resulting sequence's Subscribe method, returning an Action delegate that will be wrapped in an IDisposable. + The observable sequence with the specified implementation for the Subscribe method. + is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + When a subscription to the resulting sequence is disposed, the CancellationToken that was fed to the asynchronous subscribe function will be signaled. + + + + Creates an observable sequence from a specified asynchronous Subscribe method. + + The type of the elements in the produced sequence. + Asynchronous method used to implement the resulting sequence's Subscribe method, returning an Action delegate that will be wrapped in an IDisposable. + The observable sequence with the specified implementation for the Subscribe method. + is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + + + + Returns an observable sequence that invokes the specified factory function whenever a new observer subscribes. + + The type of the elements in the sequence returned by the factory function, and in the resulting sequence. + Observable factory function to invoke for each observer that subscribes to the resulting sequence. + An observable sequence whose observers trigger an invocation of the given observable factory function. + is null. + + + + Returns an observable sequence that starts the specified asynchronous factory function whenever a new observer subscribes. + + The type of the elements in the sequence returned by the factory function, and in the resulting sequence. + Asynchronous factory function to start for each observer that subscribes to the resulting sequence. + An observable sequence whose observers trigger the given asynchronous observable factory function to be started. + is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + + + + Returns an observable sequence that starts the specified cancellable asynchronous factory function whenever a new observer subscribes. + The CancellationToken passed to the asynchronous factory function is tied to the returned disposable subscription, allowing best-effort cancellation. + + The type of the elements in the sequence returned by the factory function, and in the resulting sequence. + Asynchronous factory function to start for each observer that subscribes to the resulting sequence. + An observable sequence whose observers trigger the given asynchronous observable factory function to be started. + is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + When a subscription to the resulting sequence is disposed, the CancellationToken that was fed to the asynchronous observable factory function will be signaled. + + + + Returns an empty observable sequence. + + The type used for the type parameter of the resulting sequence. + An observable sequence with no elements. + + + + Returns an empty observable sequence. + + The type used for the type parameter of the resulting sequence. + Object solely used to infer the type of the type parameter. This parameter is typically used when creating a sequence of anonymously typed elements. + An observable sequence with no elements. + + + + Returns an empty observable sequence, using the specified scheduler to send out the single OnCompleted message. + + The type used for the type parameter of the resulting sequence. + Scheduler to send the termination call on. + An observable sequence with no elements. + is null. + + + + Returns an empty observable sequence, using the specified scheduler to send out the single OnCompleted message. + + The type used for the type parameter of the resulting sequence. + Scheduler to send the termination call on. + Object solely used to infer the type of the type parameter. This parameter is typically used when creating a sequence of anonymously typed elements. + An observable sequence with no elements. + is null. + + + + Generates an observable sequence by running a state-driven loop producing the sequence's elements. + + The type of the state used in the generator loop. + The type of the elements in the produced sequence. + Initial state. + Condition to terminate generation (upon returning false). + Iteration step function. + Selector function for results produced in the sequence. + The generated sequence. + or or is null. + + + + Generates an observable sequence by running a state-driven loop producing the sequence's elements, using the specified scheduler to send out observer messages. + + The type of the state used in the generator loop. + The type of the elements in the produced sequence. + Initial state. + Condition to terminate generation (upon returning false). + Iteration step function. + Selector function for results produced in the sequence. + Scheduler on which to run the generator loop. + The generated sequence. + or or or is null. + + + + Returns a non-terminating observable sequence, which can be used to denote an infinite duration (e.g. when using reactive joins). + + The type used for the type parameter of the resulting sequence. + An observable sequence whose observers will never get called. + + + + Returns a non-terminating observable sequence, which can be used to denote an infinite duration (e.g. when using reactive joins). + + The type used for the type parameter of the resulting sequence. + Object solely used to infer the type of the type parameter. This parameter is typically used when creating a sequence of anonymously typed elements. + An observable sequence whose observers will never get called. + + + + Generates an observable sequence of integral numbers within a specified range. + + The value of the first integer in the sequence. + The number of sequential integers to generate. + An observable sequence that contains a range of sequential integral numbers. + is less than zero. -or- + - 1 is larger than . + + + + Generates an observable sequence of integral numbers within a specified range, using the specified scheduler to send out observer messages. + + The value of the first integer in the sequence. + The number of sequential integers to generate. + Scheduler to run the generator loop on. + An observable sequence that contains a range of sequential integral numbers. + is less than zero. -or- + - 1 is larger than . + is null. + + + + Generates an observable sequence that repeats the given element infinitely. + + The type of the element that will be repeated in the produced sequence. + Element to repeat. + An observable sequence that repeats the given element infinitely. + + + + Generates an observable sequence that repeats the given element infinitely, using the specified scheduler to send out observer messages. + + The type of the element that will be repeated in the produced sequence. + Element to repeat. + Scheduler to run the producer loop on. + An observable sequence that repeats the given element infinitely. + is null. + + + + Generates an observable sequence that repeats the given element the specified number of times. + + The type of the element that will be repeated in the produced sequence. + Element to repeat. + Number of times to repeat the element. + An observable sequence that repeats the given element the specified number of times. + is less than zero. + + + + Generates an observable sequence that repeats the given element the specified number of times, using the specified scheduler to send out observer messages. + + The type of the element that will be repeated in the produced sequence. + Element to repeat. + Number of times to repeat the element. + Scheduler to run the producer loop on. + An observable sequence that repeats the given element the specified number of times. + is less than zero. + is null. + + + + Returns an observable sequence that contains a single element. + + The type of the element that will be returned in the produced sequence. + Single element in the resulting observable sequence. + An observable sequence containing the single specified element. + + + + Returns an observable sequence that contains a single element, using the specified scheduler to send out observer messages. + + The type of the element that will be returned in the produced sequence. + Single element in the resulting observable sequence. + Scheduler to send the single element on. + An observable sequence containing the single specified element. + is null. + + + + Returns an observable sequence that terminates with an exception. + + The type used for the type parameter of the resulting sequence. + Exception object used for the sequence's termination. + The observable sequence that terminates exceptionally with the specified exception object. + is null. + + + + Returns an observable sequence that terminates with an exception. + + The type used for the type parameter of the resulting sequence. + Exception object used for the sequence's termination. + Object solely used to infer the type of the type parameter. This parameter is typically used when creating a sequence of anonymously typed elements. + The observable sequence that terminates exceptionally with the specified exception object. + is null. + + + + Returns an observable sequence that terminates with an exception, using the specified scheduler to send out the single OnError message. + + The type used for the type parameter of the resulting sequence. + Exception object used for the sequence's termination. + Scheduler to send the exceptional termination call on. + The observable sequence that terminates exceptionally with the specified exception object. + or is null. + + + + Returns an observable sequence that terminates with an exception, using the specified scheduler to send out the single OnError message. + + The type used for the type parameter of the resulting sequence. + Exception object used for the sequence's termination. + Scheduler to send the exceptional termination call on. + Object solely used to infer the type of the type parameter. This parameter is typically used when creating a sequence of anonymously typed elements. + The observable sequence that terminates exceptionally with the specified exception object. + or is null. + + + + Constructs an observable sequence that depends on a resource object, whose lifetime is tied to the resulting observable sequence's lifetime. + + The type of the elements in the produced sequence. + The type of the resource used during the generation of the resulting sequence. Needs to implement . + Factory function to obtain a resource object. + Factory function to obtain an observable sequence that depends on the obtained resource. + An observable sequence whose lifetime controls the lifetime of the dependent resource object. + or is null. + + + + Constructs an observable sequence that depends on a resource object, whose lifetime is tied to the resulting observable sequence's lifetime. The resource is obtained and used through asynchronous methods. + The CancellationToken passed to the asynchronous methods is tied to the returned disposable subscription, allowing best-effort cancellation at any stage of the resource acquisition or usage. + + The type of the elements in the produced sequence. + The type of the resource used during the generation of the resulting sequence. Needs to implement . + Asynchronous factory function to obtain a resource object. + Asynchronous factory function to obtain an observable sequence that depends on the obtained resource. + An observable sequence whose lifetime controls the lifetime of the dependent resource object. + or is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + When a subscription to the resulting sequence is disposed, the CancellationToken that was fed to the asynchronous resource factory and observable factory functions will be signaled. + + + + Converts a .NET event, conforming to the standard .NET event pattern based on , to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on , to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on a supplied event delegate type, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + The delegate type of the event to be converted. + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on a supplied event delegate type, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + The delegate type of the event to be converted. + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on , to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + The delegate type of the event to be converted. + The type of the event data generated by the event. + A function used to convert the given event handler to a delegate compatible with the underlying .NET event. The resulting delegate is used in calls to the addHandler and removeHandler action parameters. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on , to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + The delegate type of the event to be converted. + The type of the event data generated by the event. + A function used to convert the given event handler to a delegate compatible with the underlying .NET event. The resulting delegate is used in calls to the addHandler and removeHandler action parameters. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on a supplied event delegate type with a strongly typed sender parameter, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + The delegate type of the event to be converted. + The type of the sender that raises the event. + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on a supplied event delegate type with a strongly typed sender parameter, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + The delegate type of the event to be converted. + The type of the sender that raises the event. + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on , to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on , to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts an instance .NET event, conforming to the standard .NET event pattern with an parameter, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the target object type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Object instance that exposes the event to convert. + Name of the event to convert. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts an instance .NET event, conforming to the standard .NET event pattern with an parameter, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the target object type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Object instance that exposes the event to convert. + Name of the event to convert. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts an instance .NET event, conforming to the standard .NET event pattern with strongly typed event arguments, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the target object type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + The type of the event data generated by the event. + Object instance that exposes the event to convert. + Name of the event to convert. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. -or- The event's second argument type is not assignable to TEventArgs. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts an instance .NET event, conforming to the standard .NET event pattern with strongly typed event arguments, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the target object type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + The type of the event data generated by the event. + Object instance that exposes the event to convert. + Name of the event to convert. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. -or- The event's second argument type is not assignable to TEventArgs. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts an instance .NET event, conforming to the standard .NET event pattern with a strongly typed sender and strongly typed event arguments, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the target object type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + The type of the sender that raises the event. + The type of the event data generated by the event. + Object instance that exposes the event to convert. + Name of the event to convert. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. -or- The event's first argument type is not assignable to TSender. -or- The event's second argument type is not assignable to TEventArgs. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts an instance .NET event, conforming to the standard .NET event pattern with a strongly typed sender and strongly typed event arguments, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the target object type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + The type of the sender that raises the event. + The type of the event data generated by the event. + Object instance that exposes the event to convert. + Name of the event to convert. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. -or- The event's first argument type is not assignable to TSender. -or- The event's second argument type is not assignable to TEventArgs. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a static .NET event, conforming to the standard .NET event pattern with an parameter, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the specified type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Type that exposes the static event to convert. + Name of the event to convert. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a static .NET event, conforming to the standard .NET event pattern with an parameter, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the specified type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Type that exposes the static event to convert. + Name of the event to convert. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a static .NET event, conforming to the standard .NET event pattern with strongly typed event arguments, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the specified type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + The type of the event data generated by the event. + Type that exposes the static event to convert. + Name of the event to convert. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. -or- The event's second argument type is not assignable to TEventArgs. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a static .NET event, conforming to the standard .NET event pattern with strongly typed event arguments, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the specified type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + The type of the event data generated by the event. + Type that exposes the static event to convert. + Name of the event to convert. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. -or- The event's second argument type is not assignable to TEventArgs. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a static .NET event, conforming to the standard .NET event pattern with a strongly typed sender and strongly typed event arguments, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the specified type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + The type of the sender that raises the event. + The type of the event data generated by the event. + Type that exposes the static event to convert. + Name of the event to convert. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. -or- The event's first argument type is not assignable to TSender. -or- The event's second argument type is not assignable to TEventArgs. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a static .NET event, conforming to the standard .NET event pattern with a strongly typed sender and strongly typed event arguments, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the specified type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + The type of the sender that raises the event. + The type of the event data generated by the event. + Type that exposes the static event to convert. + Name of the event to convert. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. -or- The event's first argument type is not assignable to TSender. -or- The event's second argument type is not assignable to TEventArgs. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a .NET event to an observable sequence, using a conversion function to obtain the event delegate. Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events conforming to the standard .NET event pattern, use any of the FromEventPattern overloads instead. + + The delegate type of the event to be converted. + The type of the event data generated by the event. + A function used to convert the given event handler to a delegate compatible with the underlying .NET event. The resulting delegate is used in calls to the addHandler and removeHandler action parameters. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains the event argument objects passed to the invocations of the underlying .NET event. + or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEvent, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEvent, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEvent calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a .NET event to an observable sequence, using a conversion function to obtain the event delegate. Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events conforming to the standard .NET event pattern, use any of the FromEventPattern overloads instead. + + The delegate type of the event to be converted. + The type of the event data generated by the event. + A function used to convert the given event handler to a delegate compatible with the underlying .NET event. The resulting delegate is used in calls to the addHandler and removeHandler action parameters. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains the event argument objects passed to the invocations of the underlying .NET event. + or or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEvent calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEvent that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a .NET event to an observable sequence, using a supplied event delegate type. Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events conforming to the standard .NET event pattern, use any of the FromEventPattern overloads instead. + + The delegate type of the event to be converted. + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains the event argument objects passed to the invocations of the underlying .NET event. + or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEvent, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEvent, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEvent calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a .NET event to an observable sequence, using a supplied event delegate type. Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events conforming to the standard .NET event pattern, use any of the FromEventPattern overloads instead. + + The delegate type of the event to be converted. + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains the event argument objects passed to the invocations of the underlying .NET event. + or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEvent calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEvent that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a generic Action-based .NET event to an observable sequence. Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events conforming to the standard .NET event pattern, use any of the FromEventPattern overloads instead. + + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains the event argument objects passed to the invocations of the underlying .NET event. + or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEvent, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEvent, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEvent calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a generic Action-based .NET event to an observable sequence. Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events conforming to the standard .NET event pattern, use any of the FromEventPattern overloads instead. + + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains the event argument objects passed to the invocations of the underlying .NET event. + or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEvent calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEvent that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts an Action-based .NET event to an observable sequence. Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events conforming to the standard .NET event pattern, use any of the FromEventPattern overloads instead. + + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains the event argument objects passed to the invocations of the underlying .NET event. + or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEvent, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEvent, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEvent calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts an Action-based .NET event to an observable sequence. Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events conforming to the standard .NET event pattern, use any of the FromEventPattern overloads instead. + + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains the event argument objects passed to the invocations of the underlying .NET event. + or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEvent calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEvent that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Invokes an action for each element in the observable sequence, and returns a Task object that will get signaled when the sequence terminates. + + The type of the elements in the source sequence. + Source sequence. + Action to invoke for each element in the observable sequence. + Task that signals the termination of the sequence. + or is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + + + + Invokes an action for each element in the observable sequence, and returns a Task object that will get signaled when the sequence terminates. + The loop can be quit prematurely by setting the specified cancellation token. + + The type of the elements in the source sequence. + Source sequence. + Action to invoke for each element in the observable sequence. + Cancellation token used to stop the loop. + Task that signals the termination of the sequence. + or is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + + + + Invokes an action for each element in the observable sequence, incorporating the element's index, and returns a Task object that will get signaled when the sequence terminates. + + The type of the elements in the source sequence. + Source sequence. + Action to invoke for each element in the observable sequence. + Task that signals the termination of the sequence. + or is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + + + + Invokes an action for each element in the observable sequence, incorporating the element's index, and returns a Task object that will get signaled when the sequence terminates. + The loop can be quit prematurely by setting the specified cancellation token. + + The type of the elements in the source sequence. + Source sequence. + Action to invoke for each element in the observable sequence. + Cancellation token used to stop the loop. + Task that signals the termination of the sequence. + or is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + + + + Uses to determine which source in to return, choosing if no match is found. + + The type of the value returned by the selector function, used to look up the resulting source. + The type of the elements in the result sequence. + Selector function invoked to determine the source to lookup in the dictionary. + Dictionary of sources to select from based on the invocation result. + Default source to select in case no matching source in is found. + The observable sequence retrieved from the dictionary based on the invocation result, or if no match is found. + or or is null. + + + + Uses to determine which source in to return, choosing an empty sequence on the specified scheduler if no match is found. + + The type of the value returned by the selector function, used to look up the resulting source. + The type of the elements in the result sequence. + Selector function invoked to determine the source to lookup in the dictionary. + Dictionary of sources to select from based on the invocation result. + Scheduler to generate an empty sequence on in case no matching source in is found. + The observable sequence retrieved from the dictionary based on the invocation result, or an empty sequence if no match is found. + or or is null. + + + + Uses to determine which source in to return, choosing an empty sequence if no match is found. + + The type of the value returned by the selector function, used to look up the resulting source. + The type of the elements in the result sequence. + Selector function invoked to determine the source to lookup in the dictionary. + Dictionary of sources to select from based on the invocation result. + The observable sequence retrieved from the dictionary based on the invocation result, or an empty sequence if no match is found. + or is null. + + + + Repeats the given as long as the specified holds, where the is evaluated after each repeated completed. + + The type of the elements in the source sequence. + Source to repeat as long as the function evaluates to true. + Condition that will be evaluated upon the completion of an iteration through the , to determine whether repetition of the source is required. + The observable sequence obtained by concatenating the sequence as long as the holds. + or is null. + + + + Concatenates the observable sequences obtained by running the for each element in the given enumerable . + + The type of the elements in the enumerable source sequence. + The type of the elements in the observable result sequence. + Enumerable source for which each element will be mapped onto an observable source that will be concatenated in the result sequence. + Function to select an observable source for each element in the . + The observable sequence obtained by concatenating the sources returned by for each element in the . + or is null. + + + + If the specified evaluates true, select the sequence. Otherwise, select the sequence. + + The type of the elements in the result sequence. + Condition evaluated to decide which sequence to return. + Sequence returned in case evaluates true. + Sequence returned in case evaluates false. + if evaluates true; otherwise. + or or is null. + + + + If the specified evaluates true, select the sequence. Otherwise, return an empty sequence. + + The type of the elements in the result sequence. + Condition evaluated to decide which sequence to return. + Sequence returned in case evaluates true. + if evaluates true; an empty sequence otherwise. + or is null. + + + + If the specified evaluates true, select the sequence. Otherwise, return an empty sequence generated on the specified scheduler. + + The type of the elements in the result sequence. + Condition evaluated to decide which sequence to return. + Sequence returned in case evaluates true. + Scheduler to generate an empty sequence on in case evaluates false. + if evaluates true; an empty sequence otherwise. + or or is null. + + + + Repeats the given as long as the specified holds, where the is evaluated before each repeated is subscribed to. + + The type of the elements in the source sequence. + Source to repeat as long as the function evaluates to true. + Condition that will be evaluated before subscription to the , to determine whether repetition of the source is required. + The observable sequence obtained by concatenating the sequence as long as the holds. + or is null. + + + + Creates a pattern that matches when both observable sequences have an available element. + + The type of the elements in the left sequence. + The type of the elements in the right sequence. + Observable sequence to match with the right sequence. + Observable sequence to match with the left sequence. + Pattern object that matches when both observable sequences have an available element. + or is null. + + + + Matches when the observable sequence has an available element and projects the element by invoking the selector function. + + The type of the elements in the source sequence. + The type of the elements in the result sequence, returned by the selector function. + Observable sequence to apply the selector on. + Selector that will be invoked for elements in the source sequence. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + or is null. + + + + Joins together the results from several patterns. + + The type of the elements in the result sequence, obtained from the specified patterns. + A series of plans created by use of the Then operator on patterns. + An observable sequence with the results from matching several patterns. + is null. + + + + Joins together the results from several patterns. + + The type of the elements in the result sequence, obtained from the specified patterns. + A series of plans created by use of the Then operator on patterns. + An observable sequence with the results form matching several patterns. + is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Fourteenth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the fifteenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Fourteenth observable source. + Fifteenth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or or or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the fifteenth source sequence. + The type of the elements in the sixteenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Fourteenth observable source. + Fifteenth observable source. + Sixteenth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or or or or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Propagates the observable sequence that reacts first. + + The type of the elements in the source sequences. + First observable sequence. + Second observable sequence. + An observable sequence that surfaces either of the given sequences, whichever reacted first. + or is null. + + + + Propagates the observable sequence that reacts first. + + The type of the elements in the source sequences. + Observable sources competing to react first. + An observable sequence that surfaces any of the given sequences, whichever reacted first. + is null. + + + + Propagates the observable sequence that reacts first. + + The type of the elements in the source sequences. + Observable sources competing to react first. + An observable sequence that surfaces any of the given sequences, whichever reacted first. + is null. + + + + Projects each element of an observable sequence into consecutive non-overlapping buffers. + + The type of the elements in the source sequence, and in the lists in the result sequence. + The type of the elements in the sequences indicating buffer closing events. + Source sequence to produce buffers over. + A function invoked to define the boundaries of the produced buffers. A new buffer is started when the previous one is closed. + An observable sequence of buffers. + or is null. + + + + Projects each element of an observable sequence into zero or more buffers. + + The type of the elements in the source sequence, and in the lists in the result sequence. + The type of the elements in the sequence indicating buffer opening events, also passed to the closing selector to obtain a sequence of buffer closing events. + The type of the elements in the sequences indicating buffer closing events. + Source sequence to produce buffers over. + Observable sequence whose elements denote the creation of new buffers. + A function invoked to define the closing of each produced buffer. + An observable sequence of buffers. + or or is null. + + + + Projects each element of an observable sequence into consecutive non-overlapping buffers. + + The type of the elements in the source sequence, and in the lists in the result sequence. + The type of the elements in the sequences indicating buffer boundary events. + Source sequence to produce buffers over. + Sequence of buffer boundary markers. The current buffer is closed and a new buffer is opened upon receiving a boundary marker. + An observable sequence of buffers. + or is null. + + + + Continues an observable sequence that is terminated by an exception of the specified type with the observable sequence produced by the handler. + + The type of the elements in the source sequence and sequences returned by the exception handler function. + The type of the exception to catch and handle. Needs to derive from . + Source sequence. + Exception handler function, producing another observable sequence. + An observable sequence containing the source sequence's elements, followed by the elements produced by the handler's resulting observable sequence in case an exception occurred. + or is null. + + + + Continues an observable sequence that is terminated by an exception with the next observable sequence. + + The type of the elements in the source sequence and handler sequence. + First observable sequence whose exception (if any) is caught. + Second observable sequence used to produce results when an error occurred in the first sequence. + An observable sequence containing the first sequence's elements, followed by the elements of the second sequence in case an exception occurred. + or is null. + + + + Continues an observable sequence that is terminated by an exception with the next observable sequence. + + The type of the elements in the source and handler sequences. + Observable sequences to catch exceptions for. + An observable sequence containing elements from consecutive source sequences until a source sequence terminates successfully. + is null. + + + + Continues an observable sequence that is terminated by an exception with the next observable sequence. + + The type of the elements in the source and handler sequences. + Observable sequences to catch exceptions for. + An observable sequence containing elements from consecutive source sequences until a source sequence terminates successfully. + is null. + + + + Merges two observable sequences into one observable sequence by using the selector function whenever one of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Function to invoke whenever either of the sources produces an element. + An observable sequence containing the result of combining elements of both sources using the specified result selector function. + or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the source sequences. + The type of the elements in the result sequence, returned by the selector function. + Observable sources. + Function to invoke whenever any of the sources produces an element. For efficiency, the input list is reused after the selector returns. Either aggregate or copy the values during the function call. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by emitting a list with the latest source elements whenever any of the observable sequences produces an element. + + The type of the elements in the source sequences, and in the lists in the result sequence. + Observable sources. + An observable sequence containing lists of the latest elements of the sources. + is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by emitting a list with the latest source elements whenever any of the observable sequences produces an element. + + The type of the elements in the source sequences, and in the lists in the result sequence. + Observable sources. + An observable sequence containing lists of the latest elements of the sources. + is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Concatenates the second observable sequence to the first observable sequence upon successful termination of the first. + + The type of the elements in the source sequences. + First observable sequence. + Second observable sequence. + An observable sequence that contains the elements of the first sequence, followed by those of the second the sequence. + or is null. + + + + Concatenates all of the specified observable sequences, as long as the previous observable sequence terminated successfully. + + The type of the elements in the source sequences. + Observable sequences to concatenate. + An observable sequence that contains the elements of each given sequence, in sequential order. + is null. + + + + Concatenates all observable sequences in the given enumerable sequence, as long as the previous observable sequence terminated successfully. + + The type of the elements in the source sequences. + Observable sequences to concatenate. + An observable sequence that contains the elements of each given sequence, in sequential order. + is null. + + + + Concatenates all inner observable sequences, as long as the previous observable sequence terminated successfully. + + The type of the elements in the source sequences. + Observable sequence of inner observable sequences. + An observable sequence that contains the elements of each observed inner sequence, in sequential order. + is null. + + + + Concatenates all task results, as long as the previous task terminated successfully. + + The type of the results produced by the tasks. + Observable sequence of tasks. + An observable sequence that contains the results of each task, in sequential order. + is null. + If the tasks support cancellation, consider manual conversion of the tasks using , followed by a concatenation operation using . + + + + Merges elements from all inner observable sequences into a single observable sequence. + + The type of the elements in the source sequences. + Observable sequence of inner observable sequences. + The observable sequence that merges the elements of the inner sequences. + is null. + + + + Merges results from all source tasks into a single observable sequence. + + The type of the results produced by the source tasks. + Observable sequence of tasks. + The observable sequence that merges the results of the source tasks. + is null. + If the tasks support cancellation, consider manual conversion of the tasks using , followed by a merge operation using . + + + + Merges elements from all inner observable sequences into a single observable sequence, limiting the number of concurrent subscriptions to inner sequences. + + The type of the elements in the source sequences. + Observable sequence of inner observable sequences. + Maximum number of inner observable sequences being subscribed to concurrently. + The observable sequence that merges the elements of the inner sequences. + is null. + is less than or equal to zero. + + + + Merges elements from all observable sequences in the given enumerable sequence into a single observable sequence, limiting the number of concurrent subscriptions to inner sequences. + + The type of the elements in the source sequences. + Enumerable sequence of observable sequences. + Maximum number of observable sequences being subscribed to concurrently. + The observable sequence that merges the elements of the observable sequences. + is null. + is less than or equal to zero. + + + + Merges elements from all observable sequences in the given enumerable sequence into a single observable sequence, limiting the number of concurrent subscriptions to inner sequences, and using the specified scheduler for enumeration of and subscription to the sources. + + The type of the elements in the source sequences. + Enumerable sequence of observable sequences. + Maximum number of observable sequences being subscribed to concurrently. + Scheduler to run the enumeration of the sequence of sources on. + The observable sequence that merges the elements of the observable sequences. + or is null. + is less than or equal to zero. + + + + Merges elements from two observable sequences into a single observable sequence. + + The type of the elements in the source sequences. + First observable sequence. + Second observable sequence. + The observable sequence that merges the elements of the given sequences. + or is null. + + + + Merges elements from two observable sequences into a single observable sequence, using the specified scheduler for enumeration of and subscription to the sources. + + The type of the elements in the source sequences. + First observable sequence. + Second observable sequence. + Scheduler used to introduce concurrency for making subscriptions to the given sequences. + The observable sequence that merges the elements of the given sequences. + or or is null. + + + + Merges elements from all of the specified observable sequences into a single observable sequence. + + The type of the elements in the source sequences. + Observable sequences. + The observable sequence that merges the elements of the observable sequences. + is null. + + + + Merges elements from all of the specified observable sequences into a single observable sequence, using the specified scheduler for enumeration of and subscription to the sources. + + The type of the elements in the source sequences. + Observable sequences. + Scheduler to run the enumeration of the sequence of sources on. + The observable sequence that merges the elements of the observable sequences. + or is null. + + + + Merges elements from all observable sequences in the given enumerable sequence into a single observable sequence. + + The type of the elements in the source sequences. + Enumerable sequence of observable sequences. + The observable sequence that merges the elements of the observable sequences. + is null. + + + + Merges elements from all observable sequences in the given enumerable sequence into a single observable sequence, using the specified scheduler for enumeration of and subscription to the sources. + + The type of the elements in the source sequences. + Enumerable sequence of observable sequences. + Scheduler to run the enumeration of the sequence of sources on. + The observable sequence that merges the elements of the observable sequences. + or is null. + + + + Concatenates the second observable sequence to the first observable sequence upon successful or exceptional termination of the first. + + The type of the elements in the source sequences. + First observable sequence whose exception (if any) is caught. + Second observable sequence used to produce results after the first sequence terminates. + An observable sequence that concatenates the first and second sequence, even if the first sequence terminates exceptionally. + or is null. + + + + Concatenates all of the specified observable sequences, even if the previous observable sequence terminated exceptionally. + + The type of the elements in the source sequences. + Observable sequences to concatenate. + An observable sequence that concatenates the source sequences, even if a sequence terminates exceptionally. + is null. + + + + Concatenates all observable sequences in the given enumerable sequence, even if the previous observable sequence terminated exceptionally. + + The type of the elements in the source sequences. + Observable sequences to concatenate. + An observable sequence that concatenates the source sequences, even if a sequence terminates exceptionally. + is null. + + + + Returns the elements from the source observable sequence only after the other observable sequence produces an element. + Starting from Rx.NET 4.0, this will subscribe to before subscribing to + so in case emits an element right away, elements from are not missed. + + The type of the elements in the source sequence. + The type of the elements in the other sequence that indicates the end of skip behavior. + Source sequence to propagate elements for. + Observable sequence that triggers propagation of elements of the source sequence. + An observable sequence containing the elements of the source sequence starting from the point the other sequence triggered propagation. + or is null. + + + + Transforms an observable sequence of observable sequences into an observable sequence + producing values only from the most recent observable sequence. + Each time a new inner observable sequence is received, unsubscribe from the + previous inner observable sequence. + + The type of the elements in the source sequences. + Observable sequence of inner observable sequences. + The observable sequence that at any point in time produces the elements of the most recent inner observable sequence that has been received. + is null. + + + + Transforms an observable sequence of tasks into an observable sequence + producing values only from the most recent observable sequence. + Each time a new task is received, the previous task's result is ignored. + + The type of the results produced by the source tasks. + Observable sequence of tasks. + The observable sequence that at any point in time produces the result of the most recent task that has been received. + is null. + If the tasks support cancellation, consider manual conversion of the tasks using , followed by a switch operation using . + + + + Returns the elements from the source observable sequence until the other observable sequence produces an element. + + The type of the elements in the source sequence. + The type of the elements in the other sequence that indicates the end of take behavior. + Source sequence to propagate elements for. + Observable sequence that terminates propagation of elements of the source sequence. + An observable sequence containing the elements of the source sequence up to the point the other sequence interrupted further propagation. + or is null. + + + + Relays elements from the source observable sequence and calls the predicate after an + emission to check if the sequence should stop after that specific item. + + The type of the elements in the source and result sequences. + The source sequence to relay elements of. + Called after each upstream item has been emitted with + that upstream item and should return true to indicate the sequence should + complete. + The observable sequence with the source elements until the stop predicate returns true. + + The following sequence will stop after the value 5 has been encountered: + + Observable.Range(1, 10) + .TakeUntil(item => item == 5) + .Subscribe(Console.WriteLine); + + + If or is null. + + + + Projects each element of an observable sequence into consecutive non-overlapping windows. + + The type of the elements in the source sequence, and in the windows in the result sequence. + The type of the elements in the sequences indicating window closing events. + Source sequence to produce windows over. + A function invoked to define the boundaries of the produced windows. A new window is started when the previous one is closed. + An observable sequence of windows. + or is null. + + + + Projects each element of an observable sequence into zero or more windows. + + The type of the elements in the source sequence, and in the windows in the result sequence. + The type of the elements in the sequence indicating window opening events, also passed to the closing selector to obtain a sequence of window closing events. + The type of the elements in the sequences indicating window closing events. + Source sequence to produce windows over. + Observable sequence whose elements denote the creation of new windows. + A function invoked to define the closing of each produced window. + An observable sequence of windows. + or or is null. + + + + Projects each element of an observable sequence into consecutive non-overlapping windows. + + The type of the elements in the source sequence, and in the windows in the result sequence. + The type of the elements in the sequences indicating window boundary events. + Source sequence to produce windows over. + Sequence of window boundary markers. The current window is closed and a new window is opened upon receiving a boundary marker. + An observable sequence of windows. + or is null. + + + + Merges two observable sequences into one observable sequence by combining each element from the first source with the latest element from the second source, if any. + Starting from Rx.NET 4.0, this will subscribe to before subscribing to to have a latest element readily available + in case emits an element right away. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Function to invoke for each element from the first source combined with the latest element from the second source, if any. + An observable sequence containing the result of combining each element of the first source with the latest element from the second source, if any, using the specified result selector function. + or or is null. + + + + Merges two observable sequences into one observable sequence by combining their elements in a pairwise fashion. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Function to invoke for each consecutive pair of elements from the first and second source. + An observable sequence containing the result of pairwise combining the elements of the first and second source using the specified result selector function. + or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the source sequences. + The type of the elements in the result sequence, returned by the selector function. + Observable sources. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or is null. + + + + Merges the specified observable sequences into one observable sequence by emitting a list with the elements of the observable sequences at corresponding indexes. + + The type of the elements in the source sequences, and in the lists in the result sequence. + Observable sources. + An observable sequence containing lists of elements at corresponding indexes. + is null. + + + + Merges the specified observable sequences into one observable sequence by emitting a list with the elements of the observable sequences at corresponding indexes. + + The type of the elements in the source sequences, and in the lists in the result sequence. + Observable sources. + An observable sequence containing lists of elements at corresponding indexes. + is null. + + + + Merges an observable sequence and an enumerable sequence into one observable sequence by using the selector function. + + The type of the elements in the first observable source sequence. + The type of the elements in the second enumerable source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second enumerable source. + Function to invoke for each consecutive pair of elements from the first and second source. + An observable sequence containing the result of pairwise combining the elements of the first and second source using the specified result selector function. + or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Fourteenth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the fifteenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Fourteenth observable source. + Fifteenth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the fifteenth source sequence. + The type of the elements in the sixteenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Fourteenth observable source. + Fifteenth observable source. + Sixteenth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or or or or or or or or or or is null. + + + + Append a value to an observable sequence. + + The type of the elements in the source sequence. + Source sequence to append the value to. + Value to append to the specified sequence. + The source sequence appended with the specified value. + is null. + + + + Append a value to an observable sequence. + + The type of the elements in the source sequence. + Source sequence to append the value to. + Value to append to the specified sequence. + Scheduler to emit the append values on. + The source sequence appended with the specified value. + is null. + + + + Hides the identity of an observable sequence. + + The type of the elements in the source sequence. + An observable sequence whose identity to hide. + An observable sequence that hides the identity of the source sequence. + is null. + + + + Projects each element of an observable sequence into consecutive non-overlapping buffers which are produced based on element count information. + + The type of the elements in the source sequence, and in the lists in the result sequence. + Source sequence to produce buffers over. + Length of each buffer. + An observable sequence of buffers. + is null. + is less than or equal to zero. + + + + Projects each element of an observable sequence into zero or more buffers which are produced based on element count information. + + The type of the elements in the source sequence, and in the lists in the result sequence. + Source sequence to produce buffers over. + Length of each buffer. + Number of elements to skip between creation of consecutive buffers. + An observable sequence of buffers. + is null. + or is less than or equal to zero. + + + + Dematerializes the explicit notification values of an observable sequence as implicit notifications. + + The type of the elements materialized in the source sequence notification objects. + An observable sequence containing explicit notification values which have to be turned into implicit notifications. + An observable sequence exhibiting the behavior corresponding to the source sequence's notification values. + is null. + + + + Returns an observable sequence that contains only distinct contiguous elements. + + The type of the elements in the source sequence. + An observable sequence to retain distinct contiguous elements for. + An observable sequence only containing the distinct contiguous elements from the source sequence. + is null. + + + + Returns an observable sequence that contains only distinct contiguous elements according to the comparer. + + The type of the elements in the source sequence. + An observable sequence to retain distinct contiguous elements for. + Equality comparer for source elements. + An observable sequence only containing the distinct contiguous elements from the source sequence. + or is null. + + + + Returns an observable sequence that contains only distinct contiguous elements according to the keySelector. + + The type of the elements in the source sequence. + The type of the discriminator key computed for each element in the source sequence. + An observable sequence to retain distinct contiguous elements for, based on a computed key value. + A function to compute the comparison key for each element. + An observable sequence only containing the distinct contiguous elements, based on a computed key value, from the source sequence. + or is null. + + + + Returns an observable sequence that contains only distinct contiguous elements according to the keySelector and the comparer. + + The type of the elements in the source sequence. + The type of the discriminator key computed for each element in the source sequence. + An observable sequence to retain distinct contiguous elements for, based on a computed key value. + A function to compute the comparison key for each element. + Equality comparer for computed key values. + An observable sequence only containing the distinct contiguous elements, based on a computed key value, from the source sequence. + or or is null. + + + + Invokes an action for each element in the observable sequence, and propagates all observer messages through the result sequence. + This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + + The type of the elements in the source sequence. + Source sequence. + Action to invoke for each element in the observable sequence. + The source sequence with the side-effecting behavior applied. + or is null. + + + + Invokes an action for each element in the observable sequence and invokes an action upon graceful termination of the observable sequence. + This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + + The type of the elements in the source sequence. + Source sequence. + Action to invoke for each element in the observable sequence. + Action to invoke upon graceful termination of the observable sequence. + The source sequence with the side-effecting behavior applied. + or or is null. + + + + Invokes an action for each element in the observable sequence and invokes an action upon exceptional termination of the observable sequence. + This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + + The type of the elements in the source sequence. + Source sequence. + Action to invoke for each element in the observable sequence. + Action to invoke upon exceptional termination of the observable sequence. + The source sequence with the side-effecting behavior applied. + or or is null. + + + + Invokes an action for each element in the observable sequence and invokes an action upon graceful or exceptional termination of the observable sequence. + This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + + The type of the elements in the source sequence. + Source sequence. + Action to invoke for each element in the observable sequence. + Action to invoke upon exceptional termination of the observable sequence. + Action to invoke upon graceful termination of the observable sequence. + The source sequence with the side-effecting behavior applied. + or or or is null. + + + + Invokes the observer's methods for each message in the source sequence. + This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + + The type of the elements in the source sequence. + Source sequence. + Observer whose methods to invoke as part of the source sequence's observation. + The source sequence with the side-effecting behavior applied. + or is null. + + + + Invokes a specified action after the source observable sequence terminates gracefully or exceptionally. + + The type of the elements in the source sequence. + Source sequence. + Action to invoke after the source observable sequence terminates. + Source sequence with the action-invoking termination behavior applied. + or is null. + + + + Ignores all elements in an observable sequence leaving only the termination messages. + + The type of the elements in the source sequence. + Source sequence. + An empty observable sequence that signals termination, successful or exceptional, of the source sequence. + is null. + + + + Materializes the implicit notifications of an observable sequence as explicit notification values. + + The type of the elements in the source sequence. + An observable sequence to get notification values for. + An observable sequence containing the materialized notification values from the source sequence. + is null. + + + + Prepend a value to an observable sequence. + + The type of the elements in the source sequence. + Source sequence to prepend the value to. + Value to prepend to the specified sequence. + The source sequence prepended with the specified value. + is null. + + + + Prepend a value to an observable sequence. + + The type of the elements in the source sequence. + Source sequence to prepend the value to. + Value to prepend to the specified sequence. + Scheduler to emit the prepend values on. + The source sequence prepended with the specified value. + is null. + + + + Repeats the observable sequence indefinitely. + + The type of the elements in the source sequence. + Observable sequence to repeat. + The observable sequence producing the elements of the given sequence repeatedly and sequentially. + is null. + + + + Repeats the observable sequence a specified number of times. + + The type of the elements in the source sequence. + Observable sequence to repeat. + Number of times to repeat the sequence. + The observable sequence producing the elements of the given sequence repeatedly. + is null. + is less than zero. + + + + Repeatedly resubscribes to the source observable after a normal completion and when the observable + returned by a handler produces an arbitrary item. + + The type of the elements in the source sequence. + The arbitrary element type signaled by the handler observable. + Observable sequence to keep repeating when it successfully terminates. + The function that is called for each observer and takes an observable sequence objects. + It should return an observable of arbitrary items that should signal that arbitrary item in + response to receiving the completion signal from the source observable. If this observable signals + a terminal event, the sequence is terminated with that signal instead. + An observable sequence producing the elements of the given sequence repeatedly while each repetition terminates successfully. + is null. + is null. + + + + Repeats the source observable sequence until it successfully terminates. + + The type of the elements in the source sequence. + Observable sequence to repeat until it successfully terminates. + An observable sequence producing the elements of the given sequence repeatedly until it terminates successfully. + is null. + + + + Repeats the source observable sequence the specified number of times or until it successfully terminates. + + The type of the elements in the source sequence. + Observable sequence to repeat until it successfully terminates. + Number of times to repeat the sequence. + An observable sequence producing the elements of the given sequence repeatedly until it terminates successfully. + is null. + is less than zero. + + + + Retries (resubscribes to) the source observable after a failure and when the observable + returned by a handler produces an arbitrary item. + + The type of the elements in the source sequence. + The arbitrary element type signaled by the handler observable. + Observable sequence to repeat until it successfully terminates. + The function that is called for each observer and takes an observable sequence of + errors. It should return an observable of arbitrary items that should signal that arbitrary item in + response to receiving the failure Exception from the source observable. If this observable signals + a terminal event, the sequence is terminated with that signal instead. + An observable sequence producing the elements of the given sequence repeatedly until it terminates successfully. + is null. + is null. + + + + Applies an accumulator function over an observable sequence and returns each intermediate result. The specified seed value is used as the initial accumulator value. + For aggregation behavior with no intermediate results, see . + + The type of the elements in the source sequence. + The type of the result of the aggregation. + An observable sequence to accumulate over. + The initial accumulator value. + An accumulator function to be invoked on each element. + An observable sequence containing the accumulated values. + or is null. + + + + Applies an accumulator function over an observable sequence and returns each intermediate result. + For aggregation behavior with no intermediate results, see . + + The type of the elements in the source sequence and the result of the aggregation. + An observable sequence to accumulate over. + An accumulator function to be invoked on each element. + An observable sequence containing the accumulated values. + or is null. + + + + Bypasses a specified number of elements at the end of an observable sequence. + + The type of the elements in the source sequence. + Source sequence. + Number of elements to bypass at the end of the source sequence. + An observable sequence containing the source sequence elements except for the bypassed ones at the end. + is null. + is less than zero. + + This operator accumulates a queue with a length enough to store the first elements. As more elements are + received, elements are taken from the front of the queue and produced on the result sequence. This causes elements to be delayed. + + + + + Prepends a sequence of values to an observable sequence. + + The type of the elements in the source sequence. + Source sequence to prepend values to. + Values to prepend to the specified sequence. + The source sequence prepended with the specified values. + or is null. + + + + Prepends a sequence of values to an observable sequence. + + The type of the elements in the source sequence. + Source sequence to prepend values to. + Values to prepend to the specified sequence. + The source sequence prepended with the specified values. + or is null. + + + + Prepends a sequence of values to an observable sequence. + + The type of the elements in the source sequence. + Source sequence to prepend values to. + Scheduler to emit the prepended values on. + Values to prepend to the specified sequence. + The source sequence prepended with the specified values. + or or is null. + + + + Prepends a sequence of values to an observable sequence. + + The type of the elements in the source sequence. + Source sequence to prepend values to. + Scheduler to emit the prepended values on. + Values to prepend to the specified sequence. + The source sequence prepended with the specified values. + or or is null. + + + + Returns a specified number of contiguous elements from the end of an observable sequence. + + The type of the elements in the source sequence. + Source sequence. + Number of elements to take from the end of the source sequence. + An observable sequence containing the specified number of elements from the end of the source sequence. + is null. + is less than zero. + + This operator accumulates a buffer with a length enough to store elements elements. Upon completion of + the source sequence, this buffer is drained on the result sequence. This causes the elements to be delayed. + + + + + Returns a specified number of contiguous elements from the end of an observable sequence, using the specified scheduler to drain the queue. + + The type of the elements in the source sequence. + Source sequence. + Number of elements to take from the end of the source sequence. + Scheduler used to drain the queue upon completion of the source sequence. + An observable sequence containing the specified number of elements from the end of the source sequence. + or is null. + is less than zero. + + This operator accumulates a buffer with a length enough to store elements elements. Upon completion of + the source sequence, this buffer is drained on the result sequence. This causes the elements to be delayed. + + + + + Returns a list with the specified number of contiguous elements from the end of an observable sequence. + + The type of the elements in the source sequence. + Source sequence. + Number of elements to take from the end of the source sequence. + An observable sequence containing a single list with the specified number of elements from the end of the source sequence. + is null. + is less than zero. + + This operator accumulates a buffer with a length enough to store elements. Upon completion of the + source sequence, this buffer is produced on the result sequence. + + + + + Projects each element of an observable sequence into consecutive non-overlapping windows which are produced based on element count information. + + The type of the elements in the source sequence, and in the windows in the result sequence. + Source sequence to produce windows over. + Length of each window. + An observable sequence of windows. + is null. + is less than or equal to zero. + + + + Projects each element of an observable sequence into zero or more windows which are produced based on element count information. + + The type of the elements in the source sequence, and in the windows in the result sequence. + Source sequence to produce windows over. + Length of each window. + Number of elements to skip between creation of consecutive windows. + An observable sequence of windows. + is null. + or is less than or equal to zero. + + + + Converts the elements of an observable sequence to the specified type. + + The type to convert the elements in the source sequence to. + The observable sequence that contains the elements to be converted. + An observable sequence that contains each element of the source sequence converted to the specified type. + is null. + + + + Returns the elements of the specified sequence or the type parameter's default value in a singleton sequence if the sequence is empty. + + The type of the elements in the source sequence (if any), whose default value will be taken if the sequence is empty. + The sequence to return a default value for if it is empty. + An observable sequence that contains the default value for the TSource type if the source is empty; otherwise, the elements of the source itself. + is null. + + + + Returns the elements of the specified sequence or the specified value in a singleton sequence if the sequence is empty. + + The type of the elements in the source sequence (if any), and the specified default value which will be taken if the sequence is empty. + The sequence to return the specified value for if it is empty. + The value to return if the sequence is empty. + An observable sequence that contains the specified default value if the source is empty; otherwise, the elements of the source itself. + is null. + + + + Returns an observable sequence that contains only distinct elements. + + The type of the elements in the source sequence. + An observable sequence to retain distinct elements for. + An observable sequence only containing the distinct elements from the source sequence. + is null. + Usage of this operator should be considered carefully due to the maintenance of an internal lookup structure which can grow large. + + + + Returns an observable sequence that contains only distinct elements according to the comparer. + + The type of the elements in the source sequence. + An observable sequence to retain distinct elements for. + Equality comparer for source elements. + An observable sequence only containing the distinct elements from the source sequence. + or is null. + Usage of this operator should be considered carefully due to the maintenance of an internal lookup structure which can grow large. + + + + Returns an observable sequence that contains only distinct elements according to the keySelector. + + The type of the elements in the source sequence. + The type of the discriminator key computed for each element in the source sequence. + An observable sequence to retain distinct elements for. + A function to compute the comparison key for each element. + An observable sequence only containing the distinct elements, based on a computed key value, from the source sequence. + or is null. + Usage of this operator should be considered carefully due to the maintenance of an internal lookup structure which can grow large. + + + + Returns an observable sequence that contains only distinct elements according to the keySelector and the comparer. + + The type of the elements in the source sequence. + The type of the discriminator key computed for each element in the source sequence. + An observable sequence to retain distinct elements for. + A function to compute the comparison key for each element. + Equality comparer for source elements. + An observable sequence only containing the distinct elements, based on a computed key value, from the source sequence. + or or is null. + Usage of this operator should be considered carefully due to the maintenance of an internal lookup structure which can grow large. + + + + Groups the elements of an observable sequence according to a specified key selector function. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + An observable sequence whose elements to group. + A function to extract the key for each element. + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + or is null. + + + + Groups the elements of an observable sequence according to a specified key selector function and comparer. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + An observable sequence whose elements to group. + A function to extract the key for each element. + An equality comparer to compare keys with. + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + or or is null. + + + + Groups the elements of an observable sequence and selects the resulting elements by using a specified function. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements within the groups computed for each element in the source sequence. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to map each source element to an element in an observable group. + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + or or is null. + + + + Groups the elements of an observable sequence according to a specified key selector function and comparer and selects the resulting elements by using a specified function. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements within the groups computed for each element in the source sequence. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to map each source element to an element in an observable group. + An equality comparer to compare keys with. + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + or or or is null. + + + + Groups the elements of an observable sequence with the specified initial capacity according to a specified key selector function. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + An observable sequence whose elements to group. + A function to extract the key for each element. + The initial number of elements that the underlying dictionary can contain. + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + or is null. + is less than 0. + + + + Groups the elements of an observable sequence with the specified initial capacity according to a specified key selector function and comparer. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + An observable sequence whose elements to group. + A function to extract the key for each element. + The initial number of elements that the underlying dictionary can contain. + An equality comparer to compare keys with. + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + or or is null. + is less than 0. + + + + Groups the elements of an observable sequence with the specified initial capacity and selects the resulting elements by using a specified function. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements within the groups computed for each element in the source sequence. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to map each source element to an element in an observable group. + The initial number of elements that the underlying dictionary can contain. + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + or or is null. + is less than 0. + + + + Groups the elements of an observable sequence with the specified initial capacity according to a specified key selector function and comparer and selects the resulting elements by using a specified function. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements within the groups computed for each element in the source sequence. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to map each source element to an element in an observable group. + The initial number of elements that the underlying dictionary can contain. + An equality comparer to compare keys with. + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + or or or is null. + is less than 0. + + + + Groups the elements of an observable sequence according to a specified key selector function and comparer and selects the resulting elements by using a specified function. + A duration selector function is used to control the lifetime of groups. When a group expires, it receives an OnCompleted notification. When a new element with the same + key value as a reclaimed group occurs, the group will be reborn with a new lifetime request. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements within the groups computed for each element in the source sequence. + The type of the elements in the duration sequences obtained for each group to denote its lifetime. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to map each source element to an element in an observable group. + A function to signal the expiration of a group. + An equality comparer to compare keys with. + + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + If a group's lifetime expires, a new group with the same key value can be created once an element with such a key value is encountered. + + or or or or is null. + + + + Groups the elements of an observable sequence according to a specified key selector function and selects the resulting elements by using a specified function. + A duration selector function is used to control the lifetime of groups. When a group expires, it receives an OnCompleted notification. When a new element with the same + key value as a reclaimed group occurs, the group will be reborn with a new lifetime request. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements within the groups computed for each element in the source sequence. + The type of the elements in the duration sequences obtained for each group to denote its lifetime. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to map each source element to an element in an observable group. + A function to signal the expiration of a group. + + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + If a group's lifetime expires, a new group with the same key value can be created once an element with such a key value is encountered. + + or or or is null. + + + + Groups the elements of an observable sequence according to a specified key selector function and comparer. + A duration selector function is used to control the lifetime of groups. When a group expires, it receives an OnCompleted notification. When a new element with the same + key value as a reclaimed group occurs, the group will be reborn with a new lifetime request. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements in the duration sequences obtained for each group to denote its lifetime. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to signal the expiration of a group. + An equality comparer to compare keys with. + + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + If a group's lifetime expires, a new group with the same key value can be created once an element with such a key value is encountered. + + or or or is null. + + + + Groups the elements of an observable sequence according to a specified key selector function. + A duration selector function is used to control the lifetime of groups. When a group expires, it receives an OnCompleted notification. When a new element with the same + key value as a reclaimed group occurs, the group will be reborn with a new lifetime request. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements in the duration sequences obtained for each group to denote its lifetime. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to signal the expiration of a group. + + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + If a group's lifetime expires, a new group with the same key value can be created once an element with such a key value is encountered. + + or or is null. + + + + Groups the elements of an observable sequence with the specified initial capacity according to a specified key selector function and comparer and selects the resulting elements by using a specified function. + A duration selector function is used to control the lifetime of groups. When a group expires, it receives an OnCompleted notification. When a new element with the same + key value as a reclaimed group occurs, the group will be reborn with a new lifetime request. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements within the groups computed for each element in the source sequence. + The type of the elements in the duration sequences obtained for each group to denote its lifetime. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to map each source element to an element in an observable group. + A function to signal the expiration of a group. + The initial number of elements that the underlying dictionary can contain. + An equality comparer to compare keys with. + + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + If a group's lifetime expires, a new group with the same key value can be created once an element with such a key value is encountered. + + or or or or is null. + is less than 0. + + + + Groups the elements of an observable sequence with the specified initial capacity according to a specified key selector function and selects the resulting elements by using a specified function. + A duration selector function is used to control the lifetime of groups. When a group expires, it receives an OnCompleted notification. When a new element with the same + key value as a reclaimed group occurs, the group will be reborn with a new lifetime request. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements within the groups computed for each element in the source sequence. + The type of the elements in the duration sequences obtained for each group to denote its lifetime. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to map each source element to an element in an observable group. + A function to signal the expiration of a group. + The initial number of elements that the underlying dictionary can contain. + + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + If a group's lifetime expires, a new group with the same key value can be created once an element with such a key value is encountered. + + or or or is null. + is less than 0. + + + + Groups the elements of an observable sequence with the specified initial capacity according to a specified key selector function and comparer. + A duration selector function is used to control the lifetime of groups. When a group expires, it receives an OnCompleted notification. When a new element with the same + key value as a reclaimed group occurs, the group will be reborn with a new lifetime request. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements in the duration sequences obtained for each group to denote its lifetime. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to signal the expiration of a group. + The initial number of elements that the underlying dictionary can contain. + An equality comparer to compare keys with. + + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + If a group's lifetime expires, a new group with the same key value can be created once an element with such a key value is encountered. + + or or or is null. + is less than 0. + + + + Groups the elements of an observable sequence with the specified initial capacity according to a specified key selector function. + A duration selector function is used to control the lifetime of groups. When a group expires, it receives an OnCompleted notification. When a new element with the same + key value as a reclaimed group occurs, the group will be reborn with a new lifetime request. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements in the duration sequences obtained for each group to denote its lifetime. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to signal the expiration of a group. + The initial number of elements that the underlying dictionary can contain. + + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + If a group's lifetime expires, a new group with the same key value can be created once an element with such a key value is encountered. + + or or is null. + is less than 0. + + + + Correlates the elements of two sequences based on overlapping durations, and groups the results. + + The type of the elements in the left source sequence. + The type of the elements in the right source sequence. + The type of the elements in the duration sequence denoting the computed duration of each element in the left source sequence. + The type of the elements in the duration sequence denoting the computed duration of each element in the right source sequence. + The type of the elements in the result sequence, obtained by invoking the result selector function for source elements with overlapping duration. + The left observable sequence to join elements for. + The right observable sequence to join elements for. + A function to select the duration of each element of the left observable sequence, used to determine overlap. + A function to select the duration of each element of the right observable sequence, used to determine overlap. + A function invoked to compute a result element for any element of the left sequence with overlapping elements from the right observable sequence. + An observable sequence that contains result elements computed from source elements that have an overlapping duration. + or or or or is null. + + + + Correlates the elements of two sequences based on overlapping durations. + + The type of the elements in the left source sequence. + The type of the elements in the right source sequence. + The type of the elements in the duration sequence denoting the computed duration of each element in the left source sequence. + The type of the elements in the duration sequence denoting the computed duration of each element in the right source sequence. + The type of the elements in the result sequence, obtained by invoking the result selector function for source elements with overlapping duration. + The left observable sequence to join elements for. + The right observable sequence to join elements for. + A function to select the duration of each element of the left observable sequence, used to determine overlap. + A function to select the duration of each element of the right observable sequence, used to determine overlap. + A function invoked to compute a result element for any two overlapping elements of the left and right observable sequences. + An observable sequence that contains result elements computed from source elements that have an overlapping duration. + or or or or is null. + + + + Filters the elements of an observable sequence based on the specified type. + + The type to filter the elements in the source sequence on. + The observable sequence that contains the elements to be filtered. + An observable sequence that contains elements from the input sequence of type TResult. + is null. + + + + Projects each element of an observable sequence into a new form. + + The type of the elements in the source sequence. + The type of the elements in the result sequence, obtained by running the selector function for each element in the source sequence. + A sequence of elements to invoke a transform function on. + A transform function to apply to each source element. + An observable sequence whose elements are the result of invoking the transform function on each element of source. + or is null. + + + + Projects each element of an observable sequence into a new form by incorporating the element's index. + + The type of the elements in the source sequence. + The type of the elements in the result sequence, obtained by running the selector function for each element in the source sequence. + A sequence of elements to invoke a transform function on. + A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + An observable sequence whose elements are the result of invoking the transform function on each element of source. + or is null. + + + + Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the other sequence and the elements in the result sequence. + An observable sequence of elements to project. + An observable sequence to project each element from the source sequence onto. + An observable sequence whose elements are the result of projecting each source element onto the other sequence and merging all the resulting sequences together. + or is null. + + + + Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected inner sequences and the elements in the merged result sequence. + An observable sequence of elements to project. + A transform function to apply to each element. + An observable sequence whose elements are the result of invoking the one-to-many transform function on each element of the input sequence. + or is null. + + + + Projects each element of an observable sequence to an observable sequence by incorporating the element's index and merges the resulting observable sequences into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected inner sequences and the elements in the merged result sequence. + An observable sequence of elements to project. + A transform function to apply to each element; the second parameter of the function represents the index of the source element. + An observable sequence whose elements are the result of invoking the one-to-many transform function on each element of the input sequence. + or is null. + + + + Projects each element of an observable sequence to a task and merges all of the task results into one observable sequence. + + The type of the elements in the source sequence. + The type of the result produced by the projected tasks and the elements in the merged result sequence. + An observable sequence of elements to project. + A transform function to apply to each element. + An observable sequence whose elements are the result of the tasks executed for each element of the input sequence. + This overload supports composition of observable sequences and tasks, without requiring manual conversion of the tasks to observable sequences using . + or is null. + + + + Projects each element of an observable sequence to a task by incorporating the element's index and merges all of the task results into one observable sequence. + + The type of the elements in the source sequence. + The type of the result produced by the projected tasks and the elements in the merged result sequence. + An observable sequence of elements to project. + A transform function to apply to each element; the second parameter of the function represents the index of the source element. + An observable sequence whose elements are the result of the tasks executed for each element of the input sequence. + This overload supports composition of observable sequences and tasks, without requiring manual conversion of the tasks to observable sequences using . + or is null. + + + + Projects each element of an observable sequence to a task with cancellation support and merges all of the task results into one observable sequence. + + The type of the elements in the source sequence. + The type of the result produced by the projected tasks and the elements in the merged result sequence. + An observable sequence of elements to project. + A transform function to apply to each element. + An observable sequence whose elements are the result of the tasks executed for each element of the input sequence. + This overload supports composition of observable sequences and tasks, without requiring manual conversion of the tasks to observable sequences using . + or is null. + + + + Projects each element of an observable sequence to a task by incorporating the element's index with cancellation support and merges all of the task results into one observable sequence. + + The type of the elements in the source sequence. + The type of the result produced by the projected tasks and the elements in the merged result sequence. + An observable sequence of elements to project. + A transform function to apply to each element; the second parameter of the function represents the index of the source element. + An observable sequence whose elements are the result of the tasks executed for each element of the input sequence. + This overload supports composition of observable sequences and tasks, without requiring manual conversion of the tasks to observable sequences using . + or is null. + + + + Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected intermediate sequences. + The type of the elements in the result sequence, obtained by using the selector to combine source sequence elements with their corresponding intermediate sequence elements. + An observable sequence of elements to project. + A transform function to apply to each element. + A transform function to apply to each element of the intermediate sequence. + An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + or or is null. + + + + Projects each element of an observable sequence to an observable sequence by incorporating the element's index, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected intermediate sequences. + The type of the elements in the result sequence, obtained by using the selector to combine source sequence elements with their corresponding intermediate sequence elements. + An observable sequence of elements to project. + A transform function to apply to each element; the second parameter of the function represents the index of the source element. + A transform function to apply to each element of the intermediate sequence; the second parameter of the function represents the index of the source element and the fourth parameter represents the index of the intermediate element. + An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + or or is null. + + + + Projects each element of an observable sequence to a task, invokes the result selector for the source element and the task result, and merges the results into one observable sequence. + + The type of the elements in the source sequence. + The type of the results produced by the projected intermediate tasks. + The type of the elements in the result sequence, obtained by using the selector to combine source sequence elements with their corresponding intermediate task results. + An observable sequence of elements to project. + A transform function to apply to each element. + A transform function to apply to each element of the intermediate sequence. + An observable sequence whose elements are the result of obtaining a task for each element of the input sequence and then mapping the task's result and its corresponding source element to a result element. + or or is null. + This overload supports using LINQ query comprehension syntax in C# and Visual Basic to compose observable sequences and tasks, without requiring manual conversion of the tasks to observable sequences using . + + + + Projects each element of an observable sequence to a task by incorporating the element's index, invokes the result selector for the source element and the task result, and merges the results into one observable sequence. + + The type of the elements in the source sequence. + The type of the results produced by the projected intermediate tasks. + The type of the elements in the result sequence, obtained by using the selector to combine source sequence elements with their corresponding intermediate task results. + An observable sequence of elements to project. + A transform function to apply to each element; the second parameter of the function represents the index of the source element. + A transform function to apply to each element of the intermediate sequence; the second parameter of the function represents the index of the source element. + An observable sequence whose elements are the result of obtaining a task for each element of the input sequence and then mapping the task's result and its corresponding source element to a result element. + or or is null. + This overload supports using LINQ query comprehension syntax in C# and Visual Basic to compose observable sequences and tasks, without requiring manual conversion of the tasks to observable sequences using . + + + + Projects each element of an observable sequence to a task with cancellation support, invokes the result selector for the source element and the task result, and merges the results into one observable sequence. + + The type of the elements in the source sequence. + The type of the results produced by the projected intermediate tasks. + The type of the elements in the result sequence, obtained by using the selector to combine source sequence elements with their corresponding intermediate task results. + An observable sequence of elements to project. + A transform function to apply to each element. + A transform function to apply to each element of the intermediate sequence. + An observable sequence whose elements are the result of obtaining a task for each element of the input sequence and then mapping the task's result and its corresponding source element to a result element. + or or is null. + This overload supports using LINQ query comprehension syntax in C# and Visual Basic to compose observable sequences and tasks, without requiring manual conversion of the tasks to observable sequences using . + + + + Projects each element of an observable sequence to a task by incorporating the element's index with cancellation support, invokes the result selector for the source element and the task result, and merges the results into one observable sequence. + + The type of the elements in the source sequence. + The type of the results produced by the projected intermediate tasks. + The type of the elements in the result sequence, obtained by using the selector to combine source sequence elements with their corresponding intermediate task results. + An observable sequence of elements to project. + A transform function to apply to each element; the second parameter of the function represents the index of the source element. + A transform function to apply to each element of the intermediate sequence; the second parameter of the function represents the index of the source element. + An observable sequence whose elements are the result of obtaining a task for each element of the input sequence and then mapping the task's result and its corresponding source element to a result element. + or or is null. + This overload supports using LINQ query comprehension syntax in C# and Visual Basic to compose observable sequences and tasks, without requiring manual conversion of the tasks to observable sequences using . + + + + Projects each notification of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected inner sequences and the elements in the merged result sequence. + An observable sequence of notifications to project. + A transform function to apply to each element. + A transform function to apply when an error occurs in the source sequence. + A transform function to apply when the end of the source sequence is reached. + An observable sequence whose elements are the result of invoking the one-to-many transform function corresponding to each notification in the input sequence. + or or or is null. + + + + Projects each notification of an observable sequence to an observable sequence by incorporating the element's index and merges the resulting observable sequences into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected inner sequences and the elements in the merged result sequence. + An observable sequence of notifications to project. + A transform function to apply to each element; the second parameter of the function represents the index of the source element. + A transform function to apply when an error occurs in the source sequence. + A transform function to apply when the end of the source sequence is reached. + An observable sequence whose elements are the result of invoking the one-to-many transform function corresponding to each notification in the input sequence. + or or or is null. + + + + Projects each element of an observable sequence to an enumerable sequence and concatenates the resulting enumerable sequences into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected inner enumerable sequences and the elements in the merged result sequence. + An observable sequence of elements to project. + A transform function to apply to each element. + An observable sequence whose elements are the result of invoking the one-to-many transform function on each element of the input sequence. + or is null. + The projected sequences are enumerated synchronously within the OnNext call of the source sequence. In order to do a concurrent, non-blocking merge, change the selector to return an observable sequence obtained using the conversion. + + + + Projects each element of an observable sequence to an enumerable sequence by incorporating the element's index and concatenates the resulting enumerable sequences into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected inner enumerable sequences and the elements in the merged result sequence. + An observable sequence of elements to project. + A transform function to apply to each element; the second parameter of the function represents the index of the source element. + An observable sequence whose elements are the result of invoking the one-to-many transform function on each element of the input sequence. + or is null. + The projected sequences are enumerated synchronously within the OnNext call of the source sequence. In order to do a concurrent, non-blocking merge, change the selector to return an observable sequence obtained using the conversion. + + + + Projects each element of an observable sequence to an enumerable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected intermediate enumerable sequences. + The type of the elements in the result sequence, obtained by using the selector to combine source sequence elements with their corresponding intermediate sequence elements. + An observable sequence of elements to project. + A transform function to apply to each element. + A transform function to apply to each element of the intermediate sequence. + An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + or or is null. + The projected sequences are enumerated synchronously within the OnNext call of the source sequence. In order to do a concurrent, non-blocking merge, change the selector to return an observable sequence obtained using the conversion. + + + + Projects each element of an observable sequence to an enumerable sequence by incorporating the element's index, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected intermediate enumerable sequences. + The type of the elements in the result sequence, obtained by using the selector to combine source sequence elements with their corresponding intermediate sequence elements. + An observable sequence of elements to project. + A transform function to apply to each element; the second parameter of the function represents the index of the source element. + A transform function to apply to each element of the intermediate sequence; the second parameter of the function represents the index of the source element and the fourth parameter represents the index of the intermediate element. + An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + or or is null. + The projected sequences are enumerated synchronously within the OnNext call of the source sequence. In order to do a concurrent, non-blocking merge, change the selector to return an observable sequence obtained using the conversion. + + + + Bypasses a specified number of elements in an observable sequence and then returns the remaining elements. + + The type of the elements in the source sequence. + The sequence to take elements from. + The number of elements to skip before returning the remaining elements. + An observable sequence that contains the elements that occur after the specified index in the input sequence. + is null. + is less than zero. + + + + Bypasses elements in an observable sequence as long as a specified condition is true and then returns the remaining elements. + + The type of the elements in the source sequence. + An observable sequence to return elements from. + A function to test each element for a condition. + An observable sequence that contains the elements from the input sequence starting at the first element in the linear series that does not pass the test specified by predicate. + or is null. + + + + Bypasses elements in an observable sequence as long as a specified condition is true and then returns the remaining elements. + The element's index is used in the logic of the predicate function. + + The type of the elements in the source sequence. + An observable sequence to return elements from. + A function to test each element for a condition; the second parameter of the function represents the index of the source element. + An observable sequence that contains the elements from the input sequence starting at the first element in the linear series that does not pass the test specified by predicate. + or is null. + + + + Returns a specified number of contiguous elements from the start of an observable sequence. + + The type of the elements in the source sequence. + The sequence to take elements from. + The number of elements to return. + An observable sequence that contains the specified number of elements from the start of the input sequence. + is null. + is less than zero. + + + + Returns a specified number of contiguous elements from the start of an observable sequence, using the specified scheduler for the edge case of Take(0). + + The type of the elements in the source sequence. + The sequence to take elements from. + The number of elements to return. + Scheduler used to produce an OnCompleted message in case count is set to 0. + An observable sequence that contains the specified number of elements from the start of the input sequence. + or is null. + is less than zero. + + + + Returns elements from an observable sequence as long as a specified condition is true. + + The type of the elements in the source sequence. + A sequence to return elements from. + A function to test each element for a condition. + An observable sequence that contains the elements from the input sequence that occur before the element at which the test no longer passes. + or is null. + + + + Returns elements from an observable sequence as long as a specified condition is true. + The element's index is used in the logic of the predicate function. + + The type of the elements in the source sequence. + A sequence to return elements from. + A function to test each element for a condition; the second parameter of the function represents the index of the source element. + An observable sequence that contains the elements from the input sequence that occur before the element at which the test no longer passes. + or is null. + + + + Filters the elements of an observable sequence based on a predicate. + + The type of the elements in the source sequence. + An observable sequence whose elements to filter. + A function to test each source element for a condition. + An observable sequence that contains elements from the input sequence that satisfy the condition. + or is null. + + + + Filters the elements of an observable sequence based on a predicate by incorporating the element's index. + + The type of the elements in the source sequence. + An observable sequence whose elements to filter. + A function to test each source element for a condition; the second parameter of the function represents the index of the source element. + An observable sequence that contains elements from the input sequence that satisfy the condition. + or is null. + + + + Projects each element of an observable sequence into consecutive non-overlapping buffers which are produced based on timing information. + + The type of the elements in the source sequence, and in the lists in the result sequence. + Source sequence to produce buffers over. + Length of each buffer. + An observable sequence of buffers. + is null. + is less than TimeSpan.Zero. + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create buffers as fast as it can. + Because all source sequence elements end up in one of the buffers, some buffers won't have a zero time span. This is a side-effect of the asynchrony introduced + by the scheduler, where the action to close the current buffer and to create a new buffer may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Projects each element of an observable sequence into consecutive non-overlapping buffers which are produced based on timing information, using the specified scheduler to run timers. + + The type of the elements in the source sequence, and in the lists in the result sequence. + Source sequence to produce buffers over. + Length of each buffer. + Scheduler to run buffering timers on. + An observable sequence of buffers. + or is null. + is less than TimeSpan.Zero. + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create buffers as fast as it can. + Because all source sequence elements end up in one of the buffers, some buffers won't have a zero time span. This is a side-effect of the asynchrony introduced + by the scheduler, where the action to close the current buffer and to create a new buffer may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Projects each element of an observable sequence into zero or more buffers which are produced based on timing information. + + The type of the elements in the source sequence, and in the lists in the result sequence. + Source sequence to produce buffers over. + Length of each buffer. + Interval between creation of consecutive buffers. + An observable sequence of buffers. + is null. + or is less than TimeSpan.Zero. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create buffers with minimum duration + length. However, some buffers won't have a zero time span. This is a side-effect of the asynchrony introduced by the scheduler, where the action to close the + current buffer may not execute immediately, despite the TimeSpan.Zero due time. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create buffers as fast as it can. + However, this doesn't mean all buffers will start at the beginning of the source sequence. This is a side-effect of the asynchrony introduced by the scheduler, + where the action to create a new buffer may not execute immediately, despite the TimeSpan.Zero due time. + + + + + + Projects each element of an observable sequence into zero or more buffers which are produced based on timing information, using the specified scheduler to run timers. + + The type of the elements in the source sequence, and in the lists in the result sequence. + Source sequence to produce buffers over. + Length of each buffer. + Interval between creation of consecutive buffers. + Scheduler to run buffering timers on. + An observable sequence of buffers. + or is null. + or is less than TimeSpan.Zero. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create buffers with minimum duration + length. However, some buffers won't have a zero time span. This is a side-effect of the asynchrony introduced by the scheduler, where the action to close the + current buffer may not execute immediately, despite the TimeSpan.Zero due time. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create buffers as fast as it can. + However, this doesn't mean all buffers will start at the beginning of the source sequence. This is a side-effect of the asynchrony introduced by the scheduler, + where the action to create a new buffer may not execute immediately, despite the TimeSpan.Zero due time. + + + + + + Projects each element of an observable sequence into a buffer that's sent out when either it's full or a given amount of time has elapsed. + A useful real-world analogy of this overload is the behavior of a ferry leaving the dock when all seats are taken, or at the scheduled time of departure, whichever event occurs first. + + The type of the elements in the source sequence, and in the lists in the result sequence. + Source sequence to produce buffers over. + Maximum time length of a window. + Maximum element count of a window. + An observable sequence of buffers. + is null. + is less than TimeSpan.Zero. -or- is less than or equal to zero. + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create buffers as fast as it can. + Because all source sequence elements end up in one of the buffers, some buffers won't have a zero time span. This is a side-effect of the asynchrony introduced + by the scheduler, where the action to close the current buffer and to create a new buffer may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Projects each element of an observable sequence into a buffer that's sent out when either it's full or a given amount of time has elapsed, using the specified scheduler to run timers. + A useful real-world analogy of this overload is the behavior of a ferry leaving the dock when all seats are taken, or at the scheduled time of departure, whichever event occurs first. + + The type of the elements in the source sequence, and in the lists in the result sequence. + Source sequence to produce buffers over. + Maximum time length of a buffer. + Maximum element count of a buffer. + Scheduler to run buffering timers on. + An observable sequence of buffers. + or is null. + is less than TimeSpan.Zero. -or- is less than or equal to zero. + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create buffers as fast as it can. + Because all source sequence elements end up in one of the buffers, some buffers won't have a zero time span. This is a side-effect of the asynchrony introduced + by the scheduler, where the action to close the current buffer and to create a new buffer may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Time shifts the observable sequence by the specified relative time duration. + The relative time intervals between the values are preserved. + + The type of the elements in the source sequence. + Source sequence to delay values for. + Relative time by which to shift the observable sequence. If this value is equal to TimeSpan.Zero, the scheduler will dispatch observer callbacks as soon as possible. + Time-shifted sequence. + is null. + is less than TimeSpan.Zero. + + + This operator is less efficient than DelaySubscription because it records all notifications and time-delays those. This allows for immediate propagation of errors. + + + Observer callbacks for the resulting sequence will be run on the default scheduler. This effect is similar to using ObserveOn. + + + Exceptions signaled by the source sequence through an OnError callback are forwarded immediately to the result sequence. Any OnNext notifications that were in the queue at the point of the OnError callback will be dropped. + In order to delay error propagation, consider using the Observable.Materialize and Observable.Dematerialize operators, or use DelaySubscription. + + + + + + Time shifts the observable sequence by the specified relative time duration, using the specified scheduler to run timers. + The relative time intervals between the values are preserved. + + The type of the elements in the source sequence. + Source sequence to delay values for. + Relative time by which to shift the observable sequence. If this value is equal to TimeSpan.Zero, the scheduler will dispatch observer callbacks as soon as possible. + Scheduler to run the delay timers on. + Time-shifted sequence. + or is null. + is less than TimeSpan.Zero. + + + This operator is less efficient than DelaySubscription because it records all notifications and time-delays those. This allows for immediate propagation of errors. + + + Observer callbacks for the resulting sequence will be run on the specified scheduler. This effect is similar to using ObserveOn. + + + Exceptions signaled by the source sequence through an OnError callback are forwarded immediately to the result sequence. Any OnNext notifications that were in the queue at the point of the OnError callback will be dropped. + + + Exceptions signaled by the source sequence through an OnError callback are forwarded immediately to the result sequence. Any OnNext notifications that were in the queue at the point of the OnError callback will be dropped. + In order to delay error propagation, consider using the Observable.Materialize and Observable.Dematerialize operators, or use DelaySubscription. + + + + + + Time shifts the observable sequence to start propagating notifications at the specified absolute time. + The relative time intervals between the values are preserved. + + The type of the elements in the source sequence. + Source sequence to delay values for. + Absolute time used to shift the observable sequence; the relative time shift gets computed upon subscription. If this value is less than or equal to DateTimeOffset.UtcNow, the scheduler will dispatch observer callbacks as soon as possible. + Time-shifted sequence. + is null. + + + This operator is less efficient than DelaySubscription because it records all notifications and time-delays those. This allows for immediate propagation of errors. + + + Observer callbacks for the resulting sequence will be run on the default scheduler. This effect is similar to using ObserveOn. + + + Exceptions signaled by the source sequence through an OnError callback are forwarded immediately to the result sequence. Any OnNext notifications that were in the queue at the point of the OnError callback will be dropped. + In order to delay error propagation, consider using the Observable.Materialize and Observable.Dematerialize operators, or use DelaySubscription. + + + + + + Time shifts the observable sequence to start propagating notifications at the specified absolute time, using the specified scheduler to run timers. + The relative time intervals between the values are preserved. + + The type of the elements in the source sequence. + Source sequence to delay values for. + Absolute time used to shift the observable sequence; the relative time shift gets computed upon subscription. If this value is less than or equal to DateTimeOffset.UtcNow, the scheduler will dispatch observer callbacks as soon as possible. + Scheduler to run the delay timers on. + Time-shifted sequence. + or is null. + + + This operator is less efficient than DelaySubscription because it records all notifications and time-delays those. This allows for immediate propagation of errors. + + + Observer callbacks for the resulting sequence will be run on the specified scheduler. This effect is similar to using ObserveOn. + + + Exceptions signaled by the source sequence through an OnError callback are forwarded immediately to the result sequence. Any OnNext notifications that were in the queue at the point of the OnError callback will be dropped. + In order to delay error propagation, consider using the Observable.Materialize and Observable.Dematerialize operators, or use DelaySubscription. + + + + + + Time shifts the observable sequence based on a delay selector function for each element. + + The type of the elements in the source sequence. + The type of the elements in the delay sequences used to denote the delay duration of each element in the source sequence. + Source sequence to delay values for. + Selector function to retrieve a sequence indicating the delay for each given element. + Time-shifted sequence. + or is null. + + + + Time shifts the observable sequence based on a subscription delay and a delay selector function for each element. + + The type of the elements in the source sequence. + The type of the elements in the delay sequences used to denote the delay duration of each element in the source sequence. + Source sequence to delay values for. + Sequence indicating the delay for the subscription to the source. + Selector function to retrieve a sequence indicating the delay for each given element. + Time-shifted sequence. + or or is null. + + + + Time shifts the observable sequence by delaying the subscription with the specified relative time duration. + + The type of the elements in the source sequence. + Source sequence to delay subscription for. + Relative time shift of the subscription. + Time-shifted sequence. + is null. + is less than TimeSpan.Zero. + + + This operator is more efficient than Delay but postpones all side-effects of subscription and affects error propagation timing. + + + The side-effects of subscribing to the source sequence will be run on the default scheduler. Observer callbacks will not be affected. + + + + + + Time shifts the observable sequence by delaying the subscription with the specified relative time duration, using the specified scheduler to run timers. + + The type of the elements in the source sequence. + Source sequence to delay subscription for. + Relative time shift of the subscription. + Scheduler to run the subscription delay timer on. + Time-shifted sequence. + or is null. + is less than TimeSpan.Zero. + + + This operator is more efficient than Delay but postpones all side-effects of subscription and affects error propagation timing. + + + The side-effects of subscribing to the source sequence will be run on the specified scheduler. Observer callbacks will not be affected. + + + + + + Time shifts the observable sequence by delaying the subscription to the specified absolute time. + + The type of the elements in the source sequence. + Source sequence to delay subscription for. + Absolute time to perform the subscription at. + Time-shifted sequence. + is null. + + + This operator is more efficient than Delay but postpones all side-effects of subscription and affects error propagation timing. + + + The side-effects of subscribing to the source sequence will be run on the default scheduler. Observer callbacks will not be affected. + + + + + + Time shifts the observable sequence by delaying the subscription to the specified absolute time, using the specified scheduler to run timers. + + The type of the elements in the source sequence. + Source sequence to delay subscription for. + Absolute time to perform the subscription at. + Scheduler to run the subscription delay timer on. + Time-shifted sequence. + or is null. + + + This operator is more efficient than Delay but postpones all side-effects of subscription and affects error propagation timing. + + + The side-effects of subscribing to the source sequence will be run on the specified scheduler. Observer callbacks will not be affected. + + + + + + Generates an observable sequence by running a state-driven and temporal loop producing the sequence's elements. + + The type of the state used in the generator loop. + The type of the elements in the produced sequence. + Initial state. + Condition to terminate generation (upon returning false). + Iteration step function. + Selector function for results produced in the sequence. + Time selector function to control the speed of values being produced each iteration. + The generated sequence. + or or or is null. + + + + Generates an observable sequence by running a state-driven and temporal loop producing the sequence's elements, using the specified scheduler to run timers and to send out observer messages. + + The type of the state used in the generator loop. + The type of the elements in the produced sequence. + Initial state. + Condition to terminate generation (upon returning false). + Iteration step function. + Selector function for results produced in the sequence. + Time selector function to control the speed of values being produced each iteration. + Scheduler on which to run the generator loop. + The generated sequence. + or or or or is null. + + + + Generates an observable sequence by running a state-driven and temporal loop producing the sequence's elements. + + The type of the state used in the generator loop. + The type of the elements in the produced sequence. + Initial state. + Condition to terminate generation (upon returning false). + Iteration step function. + Selector function for results produced in the sequence. + Time selector function to control the speed of values being produced each iteration. + The generated sequence. + or or or is null. + + + + Generates an observable sequence by running a state-driven and temporal loop producing the sequence's elements, using the specified scheduler to run timers and to send out observer messages. + + The type of the state used in the generator loop. + The type of the elements in the produced sequence. + Initial state. + Condition to terminate generation (upon returning false). + Iteration step function. + Selector function for results produced in the sequence. + Time selector function to control the speed of values being produced each iteration. + Scheduler on which to run the generator loop. + The generated sequence. + or or or or is null. + + + + Returns an observable sequence that produces a value after each period. + + Period for producing the values in the resulting sequence. If this value is equal to TimeSpan.Zero, the timer will recur as fast as possible. + An observable sequence that produces a value after each period. + is less than TimeSpan.Zero. + + Intervals are measured between the start of subsequent notifications, not between the end of the previous and the start of the next notification. + If the observer takes longer than the interval period to handle the message, the subsequent notification will be delivered immediately after the + current one has been handled. In case you need to control the time between the end and the start of consecutive notifications, consider using the + + operator instead. + + + + + Returns an observable sequence that produces a value after each period, using the specified scheduler to run timers and to send out observer messages. + + Period for producing the values in the resulting sequence. If this value is equal to TimeSpan.Zero, the timer will recur as fast as possible. + Scheduler to run the timer on. + An observable sequence that produces a value after each period. + is less than TimeSpan.Zero. + is null. + + Intervals are measured between the start of subsequent notifications, not between the end of the previous and the start of the next notification. + If the observer takes longer than the interval period to handle the message, the subsequent notification will be delivered immediately after the + current one has been handled. In case you need to control the time between the end and the start of consecutive notifications, consider using the + + operator instead. + + + + + Samples the observable sequence at each interval. + Upon each sampling tick, the latest element (if any) in the source sequence during the last sampling interval is sent to the resulting sequence. + + The type of the elements in the source sequence. + Source sequence to sample. + Interval at which to sample. If this value is equal to TimeSpan.Zero, the scheduler will continuously sample the stream. + Sampled observable sequence. + is null. + is less than TimeSpan.Zero. + + Specifying a TimeSpan.Zero value for doesn't guarantee all source sequence elements will be preserved. This is a side-effect + of the asynchrony introduced by the scheduler, where the sampling action may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Samples the observable sequence at each interval, using the specified scheduler to run sampling timers. + Upon each sampling tick, the latest element (if any) in the source sequence during the last sampling interval is sent to the resulting sequence. + + The type of the elements in the source sequence. + Source sequence to sample. + Interval at which to sample. If this value is equal to TimeSpan.Zero, the scheduler will continuously sample the stream. + Scheduler to run the sampling timer on. + Sampled observable sequence. + or is null. + is less than TimeSpan.Zero. + + Specifying a TimeSpan.Zero value for doesn't guarantee all source sequence elements will be preserved. This is a side-effect + of the asynchrony introduced by the scheduler, where the sampling action may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Samples the source observable sequence using a sampler observable sequence producing sampling ticks. + Upon each sampling tick, the latest element (if any) in the source sequence during the last sampling interval is sent to the resulting sequence. + + The type of the elements in the source sequence. + The type of the elements in the sampling sequence. + Source sequence to sample. + Sampling tick sequence. + Sampled observable sequence. + or is null. + + + + Skips elements for the specified duration from the start of the observable source sequence. + + The type of the elements in the source sequence. + Source sequence to skip elements for. + Duration for skipping elements from the start of the sequence. + An observable sequence with the elements skipped during the specified duration from the start of the source sequence. + is null. + is less than TimeSpan.Zero. + + + Specifying a TimeSpan.Zero value for doesn't guarantee no elements will be dropped from the start of the source sequence. + This is a side-effect of the asynchrony introduced by the scheduler, where the action that causes callbacks from the source sequence to be forwarded + may not execute immediately, despite the TimeSpan.Zero due time. + + + Errors produced by the source sequence are always forwarded to the result sequence, even if the error occurs before the . + + + + + + Skips elements for the specified duration from the start of the observable source sequence, using the specified scheduler to run timers. + + The type of the elements in the source sequence. + Source sequence to skip elements for. + Duration for skipping elements from the start of the sequence. + Scheduler to run the timer on. + An observable sequence with the elements skipped during the specified duration from the start of the source sequence. + or is null. + is less than TimeSpan.Zero. + + + Specifying a TimeSpan.Zero value for doesn't guarantee no elements will be dropped from the start of the source sequence. + This is a side-effect of the asynchrony introduced by the scheduler, where the action that causes callbacks from the source sequence to be forwarded + may not execute immediately, despite the TimeSpan.Zero due time. + + + Errors produced by the source sequence are always forwarded to the result sequence, even if the error occurs before the . + + + + + + Skips elements for the specified duration from the end of the observable source sequence. + + The type of the elements in the source sequence. + Source sequence to skip elements for. + Duration for skipping elements from the end of the sequence. + An observable sequence with the elements skipped during the specified duration from the end of the source sequence. + is null. + is less than TimeSpan.Zero. + + This operator accumulates a queue with a length enough to store elements received during the initial window. + As more elements are received, elements older than the specified are taken from the queue and produced on the + result sequence. This causes elements to be delayed with . + + + + + Skips elements for the specified duration from the end of the observable source sequence, using the specified scheduler to run timers. + + The type of the elements in the source sequence. + Source sequence to skip elements for. + Duration for skipping elements from the end of the sequence. + Scheduler to run the timer on. + An observable sequence with the elements skipped during the specified duration from the end of the source sequence. + or is null. + is less than TimeSpan.Zero. + + This operator accumulates a queue with a length enough to store elements received during the initial window. + As more elements are received, elements older than the specified are taken from the queue and produced on the + result sequence. This causes elements to be delayed with . + + + + + Skips elements from the observable source sequence until the specified start time. + + The type of the elements in the source sequence. + Source sequence to skip elements for. + Time to start taking elements from the source sequence. If this value is less than or equal to DateTimeOffset.UtcNow, no elements will be skipped. + An observable sequence with the elements skipped until the specified start time. + is null. + + Errors produced by the source sequence are always forwarded to the result sequence, even if the error occurs before the . + + + + + Skips elements from the observable source sequence until the specified start time, using the specified scheduler to run timers. + + The type of the elements in the source sequence. + Source sequence to skip elements for. + Time to start taking elements from the source sequence. If this value is less than or equal to DateTimeOffset.UtcNow, no elements will be skipped. + Scheduler to run the timer on. + An observable sequence with the elements skipped until the specified start time. + or is null. + + Errors produced by the source sequence are always forwarded to the result sequence, even if the error occurs before the . + + + + + Takes elements for the specified duration from the start of the observable source sequence. + + The type of the elements in the source sequence. + Source sequence to take elements from. + Duration for taking elements from the start of the sequence. + An observable sequence with the elements taken during the specified duration from the start of the source sequence. + is null. + is less than TimeSpan.Zero. + + Specifying a TimeSpan.Zero value for doesn't guarantee an empty sequence will be returned. This is a side-effect + of the asynchrony introduced by the scheduler, where the action that stops forwarding callbacks from the source sequence may not execute + immediately, despite the TimeSpan.Zero due time. + + + + + Takes elements for the specified duration from the start of the observable source sequence, using the specified scheduler to run timers. + + The type of the elements in the source sequence. + Source sequence to take elements from. + Duration for taking elements from the start of the sequence. + Scheduler to run the timer on. + An observable sequence with the elements taken during the specified duration from the start of the source sequence. + or is null. + is less than TimeSpan.Zero. + + Specifying a TimeSpan.Zero value for doesn't guarantee an empty sequence will be returned. This is a side-effect + of the asynchrony introduced by the scheduler, where the action that stops forwarding callbacks from the source sequence may not execute + immediately, despite the TimeSpan.Zero due time. + + + + + Returns elements within the specified duration from the end of the observable source sequence. + + The type of the elements in the source sequence. + Source sequence to take elements from. + Duration for taking elements from the end of the sequence. + An observable sequence with the elements taken during the specified duration from the end of the source sequence. + is null. + is less than TimeSpan.Zero. + + This operator accumulates a buffer with a length enough to store elements for any window during the lifetime of + the source sequence. Upon completion of the source sequence, this buffer is drained on the result sequence. This causes the result elements + to be delayed with . + + + + + Returns elements within the specified duration from the end of the observable source sequence, using the specified scheduler to run timers. + + The type of the elements in the source sequence. + Source sequence to take elements from. + Duration for taking elements from the end of the sequence. + Scheduler to run the timer on. + An observable sequence with the elements taken during the specified duration from the end of the source sequence. + or is null. + is less than TimeSpan.Zero. + + This operator accumulates a buffer with a length enough to store elements for any window during the lifetime of + the source sequence. Upon completion of the source sequence, this buffer is drained on the result sequence. This causes the result elements + to be delayed with . + + + + + Returns elements within the specified duration from the end of the observable source sequence, using the specified schedulers to run timers and to drain the collected elements. + + The type of the elements in the source sequence. + Source sequence to take elements from. + Duration for taking elements from the end of the sequence. + Scheduler to run the timer on. + Scheduler to drain the collected elements. + An observable sequence with the elements taken during the specified duration from the end of the source sequence. + or or is null. + is less than TimeSpan.Zero. + + This operator accumulates a buffer with a length enough to store elements for any window during the lifetime of + the source sequence. Upon completion of the source sequence, this buffer is drained on the result sequence. This causes the result elements + to be delayed with . + + + + + Returns a list with the elements within the specified duration from the end of the observable source sequence. + + The type of the elements in the source sequence. + Source sequence to take elements from. + Duration for taking elements from the end of the sequence. + An observable sequence containing a single list with the elements taken during the specified duration from the end of the source sequence. + is null. + is less than TimeSpan.Zero. + + This operator accumulates a buffer with a length enough to store elements for any window during the lifetime of + the source sequence. Upon completion of the source sequence, this buffer is produced on the result sequence. + + + + + Returns a list with the elements within the specified duration from the end of the observable source sequence, using the specified scheduler to run timers. + + The type of the elements in the source sequence. + Source sequence to take elements from. + Duration for taking elements from the end of the sequence. + Scheduler to run the timer on. + An observable sequence containing a single list with the elements taken during the specified duration from the end of the source sequence. + or is null. + is less than TimeSpan.Zero. + + This operator accumulates a buffer with a length enough to store elements for any window during the lifetime of + the source sequence. Upon completion of the source sequence, this buffer is produced on the result sequence. + + + + + Takes elements for the specified duration until the specified end time. + + The type of the elements in the source sequence. + Source sequence to take elements from. + Time to stop taking elements from the source sequence. If this value is less than or equal to DateTimeOffset.UtcNow, the result stream will complete immediately. + An observable sequence with the elements taken until the specified end time. + is null. + + + + Takes elements for the specified duration until the specified end time, using the specified scheduler to run timers. + + The type of the elements in the source sequence. + Source sequence to take elements from. + Time to stop taking elements from the source sequence. If this value is less than or equal to DateTimeOffset.UtcNow, the result stream will complete immediately. + Scheduler to run the timer on. + An observable sequence with the elements taken until the specified end time. + or is null. + + + + Ignores elements from an observable sequence which are followed by another element within a specified relative time duration. + + The type of the elements in the source sequence. + Source sequence to throttle. + Throttling duration for each element. + The throttled sequence. + is null. + is less than TimeSpan.Zero. + + + This operator throttles the source sequence by holding on to each element for the duration specified in . If another + element is produced within this time window, the element is dropped and a new timer is started for the current element, repeating this whole + process. For streams that never have gaps larger than or equal to between elements, the resulting stream won't + produce any elements. In order to reduce the volume of a stream whilst guaranteeing the periodic production of elements, consider using the + Observable.Sample set of operators. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing throttling timers to be scheduled + that are due immediately. However, this doesn't guarantee all elements will be retained in the result sequence. This is a side-effect of the + asynchrony introduced by the scheduler, where the action to forward the current element may not execute immediately, despite the TimeSpan.Zero + due time. In such cases, the next element may arrive before the scheduler gets a chance to run the throttling action. + + + + + + Ignores elements from an observable sequence which are followed by another element within a specified relative time duration, using the specified scheduler to run throttling timers. + + The type of the elements in the source sequence. + Source sequence to throttle. + Throttling duration for each element. + Scheduler to run the throttle timers on. + The throttled sequence. + or is null. + is less than TimeSpan.Zero. + + + This operator throttles the source sequence by holding on to each element for the duration specified in . If another + element is produced within this time window, the element is dropped and a new timer is started for the current element, repeating this whole + process. For streams that never have gaps larger than or equal to between elements, the resulting stream won't + produce any elements. In order to reduce the volume of a stream whilst guaranteeing the periodic production of elements, consider using the + Observable.Sample set of operators. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing throttling timers to be scheduled + that are due immediately. However, this doesn't guarantee all elements will be retained in the result sequence. This is a side-effect of the + asynchrony introduced by the scheduler, where the action to forward the current element may not execute immediately, despite the TimeSpan.Zero + due time. In such cases, the next element may arrive before the scheduler gets a chance to run the throttling action. + + + + + + Ignores elements from an observable sequence which are followed by another value within a computed throttle duration. + + The type of the elements in the source sequence. + The type of the elements in the throttle sequences selected for each element in the source sequence. + Source sequence to throttle. + Selector function to retrieve a sequence indicating the throttle duration for each given element. + The throttled sequence. + or is null. + + This operator throttles the source sequence by holding on to each element for the duration denoted by . + If another element is produced within this time window, the element is dropped and a new timer is started for the current element, repeating this + whole process. For streams where the duration computed by applying the to each element overlaps with + the occurrence of the successor element, the resulting stream won't produce any elements. In order to reduce the volume of a stream whilst + guaranteeing the periodic production of elements, consider using the Observable.Sample set of operators. + + + + + Records the time interval between consecutive elements in an observable sequence. + + The type of the elements in the source sequence. + Source sequence to record time intervals for. + An observable sequence with time interval information on elements. + is null. + + + + Records the time interval between consecutive elements in an observable sequence, using the specified scheduler to compute time intervals. + + The type of the elements in the source sequence. + Source sequence to record time intervals for. + Scheduler used to compute time intervals. + An observable sequence with time interval information on elements. + or is null. + + + + Applies a timeout policy for each element in the observable sequence. + If the next element isn't received within the specified timeout duration starting from its predecessor, a TimeoutException is propagated to the observer. + + The type of the elements in the source sequence. + Source sequence to perform a timeout for. + Maximum duration between values before a timeout occurs. + The source sequence with a TimeoutException in case of a timeout. + is null. + is less than TimeSpan.Zero. + (Asynchronous) If no element is produced within from the previous element. + + + In case you only want to timeout on the first element, consider using the + operator applied to the source sequence and a delayed sequence. Alternatively, the general-purpose overload + of Timeout, can be used. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing timeout timers to be scheduled that are due + immediately. However, this doesn't guarantee a timeout will occur, even for the first element. This is a side-effect of the asynchrony introduced by the + scheduler, where the action to propagate a timeout may not execute immediately, despite the TimeSpan.Zero due time. In such cases, the next element may + arrive before the scheduler gets a chance to run the timeout action. + + + + + + Applies a timeout policy for each element in the observable sequence, using the specified scheduler to run timeout timers. + If the next element isn't received within the specified timeout duration starting from its predecessor, a TimeoutException is propagated to the observer. + + The type of the elements in the source sequence. + Source sequence to perform a timeout for. + Maximum duration between values before a timeout occurs. + Scheduler to run the timeout timers on. + The source sequence with a TimeoutException in case of a timeout. + or is null. + is less than TimeSpan.Zero. + (Asynchronous) If no element is produced within from the previous element. + + + In case you only want to timeout on the first element, consider using the + operator applied to the source sequence and a delayed sequence. Alternatively, the general-purpose overload + of Timeout, can be used. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing timeout timers to be scheduled that are due + immediately. However, this doesn't guarantee a timeout will occur, even for the first element. This is a side-effect of the asynchrony introduced by the + scheduler, where the action to propagate a timeout may not execute immediately, despite the TimeSpan.Zero due time. In such cases, the next element may + arrive before the scheduler gets a chance to run the timeout action. + + + + + + Applies a timeout policy for each element in the observable sequence. + If the next element isn't received within the specified timeout duration starting from its predecessor, the other observable sequence is used to produce future messages from that point on. + + The type of the elements in the source sequence and the other sequence used upon a timeout. + Source sequence to perform a timeout for. + Maximum duration between values before a timeout occurs. + Sequence to return in case of a timeout. + The source sequence switching to the other sequence in case of a timeout. + or is null. + is less than TimeSpan.Zero. + + + In case you only want to timeout on the first element, consider using the + operator applied to the source sequence and a delayed sequence. Alternatively, the general-purpose overload + of Timeout, can be used. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing timeout timers to be scheduled that are due + immediately. However, this doesn't guarantee a timeout will occur, even for the first element. This is a side-effect of the asynchrony introduced by the + scheduler, where the action to propagate a timeout may not execute immediately, despite the TimeSpan.Zero due time. In such cases, the next element may + arrive before the scheduler gets a chance to run the timeout action. + + + + + + Applies a timeout policy for each element in the observable sequence, using the specified scheduler to run timeout timers. + If the next element isn't received within the specified timeout duration starting from its predecessor, the other observable sequence is used to produce future messages from that point on. + + The type of the elements in the source sequence and the other sequence used upon a timeout. + Source sequence to perform a timeout for. + Maximum duration between values before a timeout occurs. + Sequence to return in case of a timeout. + Scheduler to run the timeout timers on. + The source sequence switching to the other sequence in case of a timeout. + or or is null. + is less than TimeSpan.Zero. + + + In case you only want to timeout on the first element, consider using the + operator applied to the source sequence and a delayed sequence. Alternatively, the general-purpose overload + of Timeout, can be used. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing timeout timers to be scheduled that are due + immediately. However, this doesn't guarantee a timeout will occur, even for the first element. This is a side-effect of the asynchrony introduced by the + scheduler, where the action to propagate a timeout may not execute immediately, despite the TimeSpan.Zero due time. In such cases, the next element may + arrive before the scheduler gets a chance to run the timeout action. + + + + + + Applies a timeout policy to the observable sequence based on an absolute time. + If the sequence doesn't terminate before the specified absolute due time, a TimeoutException is propagated to the observer. + + The type of the elements in the source sequence. + Source sequence to perform a timeout for. + Time when a timeout occurs. If this value is less than or equal to DateTimeOffset.UtcNow, the timeout occurs immediately. + The source sequence with a TimeoutException in case of a timeout. + is null. + (Asynchronous) If the sequence hasn't terminated before . + + In case you only want to timeout on the first element, consider using the + operator applied to the source sequence and a delayed sequence. Alternatively, the general-purpose overload + of Timeout, can be used. + + + + + Applies a timeout policy to the observable sequence based on an absolute time, using the specified scheduler to run timeout timers. + If the sequence doesn't terminate before the specified absolute due time, a TimeoutException is propagated to the observer. + + The type of the elements in the source sequence. + Source sequence to perform a timeout for. + Time when a timeout occurs. If this value is less than or equal to DateTimeOffset.UtcNow, the timeout occurs immediately. + Scheduler to run the timeout timers on. + The source sequence with a TimeoutException in case of a timeout. + or is null. + (Asynchronous) If the sequence hasn't terminated before . + + In case you only want to timeout on the first element, consider using the + operator applied to the source sequence and a delayed sequence. Alternatively, the general-purpose overload + of Timeout, can be used. + + + + + Applies a timeout policy to the observable sequence based on an absolute time. + If the sequence doesn't terminate before the specified absolute due time, the other observable sequence is used to produce future messages from that point on. + + The type of the elements in the source sequence and the other sequence used upon a timeout. + Source sequence to perform a timeout for. + Time when a timeout occurs. If this value is less than or equal to DateTimeOffset.UtcNow, the timeout occurs immediately. + Sequence to return in case of a timeout. + The source sequence switching to the other sequence in case of a timeout. + or is null. + + In case you only want to timeout on the first element, consider using the + operator applied to the source sequence and a delayed sequence. Alternatively, the general-purpose overload + of Timeout, can be used. + + + + + Applies a timeout policy to the observable sequence based on an absolute time, using the specified scheduler to run timeout timers. + If the sequence doesn't terminate before the specified absolute due time, the other observable sequence is used to produce future messages from that point on. + + The type of the elements in the source sequence and the other sequence used upon a timeout. + Source sequence to perform a timeout for. + Time when a timeout occurs. If this value is less than or equal to DateTimeOffset.UtcNow, the timeout occurs immediately. + Sequence to return in case of a timeout. + Scheduler to run the timeout timers on. + The source sequence switching to the other sequence in case of a timeout. + or or is null. + + In case you only want to timeout on the first element, consider using the + operator applied to the source sequence and a delayed sequence. Alternatively, the general-purpose overload + of Timeout, can be used. + + + + + Applies a timeout policy to the observable sequence based on a timeout duration computed for each element. + If the next element isn't received within the computed duration starting from its predecessor, a TimeoutException is propagated to the observer. + + The type of the elements in the source sequence. + The type of the elements in the timeout sequences used to indicate the timeout duration for each element in the source sequence. + Source sequence to perform a timeout for. + Selector to retrieve an observable sequence that represents the timeout between the current element and the next element. + The source sequence with a TimeoutException in case of a timeout. + or is null. + + + + Applies a timeout policy to the observable sequence based on a timeout duration computed for each element. + If the next element isn't received within the computed duration starting from its predecessor, the other observable sequence is used to produce future messages from that point on. + + The type of the elements in the source sequence and the other sequence used upon a timeout. + The type of the elements in the timeout sequences used to indicate the timeout duration for each element in the source sequence. + Source sequence to perform a timeout for. + Selector to retrieve an observable sequence that represents the timeout between the current element and the next element. + Sequence to return in case of a timeout. + The source sequence switching to the other sequence in case of a timeout. + or or is null. + + + + Applies a timeout policy to the observable sequence based on an initial timeout duration for the first element, and a timeout duration computed for each subsequent element. + If the next element isn't received within the computed duration starting from its predecessor, a TimeoutException is propagated to the observer. + + The type of the elements in the source sequence. + The type of the elements in the timeout sequences used to indicate the timeout duration for each element in the source sequence. + Source sequence to perform a timeout for. + Observable sequence that represents the timeout for the first element. + Selector to retrieve an observable sequence that represents the timeout between the current element and the next element. + The source sequence with a TimeoutException in case of a timeout. + or or is null. + + + + Applies a timeout policy to the observable sequence based on an initial timeout duration for the first element, and a timeout duration computed for each subsequent element. + If the next element isn't received within the computed duration starting from its predecessor, the other observable sequence is used to produce future messages from that point on. + + The type of the elements in the source sequence and the other sequence used upon a timeout. + The type of the elements in the timeout sequences used to indicate the timeout duration for each element in the source sequence. + Source sequence to perform a timeout for. + Observable sequence that represents the timeout for the first element. + Selector to retrieve an observable sequence that represents the timeout between the current element and the next element. + Sequence to return in case of a timeout. + The source sequence switching to the other sequence in case of a timeout. + or or or is null. + + + + Returns an observable sequence that produces a single value after the specified relative due time has elapsed. + + Relative time at which to produce the value. If this value is less than or equal to TimeSpan.Zero, the timer will fire as soon as possible. + An observable sequence that produces a value after the due time has elapsed. + + + + Returns an observable sequence that produces a single value at the specified absolute due time. + + Absolute time at which to produce the value. If this value is less than or equal to DateTimeOffset.UtcNow, the timer will fire as soon as possible. + An observable sequence that produces a value at due time. + + + + Returns an observable sequence that periodically produces a value after the specified initial relative due time has elapsed. + + Relative time at which to produce the first value. If this value is less than or equal to TimeSpan.Zero, the timer will fire as soon as possible. + Period to produce subsequent values. If this value is equal to TimeSpan.Zero, the timer will recur as fast as possible. + An observable sequence that produces a value after due time has elapsed and then after each period. + is less than TimeSpan.Zero. + + + + Returns an observable sequence that periodically produces a value starting at the specified initial absolute due time. + + Absolute time at which to produce the first value. If this value is less than or equal to DateTimeOffset.UtcNow, the timer will fire as soon as possible. + Period to produce subsequent values. If this value is equal to TimeSpan.Zero, the timer will recur as fast as possible. + An observable sequence that produces a value at due time and then after each period. + is less than TimeSpan.Zero. + + + + Returns an observable sequence that produces a single value after the specified relative due time has elapsed, using the specified scheduler to run the timer. + + Relative time at which to produce the value. If this value is less than or equal to TimeSpan.Zero, the timer will fire as soon as possible. + Scheduler to run the timer on. + An observable sequence that produces a value after the due time has elapsed. + is null. + + + + Returns an observable sequence that produces a single value at the specified absolute due time, using the specified scheduler to run the timer. + + Absolute time at which to produce the value. If this value is less than or equal to DateTimeOffset.UtcNow, the timer will fire as soon as possible. + Scheduler to run the timer on. + An observable sequence that produces a value at due time. + is null. + + + + Returns an observable sequence that periodically produces a value after the specified initial relative due time has elapsed, using the specified scheduler to run timers. + + Relative time at which to produce the first value. If this value is less than or equal to TimeSpan.Zero, the timer will fire as soon as possible. + Period to produce subsequent values. If this value is equal to TimeSpan.Zero, the timer will recur as fast as possible. + Scheduler to run timers on. + An observable sequence that produces a value after due time has elapsed and then each period. + is less than TimeSpan.Zero. + is null. + + + + Returns an observable sequence that periodically produces a value starting at the specified initial absolute due time, using the specified scheduler to run timers. + + Absolute time at which to produce the first value. If this value is less than or equal to DateTimeOffset.UtcNow, the timer will fire as soon as possible. + Period to produce subsequent values. If this value is equal to TimeSpan.Zero, the timer will recur as fast as possible. + Scheduler to run timers on. + An observable sequence that produces a value at due time and then after each period. + is less than TimeSpan.Zero. + is null. + + + + Timestamps each element in an observable sequence using the local system clock. + + The type of the elements in the source sequence. + Source sequence to timestamp elements for. + An observable sequence with timestamp information on elements. + is null. + + + + Timestamp each element in an observable sequence using the clock of the specified scheduler. + + The type of the elements in the source sequence. + Source sequence to timestamp elements for. + Scheduler used to compute timestamps. + An observable sequence with timestamp information on elements. + or is null. + + + + Projects each element of an observable sequence into consecutive non-overlapping windows which are produced based on timing information. + + The type of the elements in the source sequence, and in the windows in the result sequence. + Source sequence to produce windows over. + Length of each window. + The sequence of windows. + is null. + is less than TimeSpan.Zero. + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create windows as fast as it can. + Because all source sequence elements end up in one of the windows, some windows won't have a zero time span. This is a side-effect of the asynchrony introduced + by the scheduler, where the action to close the current window and to create a new window may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Projects each element of an observable sequence into consecutive non-overlapping windows which are produced based on timing information, using the specified scheduler to run timers. + + The type of the elements in the source sequence, and in the windows in the result sequence. + Source sequence to produce windows over. + Length of each window. + Scheduler to run windowing timers on. + An observable sequence of windows. + or is null. + is less than TimeSpan.Zero. + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create windows as fast as it can. + Because all source sequence elements end up in one of the windows, some windows won't have a zero time span. This is a side-effect of the asynchrony introduced + by the scheduler, where the action to close the current window and to create a new window may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Projects each element of an observable sequence into zero or more windows which are produced based on timing information. + + The type of the elements in the source sequence, and in the windows in the result sequence. + Source sequence to produce windows over. + Length of each window. + Interval between creation of consecutive windows. + An observable sequence of windows. + is null. + or is less than TimeSpan.Zero. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create windows with minimum duration + length. However, some windows won't have a zero time span. This is a side-effect of the asynchrony introduced by the scheduler, where the action to close the + current window may not execute immediately, despite the TimeSpan.Zero due time. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create windows as fast as it can. + However, this doesn't mean all windows will start at the beginning of the source sequence. This is a side-effect of the asynchrony introduced by the scheduler, + where the action to create a new window may not execute immediately, despite the TimeSpan.Zero due time. + + + + + + Projects each element of an observable sequence into zero or more windows which are produced based on timing information, using the specified scheduler to run timers. + + The type of the elements in the source sequence, and in the windows in the result sequence. + Source sequence to produce windows over. + Length of each window. + Interval between creation of consecutive windows. + Scheduler to run windowing timers on. + An observable sequence of windows. + or is null. + or is less than TimeSpan.Zero. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create windows with minimum duration + length. However, some windows won't have a zero time span. This is a side-effect of the asynchrony introduced by the scheduler, where the action to close the + current window may not execute immediately, despite the TimeSpan.Zero due time. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create windows as fast as it can. + However, this doesn't mean all windows will start at the beginning of the source sequence. This is a side-effect of the asynchrony introduced by the scheduler, + where the action to create a new window may not execute immediately, despite the TimeSpan.Zero due time. + + + + + + Projects each element of an observable sequence into a window that is completed when either it's full or a given amount of time has elapsed. + A useful real-world analogy of this overload is the behavior of a ferry leaving the dock when all seats are taken, or at the scheduled time of departure, whichever event occurs first. + + The type of the elements in the source sequence, and in the windows in the result sequence. + Source sequence to produce windows over. + Maximum time length of a window. + Maximum element count of a window. + An observable sequence of windows. + is null. + is less than TimeSpan.Zero. -or- is less than or equal to zero. + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create windows as fast as it can. + Because all source sequence elements end up in one of the windows, some windows won't have a zero time span. This is a side-effect of the asynchrony introduced + by the scheduler, where the action to close the current window and to create a new window may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Projects each element of an observable sequence into a window that is completed when either it's full or a given amount of time has elapsed, using the specified scheduler to run timers. + A useful real-world analogy of this overload is the behavior of a ferry leaving the dock when all seats are taken, or at the scheduled time of departure, whichever event occurs first. + + The type of the elements in the source sequence, and in the windows in the result sequence. + Source sequence to produce windows over. + Maximum time length of a window. + Maximum element count of a window. + Scheduler to run windowing timers on. + An observable sequence of windows. + or is null. + is less than TimeSpan.Zero. -or- is less than or equal to zero. + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create windows as fast as it can. + Because all source sequence elements end up in one of the windows, some windows won't have a zero time span. This is a side-effect of the asynchrony introduced + by the scheduler, where the action to close the current window and to create a new window may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Provides a set of static methods for writing in-memory queries over observable sequences. + + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + First observable source. + Second observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + First observable source. + Second observable source. + Third observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or is null. + + + + Merges two observable sequences into one observable sequence by combining each element from the first source with the latest element from the second source, if any. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + First observable source. + Second observable source. + An observable sequence containing the result of combining each element of the first source with the latest element from the second source, if any, as a tuple value. + or is null. + + + + Merges an observable sequence and an enumerable sequence into one observable sequence of tuple values. + + The type of the elements in the first observable source sequence. + The type of the elements in the second enumerable source sequence. + First observable source. + Second enumerable source. + An observable sequence containing the result of pairwise combining the elements of the first and second source as a tuple value. + or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + First observable source. + Second observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + First observable source. + Second observable source. + Third observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or is null. + + + + Subscribes to each observable sequence returned by the iteratorMethod in sequence and returns the observable sequence of values sent to the observer given to the iteratorMethod. + + The type of the elements in the produced sequence. + Iterator method that produces elements in the resulting sequence by calling the given observer. + An observable sequence obtained by running the iterator and returning the elements that were sent to the observer. + is null. + + + + Subscribes to each observable sequence returned by the iteratorMethod in sequence and produces a Unit value on the resulting sequence for each step of the iteration. + + Iterator method that drives the resulting observable sequence. + An observable sequence obtained by running the iterator and returning Unit values for each iteration step. + is null. + + + + Expands an observable sequence by recursively invoking selector, using the specified scheduler to enumerate the queue of obtained sequences. + + The type of the elements in the source sequence and each of the recursively expanded sources obtained by running the selector function. + Source sequence with the initial elements. + Selector function to invoke for each produced element, resulting in another sequence to which the selector will be invoked recursively again. + Scheduler on which to perform the expansion by enumerating the internal queue of obtained sequences. + An observable sequence containing all the elements produced by the recursive expansion. + or or is null. + + + + Expands an observable sequence by recursively invoking selector. + + The type of the elements in the source sequence and each of the recursively expanded sources obtained by running the selector function. + Source sequence with the initial elements. + Selector function to invoke for each produced element, resulting in another sequence to which the selector will be invoked recursively again. + An observable sequence containing all the elements produced by the recursive expansion. + or is null. + + + + Runs two observable sequences in parallel and combines their last elements. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable sequence. + Second observable sequence. + Result selector function to invoke with the last elements of both sequences. + An observable sequence with the result of calling the selector function with the last elements of both input sequences. + or or is null. + + + + Runs all specified observable sequences in parallel and collects their last elements. + + The type of the elements in the source sequences. + Observable sequence to collect the last elements for. + An observable sequence with an array collecting the last elements of all the input sequences. + is null. + + + + Runs all observable sequences in the enumerable sources sequence in parallel and collect their last elements. + + The type of the elements in the source sequences. + Observable sequence to collect the last elements for. + An observable sequence with an array collecting the last elements of all the input sequences. + is null. + + + + Returns an observable sequence that is the result of invoking the selector on the source sequence, without sharing subscriptions. + This operator allows for a fluent style of writing queries that use the same sequence multiple times. + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence that will be shared in the selector function. + Selector function which can use the source sequence as many times as needed, without sharing subscriptions to the source sequence. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + or is null. + + + + Comonadic bind operator. + + + + + Comonadic bind operator. + + + + + Immediately subscribes to source and retains the elements in the observable sequence. + + The type of the elements in the source sequence. + Source sequence. + Object that's both an observable sequence and a list which can be used to access the source sequence's elements. + is null. + + + + Provides a set of static methods for writing queries over observable sequences, allowing translation to a target query language. + + + + + Gets the local query provider which will retarget Qbservable-based queries to the corresponding Observable-based query for in-memory execution upon subscription. + + + + + Converts an in-memory observable sequence into an sequence with an expression tree representing the source sequence. + + The type of the elements in the source sequence. + Source sequence. + sequence representing the given observable source sequence. + is null. + + + + Returns the input typed as an . + This operator is used to separate the part of the query that's captured as an expression tree from the part that's executed locally. + + The type of the elements in the source sequence. + An sequence to convert to an sequence. + The original source object, but typed as an . + is null. + + + + Converts an enumerable sequence to an observable sequence. + + The type of the elements in the source sequence. + Enumerable sequence to convert to an observable sequence. + The observable sequence whose elements are pulled from the given enumerable sequence. + is null. + This operator requires the source's object (see ) to implement . + + + + Converts an enumerable sequence to an observable sequence, using the specified scheduler to run the enumeration loop. + + The type of the elements in the source sequence. + Enumerable sequence to convert to an observable sequence. + Scheduler to run the enumeration of the input sequence on. + The observable sequence whose elements are pulled from the given enumerable sequence. + or is null. + This operator requires the source's object (see ) to implement . + + + + Applies an accumulator function over an observable sequence, returning the result of the aggregation as a single element in the result sequence. + For aggregation behavior with incremental intermediate results, see . + + The type of the elements in the source sequence and the result of the aggregation. + An observable sequence to aggregate over. + An accumulator function to be invoked on each element. + An observable sequence containing a single element with the final accumulator value. + + or is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Applies an accumulator function over an observable sequence, returning the result of the aggregation as a single element in the result sequence. The specified seed value is used as the initial accumulator value. + For aggregation behavior with incremental intermediate results, see . + + The type of the elements in the source sequence. + The type of the result of the aggregation. + An observable sequence to aggregate over. + The initial accumulator value. + An accumulator function to be invoked on each element. + An observable sequence containing a single element with the final accumulator value. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Applies an accumulator function over an observable sequence, returning the result of the aggregation as a single element in the result sequence. The specified seed value is used as the initial accumulator value, + and the specified result selector function is used to select the result value. + + The type of the elements in the source sequence. + The type of the accumulator value. + The type of the resulting value. + An observable sequence to aggregate over. + The initial accumulator value. + An accumulator function to be invoked on each element. + A function to transform the final accumulator value into the result value. + An observable sequence containing a single element with the final accumulator value. + + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Determines whether all elements of an observable sequence satisfy a condition. + + The type of the elements in the source sequence. + An observable sequence whose elements to apply the predicate to. + A function to test each element for a condition. + An observable sequence containing a single element determining whether all elements in the source sequence pass the test in the specified predicate. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Propagates the observable sequence that reacts first. + + The type of the elements in the source sequences. + First observable sequence. + Second observable sequence. + An observable sequence that surfaces either of the given sequences, whichever reacted first. + + or is null. + + + + Propagates the observable sequence that reacts first. + + Query provider used to construct the data source. + The type of the elements in the source sequences. + Observable sources competing to react first. + An observable sequence that surfaces any of the given sequences, whichever reacted first. + + is null. + + + + Propagates the observable sequence that reacts first. + + Query provider used to construct the data source. + The type of the elements in the source sequences. + Observable sources competing to react first. + An observable sequence that surfaces any of the given sequences, whichever reacted first. + + is null. + + + + Determines whether an observable sequence contains any elements. + + The type of the elements in the source sequence. + An observable sequence to check for non-emptiness. + An observable sequence containing a single element determining whether the source sequence contains any elements. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Determines whether any element of an observable sequence satisfies a condition. + + The type of the elements in the source sequence. + An observable sequence whose elements to apply the predicate to. + A function to test each element for a condition. + An observable sequence containing a single element determining whether any elements in the source sequence pass the test in the specified predicate. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Append a value to an observable sequence. + + The type of the elements in the source sequence. + Source sequence to append the value to. + Value to append to the specified sequence. + The source sequence appended with the specified value. + + is null. + + + + Append a value to an observable sequence. + + The type of the elements in the source sequence. + Source sequence to append the value to. + Value to append to the specified sequence. + Scheduler to emit the append values on. + The source sequence appended with the specified value. + + is null. + + + + Automatically connect the upstream IConnectableObservable at most once when the + specified number of IObservers have subscribed to this IObservable. + + Query provider used to construct the data source. + The type of the elements in the source sequence. + Connectable observable sequence. + The number of observers required to subscribe before the connection to source happens, non-positive value will trigger an immediate subscription. + If not null, the connection's IDisposable is provided to it. + An observable sequence that connects to the source at most once when the given number of observers have subscribed to it. + + is null. + + + + Computes the average of an observable sequence of values. + + A sequence of values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values. + + is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values. + + A sequence of values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values. + + is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values. + + A sequence of values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values. + + is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values. + + A sequence of values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values. + + is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of nullable values. + + A sequence of nullable values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + + is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of nullable values. + + A sequence of nullable values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + + is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of nullable values. + + A sequence of nullable values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + + is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + (Asynchronous) The sum of the elements in the source sequence is larger than . + + + + Computes the average of an observable sequence of nullable values. + + A sequence of nullable values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + + is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of nullable values. + + A sequence of nullable values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + + is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values. + + A sequence of values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values. + + is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values. + + or is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values. + + or is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values. + + or is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values. + + or is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values. + + or is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + + or is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + + or is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + + or is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + + or is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + + or is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Projects each element of an observable sequence into consecutive non-overlapping buffers which are produced based on element count information. + + The type of the elements in the source sequence, and in the lists in the result sequence. + Source sequence to produce buffers over. + Length of each buffer. + An observable sequence of buffers. + + is null. + + is less than or equal to zero. + + + + Projects each element of an observable sequence into zero or more buffers which are produced based on element count information. + + The type of the elements in the source sequence, and in the lists in the result sequence. + Source sequence to produce buffers over. + Length of each buffer. + Number of elements to skip between creation of consecutive buffers. + An observable sequence of buffers. + + is null. + + or is less than or equal to zero. + + + + Projects each element of an observable sequence into consecutive non-overlapping buffers which are produced based on timing information. + + The type of the elements in the source sequence, and in the lists in the result sequence. + Source sequence to produce buffers over. + Length of each buffer. + An observable sequence of buffers. + + is null. + + is less than TimeSpan.Zero. + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create buffers as fast as it can. + Because all source sequence elements end up in one of the buffers, some buffers won't have a zero time span. This is a side-effect of the asynchrony introduced + by the scheduler, where the action to close the current buffer and to create a new buffer may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Projects each element of an observable sequence into a buffer that's sent out when either it's full or a given amount of time has elapsed. + A useful real-world analogy of this overload is the behavior of a ferry leaving the dock when all seats are taken, or at the scheduled time of departure, whichever event occurs first. + + The type of the elements in the source sequence, and in the lists in the result sequence. + Source sequence to produce buffers over. + Maximum time length of a window. + Maximum element count of a window. + An observable sequence of buffers. + + is null. + + is less than TimeSpan.Zero. -or- is less than or equal to zero. + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create buffers as fast as it can. + Because all source sequence elements end up in one of the buffers, some buffers won't have a zero time span. This is a side-effect of the asynchrony introduced + by the scheduler, where the action to close the current buffer and to create a new buffer may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Projects each element of an observable sequence into a buffer that's sent out when either it's full or a given amount of time has elapsed, using the specified scheduler to run timers. + A useful real-world analogy of this overload is the behavior of a ferry leaving the dock when all seats are taken, or at the scheduled time of departure, whichever event occurs first. + + The type of the elements in the source sequence, and in the lists in the result sequence. + Source sequence to produce buffers over. + Maximum time length of a buffer. + Maximum element count of a buffer. + Scheduler to run buffering timers on. + An observable sequence of buffers. + + or is null. + + is less than TimeSpan.Zero. -or- is less than or equal to zero. + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create buffers as fast as it can. + Because all source sequence elements end up in one of the buffers, some buffers won't have a zero time span. This is a side-effect of the asynchrony introduced + by the scheduler, where the action to close the current buffer and to create a new buffer may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Projects each element of an observable sequence into consecutive non-overlapping buffers which are produced based on timing information, using the specified scheduler to run timers. + + The type of the elements in the source sequence, and in the lists in the result sequence. + Source sequence to produce buffers over. + Length of each buffer. + Scheduler to run buffering timers on. + An observable sequence of buffers. + + or is null. + + is less than TimeSpan.Zero. + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create buffers as fast as it can. + Because all source sequence elements end up in one of the buffers, some buffers won't have a zero time span. This is a side-effect of the asynchrony introduced + by the scheduler, where the action to close the current buffer and to create a new buffer may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Projects each element of an observable sequence into zero or more buffers which are produced based on timing information. + + The type of the elements in the source sequence, and in the lists in the result sequence. + Source sequence to produce buffers over. + Length of each buffer. + Interval between creation of consecutive buffers. + An observable sequence of buffers. + + is null. + + or is less than TimeSpan.Zero. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create buffers with minimum duration + length. However, some buffers won't have a zero time span. This is a side-effect of the asynchrony introduced by the scheduler, where the action to close the + current buffer may not execute immediately, despite the TimeSpan.Zero due time. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create buffers as fast as it can. + However, this doesn't mean all buffers will start at the beginning of the source sequence. This is a side-effect of the asynchrony introduced by the scheduler, + where the action to create a new buffer may not execute immediately, despite the TimeSpan.Zero due time. + + + + + + Projects each element of an observable sequence into zero or more buffers which are produced based on timing information, using the specified scheduler to run timers. + + The type of the elements in the source sequence, and in the lists in the result sequence. + Source sequence to produce buffers over. + Length of each buffer. + Interval between creation of consecutive buffers. + Scheduler to run buffering timers on. + An observable sequence of buffers. + + or is null. + + or is less than TimeSpan.Zero. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create buffers with minimum duration + length. However, some buffers won't have a zero time span. This is a side-effect of the asynchrony introduced by the scheduler, where the action to close the + current buffer may not execute immediately, despite the TimeSpan.Zero due time. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create buffers as fast as it can. + However, this doesn't mean all buffers will start at the beginning of the source sequence. This is a side-effect of the asynchrony introduced by the scheduler, + where the action to create a new buffer may not execute immediately, despite the TimeSpan.Zero due time. + + + + + + Projects each element of an observable sequence into consecutive non-overlapping buffers. + + The type of the elements in the source sequence, and in the lists in the result sequence. + The type of the elements in the sequences indicating buffer boundary events. + Source sequence to produce buffers over. + Sequence of buffer boundary markers. The current buffer is closed and a new buffer is opened upon receiving a boundary marker. + An observable sequence of buffers. + + or is null. + + + + Projects each element of an observable sequence into consecutive non-overlapping buffers. + + The type of the elements in the source sequence, and in the lists in the result sequence. + The type of the elements in the sequences indicating buffer closing events. + Source sequence to produce buffers over. + A function invoked to define the boundaries of the produced buffers. A new buffer is started when the previous one is closed. + An observable sequence of buffers. + + or is null. + + + + Projects each element of an observable sequence into zero or more buffers. + + The type of the elements in the source sequence, and in the lists in the result sequence. + The type of the elements in the sequence indicating buffer opening events, also passed to the closing selector to obtain a sequence of buffer closing events. + The type of the elements in the sequences indicating buffer closing events. + Source sequence to produce buffers over. + Observable sequence whose elements denote the creation of new buffers. + A function invoked to define the closing of each produced buffer. + An observable sequence of buffers. + + or or is null. + + + + Uses to determine which source in to return, choosing an empty sequence if no match is found. + + Query provider used to construct the data source. + The type of the value returned by the selector function, used to look up the resulting source. + The type of the elements in the result sequence. + Selector function invoked to determine the source to lookup in the dictionary. + Dictionary of sources to select from based on the invocation result. + The observable sequence retrieved from the dictionary based on the invocation result, or an empty sequence if no match is found. + + or is null. + + + + Uses to determine which source in to return, choosing if no match is found. + + Query provider used to construct the data source. + The type of the value returned by the selector function, used to look up the resulting source. + The type of the elements in the result sequence. + Selector function invoked to determine the source to lookup in the dictionary. + Dictionary of sources to select from based on the invocation result. + Default source to select in case no matching source in is found. + The observable sequence retrieved from the dictionary based on the invocation result, or if no match is found. + + or or is null. + + + + Uses to determine which source in to return, choosing an empty sequence on the specified scheduler if no match is found. + + Query provider used to construct the data source. + The type of the value returned by the selector function, used to look up the resulting source. + The type of the elements in the result sequence. + Selector function invoked to determine the source to lookup in the dictionary. + Dictionary of sources to select from based on the invocation result. + Scheduler to generate an empty sequence on in case no matching source in is found. + The observable sequence retrieved from the dictionary based on the invocation result, or an empty sequence if no match is found. + + or or is null. + + + + Converts the elements of an observable sequence to the specified type. + + The type to convert the elements in the source sequence to. + The observable sequence that contains the elements to be converted. + An observable sequence that contains each element of the source sequence converted to the specified type. + + is null. + + + + Continues an observable sequence that is terminated by an exception with the next observable sequence. + + The type of the elements in the source sequence and handler sequence. + First observable sequence whose exception (if any) is caught. + Second observable sequence used to produce results when an error occurred in the first sequence. + An observable sequence containing the first sequence's elements, followed by the elements of the second sequence in case an exception occurred. + + or is null. + + + + Continues an observable sequence that is terminated by an exception with the next observable sequence. + + Query provider used to construct the data source. + The type of the elements in the source and handler sequences. + Observable sequences to catch exceptions for. + An observable sequence containing elements from consecutive source sequences until a source sequence terminates successfully. + + is null. + + + + Continues an observable sequence that is terminated by an exception with the next observable sequence. + + Query provider used to construct the data source. + The type of the elements in the source and handler sequences. + Observable sequences to catch exceptions for. + An observable sequence containing elements from consecutive source sequences until a source sequence terminates successfully. + + is null. + + + + Continues an observable sequence that is terminated by an exception of the specified type with the observable sequence produced by the handler. + + The type of the elements in the source sequence and sequences returned by the exception handler function. + The type of the exception to catch and handle. Needs to derive from . + Source sequence. + Exception handler function, producing another observable sequence. + An observable sequence containing the source sequence's elements, followed by the elements produced by the handler's resulting observable sequence in case an exception occurred. + + or is null. + + + + Produces an enumerable sequence of consecutive (possibly empty) chunks of the source sequence. + + The type of the elements in the source sequence. + Source observable sequence. + The enumerable sequence that returns consecutive (possibly empty) chunks upon each iteration. + + is null. + This operator requires the source's object (see ) to implement . + + + + Produces an enumerable sequence that returns elements collected/aggregated from the source sequence between consecutive iterations. + + The type of the elements in the source sequence. + The type of the elements produced by the merge operation during collection. + Source observable sequence. + Factory to create the initial collector object. + Merges a sequence element with the current collector. + Factory to replace the current collector by a new collector. + The enumerable sequence that returns collected/aggregated elements from the source sequence upon each iteration. + + or or or is null. + This operator requires the source's object (see ) to implement . + + + + Produces an enumerable sequence that returns elements collected/aggregated from the source sequence between consecutive iterations. + + The type of the elements in the source sequence. + The type of the elements produced by the merge operation during collection. + Source observable sequence. + Factory to create a new collector object. + Merges a sequence element with the current collector. + The enumerable sequence that returns collected/aggregated elements from the source sequence upon each iteration. + + or or is null. + This operator requires the source's object (see ) to implement . + + + + Merges the specified observable sequences into one observable sequence by emitting a list with the latest source elements whenever any of the observable sequences produces an element. + + Query provider used to construct the data source. + The type of the elements in the source sequences, and in the lists in the result sequence. + Observable sources. + An observable sequence containing lists of the latest elements of the sources. + + is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by emitting a list with the latest source elements whenever any of the observable sequences produces an element. + + Query provider used to construct the data source. + The type of the elements in the source sequences, and in the lists in the result sequence. + Observable sources. + An observable sequence containing lists of the latest elements of the sources. + + is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + Query provider used to construct the data source. + The type of the elements in the source sequences. + The type of the elements in the result sequence, returned by the selector function. + Observable sources. + Function to invoke whenever any of the sources produces an element. For efficiency, the input list is reused after the selector returns. Either aggregate or copy the values during the function call. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges two observable sequences into one observable sequence by using the selector function whenever one of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Function to invoke whenever either of the sources produces an element. + An observable sequence containing the result of combining elements of both sources using the specified result selector function. + + or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Fourteenth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the fifteenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Fourteenth observable source. + Fifteenth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or or or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the fifteenth source sequence. + The type of the elements in the sixteenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Fourteenth observable source. + Fifteenth observable source. + Sixteenth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or or or or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Concatenates the second observable sequence to the first observable sequence upon successful termination of the first. + + The type of the elements in the source sequences. + First observable sequence. + Second observable sequence. + An observable sequence that contains the elements of the first sequence, followed by those of the second the sequence. + + or is null. + + + + Concatenates all of the specified observable sequences, as long as the previous observable sequence terminated successfully. + + Query provider used to construct the data source. + The type of the elements in the source sequences. + Observable sequences to concatenate. + An observable sequence that contains the elements of each given sequence, in sequential order. + + is null. + + + + Concatenates all observable sequences in the given enumerable sequence, as long as the previous observable sequence terminated successfully. + + Query provider used to construct the data source. + The type of the elements in the source sequences. + Observable sequences to concatenate. + An observable sequence that contains the elements of each given sequence, in sequential order. + + is null. + + + + Concatenates all inner observable sequences, as long as the previous observable sequence terminated successfully. + + The type of the elements in the source sequences. + Observable sequence of inner observable sequences. + An observable sequence that contains the elements of each observed inner sequence, in sequential order. + + is null. + + + + Concatenates all task results, as long as the previous task terminated successfully. + + The type of the results produced by the tasks. + Observable sequence of tasks. + An observable sequence that contains the results of each task, in sequential order. + + is null. + If the tasks support cancellation, consider manual conversion of the tasks using , followed by a concatenation operation using . + + + + Determines whether an observable sequence contains a specified element by using the default equality comparer. + + The type of the elements in the source sequence. + An observable sequence in which to locate a value. + The value to locate in the source sequence. + An observable sequence containing a single element determining whether the source sequence contains an element that has the specified value. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Determines whether an observable sequence contains a specified element by using a specified System.Collections.Generic.IEqualityComparer{T}. + + The type of the elements in the source sequence. + An observable sequence in which to locate a value. + The value to locate in the source sequence. + An equality comparer to compare elements. + An observable sequence containing a single element determining whether the source sequence contains an element that has the specified value. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns an observable sequence containing an that represents the total number of elements in an observable sequence. + + The type of the elements in the source sequence. + An observable sequence that contains elements to be counted. + An observable sequence containing a single element with the number of elements in the input sequence. + + is null. + (Asynchronous) The number of elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns an observable sequence containing an that represents how many elements in the specified observable sequence satisfy a condition. + + The type of the elements in the source sequence. + An observable sequence that contains elements to be counted. + A function to test each element for a condition. + An observable sequence containing a single element with a number that represents how many elements in the input sequence satisfy the condition in the predicate function. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates an observable sequence from a specified Subscribe method implementation. + + Query provider used to construct the data source. + The type of the elements in the produced sequence. + Implementation of the resulting observable sequence's Subscribe method. + The observable sequence with the specified implementation for the Subscribe method. + + is null. + + Use of this operator is preferred over manual implementation of the interface. In case + you need a type implementing rather than an anonymous implementation, consider using + the abstract base class. + + + + + Creates an observable sequence from a specified Subscribe method implementation. + + Query provider used to construct the data source. + The type of the elements in the produced sequence. + Implementation of the resulting observable sequence's Subscribe method, returning an Action delegate that will be wrapped in an IDisposable. + The observable sequence with the specified implementation for the Subscribe method. + + is null. + + Use of this operator is preferred over manual implementation of the interface. In case + you need a type implementing rather than an anonymous implementation, consider using + the abstract base class. + + + + + Creates an observable sequence from a specified cancellable asynchronous Subscribe method. + The CancellationToken passed to the asynchronous Subscribe method is tied to the returned disposable subscription, allowing best-effort cancellation. + + Query provider used to construct the data source. + The type of the elements in the produced sequence. + Asynchronous method used to produce elements. + The observable sequence surfacing the elements produced by the asynchronous method. + + is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + When a subscription to the resulting sequence is disposed, the CancellationToken that was fed to the asynchronous subscribe function will be signaled. + + + + Creates an observable sequence from a specified asynchronous Subscribe method. + + Query provider used to construct the data source. + The type of the elements in the produced sequence. + Asynchronous method used to produce elements. + The observable sequence surfacing the elements produced by the asynchronous method. + + is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + + + + Creates an observable sequence from a specified cancellable asynchronous Subscribe method. + The CancellationToken passed to the asynchronous Subscribe method is tied to the returned disposable subscription, allowing best-effort cancellation. + + Query provider used to construct the data source. + The type of the elements in the produced sequence. + Asynchronous method used to implement the resulting sequence's Subscribe method. + The observable sequence with the specified implementation for the Subscribe method. + + is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + When a subscription to the resulting sequence is disposed, the CancellationToken that was fed to the asynchronous subscribe function will be signaled. + + + + Creates an observable sequence from a specified asynchronous Subscribe method. + + Query provider used to construct the data source. + The type of the elements in the produced sequence. + Asynchronous method used to implement the resulting sequence's Subscribe method. + The observable sequence with the specified implementation for the Subscribe method. + + is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + + + + Creates an observable sequence from a specified cancellable asynchronous Subscribe method. + The CancellationToken passed to the asynchronous Subscribe method is tied to the returned disposable subscription, allowing best-effort cancellation. + + Query provider used to construct the data source. + The type of the elements in the produced sequence. + Asynchronous method used to implement the resulting sequence's Subscribe method, returning an Action delegate that will be wrapped in an IDisposable. + The observable sequence with the specified implementation for the Subscribe method. + + is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + When a subscription to the resulting sequence is disposed, the CancellationToken that was fed to the asynchronous subscribe function will be signaled. + + + + Creates an observable sequence from a specified asynchronous Subscribe method. + + Query provider used to construct the data source. + The type of the elements in the produced sequence. + Asynchronous method used to implement the resulting sequence's Subscribe method, returning an Action delegate that will be wrapped in an IDisposable. + The observable sequence with the specified implementation for the Subscribe method. + + is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + + + + Returns the elements of the specified sequence or the type parameter's default value in a singleton sequence if the sequence is empty. + + The type of the elements in the source sequence (if any), whose default value will be taken if the sequence is empty. + The sequence to return a default value for if it is empty. + An observable sequence that contains the default value for the TSource type if the source is empty; otherwise, the elements of the source itself. + + is null. + + + + Returns the elements of the specified sequence or the specified value in a singleton sequence if the sequence is empty. + + The type of the elements in the source sequence (if any), and the specified default value which will be taken if the sequence is empty. + The sequence to return the specified value for if it is empty. + The value to return if the sequence is empty. + An observable sequence that contains the specified default value if the source is empty; otherwise, the elements of the source itself. + + is null. + + + + Returns an observable sequence that invokes the specified factory function whenever a new observer subscribes. + + Query provider used to construct the data source. + The type of the elements in the sequence returned by the factory function, and in the resulting sequence. + Observable factory function to invoke for each observer that subscribes to the resulting sequence. + An observable sequence whose observers trigger an invocation of the given observable factory function. + + is null. + + + + Returns an observable sequence that starts the specified asynchronous factory function whenever a new observer subscribes. + + Query provider used to construct the data source. + The type of the elements in the sequence returned by the factory function, and in the resulting sequence. + Asynchronous factory function to start for each observer that subscribes to the resulting sequence. + An observable sequence whose observers trigger the given asynchronous observable factory function to be started. + + is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + + + + Returns an observable sequence that starts the specified cancellable asynchronous factory function whenever a new observer subscribes. + The CancellationToken passed to the asynchronous factory function is tied to the returned disposable subscription, allowing best-effort cancellation. + + Query provider used to construct the data source. + The type of the elements in the sequence returned by the factory function, and in the resulting sequence. + Asynchronous factory function to start for each observer that subscribes to the resulting sequence. + An observable sequence whose observers trigger the given asynchronous observable factory function to be started. + + is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + When a subscription to the resulting sequence is disposed, the CancellationToken that was fed to the asynchronous observable factory function will be signaled. + + + + Time shifts the observable sequence to start propagating notifications at the specified absolute time. + The relative time intervals between the values are preserved. + + The type of the elements in the source sequence. + Source sequence to delay values for. + Absolute time used to shift the observable sequence; the relative time shift gets computed upon subscription. If this value is less than or equal to DateTimeOffset.UtcNow, the scheduler will dispatch observer callbacks as soon as possible. + Time-shifted sequence. + + is null. + + + This operator is less efficient than DelaySubscription because it records all notifications and time-delays those. This allows for immediate propagation of errors. + + + Observer callbacks for the resulting sequence will be run on the default scheduler. This effect is similar to using ObserveOn. + + + Exceptions signaled by the source sequence through an OnError callback are forwarded immediately to the result sequence. Any OnNext notifications that were in the queue at the point of the OnError callback will be dropped. + In order to delay error propagation, consider using the Observable.Materialize and Observable.Dematerialize operators, or use DelaySubscription. + + + + + + Time shifts the observable sequence to start propagating notifications at the specified absolute time, using the specified scheduler to run timers. + The relative time intervals between the values are preserved. + + The type of the elements in the source sequence. + Source sequence to delay values for. + Absolute time used to shift the observable sequence; the relative time shift gets computed upon subscription. If this value is less than or equal to DateTimeOffset.UtcNow, the scheduler will dispatch observer callbacks as soon as possible. + Scheduler to run the delay timers on. + Time-shifted sequence. + + or is null. + + + This operator is less efficient than DelaySubscription because it records all notifications and time-delays those. This allows for immediate propagation of errors. + + + Observer callbacks for the resulting sequence will be run on the specified scheduler. This effect is similar to using ObserveOn. + + + Exceptions signaled by the source sequence through an OnError callback are forwarded immediately to the result sequence. Any OnNext notifications that were in the queue at the point of the OnError callback will be dropped. + In order to delay error propagation, consider using the Observable.Materialize and Observable.Dematerialize operators, or use DelaySubscription. + + + + + + Time shifts the observable sequence by the specified relative time duration. + The relative time intervals between the values are preserved. + + The type of the elements in the source sequence. + Source sequence to delay values for. + Relative time by which to shift the observable sequence. If this value is equal to TimeSpan.Zero, the scheduler will dispatch observer callbacks as soon as possible. + Time-shifted sequence. + + is null. + + is less than TimeSpan.Zero. + + + This operator is less efficient than DelaySubscription because it records all notifications and time-delays those. This allows for immediate propagation of errors. + + + Observer callbacks for the resulting sequence will be run on the default scheduler. This effect is similar to using ObserveOn. + + + Exceptions signaled by the source sequence through an OnError callback are forwarded immediately to the result sequence. Any OnNext notifications that were in the queue at the point of the OnError callback will be dropped. + In order to delay error propagation, consider using the Observable.Materialize and Observable.Dematerialize operators, or use DelaySubscription. + + + + + + Time shifts the observable sequence by the specified relative time duration, using the specified scheduler to run timers. + The relative time intervals between the values are preserved. + + The type of the elements in the source sequence. + Source sequence to delay values for. + Relative time by which to shift the observable sequence. If this value is equal to TimeSpan.Zero, the scheduler will dispatch observer callbacks as soon as possible. + Scheduler to run the delay timers on. + Time-shifted sequence. + + or is null. + + is less than TimeSpan.Zero. + + + This operator is less efficient than DelaySubscription because it records all notifications and time-delays those. This allows for immediate propagation of errors. + + + Observer callbacks for the resulting sequence will be run on the specified scheduler. This effect is similar to using ObserveOn. + + + Exceptions signaled by the source sequence through an OnError callback are forwarded immediately to the result sequence. Any OnNext notifications that were in the queue at the point of the OnError callback will be dropped. + + + Exceptions signaled by the source sequence through an OnError callback are forwarded immediately to the result sequence. Any OnNext notifications that were in the queue at the point of the OnError callback will be dropped. + In order to delay error propagation, consider using the Observable.Materialize and Observable.Dematerialize operators, or use DelaySubscription. + + + + + + Time shifts the observable sequence based on a delay selector function for each element. + + The type of the elements in the source sequence. + The type of the elements in the delay sequences used to denote the delay duration of each element in the source sequence. + Source sequence to delay values for. + Selector function to retrieve a sequence indicating the delay for each given element. + Time-shifted sequence. + + or is null. + + + + Time shifts the observable sequence based on a subscription delay and a delay selector function for each element. + + The type of the elements in the source sequence. + The type of the elements in the delay sequences used to denote the delay duration of each element in the source sequence. + Source sequence to delay values for. + Sequence indicating the delay for the subscription to the source. + Selector function to retrieve a sequence indicating the delay for each given element. + Time-shifted sequence. + + or or is null. + + + + Time shifts the observable sequence by delaying the subscription to the specified absolute time. + + The type of the elements in the source sequence. + Source sequence to delay subscription for. + Absolute time to perform the subscription at. + Time-shifted sequence. + + is null. + + + This operator is more efficient than Delay but postpones all side-effects of subscription and affects error propagation timing. + + + The side-effects of subscribing to the source sequence will be run on the default scheduler. Observer callbacks will not be affected. + + + + + + Time shifts the observable sequence by delaying the subscription to the specified absolute time, using the specified scheduler to run timers. + + The type of the elements in the source sequence. + Source sequence to delay subscription for. + Absolute time to perform the subscription at. + Scheduler to run the subscription delay timer on. + Time-shifted sequence. + + or is null. + + + This operator is more efficient than Delay but postpones all side-effects of subscription and affects error propagation timing. + + + The side-effects of subscribing to the source sequence will be run on the specified scheduler. Observer callbacks will not be affected. + + + + + + Time shifts the observable sequence by delaying the subscription with the specified relative time duration. + + The type of the elements in the source sequence. + Source sequence to delay subscription for. + Relative time shift of the subscription. + Time-shifted sequence. + + is null. + + is less than TimeSpan.Zero. + + + This operator is more efficient than Delay but postpones all side-effects of subscription and affects error propagation timing. + + + The side-effects of subscribing to the source sequence will be run on the default scheduler. Observer callbacks will not be affected. + + + + + + Time shifts the observable sequence by delaying the subscription with the specified relative time duration, using the specified scheduler to run timers. + + The type of the elements in the source sequence. + Source sequence to delay subscription for. + Relative time shift of the subscription. + Scheduler to run the subscription delay timer on. + Time-shifted sequence. + + or is null. + + is less than TimeSpan.Zero. + + + This operator is more efficient than Delay but postpones all side-effects of subscription and affects error propagation timing. + + + The side-effects of subscribing to the source sequence will be run on the specified scheduler. Observer callbacks will not be affected. + + + + + + Dematerializes the explicit notification values of an observable sequence as implicit notifications. + + The type of the elements materialized in the source sequence notification objects. + An observable sequence containing explicit notification values which have to be turned into implicit notifications. + An observable sequence exhibiting the behavior corresponding to the source sequence's notification values. + + is null. + + + + Returns an observable sequence that contains only distinct elements. + + The type of the elements in the source sequence. + An observable sequence to retain distinct elements for. + An observable sequence only containing the distinct elements from the source sequence. + + is null. + Usage of this operator should be considered carefully due to the maintenance of an internal lookup structure which can grow large. + + + + Returns an observable sequence that contains only distinct elements according to the comparer. + + The type of the elements in the source sequence. + An observable sequence to retain distinct elements for. + Equality comparer for source elements. + An observable sequence only containing the distinct elements from the source sequence. + + or is null. + Usage of this operator should be considered carefully due to the maintenance of an internal lookup structure which can grow large. + + + + Returns an observable sequence that contains only distinct elements according to the keySelector. + + The type of the elements in the source sequence. + The type of the discriminator key computed for each element in the source sequence. + An observable sequence to retain distinct elements for. + A function to compute the comparison key for each element. + An observable sequence only containing the distinct elements, based on a computed key value, from the source sequence. + + or is null. + Usage of this operator should be considered carefully due to the maintenance of an internal lookup structure which can grow large. + + + + Returns an observable sequence that contains only distinct elements according to the keySelector and the comparer. + + The type of the elements in the source sequence. + The type of the discriminator key computed for each element in the source sequence. + An observable sequence to retain distinct elements for. + A function to compute the comparison key for each element. + Equality comparer for source elements. + An observable sequence only containing the distinct elements, based on a computed key value, from the source sequence. + + or or is null. + Usage of this operator should be considered carefully due to the maintenance of an internal lookup structure which can grow large. + + + + Returns an observable sequence that contains only distinct contiguous elements. + + The type of the elements in the source sequence. + An observable sequence to retain distinct contiguous elements for. + An observable sequence only containing the distinct contiguous elements from the source sequence. + + is null. + + + + Returns an observable sequence that contains only distinct contiguous elements according to the comparer. + + The type of the elements in the source sequence. + An observable sequence to retain distinct contiguous elements for. + Equality comparer for source elements. + An observable sequence only containing the distinct contiguous elements from the source sequence. + + or is null. + + + + Returns an observable sequence that contains only distinct contiguous elements according to the keySelector. + + The type of the elements in the source sequence. + The type of the discriminator key computed for each element in the source sequence. + An observable sequence to retain distinct contiguous elements for, based on a computed key value. + A function to compute the comparison key for each element. + An observable sequence only containing the distinct contiguous elements, based on a computed key value, from the source sequence. + + or is null. + + + + Returns an observable sequence that contains only distinct contiguous elements according to the keySelector and the comparer. + + The type of the elements in the source sequence. + The type of the discriminator key computed for each element in the source sequence. + An observable sequence to retain distinct contiguous elements for, based on a computed key value. + A function to compute the comparison key for each element. + Equality comparer for computed key values. + An observable sequence only containing the distinct contiguous elements, based on a computed key value, from the source sequence. + + or or is null. + + + + Invokes the observer's methods for each message in the source sequence. + This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + + The type of the elements in the source sequence. + Source sequence. + Observer whose methods to invoke as part of the source sequence's observation. + The source sequence with the side-effecting behavior applied. + + or is null. + + + + Invokes an action for each element in the observable sequence, and propagates all observer messages through the result sequence. + This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + + The type of the elements in the source sequence. + Source sequence. + Action to invoke for each element in the observable sequence. + The source sequence with the side-effecting behavior applied. + + or is null. + + + + Invokes an action for each element in the observable sequence and invokes an action upon graceful termination of the observable sequence. + This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + + The type of the elements in the source sequence. + Source sequence. + Action to invoke for each element in the observable sequence. + Action to invoke upon graceful termination of the observable sequence. + The source sequence with the side-effecting behavior applied. + + or or is null. + + + + Invokes an action for each element in the observable sequence and invokes an action upon exceptional termination of the observable sequence. + This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + + The type of the elements in the source sequence. + Source sequence. + Action to invoke for each element in the observable sequence. + Action to invoke upon exceptional termination of the observable sequence. + The source sequence with the side-effecting behavior applied. + + or or is null. + + + + Invokes an action for each element in the observable sequence and invokes an action upon graceful or exceptional termination of the observable sequence. + This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + + The type of the elements in the source sequence. + Source sequence. + Action to invoke for each element in the observable sequence. + Action to invoke upon exceptional termination of the observable sequence. + Action to invoke upon graceful termination of the observable sequence. + The source sequence with the side-effecting behavior applied. + + or or or is null. + + + + Repeats the given as long as the specified holds, where the is evaluated after each repeated completed. + + The type of the elements in the source sequence. + Source to repeat as long as the function evaluates to true. + Condition that will be evaluated upon the completion of an iteration through the , to determine whether repetition of the source is required. + The observable sequence obtained by concatenating the sequence as long as the holds. + + or is null. + + + + Returns the element at a specified index in a sequence. + + The type of the elements in the source sequence. + Observable sequence to return the element from. + The zero-based index of the element to retrieve. + An observable sequence that produces the element at the specified position in the source sequence. + + is null. + + is less than zero. + (Asynchronous) is greater than or equal to the number of elements in the source sequence. + + + + Returns the element at a specified index in a sequence or a default value if the index is out of range. + + The type of the elements in the source sequence. + Observable sequence to return the element from. + The zero-based index of the element to retrieve. + An observable sequence that produces the element at the specified position in the source sequence, or a default value if the index is outside the bounds of the source sequence. + + is null. + + is less than zero. + + + + Returns an empty observable sequence. + + Query provider used to construct the data source. + The type used for the type parameter of the resulting sequence. + An observable sequence with no elements. + + + + Returns an empty observable sequence, using the specified scheduler to send out the single OnCompleted message. + + Query provider used to construct the data source. + The type used for the type parameter of the resulting sequence. + Scheduler to send the termination call on. + An observable sequence with no elements. + + is null. + + + + Returns an empty observable sequence, using the specified scheduler to send out the single OnCompleted message. + + Query provider used to construct the data source. + The type used for the type parameter of the resulting sequence. + Scheduler to send the termination call on. + Object solely used to infer the type of the type parameter. This parameter is typically used when creating a sequence of anonymously typed elements. + An observable sequence with no elements. + + is null. + + + + Returns an empty observable sequence. + + Query provider used to construct the data source. + The type used for the type parameter of the resulting sequence. + Object solely used to infer the type of the type parameter. This parameter is typically used when creating a sequence of anonymously typed elements. + An observable sequence with no elements. + + + + Invokes a specified action after the source observable sequence terminates gracefully or exceptionally. + + The type of the elements in the source sequence. + Source sequence. + Action to invoke after the source observable sequence terminates. + Source sequence with the action-invoking termination behavior applied. + + or is null. + + + + Returns the first element of an observable sequence. + + The type of the elements in the source sequence. + Source observable sequence. + Sequence containing the first element in the observable sequence. + + is null. + (Asynchronous) The source sequence is empty. + + + + Returns the first element of an observable sequence that satisfies the condition in the predicate. + + The type of the elements in the source sequence. + Source observable sequence. + A predicate function to evaluate for elements in the source sequence. + Sequence containing the first element in the observable sequence that satisfies the condition in the predicate. + + or is null. + (Asynchronous) No element satisfies the condition in the predicate. -or- The source sequence is empty. + + + + Returns the first element of an observable sequence, or a default value if no such element exists. + + The type of the elements in the source sequence. + Source observable sequence. + Sequence containing the first element in the observable sequence, or a default value if no such element exists. + + is null. + + + + Returns the first element of an observable sequence that satisfies the condition in the predicate, or a default value if no such element exists. + + The type of the elements in the source sequence. + Source observable sequence. + A predicate function to evaluate for elements in the source sequence. + Sequence containing the first element in the observable sequence that satisfies the condition in the predicate, or a default value if no such element exists. + + or is null. + + + + Concatenates the observable sequences obtained by running the for each element in the given enumerable . + + Query provider used to construct the data source. + The type of the elements in the enumerable source sequence. + The type of the elements in the observable result sequence. + Enumerable source for which each element will be mapped onto an observable source that will be concatenated in the result sequence. + Function to select an observable source for each element in the . + The observable sequence obtained by concatenating the sources returned by for each element in the . + + or is null. + + + + Converts to asynchronous action into an observable sequence. Each subscription to the resulting sequence causes the action to be started. + + Query provider used to construct the data source. + Asynchronous action to convert. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + + is null. + + + + Converts to asynchronous action into an observable sequence. Each subscription to the resulting sequence causes the action to be started. + + Query provider used to construct the data source. + Asynchronous action to convert. + Scheduler on which to notify observers. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + + is null or is null. + + + + Converts to asynchronous action into an observable sequence. Each subscription to the resulting sequence causes the action to be started. + The CancellationToken passed to the asynchronous action is tied to the observable sequence's subscription that triggered the action's invocation and can be used for best-effort cancellation. + + Query provider used to construct the data source. + Asynchronous action to convert. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + When a subscription to the resulting sequence is disposed, the CancellationToken that was fed to the asynchronous function will be signaled. + + is null. + + + + Converts to asynchronous action into an observable sequence. Each subscription to the resulting sequence causes the action to be started. + The CancellationToken passed to the asynchronous action is tied to the observable sequence's subscription that triggered the action's invocation and can be used for best-effort cancellation. + + Query provider used to construct the data source. + Asynchronous action to convert. + Scheduler on which to notify observers. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + When a subscription to the resulting sequence is disposed, the CancellationToken that was fed to the asynchronous function will be signaled. + + is null or is null. + + + + Converts to asynchronous function into an observable sequence. Each subscription to the resulting sequence causes the function to be started. + + Query provider used to construct the data source. + The type of the result returned by the asynchronous function. + Asynchronous function to convert. + An observable sequence exposing the result of invoking the function, or an exception. + + is null. + + + + Converts to asynchronous function into an observable sequence. Each subscription to the resulting sequence causes the function to be started. + The CancellationToken passed to the asynchronous function is tied to the observable sequence's subscription that triggered the function's invocation and can be used for best-effort cancellation. + + Query provider used to construct the data source. + The type of the result returned by the asynchronous function. + Asynchronous function to convert. + An observable sequence exposing the result of invoking the function, or an exception. + + is null. + When a subscription to the resulting sequence is disposed, the CancellationToken that was fed to the asynchronous function will be signaled. + + + + Converts to asynchronous function into an observable sequence. Each subscription to the resulting sequence causes the function to be started. + + Query provider used to construct the data source. + The type of the result returned by the asynchronous function. + Asynchronous function to convert. + Scheduler on which to notify observers. + An observable sequence exposing the result of invoking the function, or an exception. + + is null or is null. + + + + Converts to asynchronous function into an observable sequence. Each subscription to the resulting sequence causes the function to be started. + The CancellationToken passed to the asynchronous function is tied to the observable sequence's subscription that triggered the function's invocation and can be used for best-effort cancellation. + + Query provider used to construct the data source. + The type of the result returned by the asynchronous function. + Asynchronous function to convert. + Scheduler on which to notify observers. + An observable sequence exposing the result of invoking the function, or an exception. + + is null or is null. + When a subscription to the resulting sequence is disposed, the CancellationToken that was fed to the asynchronous function will be signaled. + + + + Converts an Action-based .NET event to an observable sequence. Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events conforming to the standard .NET event pattern, use any of the FromEventPattern overloads instead. + + Query provider used to construct the data source. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains the event argument objects passed to the invocations of the underlying .NET event. + + or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEvent, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEvent, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEvent calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts an Action-based .NET event to an observable sequence. Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events conforming to the standard .NET event pattern, use any of the FromEventPattern overloads instead. + + Query provider used to construct the data source. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains the event argument objects passed to the invocations of the underlying .NET event. + + or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEvent calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEvent that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a .NET event to an observable sequence, using a supplied event delegate type. Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events conforming to the standard .NET event pattern, use any of the FromEventPattern overloads instead. + + Query provider used to construct the data source. + The delegate type of the event to be converted. + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains the event argument objects passed to the invocations of the underlying .NET event. + + or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEvent, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEvent, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEvent calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a .NET event to an observable sequence, using a supplied event delegate type. Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events conforming to the standard .NET event pattern, use any of the FromEventPattern overloads instead. + + Query provider used to construct the data source. + The delegate type of the event to be converted. + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains the event argument objects passed to the invocations of the underlying .NET event. + + or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEvent calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEvent that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a .NET event to an observable sequence, using a conversion function to obtain the event delegate. Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events conforming to the standard .NET event pattern, use any of the FromEventPattern overloads instead. + + Query provider used to construct the data source. + The delegate type of the event to be converted. + The type of the event data generated by the event. + A function used to convert the given event handler to a delegate compatible with the underlying .NET event. The resulting delegate is used in calls to the addHandler and removeHandler action parameters. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains the event argument objects passed to the invocations of the underlying .NET event. + + or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEvent, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEvent, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEvent calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a .NET event to an observable sequence, using a conversion function to obtain the event delegate. Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events conforming to the standard .NET event pattern, use any of the FromEventPattern overloads instead. + + Query provider used to construct the data source. + The delegate type of the event to be converted. + The type of the event data generated by the event. + A function used to convert the given event handler to a delegate compatible with the underlying .NET event. The resulting delegate is used in calls to the addHandler and removeHandler action parameters. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains the event argument objects passed to the invocations of the underlying .NET event. + + or or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEvent calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEvent that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a generic Action-based .NET event to an observable sequence. Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events conforming to the standard .NET event pattern, use any of the FromEventPattern overloads instead. + + Query provider used to construct the data source. + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains the event argument objects passed to the invocations of the underlying .NET event. + + or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEvent, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEvent, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEvent calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a generic Action-based .NET event to an observable sequence. Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events conforming to the standard .NET event pattern, use any of the FromEventPattern overloads instead. + + Query provider used to construct the data source. + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains the event argument objects passed to the invocations of the underlying .NET event. + + or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEvent calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEvent that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on , to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on , to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts an instance .NET event, conforming to the standard .NET event pattern with an parameter, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the target object type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + Object instance that exposes the event to convert. + Name of the event to convert. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts an instance .NET event, conforming to the standard .NET event pattern with an parameter, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the target object type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + Object instance that exposes the event to convert. + Name of the event to convert. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a static .NET event, conforming to the standard .NET event pattern with an parameter, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the specified type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + Type that exposes the static event to convert. + Name of the event to convert. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a static .NET event, conforming to the standard .NET event pattern with an parameter, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the specified type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + Type that exposes the static event to convert. + Name of the event to convert. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on a supplied event delegate type, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + The delegate type of the event to be converted. + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on a supplied event delegate type, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + The delegate type of the event to be converted. + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on , to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + The delegate type of the event to be converted. + The type of the event data generated by the event. + A function used to convert the given event handler to a delegate compatible with the underlying .NET event. The resulting delegate is used in calls to the addHandler and removeHandler action parameters. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on , to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + The delegate type of the event to be converted. + The type of the event data generated by the event. + A function used to convert the given event handler to a delegate compatible with the underlying .NET event. The resulting delegate is used in calls to the addHandler and removeHandler action parameters. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on a supplied event delegate type with a strongly typed sender parameter, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + The delegate type of the event to be converted. + The type of the sender that raises the event. + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on a supplied event delegate type with a strongly typed sender parameter, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + The delegate type of the event to be converted. + The type of the sender that raises the event. + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on , to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on , to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts an instance .NET event, conforming to the standard .NET event pattern with strongly typed event arguments, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the target object type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + The type of the event data generated by the event. + Object instance that exposes the event to convert. + Name of the event to convert. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. -or- The event's second argument type is not assignable to TEventArgs. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts an instance .NET event, conforming to the standard .NET event pattern with strongly typed event arguments, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the target object type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + The type of the event data generated by the event. + Object instance that exposes the event to convert. + Name of the event to convert. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. -or- The event's second argument type is not assignable to TEventArgs. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a static .NET event, conforming to the standard .NET event pattern with strongly typed event arguments, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the specified type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + The type of the event data generated by the event. + Type that exposes the static event to convert. + Name of the event to convert. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. -or- The event's second argument type is not assignable to TEventArgs. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a static .NET event, conforming to the standard .NET event pattern with strongly typed event arguments, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the specified type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + The type of the event data generated by the event. + Type that exposes the static event to convert. + Name of the event to convert. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. -or- The event's second argument type is not assignable to TEventArgs. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts an instance .NET event, conforming to the standard .NET event pattern with a strongly typed sender and strongly typed event arguments, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the target object type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + The type of the sender that raises the event. + The type of the event data generated by the event. + Object instance that exposes the event to convert. + Name of the event to convert. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. -or- The event's first argument type is not assignable to TSender. -or- The event's second argument type is not assignable to TEventArgs. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts an instance .NET event, conforming to the standard .NET event pattern with a strongly typed sender and strongly typed event arguments, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the target object type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + The type of the sender that raises the event. + The type of the event data generated by the event. + Object instance that exposes the event to convert. + Name of the event to convert. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. -or- The event's first argument type is not assignable to TSender. -or- The event's second argument type is not assignable to TEventArgs. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a static .NET event, conforming to the standard .NET event pattern with a strongly typed sender and strongly typed event arguments, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the specified type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + The type of the sender that raises the event. + The type of the event data generated by the event. + Type that exposes the static event to convert. + Name of the event to convert. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. -or- The event's first argument type is not assignable to TSender. -or- The event's second argument type is not assignable to TEventArgs. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a static .NET event, conforming to the standard .NET event pattern with a strongly typed sender and strongly typed event arguments, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the specified type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + The type of the sender that raises the event. + The type of the event data generated by the event. + Type that exposes the static event to convert. + Name of the event to convert. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. -or- The event's first argument type is not assignable to TSender. -or- The event's second argument type is not assignable to TEventArgs. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Generates an observable sequence by running a state-driven loop producing the sequence's elements. + + Query provider used to construct the data source. + The type of the state used in the generator loop. + The type of the elements in the produced sequence. + Initial state. + Condition to terminate generation (upon returning false). + Iteration step function. + Selector function for results produced in the sequence. + The generated sequence. + + or or is null. + + + + Generates an observable sequence by running a state-driven loop producing the sequence's elements, using the specified scheduler to send out observer messages. + + Query provider used to construct the data source. + The type of the state used in the generator loop. + The type of the elements in the produced sequence. + Initial state. + Condition to terminate generation (upon returning false). + Iteration step function. + Selector function for results produced in the sequence. + Scheduler on which to run the generator loop. + The generated sequence. + + or or or is null. + + + + Generates an observable sequence by running a state-driven and temporal loop producing the sequence's elements. + + Query provider used to construct the data source. + The type of the state used in the generator loop. + The type of the elements in the produced sequence. + Initial state. + Condition to terminate generation (upon returning false). + Iteration step function. + Selector function for results produced in the sequence. + Time selector function to control the speed of values being produced each iteration. + The generated sequence. + + or or or is null. + + + + Generates an observable sequence by running a state-driven and temporal loop producing the sequence's elements. + + Query provider used to construct the data source. + The type of the state used in the generator loop. + The type of the elements in the produced sequence. + Initial state. + Condition to terminate generation (upon returning false). + Iteration step function. + Selector function for results produced in the sequence. + Time selector function to control the speed of values being produced each iteration. + The generated sequence. + + or or or is null. + + + + Generates an observable sequence by running a state-driven and temporal loop producing the sequence's elements, using the specified scheduler to run timers and to send out observer messages. + + Query provider used to construct the data source. + The type of the state used in the generator loop. + The type of the elements in the produced sequence. + Initial state. + Condition to terminate generation (upon returning false). + Iteration step function. + Selector function for results produced in the sequence. + Time selector function to control the speed of values being produced each iteration. + Scheduler on which to run the generator loop. + The generated sequence. + + or or or or is null. + + + + Generates an observable sequence by running a state-driven and temporal loop producing the sequence's elements, using the specified scheduler to run timers and to send out observer messages. + + Query provider used to construct the data source. + The type of the state used in the generator loop. + The type of the elements in the produced sequence. + Initial state. + Condition to terminate generation (upon returning false). + Iteration step function. + Selector function for results produced in the sequence. + Time selector function to control the speed of values being produced each iteration. + Scheduler on which to run the generator loop. + The generated sequence. + + or or or or is null. + + + + Groups the elements of an observable sequence according to a specified key selector function. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + An observable sequence whose elements to group. + A function to extract the key for each element. + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + + or is null. + + + + Groups the elements of an observable sequence with the specified initial capacity according to a specified key selector function. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + An observable sequence whose elements to group. + A function to extract the key for each element. + The initial number of elements that the underlying dictionary can contain. + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + + or is null. + + is less than 0. + + + + Groups the elements of an observable sequence with the specified initial capacity according to a specified key selector function and comparer. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + An observable sequence whose elements to group. + A function to extract the key for each element. + The initial number of elements that the underlying dictionary can contain. + An equality comparer to compare keys with. + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + + or or is null. + + is less than 0. + + + + Groups the elements of an observable sequence according to a specified key selector function and comparer. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + An observable sequence whose elements to group. + A function to extract the key for each element. + An equality comparer to compare keys with. + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + + or or is null. + + + + Groups the elements of an observable sequence and selects the resulting elements by using a specified function. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements within the groups computed for each element in the source sequence. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to map each source element to an element in an observable group. + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + + or or is null. + + + + Groups the elements of an observable sequence with the specified initial capacity and selects the resulting elements by using a specified function. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements within the groups computed for each element in the source sequence. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to map each source element to an element in an observable group. + The initial number of elements that the underlying dictionary can contain. + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + + or or is null. + + is less than 0. + + + + Groups the elements of an observable sequence with the specified initial capacity according to a specified key selector function and comparer and selects the resulting elements by using a specified function. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements within the groups computed for each element in the source sequence. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to map each source element to an element in an observable group. + The initial number of elements that the underlying dictionary can contain. + An equality comparer to compare keys with. + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + + or or or is null. + + is less than 0. + + + + Groups the elements of an observable sequence according to a specified key selector function and comparer and selects the resulting elements by using a specified function. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements within the groups computed for each element in the source sequence. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to map each source element to an element in an observable group. + An equality comparer to compare keys with. + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + + or or or is null. + + + + Groups the elements of an observable sequence according to a specified key selector function. + A duration selector function is used to control the lifetime of groups. When a group expires, it receives an OnCompleted notification. When a new element with the same + key value as a reclaimed group occurs, the group will be reborn with a new lifetime request. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements in the duration sequences obtained for each group to denote its lifetime. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to signal the expiration of a group. + + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + If a group's lifetime expires, a new group with the same key value can be created once an element with such a key value is encountered. + + + or or is null. + + + + Groups the elements of an observable sequence with the specified initial capacity according to a specified key selector function. + A duration selector function is used to control the lifetime of groups. When a group expires, it receives an OnCompleted notification. When a new element with the same + key value as a reclaimed group occurs, the group will be reborn with a new lifetime request. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements in the duration sequences obtained for each group to denote its lifetime. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to signal the expiration of a group. + The initial number of elements that the underlying dictionary can contain. + + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + If a group's lifetime expires, a new group with the same key value can be created once an element with such a key value is encountered. + + + or or is null. + + is less than 0. + + + + Groups the elements of an observable sequence with the specified initial capacity according to a specified key selector function and comparer. + A duration selector function is used to control the lifetime of groups. When a group expires, it receives an OnCompleted notification. When a new element with the same + key value as a reclaimed group occurs, the group will be reborn with a new lifetime request. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements in the duration sequences obtained for each group to denote its lifetime. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to signal the expiration of a group. + The initial number of elements that the underlying dictionary can contain. + An equality comparer to compare keys with. + + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + If a group's lifetime expires, a new group with the same key value can be created once an element with such a key value is encountered. + + + or or or is null. + + is less than 0. + + + + Groups the elements of an observable sequence according to a specified key selector function and comparer. + A duration selector function is used to control the lifetime of groups. When a group expires, it receives an OnCompleted notification. When a new element with the same + key value as a reclaimed group occurs, the group will be reborn with a new lifetime request. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements in the duration sequences obtained for each group to denote its lifetime. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to signal the expiration of a group. + An equality comparer to compare keys with. + + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + If a group's lifetime expires, a new group with the same key value can be created once an element with such a key value is encountered. + + + or or or is null. + + + + Groups the elements of an observable sequence according to a specified key selector function and selects the resulting elements by using a specified function. + A duration selector function is used to control the lifetime of groups. When a group expires, it receives an OnCompleted notification. When a new element with the same + key value as a reclaimed group occurs, the group will be reborn with a new lifetime request. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements within the groups computed for each element in the source sequence. + The type of the elements in the duration sequences obtained for each group to denote its lifetime. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to map each source element to an element in an observable group. + A function to signal the expiration of a group. + + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + If a group's lifetime expires, a new group with the same key value can be created once an element with such a key value is encountered. + + + or or or is null. + + + + Groups the elements of an observable sequence with the specified initial capacity according to a specified key selector function and selects the resulting elements by using a specified function. + A duration selector function is used to control the lifetime of groups. When a group expires, it receives an OnCompleted notification. When a new element with the same + key value as a reclaimed group occurs, the group will be reborn with a new lifetime request. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements within the groups computed for each element in the source sequence. + The type of the elements in the duration sequences obtained for each group to denote its lifetime. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to map each source element to an element in an observable group. + A function to signal the expiration of a group. + The initial number of elements that the underlying dictionary can contain. + + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + If a group's lifetime expires, a new group with the same key value can be created once an element with such a key value is encountered. + + + or or or is null. + + is less than 0. + + + + Groups the elements of an observable sequence with the specified initial capacity according to a specified key selector function and comparer and selects the resulting elements by using a specified function. + A duration selector function is used to control the lifetime of groups. When a group expires, it receives an OnCompleted notification. When a new element with the same + key value as a reclaimed group occurs, the group will be reborn with a new lifetime request. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements within the groups computed for each element in the source sequence. + The type of the elements in the duration sequences obtained for each group to denote its lifetime. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to map each source element to an element in an observable group. + A function to signal the expiration of a group. + The initial number of elements that the underlying dictionary can contain. + An equality comparer to compare keys with. + + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + If a group's lifetime expires, a new group with the same key value can be created once an element with such a key value is encountered. + + + or or or or is null. + + is less than 0. + + + + Groups the elements of an observable sequence according to a specified key selector function and comparer and selects the resulting elements by using a specified function. + A duration selector function is used to control the lifetime of groups. When a group expires, it receives an OnCompleted notification. When a new element with the same + key value as a reclaimed group occurs, the group will be reborn with a new lifetime request. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements within the groups computed for each element in the source sequence. + The type of the elements in the duration sequences obtained for each group to denote its lifetime. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to map each source element to an element in an observable group. + A function to signal the expiration of a group. + An equality comparer to compare keys with. + + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + If a group's lifetime expires, a new group with the same key value can be created once an element with such a key value is encountered. + + + or or or or is null. + + + + Correlates the elements of two sequences based on overlapping durations, and groups the results. + + The type of the elements in the left source sequence. + The type of the elements in the right source sequence. + The type of the elements in the duration sequence denoting the computed duration of each element in the left source sequence. + The type of the elements in the duration sequence denoting the computed duration of each element in the right source sequence. + The type of the elements in the result sequence, obtained by invoking the result selector function for source elements with overlapping duration. + The left observable sequence to join elements for. + The right observable sequence to join elements for. + A function to select the duration of each element of the left observable sequence, used to determine overlap. + A function to select the duration of each element of the right observable sequence, used to determine overlap. + A function invoked to compute a result element for any element of the left sequence with overlapping elements from the right observable sequence. + An observable sequence that contains result elements computed from source elements that have an overlapping duration. + + or or or or is null. + + + + If the specified evaluates true, select the sequence. Otherwise, return an empty sequence. + + Query provider used to construct the data source. + The type of the elements in the result sequence. + Condition evaluated to decide which sequence to return. + Sequence returned in case evaluates true. + + if evaluates true; an empty sequence otherwise. + + or is null. + + + + If the specified evaluates true, select the sequence. Otherwise, select the sequence. + + Query provider used to construct the data source. + The type of the elements in the result sequence. + Condition evaluated to decide which sequence to return. + Sequence returned in case evaluates true. + Sequence returned in case evaluates false. + + if evaluates true; otherwise. + + or or is null. + + + + If the specified evaluates true, select the sequence. Otherwise, return an empty sequence generated on the specified scheduler. + + Query provider used to construct the data source. + The type of the elements in the result sequence. + Condition evaluated to decide which sequence to return. + Sequence returned in case evaluates true. + Scheduler to generate an empty sequence on in case evaluates false. + + if evaluates true; an empty sequence otherwise. + + or or is null. + + + + Ignores all elements in an observable sequence leaving only the termination messages. + + The type of the elements in the source sequence. + Source sequence. + An empty observable sequence that signals termination, successful or exceptional, of the source sequence. + + is null. + + + + Returns an observable sequence that produces a value after each period. + + Query provider used to construct the data source. + Period for producing the values in the resulting sequence. If this value is equal to TimeSpan.Zero, the timer will recur as fast as possible. + An observable sequence that produces a value after each period. + + is less than TimeSpan.Zero. + + Intervals are measured between the start of subsequent notifications, not between the end of the previous and the start of the next notification. + If the observer takes longer than the interval period to handle the message, the subsequent notification will be delivered immediately after the + current one has been handled. In case you need to control the time between the end and the start of consecutive notifications, consider using the + + operator instead. + + + + + Returns an observable sequence that produces a value after each period, using the specified scheduler to run timers and to send out observer messages. + + Query provider used to construct the data source. + Period for producing the values in the resulting sequence. If this value is equal to TimeSpan.Zero, the timer will recur as fast as possible. + Scheduler to run the timer on. + An observable sequence that produces a value after each period. + + is less than TimeSpan.Zero. + + is null. + + Intervals are measured between the start of subsequent notifications, not between the end of the previous and the start of the next notification. + If the observer takes longer than the interval period to handle the message, the subsequent notification will be delivered immediately after the + current one has been handled. In case you need to control the time between the end and the start of consecutive notifications, consider using the + + operator instead. + + + + + Determines whether an observable sequence is empty. + + The type of the elements in the source sequence. + An observable sequence to check for emptiness. + An observable sequence containing a single element determining whether the source sequence is empty. + + is null. + + + + Correlates the elements of two sequences based on overlapping durations. + + The type of the elements in the left source sequence. + The type of the elements in the right source sequence. + The type of the elements in the duration sequence denoting the computed duration of each element in the left source sequence. + The type of the elements in the duration sequence denoting the computed duration of each element in the right source sequence. + The type of the elements in the result sequence, obtained by invoking the result selector function for source elements with overlapping duration. + The left observable sequence to join elements for. + The right observable sequence to join elements for. + A function to select the duration of each element of the left observable sequence, used to determine overlap. + A function to select the duration of each element of the right observable sequence, used to determine overlap. + A function invoked to compute a result element for any two overlapping elements of the left and right observable sequences. + An observable sequence that contains result elements computed from source elements that have an overlapping duration. + + or or or or is null. + + + + Returns the last element of an observable sequence. + + The type of the elements in the source sequence. + Source observable sequence. + Sequence containing the last element in the observable sequence. + + is null. + (Asynchronous) The source sequence is empty. + + + + Returns the last element of an observable sequence that satisfies the condition in the predicate. + + The type of the elements in the source sequence. + Source observable sequence. + A predicate function to evaluate for elements in the source sequence. + Sequence containing the last element in the observable sequence that satisfies the condition in the predicate. + + or is null. + (Asynchronous) No element satisfies the condition in the predicate. -or- The source sequence is empty. + + + + Returns the last element of an observable sequence, or a default value if no such element exists. + + The type of the elements in the source sequence. + Source observable sequence. + Sequence containing the last element in the observable sequence, or a default value if no such element exists. + + is null. + + + + Returns the last element of an observable sequence that satisfies the condition in the predicate, or a default value if no such element exists. + + The type of the elements in the source sequence. + Source observable sequence. + A predicate function to evaluate for elements in the source sequence. + Sequence containing the last element in the observable sequence that satisfies the condition in the predicate, or a default value if no such element exists. + + or is null. + + + + Returns an enumerable sequence whose enumeration returns the latest observed element in the source observable sequence. + Enumerators on the resulting sequence will never produce the same element repeatedly, and will block until the next element becomes available. + + The type of the elements in the source sequence. + Source observable sequence. + The enumerable sequence that returns the last sampled element upon each iteration and subsequently blocks until the next element in the observable source sequence becomes available. + This operator requires the source's object (see ) to implement . + + + + Returns an observable sequence containing an that represents the total number of elements in an observable sequence. + + The type of the elements in the source sequence. + An observable sequence that contains elements to be counted. + An observable sequence containing a single element with the number of elements in the input sequence. + + is null. + (Asynchronous) The number of elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns an observable sequence containing an that represents how many elements in the specified observable sequence satisfy a condition. + + The type of the elements in the source sequence. + An observable sequence that contains elements to be counted. + A function to test each element for a condition. + An observable sequence containing a single element with a number that represents how many elements in the input sequence satisfy the condition in the predicate function. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Materializes the implicit notifications of an observable sequence as explicit notification values. + + The type of the elements in the source sequence. + An observable sequence to get notification values for. + An observable sequence containing the materialized notification values from the source sequence. + + is null. + + + + Returns the maximum value in an observable sequence of values. + + A sequence of values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of values. + + A sequence of values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of values. + + A sequence of values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of values. + + A sequence of values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of values. + + A sequence of values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum element in an observable sequence. + + The type of the elements in the source sequence. + An observable sequence to determine the maximum element of. + An observable sequence containing a single element with the maximum element in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence according to the specified comparer. + + The type of the elements in the source sequence. + An observable sequence to determine the maximum element of. + Comparer used to compare elements. + An observable sequence containing a single element with the maximum element in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum value. + + The type of the elements in the source sequence. + The type of the objects derived from the elements in the source sequence to determine the maximum of. + An observable sequence to determine the minimum element of. + A transform function to apply to each element. + An observable sequence containing a single element with the value that corresponds to the maximum element in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum value according to the specified comparer. + + The type of the elements in the source sequence. + The type of the objects derived from the elements in the source sequence to determine the maximum of. + An observable sequence to determine the minimum element of. + A transform function to apply to each element. + Comparer used to compare elements. + An observable sequence containing a single element with the value that corresponds to the maximum element in the source sequence. + + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the elements in an observable sequence with the maximum key value. + + The type of the elements in the source sequence. + The type of the key computed for each element in the source sequence. + An observable sequence to get the maximum elements for. + Key selector function. + An observable sequence containing a list of zero or more elements that have a maximum key value. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the elements in an observable sequence with the maximum key value according to the specified comparer. + + The type of the elements in the source sequence. + The type of the key computed for each element in the source sequence. + An observable sequence to get the maximum elements for. + Key selector function. + Comparer used to compare key values. + An observable sequence containing a list of zero or more elements that have a maximum key value. + + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Merges elements from two observable sequences into a single observable sequence. + + The type of the elements in the source sequences. + First observable sequence. + Second observable sequence. + The observable sequence that merges the elements of the given sequences. + + or is null. + + + + Merges elements from two observable sequences into a single observable sequence, using the specified scheduler for enumeration of and subscription to the sources. + + The type of the elements in the source sequences. + First observable sequence. + Second observable sequence. + Scheduler used to introduce concurrency for making subscriptions to the given sequences. + The observable sequence that merges the elements of the given sequences. + + or or is null. + + + + Merges elements from all of the specified observable sequences into a single observable sequence, using the specified scheduler for enumeration of and subscription to the sources. + + Query provider used to construct the data source. + The type of the elements in the source sequences. + Observable sequences. + Scheduler to run the enumeration of the sequence of sources on. + The observable sequence that merges the elements of the observable sequences. + + or is null. + + + + Merges elements from all inner observable sequences into a single observable sequence. + + The type of the elements in the source sequences. + Observable sequence of inner observable sequences. + The observable sequence that merges the elements of the inner sequences. + + is null. + + + + Merges results from all source tasks into a single observable sequence. + + The type of the results produced by the source tasks. + Observable sequence of tasks. + The observable sequence that merges the results of the source tasks. + + is null. + If the tasks support cancellation, consider manual conversion of the tasks using , followed by a merge operation using . + + + + Merges elements from all of the specified observable sequences into a single observable sequence. + + Query provider used to construct the data source. + The type of the elements in the source sequences. + Observable sequences. + The observable sequence that merges the elements of the observable sequences. + + is null. + + + + Merges elements from all observable sequences in the given enumerable sequence into a single observable sequence. + + Query provider used to construct the data source. + The type of the elements in the source sequences. + Enumerable sequence of observable sequences. + The observable sequence that merges the elements of the observable sequences. + + is null. + + + + Merges elements from all inner observable sequences into a single observable sequence, limiting the number of concurrent subscriptions to inner sequences. + + The type of the elements in the source sequences. + Observable sequence of inner observable sequences. + Maximum number of inner observable sequences being subscribed to concurrently. + The observable sequence that merges the elements of the inner sequences. + + is null. + + is less than or equal to zero. + + + + Merges elements from all observable sequences in the given enumerable sequence into a single observable sequence, limiting the number of concurrent subscriptions to inner sequences. + + Query provider used to construct the data source. + The type of the elements in the source sequences. + Enumerable sequence of observable sequences. + Maximum number of observable sequences being subscribed to concurrently. + The observable sequence that merges the elements of the observable sequences. + + is null. + + is less than or equal to zero. + + + + Merges elements from all observable sequences in the given enumerable sequence into a single observable sequence, limiting the number of concurrent subscriptions to inner sequences, and using the specified scheduler for enumeration of and subscription to the sources. + + Query provider used to construct the data source. + The type of the elements in the source sequences. + Enumerable sequence of observable sequences. + Maximum number of observable sequences being subscribed to concurrently. + Scheduler to run the enumeration of the sequence of sources on. + The observable sequence that merges the elements of the observable sequences. + + or is null. + + is less than or equal to zero. + + + + Merges elements from all observable sequences in the given enumerable sequence into a single observable sequence, using the specified scheduler for enumeration of and subscription to the sources. + + Query provider used to construct the data source. + The type of the elements in the source sequences. + Enumerable sequence of observable sequences. + Scheduler to run the enumeration of the sequence of sources on. + The observable sequence that merges the elements of the observable sequences. + + or is null. + + + + Returns the minimum value in an observable sequence of values. + + A sequence of values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of values. + + A sequence of values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of values. + + A sequence of values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of values. + + A sequence of values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of values. + + A sequence of values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum element in an observable sequence. + + The type of the elements in the source sequence. + An observable sequence to determine the minimum element of. + An observable sequence containing a single element with the minimum element in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum element in an observable sequence according to the specified comparer. + + The type of the elements in the source sequence. + An observable sequence to determine the minimum element of. + Comparer used to compare elements. + An observable sequence containing a single element with the minimum element in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum value. + + The type of the elements in the source sequence. + The type of the objects derived from the elements in the source sequence to determine the minimum of. + An observable sequence to determine the minimum element of. + A transform function to apply to each element. + An observable sequence containing a single element with the value that corresponds to the minimum element in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum value according to the specified comparer. + + The type of the elements in the source sequence. + The type of the objects derived from the elements in the source sequence to determine the minimum of. + An observable sequence to determine the minimum element of. + A transform function to apply to each element. + Comparer used to compare elements. + An observable sequence containing a single element with the value that corresponds to the minimum element in the source sequence. + + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the elements in an observable sequence with the minimum key value. + + The type of the elements in the source sequence. + The type of the key computed for each element in the source sequence. + An observable sequence to get the minimum elements for. + Key selector function. + An observable sequence containing a list of zero or more elements that have a minimum key value. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the elements in an observable sequence with the minimum key value according to the specified comparer. + + The type of the elements in the source sequence. + The type of the key computed for each element in the source sequence. + An observable sequence to get the minimum elements for. + Key selector function. + Comparer used to compare key values. + An observable sequence containing a list of zero or more elements that have a minimum key value. + + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns an enumerable sequence whose enumeration returns the most recently observed element in the source observable sequence, using the specified initial value in case no element has been sampled yet. + Enumerators on the resulting sequence never block and can produce the same element repeatedly. + + The type of the elements in the source sequence. + Source observable sequence. + Initial value that will be yielded by the enumerable sequence if no element has been sampled yet. + The enumerable sequence that returns the last sampled element upon each iteration. + + is null. + This operator requires the source's object (see ) to implement . + + + + Multicasts the source sequence notifications through an instantiated subject into all uses of the sequence within a selector function. Each + subscription to the resulting sequence causes a separate multicast invocation, exposing the sequence resulting from the selector function's + invocation. For specializations with fixed subject types, see Publish, PublishLast, and Replay. + + The type of the elements in the source sequence. + The type of the elements produced by the intermediate subject. + The type of the elements in the result sequence. + Source sequence which will be multicasted in the specified selector function. + Factory function to create an intermediate subject through which the source sequence's elements will be multicast to the selector function. + Selector function which can use the multicasted source sequence subject to the policies enforced by the created subject. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + + or or is null. + + + + Returns a non-terminating observable sequence, which can be used to denote an infinite duration (e.g. when using reactive joins). + + Query provider used to construct the data source. + The type used for the type parameter of the resulting sequence. + An observable sequence whose observers will never get called. + + + + Returns a non-terminating observable sequence, which can be used to denote an infinite duration (e.g. when using reactive joins). + + Query provider used to construct the data source. + The type used for the type parameter of the resulting sequence. + Object solely used to infer the type of the type parameter. This parameter is typically used when creating a sequence of anonymously typed elements. + An observable sequence whose observers will never get called. + + + + Returns an enumerable sequence whose enumeration blocks until the next element in the source observable sequence becomes available. + Enumerators on the resulting sequence will block until the next element becomes available. + + The type of the elements in the source sequence. + Source observable sequence. + The enumerable sequence that blocks upon each iteration until the next element in the observable source sequence becomes available. + + is null. + This operator requires the source's object (see ) to implement . + + + + Wraps the source sequence in order to run its observer callbacks on the specified synchronization context. + + The type of the elements in the source sequence. + Source sequence. + Synchronization context to notify observers on. + The source sequence whose observations happen on the specified synchronization context. + + or is null. + + This only invokes observer callbacks on a synchronization context. In case the subscription and/or unsubscription actions have side-effects + that require to be run on a synchronization context, use . + + + + + Wraps the source sequence in order to run its observer callbacks on the specified scheduler. + + The type of the elements in the source sequence. + Source sequence. + Scheduler to notify observers on. + The source sequence whose observations happen on the specified scheduler. + + or is null. + + This only invokes observer callbacks on a scheduler. In case the subscription and/or unsubscription actions have side-effects + that require to be run on a scheduler, use . + + + + + Filters the elements of an observable sequence based on the specified type. + + The type to filter the elements in the source sequence on. + The observable sequence that contains the elements to be filtered. + An observable sequence that contains elements from the input sequence of type TResult. + + is null. + + + + Concatenates the second observable sequence to the first observable sequence upon successful or exceptional termination of the first. + + The type of the elements in the source sequences. + First observable sequence whose exception (if any) is caught. + Second observable sequence used to produce results after the first sequence terminates. + An observable sequence that concatenates the first and second sequence, even if the first sequence terminates exceptionally. + + or is null. + + + + Concatenates all of the specified observable sequences, even if the previous observable sequence terminated exceptionally. + + Query provider used to construct the data source. + The type of the elements in the source sequences. + Observable sequences to concatenate. + An observable sequence that concatenates the source sequences, even if a sequence terminates exceptionally. + + is null. + + + + Concatenates all observable sequences in the given enumerable sequence, even if the previous observable sequence terminated exceptionally. + + Query provider used to construct the data source. + The type of the elements in the source sequences. + Observable sequences to concatenate. + An observable sequence that concatenates the source sequences, even if a sequence terminates exceptionally. + + is null. + + + + Prepend a value to an observable sequence. + + The type of the elements in the source sequence. + Source sequence to prepend the value to. + Value to prepend to the specified sequence. + The source sequence prepended with the specified value. + + is null. + + + + Prepend a value to an observable sequence. + + The type of the elements in the source sequence. + Source sequence to prepend the value to. + Value to prepend to the specified sequence. + Scheduler to emit the prepend values on. + The source sequence prepended with the specified value. + + is null. + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence. + This operator is a specialization of Multicast using a regular . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all notifications of the source from the time of the subscription on. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + + or is null. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence and starts with initialValue. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive immediately receive the initial value, followed by all notifications of the source from the time of the subscription on. + Initial value received by observers upon subscription. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + + or is null. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence containing only the last notification. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will only receive the last notification of the source. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + + or is null. + + + + + Generates an observable sequence of integral numbers within a specified range. + + Query provider used to construct the data source. + The value of the first integer in the sequence. + The number of sequential integers to generate. + An observable sequence that contains a range of sequential integral numbers. + + is less than zero. -or- + - 1 is larger than . + + + + Generates an observable sequence of integral numbers within a specified range, using the specified scheduler to send out observer messages. + + Query provider used to construct the data source. + The value of the first integer in the sequence. + The number of sequential integers to generate. + Scheduler to run the generator loop on. + An observable sequence that contains a range of sequential integral numbers. + + is less than zero. -or- + - 1 is larger than . + + is null. + + + + Returns an observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + + Query provider used to construct the data source. + The type of the elements in the source sequence. + Connectable observable sequence. + An observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + + is null. + + + + Returns an observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + + Query provider used to construct the data source. + The type of the elements in the source sequence. + Connectable observable sequence. + The time span that should be waited before possibly unsubscribing from the connectable observable. + An observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + + is null. + + + + Returns an observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + + Query provider used to construct the data source. + The type of the elements in the source sequence. + Connectable observable sequence. + The time span that should be waited before possibly unsubscribing from the connectable observable. + The scheduler to use for delayed unsubscription. + An observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + + is null. + + + + Returns an observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + + Query provider used to construct the data source. + The type of the elements in the source sequence. + Connectable observable sequence. + The minimum number of observers required to subscribe before establishing the connection to the source. + An observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + + is null. + is non-positive. + + + + Returns an observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + + Query provider used to construct the data source. + The type of the elements in the source sequence. + Connectable observable sequence. + The minimum number of observers required to subscribe before establishing the connection to the source. + The time span that should be waited before possibly unsubscribing from the connectable observable. + An observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + + is null. + is non-positive. + + + + Returns an observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + + Query provider used to construct the data source. + The type of the elements in the source sequence. + Connectable observable sequence. + The minimum number of observers required to subscribe before establishing the connection to the source. + The time span that should be waited before possibly unsubscribing from the connectable observable. + The scheduler to use for delayed unsubscription. + An observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + + is null. + is non-positive. + + + + Generates an observable sequence that repeats the given element infinitely. + + Query provider used to construct the data source. + The type of the element that will be repeated in the produced sequence. + Element to repeat. + An observable sequence that repeats the given element infinitely. + + + + Generates an observable sequence that repeats the given element the specified number of times. + + Query provider used to construct the data source. + The type of the element that will be repeated in the produced sequence. + Element to repeat. + Number of times to repeat the element. + An observable sequence that repeats the given element the specified number of times. + + is less than zero. + + + + Generates an observable sequence that repeats the given element the specified number of times, using the specified scheduler to send out observer messages. + + Query provider used to construct the data source. + The type of the element that will be repeated in the produced sequence. + Element to repeat. + Number of times to repeat the element. + Scheduler to run the producer loop on. + An observable sequence that repeats the given element the specified number of times. + + is less than zero. + + is null. + + + + Generates an observable sequence that repeats the given element infinitely, using the specified scheduler to send out observer messages. + + Query provider used to construct the data source. + The type of the element that will be repeated in the produced sequence. + Element to repeat. + Scheduler to run the producer loop on. + An observable sequence that repeats the given element infinitely. + + is null. + + + + Repeats the observable sequence indefinitely. + + The type of the elements in the source sequence. + Observable sequence to repeat. + The observable sequence producing the elements of the given sequence repeatedly and sequentially. + + is null. + + + + Repeats the observable sequence a specified number of times. + + The type of the elements in the source sequence. + Observable sequence to repeat. + Number of times to repeat the sequence. + The observable sequence producing the elements of the given sequence repeatedly. + + is null. + + is less than zero. + + + + Repeatedly resubscribes to the source observable after a normal completion and when the observable + returned by a handler produces an arbitrary item. + + The type of the elements in the source sequence. + The arbitrary element type signaled by the handler observable. + Observable sequence to keep repeating when it successfully terminates. + The function that is called for each observer and takes an observable sequence objects. + It should return an observable of arbitrary items that should signal that arbitrary item in + response to receiving the completion signal from the source observable. If this observable signals + a terminal event, the sequence is terminated with that signal instead. + An observable sequence producing the elements of the given sequence repeatedly while each repetition terminates successfully. + is null. + is null. + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying all notifications. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all the notifications of the source. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + + or is null. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum element count for the replay buffer. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all the notifications of the source subject to the specified replay buffer trimming policy. + Maximum element count of the replay buffer. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + + or is null. + + is less than zero. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum element count for the replay buffer. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all the notifications of the source subject to the specified replay buffer trimming policy. + Maximum element count of the replay buffer. + Scheduler where connected observers within the selector function will be invoked on. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + + or or is null. + + is less than zero. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum time length and element count for the replay buffer. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all the notifications of the source subject to the specified replay buffer trimming policy. + Maximum element count of the replay buffer. + Maximum time length of the replay buffer. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + + or is null. + + is less than zero. + + is less than TimeSpan.Zero. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum time length and element count for the replay buffer. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all the notifications of the source subject to the specified replay buffer trimming policy. + Maximum element count of the replay buffer. + Maximum time length of the replay buffer. + Scheduler where connected observers within the selector function will be invoked on. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + + or or is null. + + is less than zero. + + is less than TimeSpan.Zero. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying all notifications. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all the notifications of the source. + Scheduler where connected observers within the selector function will be invoked on. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + + or or is null. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum time length for the replay buffer. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all the notifications of the source subject to the specified replay buffer trimming policy. + Maximum time length of the replay buffer. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + + or is null. + + is less than TimeSpan.Zero. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum time length for the replay buffer. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all the notifications of the source subject to the specified replay buffer trimming policy. + Maximum time length of the replay buffer. + Scheduler where connected observers within the selector function will be invoked on. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + + or or is null. + + is less than TimeSpan.Zero. + + + + + Repeats the source observable sequence until it successfully terminates. + + The type of the elements in the source sequence. + Observable sequence to repeat until it successfully terminates. + An observable sequence producing the elements of the given sequence repeatedly until it terminates successfully. + + is null. + + + + Repeats the source observable sequence the specified number of times or until it successfully terminates. + + The type of the elements in the source sequence. + Observable sequence to repeat until it successfully terminates. + Number of times to repeat the sequence. + An observable sequence producing the elements of the given sequence repeatedly until it terminates successfully. + + is null. + + is less than zero. + + + + Retries (resubscribes to) the source observable after a failure and when the observable + returned by a handler produces an arbitrary item. + + The type of the elements in the source sequence. + The arbitrary element type signaled by the handler observable. + Observable sequence to repeat until it successfully terminates. + The function that is called for each observer and takes an observable sequence of + errors. It should return an observable of arbitrary items that should signal that arbitrary item in + response to receiving the failure Exception from the source observable. If this observable signals + a terminal event, the sequence is terminated with that signal instead. + An observable sequence producing the elements of the given sequence repeatedly until it terminates successfully. + + is null. + + is null. + + + + Returns an observable sequence that contains a single element. + + Query provider used to construct the data source. + The type of the element that will be returned in the produced sequence. + Single element in the resulting observable sequence. + An observable sequence containing the single specified element. + + + + Returns an observable sequence that contains a single element, using the specified scheduler to send out observer messages. + + Query provider used to construct the data source. + The type of the element that will be returned in the produced sequence. + Single element in the resulting observable sequence. + Scheduler to send the single element on. + An observable sequence containing the single specified element. + + is null. + + + + Samples the observable sequence at each interval. + Upon each sampling tick, the latest element (if any) in the source sequence during the last sampling interval is sent to the resulting sequence. + + The type of the elements in the source sequence. + Source sequence to sample. + Interval at which to sample. If this value is equal to TimeSpan.Zero, the scheduler will continuously sample the stream. + Sampled observable sequence. + + is null. + + is less than TimeSpan.Zero. + + Specifying a TimeSpan.Zero value for doesn't guarantee all source sequence elements will be preserved. This is a side-effect + of the asynchrony introduced by the scheduler, where the sampling action may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Samples the observable sequence at each interval, using the specified scheduler to run sampling timers. + Upon each sampling tick, the latest element (if any) in the source sequence during the last sampling interval is sent to the resulting sequence. + + The type of the elements in the source sequence. + Source sequence to sample. + Interval at which to sample. If this value is equal to TimeSpan.Zero, the scheduler will continuously sample the stream. + Scheduler to run the sampling timer on. + Sampled observable sequence. + + or is null. + + is less than TimeSpan.Zero. + + Specifying a TimeSpan.Zero value for doesn't guarantee all source sequence elements will be preserved. This is a side-effect + of the asynchrony introduced by the scheduler, where the sampling action may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Samples the source observable sequence using a sampler observable sequence producing sampling ticks. + Upon each sampling tick, the latest element (if any) in the source sequence during the last sampling interval is sent to the resulting sequence. + + The type of the elements in the source sequence. + The type of the elements in the sampling sequence. + Source sequence to sample. + Sampling tick sequence. + Sampled observable sequence. + + or is null. + + + + Applies an accumulator function over an observable sequence and returns each intermediate result. + For aggregation behavior with no intermediate results, see . + + The type of the elements in the source sequence and the result of the aggregation. + An observable sequence to accumulate over. + An accumulator function to be invoked on each element. + An observable sequence containing the accumulated values. + + or is null. + + + + Applies an accumulator function over an observable sequence and returns each intermediate result. The specified seed value is used as the initial accumulator value. + For aggregation behavior with no intermediate results, see . + + The type of the elements in the source sequence. + The type of the result of the aggregation. + An observable sequence to accumulate over. + The initial accumulator value. + An accumulator function to be invoked on each element. + An observable sequence containing the accumulated values. + + or is null. + + + + Projects each element of an observable sequence into a new form. + + The type of the elements in the source sequence. + The type of the elements in the result sequence, obtained by running the selector function for each element in the source sequence. + A sequence of elements to invoke a transform function on. + A transform function to apply to each source element. + An observable sequence whose elements are the result of invoking the transform function on each element of source. + + or is null. + + + + Projects each element of an observable sequence into a new form by incorporating the element's index. + + The type of the elements in the source sequence. + The type of the elements in the result sequence, obtained by running the selector function for each element in the source sequence. + A sequence of elements to invoke a transform function on. + A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + An observable sequence whose elements are the result of invoking the transform function on each element of source. + + or is null. + + + + Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected intermediate sequences. + The type of the elements in the result sequence, obtained by using the selector to combine source sequence elements with their corresponding intermediate sequence elements. + An observable sequence of elements to project. + A transform function to apply to each element. + A transform function to apply to each element of the intermediate sequence. + An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + + or or is null. + + + + Projects each element of an observable sequence to an observable sequence by incorporating the element's index, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected intermediate sequences. + The type of the elements in the result sequence, obtained by using the selector to combine source sequence elements with their corresponding intermediate sequence elements. + An observable sequence of elements to project. + A transform function to apply to each element; the second parameter of the function represents the index of the source element. + A transform function to apply to each element of the intermediate sequence; the second parameter of the function represents the index of the source element and the fourth parameter represents the index of the intermediate element. + An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + + or or is null. + + + + Projects each element of an observable sequence to an enumerable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected intermediate enumerable sequences. + The type of the elements in the result sequence, obtained by using the selector to combine source sequence elements with their corresponding intermediate sequence elements. + An observable sequence of elements to project. + A transform function to apply to each element. + A transform function to apply to each element of the intermediate sequence. + An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + + or or is null. + The projected sequences are enumerated synchronously within the OnNext call of the source sequence. In order to do a concurrent, non-blocking merge, change the selector to return an observable sequence obtained using the conversion. + + + + Projects each element of an observable sequence to an enumerable sequence by incorporating the element's index, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected intermediate enumerable sequences. + The type of the elements in the result sequence, obtained by using the selector to combine source sequence elements with their corresponding intermediate sequence elements. + An observable sequence of elements to project. + A transform function to apply to each element; the second parameter of the function represents the index of the source element. + A transform function to apply to each element of the intermediate sequence; the second parameter of the function represents the index of the source element and the fourth parameter represents the index of the intermediate element. + An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + + or or is null. + The projected sequences are enumerated synchronously within the OnNext call of the source sequence. In order to do a concurrent, non-blocking merge, change the selector to return an observable sequence obtained using the conversion. + + + + Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the other sequence and the elements in the result sequence. + An observable sequence of elements to project. + An observable sequence to project each element from the source sequence onto. + An observable sequence whose elements are the result of projecting each source element onto the other sequence and merging all the resulting sequences together. + + or is null. + + + + Projects each notification of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected inner sequences and the elements in the merged result sequence. + An observable sequence of notifications to project. + A transform function to apply to each element. + A transform function to apply when an error occurs in the source sequence. + A transform function to apply when the end of the source sequence is reached. + An observable sequence whose elements are the result of invoking the one-to-many transform function corresponding to each notification in the input sequence. + + or or or is null. + + + + Projects each notification of an observable sequence to an observable sequence by incorporating the element's index and merges the resulting observable sequences into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected inner sequences and the elements in the merged result sequence. + An observable sequence of notifications to project. + A transform function to apply to each element; the second parameter of the function represents the index of the source element. + A transform function to apply when an error occurs in the source sequence. + A transform function to apply when the end of the source sequence is reached. + An observable sequence whose elements are the result of invoking the one-to-many transform function corresponding to each notification in the input sequence. + + or or or is null. + + + + Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected inner sequences and the elements in the merged result sequence. + An observable sequence of elements to project. + A transform function to apply to each element. + An observable sequence whose elements are the result of invoking the one-to-many transform function on each element of the input sequence. + + or is null. + + + + Projects each element of an observable sequence to an observable sequence by incorporating the element's index and merges the resulting observable sequences into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected inner sequences and the elements in the merged result sequence. + An observable sequence of elements to project. + A transform function to apply to each element; the second parameter of the function represents the index of the source element. + An observable sequence whose elements are the result of invoking the one-to-many transform function on each element of the input sequence. + + or is null. + + + + Projects each element of an observable sequence to a task and merges all of the task results into one observable sequence. + + The type of the elements in the source sequence. + The type of the result produced by the projected tasks and the elements in the merged result sequence. + An observable sequence of elements to project. + A transform function to apply to each element. + An observable sequence whose elements are the result of the tasks executed for each element of the input sequence. + This overload supports composition of observable sequences and tasks, without requiring manual conversion of the tasks to observable sequences using . + + or is null. + + + + Projects each element of an observable sequence to a task by incorporating the element's index and merges all of the task results into one observable sequence. + + The type of the elements in the source sequence. + The type of the result produced by the projected tasks and the elements in the merged result sequence. + An observable sequence of elements to project. + A transform function to apply to each element; the second parameter of the function represents the index of the source element. + An observable sequence whose elements are the result of the tasks executed for each element of the input sequence. + This overload supports composition of observable sequences and tasks, without requiring manual conversion of the tasks to observable sequences using . + + or is null. + + + + Projects each element of an observable sequence to a task with cancellation support and merges all of the task results into one observable sequence. + + The type of the elements in the source sequence. + The type of the result produced by the projected tasks and the elements in the merged result sequence. + An observable sequence of elements to project. + A transform function to apply to each element. + An observable sequence whose elements are the result of the tasks executed for each element of the input sequence. + This overload supports composition of observable sequences and tasks, without requiring manual conversion of the tasks to observable sequences using . + + or is null. + + + + Projects each element of an observable sequence to a task by incorporating the element's index with cancellation support and merges all of the task results into one observable sequence. + + The type of the elements in the source sequence. + The type of the result produced by the projected tasks and the elements in the merged result sequence. + An observable sequence of elements to project. + A transform function to apply to each element; the second parameter of the function represents the index of the source element. + An observable sequence whose elements are the result of the tasks executed for each element of the input sequence. + This overload supports composition of observable sequences and tasks, without requiring manual conversion of the tasks to observable sequences using . + + or is null. + + + + Projects each element of an observable sequence to an enumerable sequence and concatenates the resulting enumerable sequences into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected inner enumerable sequences and the elements in the merged result sequence. + An observable sequence of elements to project. + A transform function to apply to each element. + An observable sequence whose elements are the result of invoking the one-to-many transform function on each element of the input sequence. + + or is null. + The projected sequences are enumerated synchronously within the OnNext call of the source sequence. In order to do a concurrent, non-blocking merge, change the selector to return an observable sequence obtained using the conversion. + + + + Projects each element of an observable sequence to an enumerable sequence by incorporating the element's index and concatenates the resulting enumerable sequences into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected inner enumerable sequences and the elements in the merged result sequence. + An observable sequence of elements to project. + A transform function to apply to each element; the second parameter of the function represents the index of the source element. + An observable sequence whose elements are the result of invoking the one-to-many transform function on each element of the input sequence. + + or is null. + The projected sequences are enumerated synchronously within the OnNext call of the source sequence. In order to do a concurrent, non-blocking merge, change the selector to return an observable sequence obtained using the conversion. + + + + Projects each element of an observable sequence to a task, invokes the result selector for the source element and the task result, and merges the results into one observable sequence. + + The type of the elements in the source sequence. + The type of the results produced by the projected intermediate tasks. + The type of the elements in the result sequence, obtained by using the selector to combine source sequence elements with their corresponding intermediate task results. + An observable sequence of elements to project. + A transform function to apply to each element. + A transform function to apply to each element of the intermediate sequence. + An observable sequence whose elements are the result of obtaining a task for each element of the input sequence and then mapping the task's result and its corresponding source element to a result element. + + or or is null. + This overload supports using LINQ query comprehension syntax in C# and Visual Basic to compose observable sequences and tasks, without requiring manual conversion of the tasks to observable sequences using . + + + + Projects each element of an observable sequence to a task by incorporating the element's index, invokes the result selector for the source element and the task result, and merges the results into one observable sequence. + + The type of the elements in the source sequence. + The type of the results produced by the projected intermediate tasks. + The type of the elements in the result sequence, obtained by using the selector to combine source sequence elements with their corresponding intermediate task results. + An observable sequence of elements to project. + A transform function to apply to each element; the second parameter of the function represents the index of the source element. + A transform function to apply to each element of the intermediate sequence; the second parameter of the function represents the index of the source element. + An observable sequence whose elements are the result of obtaining a task for each element of the input sequence and then mapping the task's result and its corresponding source element to a result element. + + or or is null. + This overload supports using LINQ query comprehension syntax in C# and Visual Basic to compose observable sequences and tasks, without requiring manual conversion of the tasks to observable sequences using . + + + + Projects each element of an observable sequence to a task with cancellation support, invokes the result selector for the source element and the task result, and merges the results into one observable sequence. + + The type of the elements in the source sequence. + The type of the results produced by the projected intermediate tasks. + The type of the elements in the result sequence, obtained by using the selector to combine source sequence elements with their corresponding intermediate task results. + An observable sequence of elements to project. + A transform function to apply to each element. + A transform function to apply to each element of the intermediate sequence. + An observable sequence whose elements are the result of obtaining a task for each element of the input sequence and then mapping the task's result and its corresponding source element to a result element. + + or or is null. + This overload supports using LINQ query comprehension syntax in C# and Visual Basic to compose observable sequences and tasks, without requiring manual conversion of the tasks to observable sequences using . + + + + Projects each element of an observable sequence to a task by incorporating the element's index with cancellation support, invokes the result selector for the source element and the task result, and merges the results into one observable sequence. + + The type of the elements in the source sequence. + The type of the results produced by the projected intermediate tasks. + The type of the elements in the result sequence, obtained by using the selector to combine source sequence elements with their corresponding intermediate task results. + An observable sequence of elements to project. + A transform function to apply to each element; the second parameter of the function represents the index of the source element. + A transform function to apply to each element of the intermediate sequence; the second parameter of the function represents the index of the source element. + An observable sequence whose elements are the result of obtaining a task for each element of the input sequence and then mapping the task's result and its corresponding source element to a result element. + + or or is null. + This overload supports using LINQ query comprehension syntax in C# and Visual Basic to compose observable sequences and tasks, without requiring manual conversion of the tasks to observable sequences using . + + + + Determines whether two sequences are equal by comparing the elements pairwise. + + The type of the elements in the source sequence. + First observable sequence to compare. + Second observable sequence to compare. + An observable sequence that contains a single element which indicates whether both sequences are of equal length and their corresponding elements are equal according to the default equality comparer for their type. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Determines whether an observable and enumerable sequence are equal by comparing the elements pairwise. + + The type of the elements in the source sequence. + First observable sequence to compare. + Second observable sequence to compare. + An observable sequence that contains a single element which indicates whether both sequences are of equal length and their corresponding elements are equal according to the default equality comparer for their type. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Determines whether two sequences are equal by comparing the elements pairwise using a specified equality comparer. + + The type of the elements in the source sequence. + First observable sequence to compare. + Second observable sequence to compare. + Comparer used to compare elements of both sequences. + An observable sequence that contains a single element which indicates whether both sequences are of equal length and their corresponding elements are equal according to the specified equality comparer. + + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Determines whether an observable and enumerable sequence are equal by comparing the elements pairwise using a specified equality comparer. + + The type of the elements in the source sequence. + First observable sequence to compare. + Second observable sequence to compare. + Comparer used to compare elements of both sequences. + An observable sequence that contains a single element which indicates whether both sequences are of equal length and their corresponding elements are equal according to the specified equality comparer. + + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the only element of an observable sequence, and reports an exception if there is not exactly one element in the observable sequence. + + The type of the elements in the source sequence. + Source observable sequence. + Sequence containing the single element in the observable sequence. + + is null. + (Asynchronous) The source sequence contains more than one element. -or- The source sequence is empty. + + + + Returns the only element of an observable sequence that satisfies the condition in the predicate, and reports an exception if there is not exactly one element in the observable sequence. + + The type of the elements in the source sequence. + Source observable sequence. + A predicate function to evaluate for elements in the source sequence. + Sequence containing the single element in the observable sequence that satisfies the condition in the predicate. + + or is null. + (Asynchronous) No element satisfies the condition in the predicate. -or- More than one element satisfies the condition in the predicate. -or- The source sequence is empty. + + + + Returns the only element of an observable sequence, or a default value if the observable sequence is empty; this method reports an exception if there is more than one element in the observable sequence. + + The type of the elements in the source sequence. + Source observable sequence. + Sequence containing the single element in the observable sequence, or a default value if no such element exists. + + is null. + (Asynchronous) The source sequence contains more than one element. + + + + Returns the only element of an observable sequence that matches the predicate, or a default value if no such element exists; this method reports an exception if there is more than one element in the observable sequence. + + The type of the elements in the source sequence. + Source observable sequence. + A predicate function to evaluate for elements in the source sequence. + Sequence containing the single element in the observable sequence that satisfies the condition in the predicate, or a default value if no such element exists. + + or is null. + (Asynchronous) The sequence contains more than one element that satisfies the condition in the predicate. + + + + Bypasses a specified number of elements in an observable sequence and then returns the remaining elements. + + The type of the elements in the source sequence. + The sequence to take elements from. + The number of elements to skip before returning the remaining elements. + An observable sequence that contains the elements that occur after the specified index in the input sequence. + + is null. + + is less than zero. + + + + Skips elements for the specified duration from the start of the observable source sequence. + + The type of the elements in the source sequence. + Source sequence to skip elements for. + Duration for skipping elements from the start of the sequence. + An observable sequence with the elements skipped during the specified duration from the start of the source sequence. + + is null. + + is less than TimeSpan.Zero. + + + Specifying a TimeSpan.Zero value for doesn't guarantee no elements will be dropped from the start of the source sequence. + This is a side-effect of the asynchrony introduced by the scheduler, where the action that causes callbacks from the source sequence to be forwarded + may not execute immediately, despite the TimeSpan.Zero due time. + + + Errors produced by the source sequence are always forwarded to the result sequence, even if the error occurs before the . + + + + + + Skips elements for the specified duration from the start of the observable source sequence, using the specified scheduler to run timers. + + The type of the elements in the source sequence. + Source sequence to skip elements for. + Duration for skipping elements from the start of the sequence. + Scheduler to run the timer on. + An observable sequence with the elements skipped during the specified duration from the start of the source sequence. + + or is null. + + is less than TimeSpan.Zero. + + + Specifying a TimeSpan.Zero value for doesn't guarantee no elements will be dropped from the start of the source sequence. + This is a side-effect of the asynchrony introduced by the scheduler, where the action that causes callbacks from the source sequence to be forwarded + may not execute immediately, despite the TimeSpan.Zero due time. + + + Errors produced by the source sequence are always forwarded to the result sequence, even if the error occurs before the . + + + + + + Bypasses a specified number of elements at the end of an observable sequence. + + The type of the elements in the source sequence. + Source sequence. + Number of elements to bypass at the end of the source sequence. + An observable sequence containing the source sequence elements except for the bypassed ones at the end. + + is null. + + is less than zero. + + This operator accumulates a queue with a length enough to store the first elements. As more elements are + received, elements are taken from the front of the queue and produced on the result sequence. This causes elements to be delayed. + + + + + Skips elements for the specified duration from the end of the observable source sequence. + + The type of the elements in the source sequence. + Source sequence to skip elements for. + Duration for skipping elements from the end of the sequence. + An observable sequence with the elements skipped during the specified duration from the end of the source sequence. + + is null. + + is less than TimeSpan.Zero. + + This operator accumulates a queue with a length enough to store elements received during the initial window. + As more elements are received, elements older than the specified are taken from the queue and produced on the + result sequence. This causes elements to be delayed with . + + + + + Skips elements for the specified duration from the end of the observable source sequence, using the specified scheduler to run timers. + + The type of the elements in the source sequence. + Source sequence to skip elements for. + Duration for skipping elements from the end of the sequence. + Scheduler to run the timer on. + An observable sequence with the elements skipped during the specified duration from the end of the source sequence. + + or is null. + + is less than TimeSpan.Zero. + + This operator accumulates a queue with a length enough to store elements received during the initial window. + As more elements are received, elements older than the specified are taken from the queue and produced on the + result sequence. This causes elements to be delayed with . + + + + + Skips elements from the observable source sequence until the specified start time. + + The type of the elements in the source sequence. + Source sequence to skip elements for. + Time to start taking elements from the source sequence. If this value is less than or equal to DateTimeOffset.UtcNow, no elements will be skipped. + An observable sequence with the elements skipped until the specified start time. + + is null. + + Errors produced by the source sequence are always forwarded to the result sequence, even if the error occurs before the . + + + + + Skips elements from the observable source sequence until the specified start time, using the specified scheduler to run timers. + + The type of the elements in the source sequence. + Source sequence to skip elements for. + Time to start taking elements from the source sequence. If this value is less than or equal to DateTimeOffset.UtcNow, no elements will be skipped. + Scheduler to run the timer on. + An observable sequence with the elements skipped until the specified start time. + + or is null. + + Errors produced by the source sequence are always forwarded to the result sequence, even if the error occurs before the . + + + + + Returns the elements from the source observable sequence only after the other observable sequence produces an element. + Starting from Rx.NET 4.0, this will subscribe to before subscribing to + so in case emits an element right away, elements from are not missed. + + The type of the elements in the source sequence. + The type of the elements in the other sequence that indicates the end of skip behavior. + Source sequence to propagate elements for. + Observable sequence that triggers propagation of elements of the source sequence. + An observable sequence containing the elements of the source sequence starting from the point the other sequence triggered propagation. + + or is null. + + + + Bypasses elements in an observable sequence as long as a specified condition is true and then returns the remaining elements. + + The type of the elements in the source sequence. + An observable sequence to return elements from. + A function to test each element for a condition. + An observable sequence that contains the elements from the input sequence starting at the first element in the linear series that does not pass the test specified by predicate. + + or is null. + + + + Bypasses elements in an observable sequence as long as a specified condition is true and then returns the remaining elements. + The element's index is used in the logic of the predicate function. + + The type of the elements in the source sequence. + An observable sequence to return elements from. + A function to test each element for a condition; the second parameter of the function represents the index of the source element. + An observable sequence that contains the elements from the input sequence starting at the first element in the linear series that does not pass the test specified by predicate. + + or is null. + + + + Invokes the action asynchronously, surfacing the result through an observable sequence. + + Query provider used to construct the data source. + Action to run asynchronously. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + + is null. + + + + The action is called immediately, not during the subscription of the resulting sequence. + + + Multiple subscriptions to the resulting sequence can observe the action's outcome. + + + + + + + Invokes the action asynchronously on the specified scheduler, surfacing the result through an observable sequence. + + Query provider used to construct the data source. + Action to run asynchronously. + Scheduler to run the action on. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + + or is null. + + + + The action is called immediately, not during the subscription of the resulting sequence. + + + Multiple subscriptions to the resulting sequence can observe the action's outcome. + + + + + + + Invokes the specified function asynchronously, surfacing the result through an observable sequence. + + Query provider used to construct the data source. + The type of the result returned by the function. + Function to run asynchronously. + An observable sequence exposing the function's result value, or an exception. + + is null. + + + + The function is called immediately, not during the subscription of the resulting sequence. + + + Multiple subscriptions to the resulting sequence can observe the function's result. + + + + + + + Invokes the specified function asynchronously on the specified scheduler, surfacing the result through an observable sequence + + Query provider used to construct the data source. + The type of the result returned by the function. + Function to run asynchronously. + Scheduler to run the function on. + An observable sequence exposing the function's result value, or an exception. + + or is null. + + + + The function is called immediately, not during the subscription of the resulting sequence. + + + Multiple subscriptions to the resulting sequence can observe the function's result. + + + + + + + Invokes the asynchronous action, surfacing the result through an observable sequence. + + Query provider used to construct the data source. + Asynchronous action to run. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + + is null. + + + + The action is started immediately, not during the subscription of the resulting sequence. + + + Multiple subscriptions to the resulting sequence can observe the action's outcome. + + + + + + + Invokes the asynchronous action, surfacing the result through an observable sequence. + + Query provider used to construct the data source. + Asynchronous action to run. + Scheduler on which to notify observers. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + + is null or is null. + + + + The action is started immediately, not during the subscription of the resulting sequence. + + + Multiple subscriptions to the resulting sequence can observe the action's outcome. + + + + + + + Invokes the asynchronous action, surfacing the result through an observable sequence. + The CancellationToken is shared by all subscriptions on the resulting observable sequence. See the remarks section for more information. + + Query provider used to construct the data source. + Asynchronous action to run. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + + is null. + + + + The action is started immediately, not during the subscription of the resulting sequence. + + + Multiple subscriptions to the resulting sequence can observe the action's outcome. + + + + If any subscription to the resulting sequence is disposed, the CancellationToken is set. The observer associated to the disposed + subscription won't see the TaskCanceledException, but other observers will. You can protect against this using the Catch operator. + Be careful when handing out the resulting sequence because of this behavior. The most common use is to have a single subscription + to the resulting sequence, which controls the CancellationToken state. Alternatively, you can control subscription behavior using + multicast operators. + + + + + + + + Invokes the asynchronous action, surfacing the result through an observable sequence. + The CancellationToken is shared by all subscriptions on the resulting observable sequence. See the remarks section for more information. + + Query provider used to construct the data source. + Asynchronous action to run. + Scheduler on which to notify observers. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + + is null or is null. + + + + The action is started immediately, not during the subscription of the resulting sequence. + + + Multiple subscriptions to the resulting sequence can observe the action's outcome. + + + + If any subscription to the resulting sequence is disposed, the CancellationToken is set. The observer associated to the disposed + subscription won't see the TaskCanceledException, but other observers will. You can protect against this using the Catch operator. + Be careful when handing out the resulting sequence because of this behavior. The most common use is to have a single subscription + to the resulting sequence, which controls the CancellationToken state. Alternatively, you can control subscription behavior using + multicast operators. + + + + + + + + Invokes the asynchronous function, surfacing the result through an observable sequence. + + Query provider used to construct the data source. + The type of the result returned by the asynchronous function. + Asynchronous function to run. + An observable sequence exposing the function's result value, or an exception. + + is null. + + + + The function is started immediately, not during the subscription of the resulting sequence. + + + Multiple subscriptions to the resulting sequence can observe the function's result. + + + + + + + Invokes the asynchronous function, surfacing the result through an observable sequence. + The CancellationToken is shared by all subscriptions on the resulting observable sequence. See the remarks section for more information. + + Query provider used to construct the data source. + The type of the result returned by the asynchronous function. + Asynchronous function to run. + An observable sequence exposing the function's result value, or an exception. + + is null. + + + + The function is started immediately, not during the subscription of the resulting sequence. + + + Multiple subscriptions to the resulting sequence can observe the function's result. + + + + If any subscription to the resulting sequence is disposed, the CancellationToken is set. The observer associated to the disposed + subscription won't see the TaskCanceledException, but other observers will. You can protect against this using the Catch operator. + Be careful when handing out the resulting sequence because of this behavior. The most common use is to have a single subscription + to the resulting sequence, which controls the CancellationToken state. Alternatively, you can control subscription behavior using + multicast operators. + + + + + + + + Invokes the asynchronous function, surfacing the result through an observable sequence. + + Query provider used to construct the data source. + The type of the result returned by the asynchronous function. + Asynchronous function to run. + Scheduler on which to notify observers. + An observable sequence exposing the function's result value, or an exception. + + is null or is null. + + + + The function is started immediately, not during the subscription of the resulting sequence. + + + Multiple subscriptions to the resulting sequence can observe the function's result. + + + + + + + Invokes the asynchronous function, surfacing the result through an observable sequence. + The CancellationToken is shared by all subscriptions on the resulting observable sequence. See the remarks section for more information. + + Query provider used to construct the data source. + The type of the result returned by the asynchronous function. + Asynchronous function to run. + Scheduler on which to notify observers. + An observable sequence exposing the function's result value, or an exception. + + is null or is null. + + + + The function is started immediately, not during the subscription of the resulting sequence. + + + Multiple subscriptions to the resulting sequence can observe the function's result. + + + + If any subscription to the resulting sequence is disposed, the CancellationToken is set. The observer associated to the disposed + subscription won't see the TaskCanceledException, but other observers will. You can protect against this using the Catch operator. + Be careful when handing out the resulting sequence because of this behavior. The most common use is to have a single subscription + to the resulting sequence, which controls the CancellationToken state. Alternatively, you can control subscription behavior using + multicast operators. + + + + + + + + Prepends a sequence of values to an observable sequence. + + The type of the elements in the source sequence. + Source sequence to prepend values to. + Scheduler to emit the prepended values on. + Values to prepend to the specified sequence. + The source sequence prepended with the specified values. + + or or is null. + + + + Prepends a sequence of values to an observable sequence. + + The type of the elements in the source sequence. + Source sequence to prepend values to. + Scheduler to emit the prepended values on. + Values to prepend to the specified sequence. + The source sequence prepended with the specified values. + + or or is null. + + + + Prepends a sequence of values to an observable sequence. + + The type of the elements in the source sequence. + Source sequence to prepend values to. + Values to prepend to the specified sequence. + The source sequence prepended with the specified values. + + or is null. + + + + Prepends a sequence of values to an observable sequence. + + The type of the elements in the source sequence. + Source sequence to prepend values to. + Values to prepend to the specified sequence. + The source sequence prepended with the specified values. + + or is null. + + + + Wraps the source sequence in order to run its subscription and unsubscription logic on the specified synchronization context. This operation is not commonly used; + see the remarks section for more information on the distinction between SubscribeOn and ObserveOn. + + The type of the elements in the source sequence. + Source sequence. + Synchronization context to perform subscription and unsubscription actions on. + The source sequence whose subscriptions and unsubscriptions happen on the specified synchronization context. + + or is null. + + This only performs the side-effects of subscription and unsubscription on the specified synchronization context. In order to invoke observer + callbacks on a synchronization context, use . + + + + + Wraps the source sequence in order to run its subscription and unsubscription logic on the specified scheduler. This operation is not commonly used; + see the remarks section for more information on the distinction between SubscribeOn and ObserveOn. + + The type of the elements in the source sequence. + Source sequence. + Scheduler to perform subscription and unsubscription actions on. + The source sequence whose subscriptions and unsubscriptions happen on the specified scheduler. + + or is null. + + This only performs the side-effects of subscription and unsubscription on the specified scheduler. In order to invoke observer + callbacks on a scheduler, use . + + + + + Computes the sum of a sequence of values. + + A sequence of values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + + is null. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of values. + + A sequence of values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of values. + + A sequence of values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + + is null. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of values. + + A sequence of values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + + is null. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values. + + A sequence of nullable values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + + is null. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values. + + A sequence of nullable values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values. + + A sequence of nullable values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + + is null. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values. + + A sequence of nullable values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + + is null. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values. + + A sequence of nullable values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of values. + + A sequence of values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + + or is null. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + + or is null. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + + or is null. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + + or is null. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + + or is null. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + + or is null. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Transforms an observable sequence of observable sequences into an observable sequence + producing values only from the most recent observable sequence. + Each time a new inner observable sequence is received, unsubscribe from the + previous inner observable sequence. + + The type of the elements in the source sequences. + Observable sequence of inner observable sequences. + The observable sequence that at any point in time produces the elements of the most recent inner observable sequence that has been received. + + is null. + + + + Transforms an observable sequence of tasks into an observable sequence + producing values only from the most recent observable sequence. + Each time a new task is received, the previous task's result is ignored. + + The type of the results produced by the source tasks. + Observable sequence of tasks. + The observable sequence that at any point in time produces the result of the most recent task that has been received. + + is null. + If the tasks support cancellation, consider manual conversion of the tasks using , followed by a switch operation using . + + + + Synchronizes the observable sequence such that observer notifications cannot be delivered concurrently. + This overload is useful to "fix" an observable sequence that exhibits concurrent callbacks on individual observers, which is invalid behavior for the query processor. + + The type of the elements in the source sequence. + Source sequence. + The source sequence whose outgoing calls to observers are synchronized. + + is null. + + It's invalid behavior - according to the observer grammar - for a sequence to exhibit concurrent callbacks on a given observer. + This operator can be used to "fix" a source that doesn't conform to this rule. + + + + + Synchronizes the observable sequence such that observer notifications cannot be delivered concurrently, using the specified gate object. + This overload is useful when writing n-ary query operators, in order to prevent concurrent callbacks from different sources by synchronizing on a common gate object. + + The type of the elements in the source sequence. + Source sequence. + Gate object to synchronize each observer call on. + The source sequence whose outgoing calls to observers are synchronized on the given gate object. + + or is null. + + + + Returns a specified number of contiguous elements from the start of an observable sequence. + + The type of the elements in the source sequence. + The sequence to take elements from. + The number of elements to return. + An observable sequence that contains the specified number of elements from the start of the input sequence. + + is null. + + is less than zero. + + + + Returns a specified number of contiguous elements from the start of an observable sequence, using the specified scheduler for the edge case of Take(0). + + The type of the elements in the source sequence. + The sequence to take elements from. + The number of elements to return. + Scheduler used to produce an OnCompleted message in case count is set to 0. + An observable sequence that contains the specified number of elements from the start of the input sequence. + + or is null. + + is less than zero. + + + + Takes elements for the specified duration from the start of the observable source sequence. + + The type of the elements in the source sequence. + Source sequence to take elements from. + Duration for taking elements from the start of the sequence. + An observable sequence with the elements taken during the specified duration from the start of the source sequence. + + is null. + + is less than TimeSpan.Zero. + + Specifying a TimeSpan.Zero value for doesn't guarantee an empty sequence will be returned. This is a side-effect + of the asynchrony introduced by the scheduler, where the action that stops forwarding callbacks from the source sequence may not execute + immediately, despite the TimeSpan.Zero due time. + + + + + Takes elements for the specified duration from the start of the observable source sequence, using the specified scheduler to run timers. + + The type of the elements in the source sequence. + Source sequence to take elements from. + Duration for taking elements from the start of the sequence. + Scheduler to run the timer on. + An observable sequence with the elements taken during the specified duration from the start of the source sequence. + + or is null. + + is less than TimeSpan.Zero. + + Specifying a TimeSpan.Zero value for doesn't guarantee an empty sequence will be returned. This is a side-effect + of the asynchrony introduced by the scheduler, where the action that stops forwarding callbacks from the source sequence may not execute + immediately, despite the TimeSpan.Zero due time. + + + + + Returns a specified number of contiguous elements from the end of an observable sequence. + + The type of the elements in the source sequence. + Source sequence. + Number of elements to take from the end of the source sequence. + An observable sequence containing the specified number of elements from the end of the source sequence. + + is null. + + is less than zero. + + This operator accumulates a buffer with a length enough to store elements elements. Upon completion of + the source sequence, this buffer is drained on the result sequence. This causes the elements to be delayed. + + + + + Returns a specified number of contiguous elements from the end of an observable sequence, using the specified scheduler to drain the queue. + + The type of the elements in the source sequence. + Source sequence. + Number of elements to take from the end of the source sequence. + Scheduler used to drain the queue upon completion of the source sequence. + An observable sequence containing the specified number of elements from the end of the source sequence. + + or is null. + + is less than zero. + + This operator accumulates a buffer with a length enough to store elements elements. Upon completion of + the source sequence, this buffer is drained on the result sequence. This causes the elements to be delayed. + + + + + Returns elements within the specified duration from the end of the observable source sequence. + + The type of the elements in the source sequence. + Source sequence to take elements from. + Duration for taking elements from the end of the sequence. + An observable sequence with the elements taken during the specified duration from the end of the source sequence. + + is null. + + is less than TimeSpan.Zero. + + This operator accumulates a buffer with a length enough to store elements for any window during the lifetime of + the source sequence. Upon completion of the source sequence, this buffer is drained on the result sequence. This causes the result elements + to be delayed with . + + + + + Returns elements within the specified duration from the end of the observable source sequence, using the specified scheduler to run timers. + + The type of the elements in the source sequence. + Source sequence to take elements from. + Duration for taking elements from the end of the sequence. + Scheduler to run the timer on. + An observable sequence with the elements taken during the specified duration from the end of the source sequence. + + or is null. + + is less than TimeSpan.Zero. + + This operator accumulates a buffer with a length enough to store elements for any window during the lifetime of + the source sequence. Upon completion of the source sequence, this buffer is drained on the result sequence. This causes the result elements + to be delayed with . + + + + + Returns elements within the specified duration from the end of the observable source sequence, using the specified schedulers to run timers and to drain the collected elements. + + The type of the elements in the source sequence. + Source sequence to take elements from. + Duration for taking elements from the end of the sequence. + Scheduler to run the timer on. + Scheduler to drain the collected elements. + An observable sequence with the elements taken during the specified duration from the end of the source sequence. + + or or is null. + + is less than TimeSpan.Zero. + + This operator accumulates a buffer with a length enough to store elements for any window during the lifetime of + the source sequence. Upon completion of the source sequence, this buffer is drained on the result sequence. This causes the result elements + to be delayed with . + + + + + Returns a list with the specified number of contiguous elements from the end of an observable sequence. + + The type of the elements in the source sequence. + Source sequence. + Number of elements to take from the end of the source sequence. + An observable sequence containing a single list with the specified number of elements from the end of the source sequence. + + is null. + + is less than zero. + + This operator accumulates a buffer with a length enough to store elements. Upon completion of the + source sequence, this buffer is produced on the result sequence. + + + + + Returns a list with the elements within the specified duration from the end of the observable source sequence. + + The type of the elements in the source sequence. + Source sequence to take elements from. + Duration for taking elements from the end of the sequence. + An observable sequence containing a single list with the elements taken during the specified duration from the end of the source sequence. + + is null. + + is less than TimeSpan.Zero. + + This operator accumulates a buffer with a length enough to store elements for any window during the lifetime of + the source sequence. Upon completion of the source sequence, this buffer is produced on the result sequence. + + + + + Returns a list with the elements within the specified duration from the end of the observable source sequence, using the specified scheduler to run timers. + + The type of the elements in the source sequence. + Source sequence to take elements from. + Duration for taking elements from the end of the sequence. + Scheduler to run the timer on. + An observable sequence containing a single list with the elements taken during the specified duration from the end of the source sequence. + + or is null. + + is less than TimeSpan.Zero. + + This operator accumulates a buffer with a length enough to store elements for any window during the lifetime of + the source sequence. Upon completion of the source sequence, this buffer is produced on the result sequence. + + + + + Takes elements for the specified duration until the specified end time. + + The type of the elements in the source sequence. + Source sequence to take elements from. + Time to stop taking elements from the source sequence. If this value is less than or equal to DateTimeOffset.UtcNow, the result stream will complete immediately. + An observable sequence with the elements taken until the specified end time. + + is null. + + + + Takes elements for the specified duration until the specified end time, using the specified scheduler to run timers. + + The type of the elements in the source sequence. + Source sequence to take elements from. + Time to stop taking elements from the source sequence. If this value is less than or equal to DateTimeOffset.UtcNow, the result stream will complete immediately. + Scheduler to run the timer on. + An observable sequence with the elements taken until the specified end time. + + or is null. + + + + Returns the elements from the source observable sequence until the other observable sequence produces an element. + + The type of the elements in the source sequence. + The type of the elements in the other sequence that indicates the end of take behavior. + Source sequence to propagate elements for. + Observable sequence that terminates propagation of elements of the source sequence. + An observable sequence containing the elements of the source sequence up to the point the other sequence interrupted further propagation. + + or is null. + + + + Relays elements from the source observable sequence and calls the predicate after an + emission to check if the sequence should stop after that specific item. + + The type of the elements in the source and result sequences. + The source sequence to relay elements of. + Called after each upstream item has been emitted with + that upstream item and should return true to indicate the sequence should + complete. + The observable sequence with the source elements until the stop predicate returns true. + + The following sequence will stop after the value 5 has been encountered: + + Observable.Range(1, 10) + .TakeUntil(item => item == 5) + .Subscribe(Console.WriteLine); + + + If or is null. + + + + Returns elements from an observable sequence as long as a specified condition is true. + + The type of the elements in the source sequence. + A sequence to return elements from. + A function to test each element for a condition. + An observable sequence that contains the elements from the input sequence that occur before the element at which the test no longer passes. + + or is null. + + + + Returns elements from an observable sequence as long as a specified condition is true. + The element's index is used in the logic of the predicate function. + + The type of the elements in the source sequence. + A sequence to return elements from. + A function to test each element for a condition; the second parameter of the function represents the index of the source element. + An observable sequence that contains the elements from the input sequence that occur before the element at which the test no longer passes. + + or is null. + + + + Ignores elements from an observable sequence which are followed by another element within a specified relative time duration. + + The type of the elements in the source sequence. + Source sequence to throttle. + Throttling duration for each element. + The throttled sequence. + + is null. + + is less than TimeSpan.Zero. + + + This operator throttles the source sequence by holding on to each element for the duration specified in . If another + element is produced within this time window, the element is dropped and a new timer is started for the current element, repeating this whole + process. For streams that never have gaps larger than or equal to between elements, the resulting stream won't + produce any elements. In order to reduce the volume of a stream whilst guaranteeing the periodic production of elements, consider using the + Observable.Sample set of operators. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing throttling timers to be scheduled + that are due immediately. However, this doesn't guarantee all elements will be retained in the result sequence. This is a side-effect of the + asynchrony introduced by the scheduler, where the action to forward the current element may not execute immediately, despite the TimeSpan.Zero + due time. In such cases, the next element may arrive before the scheduler gets a chance to run the throttling action. + + + + + + Ignores elements from an observable sequence which are followed by another element within a specified relative time duration, using the specified scheduler to run throttling timers. + + The type of the elements in the source sequence. + Source sequence to throttle. + Throttling duration for each element. + Scheduler to run the throttle timers on. + The throttled sequence. + + or is null. + + is less than TimeSpan.Zero. + + + This operator throttles the source sequence by holding on to each element for the duration specified in . If another + element is produced within this time window, the element is dropped and a new timer is started for the current element, repeating this whole + process. For streams that never have gaps larger than or equal to between elements, the resulting stream won't + produce any elements. In order to reduce the volume of a stream whilst guaranteeing the periodic production of elements, consider using the + Observable.Sample set of operators. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing throttling timers to be scheduled + that are due immediately. However, this doesn't guarantee all elements will be retained in the result sequence. This is a side-effect of the + asynchrony introduced by the scheduler, where the action to forward the current element may not execute immediately, despite the TimeSpan.Zero + due time. In such cases, the next element may arrive before the scheduler gets a chance to run the throttling action. + + + + + + Ignores elements from an observable sequence which are followed by another value within a computed throttle duration. + + The type of the elements in the source sequence. + The type of the elements in the throttle sequences selected for each element in the source sequence. + Source sequence to throttle. + Selector function to retrieve a sequence indicating the throttle duration for each given element. + The throttled sequence. + + or is null. + + This operator throttles the source sequence by holding on to each element for the duration denoted by . + If another element is produced within this time window, the element is dropped and a new timer is started for the current element, repeating this + whole process. For streams where the duration computed by applying the to each element overlaps with + the occurrence of the successor element, the resulting stream won't produce any elements. In order to reduce the volume of a stream whilst + guaranteeing the periodic production of elements, consider using the Observable.Sample set of operators. + + + + + Returns an observable sequence that terminates with an exception. + + Query provider used to construct the data source. + The type used for the type parameter of the resulting sequence. + Exception object used for the sequence's termination. + The observable sequence that terminates exceptionally with the specified exception object. + + is null. + + + + Returns an observable sequence that terminates with an exception, using the specified scheduler to send out the single OnError message. + + Query provider used to construct the data source. + The type used for the type parameter of the resulting sequence. + Exception object used for the sequence's termination. + Scheduler to send the exceptional termination call on. + The observable sequence that terminates exceptionally with the specified exception object. + + or is null. + + + + Returns an observable sequence that terminates with an exception, using the specified scheduler to send out the single OnError message. + + Query provider used to construct the data source. + The type used for the type parameter of the resulting sequence. + Exception object used for the sequence's termination. + Scheduler to send the exceptional termination call on. + Object solely used to infer the type of the type parameter. This parameter is typically used when creating a sequence of anonymously typed elements. + The observable sequence that terminates exceptionally with the specified exception object. + + or is null. + + + + Returns an observable sequence that terminates with an exception. + + Query provider used to construct the data source. + The type used for the type parameter of the resulting sequence. + Exception object used for the sequence's termination. + Object solely used to infer the type of the type parameter. This parameter is typically used when creating a sequence of anonymously typed elements. + The observable sequence that terminates exceptionally with the specified exception object. + + is null. + + + + Records the time interval between consecutive elements in an observable sequence. + + The type of the elements in the source sequence. + Source sequence to record time intervals for. + An observable sequence with time interval information on elements. + + is null. + + + + Records the time interval between consecutive elements in an observable sequence, using the specified scheduler to compute time intervals. + + The type of the elements in the source sequence. + Source sequence to record time intervals for. + Scheduler used to compute time intervals. + An observable sequence with time interval information on elements. + + or is null. + + + + Applies a timeout policy to the observable sequence based on an absolute time. + If the sequence doesn't terminate before the specified absolute due time, a TimeoutException is propagated to the observer. + + The type of the elements in the source sequence. + Source sequence to perform a timeout for. + Time when a timeout occurs. If this value is less than or equal to DateTimeOffset.UtcNow, the timeout occurs immediately. + The source sequence with a TimeoutException in case of a timeout. + + is null. + (Asynchronous) If the sequence hasn't terminated before . + + In case you only want to timeout on the first element, consider using the + operator applied to the source sequence and a delayed sequence. Alternatively, the general-purpose overload + of Timeout, can be used. + + + + + Applies a timeout policy to the observable sequence based on an absolute time. + If the sequence doesn't terminate before the specified absolute due time, the other observable sequence is used to produce future messages from that point on. + + The type of the elements in the source sequence and the other sequence used upon a timeout. + Source sequence to perform a timeout for. + Time when a timeout occurs. If this value is less than or equal to DateTimeOffset.UtcNow, the timeout occurs immediately. + Sequence to return in case of a timeout. + The source sequence switching to the other sequence in case of a timeout. + + or is null. + + In case you only want to timeout on the first element, consider using the + operator applied to the source sequence and a delayed sequence. Alternatively, the general-purpose overload + of Timeout, can be used. + + + + + Applies a timeout policy to the observable sequence based on an absolute time, using the specified scheduler to run timeout timers. + If the sequence doesn't terminate before the specified absolute due time, the other observable sequence is used to produce future messages from that point on. + + The type of the elements in the source sequence and the other sequence used upon a timeout. + Source sequence to perform a timeout for. + Time when a timeout occurs. If this value is less than or equal to DateTimeOffset.UtcNow, the timeout occurs immediately. + Sequence to return in case of a timeout. + Scheduler to run the timeout timers on. + The source sequence switching to the other sequence in case of a timeout. + + or or is null. + + In case you only want to timeout on the first element, consider using the + operator applied to the source sequence and a delayed sequence. Alternatively, the general-purpose overload + of Timeout, can be used. + + + + + Applies a timeout policy to the observable sequence based on an absolute time, using the specified scheduler to run timeout timers. + If the sequence doesn't terminate before the specified absolute due time, a TimeoutException is propagated to the observer. + + The type of the elements in the source sequence. + Source sequence to perform a timeout for. + Time when a timeout occurs. If this value is less than or equal to DateTimeOffset.UtcNow, the timeout occurs immediately. + Scheduler to run the timeout timers on. + The source sequence with a TimeoutException in case of a timeout. + + or is null. + (Asynchronous) If the sequence hasn't terminated before . + + In case you only want to timeout on the first element, consider using the + operator applied to the source sequence and a delayed sequence. Alternatively, the general-purpose overload + of Timeout, can be used. + + + + + Applies a timeout policy for each element in the observable sequence. + If the next element isn't received within the specified timeout duration starting from its predecessor, a TimeoutException is propagated to the observer. + + The type of the elements in the source sequence. + Source sequence to perform a timeout for. + Maximum duration between values before a timeout occurs. + The source sequence with a TimeoutException in case of a timeout. + + is null. + + is less than TimeSpan.Zero. + (Asynchronous) If no element is produced within from the previous element. + + + In case you only want to timeout on the first element, consider using the + operator applied to the source sequence and a delayed sequence. Alternatively, the general-purpose overload + of Timeout, can be used. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing timeout timers to be scheduled that are due + immediately. However, this doesn't guarantee a timeout will occur, even for the first element. This is a side-effect of the asynchrony introduced by the + scheduler, where the action to propagate a timeout may not execute immediately, despite the TimeSpan.Zero due time. In such cases, the next element may + arrive before the scheduler gets a chance to run the timeout action. + + + + + + Applies a timeout policy for each element in the observable sequence. + If the next element isn't received within the specified timeout duration starting from its predecessor, the other observable sequence is used to produce future messages from that point on. + + The type of the elements in the source sequence and the other sequence used upon a timeout. + Source sequence to perform a timeout for. + Maximum duration between values before a timeout occurs. + Sequence to return in case of a timeout. + The source sequence switching to the other sequence in case of a timeout. + + or is null. + + is less than TimeSpan.Zero. + + + In case you only want to timeout on the first element, consider using the + operator applied to the source sequence and a delayed sequence. Alternatively, the general-purpose overload + of Timeout, can be used. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing timeout timers to be scheduled that are due + immediately. However, this doesn't guarantee a timeout will occur, even for the first element. This is a side-effect of the asynchrony introduced by the + scheduler, where the action to propagate a timeout may not execute immediately, despite the TimeSpan.Zero due time. In such cases, the next element may + arrive before the scheduler gets a chance to run the timeout action. + + + + + + Applies a timeout policy for each element in the observable sequence, using the specified scheduler to run timeout timers. + If the next element isn't received within the specified timeout duration starting from its predecessor, the other observable sequence is used to produce future messages from that point on. + + The type of the elements in the source sequence and the other sequence used upon a timeout. + Source sequence to perform a timeout for. + Maximum duration between values before a timeout occurs. + Sequence to return in case of a timeout. + Scheduler to run the timeout timers on. + The source sequence switching to the other sequence in case of a timeout. + + or or is null. + + is less than TimeSpan.Zero. + + + In case you only want to timeout on the first element, consider using the + operator applied to the source sequence and a delayed sequence. Alternatively, the general-purpose overload + of Timeout, can be used. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing timeout timers to be scheduled that are due + immediately. However, this doesn't guarantee a timeout will occur, even for the first element. This is a side-effect of the asynchrony introduced by the + scheduler, where the action to propagate a timeout may not execute immediately, despite the TimeSpan.Zero due time. In such cases, the next element may + arrive before the scheduler gets a chance to run the timeout action. + + + + + + Applies a timeout policy for each element in the observable sequence, using the specified scheduler to run timeout timers. + If the next element isn't received within the specified timeout duration starting from its predecessor, a TimeoutException is propagated to the observer. + + The type of the elements in the source sequence. + Source sequence to perform a timeout for. + Maximum duration between values before a timeout occurs. + Scheduler to run the timeout timers on. + The source sequence with a TimeoutException in case of a timeout. + + or is null. + + is less than TimeSpan.Zero. + (Asynchronous) If no element is produced within from the previous element. + + + In case you only want to timeout on the first element, consider using the + operator applied to the source sequence and a delayed sequence. Alternatively, the general-purpose overload + of Timeout, can be used. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing timeout timers to be scheduled that are due + immediately. However, this doesn't guarantee a timeout will occur, even for the first element. This is a side-effect of the asynchrony introduced by the + scheduler, where the action to propagate a timeout may not execute immediately, despite the TimeSpan.Zero due time. In such cases, the next element may + arrive before the scheduler gets a chance to run the timeout action. + + + + + + Applies a timeout policy to the observable sequence based on an initial timeout duration for the first element, and a timeout duration computed for each subsequent element. + If the next element isn't received within the computed duration starting from its predecessor, a TimeoutException is propagated to the observer. + + The type of the elements in the source sequence. + The type of the elements in the timeout sequences used to indicate the timeout duration for each element in the source sequence. + Source sequence to perform a timeout for. + Observable sequence that represents the timeout for the first element. + Selector to retrieve an observable sequence that represents the timeout between the current element and the next element. + The source sequence with a TimeoutException in case of a timeout. + + or or is null. + + + + Applies a timeout policy to the observable sequence based on an initial timeout duration for the first element, and a timeout duration computed for each subsequent element. + If the next element isn't received within the computed duration starting from its predecessor, the other observable sequence is used to produce future messages from that point on. + + The type of the elements in the source sequence and the other sequence used upon a timeout. + The type of the elements in the timeout sequences used to indicate the timeout duration for each element in the source sequence. + Source sequence to perform a timeout for. + Observable sequence that represents the timeout for the first element. + Selector to retrieve an observable sequence that represents the timeout between the current element and the next element. + Sequence to return in case of a timeout. + The source sequence switching to the other sequence in case of a timeout. + + or or or is null. + + + + Applies a timeout policy to the observable sequence based on a timeout duration computed for each element. + If the next element isn't received within the computed duration starting from its predecessor, a TimeoutException is propagated to the observer. + + The type of the elements in the source sequence. + The type of the elements in the timeout sequences used to indicate the timeout duration for each element in the source sequence. + Source sequence to perform a timeout for. + Selector to retrieve an observable sequence that represents the timeout between the current element and the next element. + The source sequence with a TimeoutException in case of a timeout. + + or is null. + + + + Applies a timeout policy to the observable sequence based on a timeout duration computed for each element. + If the next element isn't received within the computed duration starting from its predecessor, the other observable sequence is used to produce future messages from that point on. + + The type of the elements in the source sequence and the other sequence used upon a timeout. + The type of the elements in the timeout sequences used to indicate the timeout duration for each element in the source sequence. + Source sequence to perform a timeout for. + Selector to retrieve an observable sequence that represents the timeout between the current element and the next element. + Sequence to return in case of a timeout. + The source sequence switching to the other sequence in case of a timeout. + + or or is null. + + + + Returns an observable sequence that produces a single value at the specified absolute due time. + + Query provider used to construct the data source. + Absolute time at which to produce the value. If this value is less than or equal to DateTimeOffset.UtcNow, the timer will fire as soon as possible. + An observable sequence that produces a value at due time. + + + + Returns an observable sequence that periodically produces a value starting at the specified initial absolute due time. + + Query provider used to construct the data source. + Absolute time at which to produce the first value. If this value is less than or equal to DateTimeOffset.UtcNow, the timer will fire as soon as possible. + Period to produce subsequent values. If this value is equal to TimeSpan.Zero, the timer will recur as fast as possible. + An observable sequence that produces a value at due time and then after each period. + + is less than TimeSpan.Zero. + + + + Returns an observable sequence that periodically produces a value starting at the specified initial absolute due time, using the specified scheduler to run timers. + + Query provider used to construct the data source. + Absolute time at which to produce the first value. If this value is less than or equal to DateTimeOffset.UtcNow, the timer will fire as soon as possible. + Period to produce subsequent values. If this value is equal to TimeSpan.Zero, the timer will recur as fast as possible. + Scheduler to run timers on. + An observable sequence that produces a value at due time and then after each period. + + is less than TimeSpan.Zero. + + is null. + + + + Returns an observable sequence that produces a single value at the specified absolute due time, using the specified scheduler to run the timer. + + Query provider used to construct the data source. + Absolute time at which to produce the value. If this value is less than or equal to DateTimeOffset.UtcNow, the timer will fire as soon as possible. + Scheduler to run the timer on. + An observable sequence that produces a value at due time. + + is null. + + + + Returns an observable sequence that produces a single value after the specified relative due time has elapsed. + + Query provider used to construct the data source. + Relative time at which to produce the value. If this value is less than or equal to TimeSpan.Zero, the timer will fire as soon as possible. + An observable sequence that produces a value after the due time has elapsed. + + + + Returns an observable sequence that periodically produces a value after the specified initial relative due time has elapsed. + + Query provider used to construct the data source. + Relative time at which to produce the first value. If this value is less than or equal to TimeSpan.Zero, the timer will fire as soon as possible. + Period to produce subsequent values. If this value is equal to TimeSpan.Zero, the timer will recur as fast as possible. + An observable sequence that produces a value after due time has elapsed and then after each period. + + is less than TimeSpan.Zero. + + + + Returns an observable sequence that periodically produces a value after the specified initial relative due time has elapsed, using the specified scheduler to run timers. + + Query provider used to construct the data source. + Relative time at which to produce the first value. If this value is less than or equal to TimeSpan.Zero, the timer will fire as soon as possible. + Period to produce subsequent values. If this value is equal to TimeSpan.Zero, the timer will recur as fast as possible. + Scheduler to run timers on. + An observable sequence that produces a value after due time has elapsed and then each period. + + is less than TimeSpan.Zero. + + is null. + + + + Returns an observable sequence that produces a single value after the specified relative due time has elapsed, using the specified scheduler to run the timer. + + Query provider used to construct the data source. + Relative time at which to produce the value. If this value is less than or equal to TimeSpan.Zero, the timer will fire as soon as possible. + Scheduler to run the timer on. + An observable sequence that produces a value after the due time has elapsed. + + is null. + + + + Timestamps each element in an observable sequence using the local system clock. + + The type of the elements in the source sequence. + Source sequence to timestamp elements for. + An observable sequence with timestamp information on elements. + + is null. + + + + Timestamp each element in an observable sequence using the clock of the specified scheduler. + + The type of the elements in the source sequence. + Source sequence to timestamp elements for. + Scheduler used to compute timestamps. + An observable sequence with timestamp information on elements. + + or is null. + + + + Creates an array from an observable sequence. + + The type of the elements in the source sequence. + The source observable sequence to get an array of elements for. + An observable sequence containing a single element with an array containing all the elements of the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates a dictionary from an observable sequence according to a specified key selector function. + + The type of the elements in the source sequence. + The type of the dictionary key computed for each element in the source sequence. + An observable sequence to create a dictionary for. + A function to extract a key from each element. + An observable sequence containing a single element with a dictionary mapping unique key values onto the corresponding source sequence's element. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates a dictionary from an observable sequence according to a specified key selector function, and a comparer. + + The type of the elements in the source sequence. + The type of the dictionary key computed for each element in the source sequence. + An observable sequence to create a dictionary for. + A function to extract a key from each element. + An equality comparer to compare keys. + An observable sequence containing a single element with a dictionary mapping unique key values onto the corresponding source sequence's element. + + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates a dictionary from an observable sequence according to a specified key selector function, and an element selector function. + + The type of the elements in the source sequence. + The type of the dictionary key computed for each element in the source sequence. + The type of the dictionary value computed for each element in the source sequence. + An observable sequence to create a dictionary for. + A function to extract a key from each element. + A transform function to produce a result element value from each element. + An observable sequence containing a single element with a dictionary mapping unique key values onto the corresponding source sequence's element. + + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates a dictionary from an observable sequence according to a specified key selector function, a comparer, and an element selector function. + + The type of the elements in the source sequence. + The type of the dictionary key computed for each element in the source sequence. + The type of the dictionary value computed for each element in the source sequence. + An observable sequence to create a dictionary for. + A function to extract a key from each element. + A transform function to produce a result element value from each element. + An equality comparer to compare keys. + An observable sequence containing a single element with a dictionary mapping unique key values onto the corresponding source sequence's element. + + or or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Converts an observable sequence to an enumerable sequence. + + The type of the elements in the source sequence. + An observable sequence to convert to an enumerable sequence. + The enumerable sequence containing the elements in the observable sequence. + + is null. + This operator requires the source's object (see ) to implement . + + + + Creates a list from an observable sequence. + + The type of the elements in the source sequence. + The source observable sequence to get a list of elements for. + An observable sequence containing a single element with a list containing all the elements of the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates a lookup from an observable sequence according to a specified key selector function. + + The type of the elements in the source sequence. + The type of the lookup key computed for each element in the source sequence. + An observable sequence to create a lookup for. + A function to extract a key from each element. + An observable sequence containing a single element with a lookup mapping unique key values onto the corresponding source sequence's elements. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates a lookup from an observable sequence according to a specified key selector function, and a comparer. + + The type of the elements in the source sequence. + The type of the lookup key computed for each element in the source sequence. + An observable sequence to create a lookup for. + A function to extract a key from each element. + An equality comparer to compare keys. + An observable sequence containing a single element with a lookup mapping unique key values onto the corresponding source sequence's elements. + + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates a lookup from an observable sequence according to a specified key selector function, and an element selector function. + + The type of the elements in the source sequence. + The type of the lookup key computed for each element in the source sequence. + The type of the lookup value computed for each element in the source sequence. + An observable sequence to create a lookup for. + A function to extract a key from each element. + A transform function to produce a result element value from each element. + An observable sequence containing a single element with a lookup mapping unique key values onto the corresponding source sequence's elements. + + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates a lookup from an observable sequence according to a specified key selector function, a comparer, and an element selector function. + + The type of the elements in the source sequence. + The type of the lookup key computed for each element in the source sequence. + The type of the lookup value computed for each element in the source sequence. + An observable sequence to create a lookup for. + A function to extract a key from each element. + A transform function to produce a result element value from each element. + An equality comparer to compare keys. + An observable sequence containing a single element with a lookup mapping unique key values onto the corresponding source sequence's elements. + + or or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Converts an enumerable sequence to an observable sequence. + + Query provider used to construct the data source. + The type of the elements in the source sequence. + Enumerable sequence to convert to an observable sequence. + The observable sequence whose elements are pulled from the given enumerable sequence. + + is null. + + + + Converts an enumerable sequence to an observable sequence, using the specified scheduler to run the enumeration loop. + + Query provider used to construct the data source. + The type of the elements in the source sequence. + Enumerable sequence to convert to an observable sequence. + Scheduler to run the enumeration of the input sequence on. + The observable sequence whose elements are pulled from the given enumerable sequence. + + or is null. + + + + Constructs an observable sequence that depends on a resource object, whose lifetime is tied to the resulting observable sequence's lifetime. + + Query provider used to construct the data source. + The type of the elements in the produced sequence. + The type of the resource used during the generation of the resulting sequence. Needs to implement . + Factory function to obtain a resource object. + Factory function to obtain an observable sequence that depends on the obtained resource. + An observable sequence whose lifetime controls the lifetime of the dependent resource object. + + or is null. + + + + Constructs an observable sequence that depends on a resource object, whose lifetime is tied to the resulting observable sequence's lifetime. The resource is obtained and used through asynchronous methods. + The CancellationToken passed to the asynchronous methods is tied to the returned disposable subscription, allowing best-effort cancellation at any stage of the resource acquisition or usage. + + Query provider used to construct the data source. + The type of the elements in the produced sequence. + The type of the resource used during the generation of the resulting sequence. Needs to implement . + Asynchronous factory function to obtain a resource object. + Asynchronous factory function to obtain an observable sequence that depends on the obtained resource. + An observable sequence whose lifetime controls the lifetime of the dependent resource object. + + or is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + When a subscription to the resulting sequence is disposed, the CancellationToken that was fed to the asynchronous resource factory and observable factory functions will be signaled. + + + + Filters the elements of an observable sequence based on a predicate. + + The type of the elements in the source sequence. + An observable sequence whose elements to filter. + A function to test each source element for a condition. + An observable sequence that contains elements from the input sequence that satisfy the condition. + + or is null. + + + + Filters the elements of an observable sequence based on a predicate by incorporating the element's index. + + The type of the elements in the source sequence. + An observable sequence whose elements to filter. + A function to test each source element for a condition; the second parameter of the function represents the index of the source element. + An observable sequence that contains elements from the input sequence that satisfy the condition. + + or is null. + + + + Repeats the given as long as the specified holds, where the is evaluated before each repeated is subscribed to. + + Query provider used to construct the data source. + The type of the elements in the source sequence. + Source to repeat as long as the function evaluates to true. + Condition that will be evaluated before subscription to the , to determine whether repetition of the source is required. + The observable sequence obtained by concatenating the sequence as long as the holds. + + or is null. + + + + Projects each element of an observable sequence into consecutive non-overlapping windows which are produced based on element count information. + + The type of the elements in the source sequence, and in the windows in the result sequence. + Source sequence to produce windows over. + Length of each window. + An observable sequence of windows. + + is null. + + is less than or equal to zero. + + + + Projects each element of an observable sequence into zero or more windows which are produced based on element count information. + + The type of the elements in the source sequence, and in the windows in the result sequence. + Source sequence to produce windows over. + Length of each window. + Number of elements to skip between creation of consecutive windows. + An observable sequence of windows. + + is null. + + or is less than or equal to zero. + + + + Projects each element of an observable sequence into consecutive non-overlapping windows which are produced based on timing information. + + The type of the elements in the source sequence, and in the windows in the result sequence. + Source sequence to produce windows over. + Length of each window. + The sequence of windows. + + is null. + + is less than TimeSpan.Zero. + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create windows as fast as it can. + Because all source sequence elements end up in one of the windows, some windows won't have a zero time span. This is a side-effect of the asynchrony introduced + by the scheduler, where the action to close the current window and to create a new window may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Projects each element of an observable sequence into a window that is completed when either it's full or a given amount of time has elapsed. + A useful real-world analogy of this overload is the behavior of a ferry leaving the dock when all seats are taken, or at the scheduled time of departure, whichever event occurs first. + + The type of the elements in the source sequence, and in the windows in the result sequence. + Source sequence to produce windows over. + Maximum time length of a window. + Maximum element count of a window. + An observable sequence of windows. + + is null. + + is less than TimeSpan.Zero. -or- is less than or equal to zero. + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create windows as fast as it can. + Because all source sequence elements end up in one of the windows, some windows won't have a zero time span. This is a side-effect of the asynchrony introduced + by the scheduler, where the action to close the current window and to create a new window may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Projects each element of an observable sequence into a window that is completed when either it's full or a given amount of time has elapsed, using the specified scheduler to run timers. + A useful real-world analogy of this overload is the behavior of a ferry leaving the dock when all seats are taken, or at the scheduled time of departure, whichever event occurs first. + + The type of the elements in the source sequence, and in the windows in the result sequence. + Source sequence to produce windows over. + Maximum time length of a window. + Maximum element count of a window. + Scheduler to run windowing timers on. + An observable sequence of windows. + + or is null. + + is less than TimeSpan.Zero. -or- is less than or equal to zero. + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create windows as fast as it can. + Because all source sequence elements end up in one of the windows, some windows won't have a zero time span. This is a side-effect of the asynchrony introduced + by the scheduler, where the action to close the current window and to create a new window may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Projects each element of an observable sequence into consecutive non-overlapping windows which are produced based on timing information, using the specified scheduler to run timers. + + The type of the elements in the source sequence, and in the windows in the result sequence. + Source sequence to produce windows over. + Length of each window. + Scheduler to run windowing timers on. + An observable sequence of windows. + + or is null. + + is less than TimeSpan.Zero. + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create windows as fast as it can. + Because all source sequence elements end up in one of the windows, some windows won't have a zero time span. This is a side-effect of the asynchrony introduced + by the scheduler, where the action to close the current window and to create a new window may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Projects each element of an observable sequence into zero or more windows which are produced based on timing information. + + The type of the elements in the source sequence, and in the windows in the result sequence. + Source sequence to produce windows over. + Length of each window. + Interval between creation of consecutive windows. + An observable sequence of windows. + + is null. + + or is less than TimeSpan.Zero. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create windows with minimum duration + length. However, some windows won't have a zero time span. This is a side-effect of the asynchrony introduced by the scheduler, where the action to close the + current window may not execute immediately, despite the TimeSpan.Zero due time. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create windows as fast as it can. + However, this doesn't mean all windows will start at the beginning of the source sequence. This is a side-effect of the asynchrony introduced by the scheduler, + where the action to create a new window may not execute immediately, despite the TimeSpan.Zero due time. + + + + + + Projects each element of an observable sequence into zero or more windows which are produced based on timing information, using the specified scheduler to run timers. + + The type of the elements in the source sequence, and in the windows in the result sequence. + Source sequence to produce windows over. + Length of each window. + Interval between creation of consecutive windows. + Scheduler to run windowing timers on. + An observable sequence of windows. + + or is null. + + or is less than TimeSpan.Zero. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create windows with minimum duration + length. However, some windows won't have a zero time span. This is a side-effect of the asynchrony introduced by the scheduler, where the action to close the + current window may not execute immediately, despite the TimeSpan.Zero due time. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create windows as fast as it can. + However, this doesn't mean all windows will start at the beginning of the source sequence. This is a side-effect of the asynchrony introduced by the scheduler, + where the action to create a new window may not execute immediately, despite the TimeSpan.Zero due time. + + + + + + Projects each element of an observable sequence into consecutive non-overlapping windows. + + The type of the elements in the source sequence, and in the windows in the result sequence. + The type of the elements in the sequences indicating window boundary events. + Source sequence to produce windows over. + Sequence of window boundary markers. The current window is closed and a new window is opened upon receiving a boundary marker. + An observable sequence of windows. + + or is null. + + + + Projects each element of an observable sequence into consecutive non-overlapping windows. + + The type of the elements in the source sequence, and in the windows in the result sequence. + The type of the elements in the sequences indicating window closing events. + Source sequence to produce windows over. + A function invoked to define the boundaries of the produced windows. A new window is started when the previous one is closed. + An observable sequence of windows. + + or is null. + + + + Projects each element of an observable sequence into zero or more windows. + + The type of the elements in the source sequence, and in the windows in the result sequence. + The type of the elements in the sequence indicating window opening events, also passed to the closing selector to obtain a sequence of window closing events. + The type of the elements in the sequences indicating window closing events. + Source sequence to produce windows over. + Observable sequence whose elements denote the creation of new windows. + A function invoked to define the closing of each produced window. + An observable sequence of windows. + + or or is null. + + + + Merges two observable sequences into one observable sequence by combining each element from the first source with the latest element from the second source, if any. + Starting from Rx.NET 4.0, this will subscribe to before subscribing to to have a latest element readily available + in case emits an element right away. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Function to invoke for each element from the first source combined with the latest element from the second source, if any. + An observable sequence containing the result of combining each element of the first source with the latest element from the second source, if any, using the specified result selector function. + + or or is null. + + + + Merges the specified observable sequences into one observable sequence by emitting a list with the elements of the observable sequences at corresponding indexes. + + Query provider used to construct the data source. + The type of the elements in the source sequences, and in the lists in the result sequence. + Observable sources. + An observable sequence containing lists of elements at corresponding indexes. + + is null. + + + + Merges the specified observable sequences into one observable sequence by emitting a list with the elements of the observable sequences at corresponding indexes. + + Query provider used to construct the data source. + The type of the elements in the source sequences, and in the lists in the result sequence. + Observable sources. + An observable sequence containing lists of elements at corresponding indexes. + + is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + Query provider used to construct the data source. + The type of the elements in the source sequences. + The type of the elements in the result sequence, returned by the selector function. + Observable sources. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or is null. + + + + Merges two observable sequences into one observable sequence by combining their elements in a pairwise fashion. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Function to invoke for each consecutive pair of elements from the first and second source. + An observable sequence containing the result of pairwise combining the elements of the first and second source using the specified result selector function. + + or or is null. + + + + Merges an observable sequence and an enumerable sequence into one observable sequence by using the selector function. + + The type of the elements in the first observable source sequence. + The type of the elements in the second enumerable source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second enumerable source. + Function to invoke for each consecutive pair of elements from the first and second source. + An observable sequence containing the result of pairwise combining the elements of the first and second source using the specified result selector function. + + or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Fourteenth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the fifteenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Fourteenth observable source. + Fifteenth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the fifteenth source sequence. + The type of the elements in the sixteenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Fourteenth observable source. + Fifteenth observable source. + Sixteenth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or or or or or or or or or or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Query provider used to construct the data source. + Action to convert to an asynchronous action. + Asynchronous action. + + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Query provider used to construct the data source. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + The type of the thirteenth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + The type of the thirteenth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + The type of the thirteenth argument passed to the action. + The type of the fourteenth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + The type of the thirteenth argument passed to the action. + The type of the fourteenth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + The type of the thirteenth argument passed to the action. + The type of the fourteenth argument passed to the action. + The type of the fifteenth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + The type of the thirteenth argument passed to the action. + The type of the fourteenth argument passed to the action. + The type of the fifteenth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + The type of the thirteenth argument passed to the action. + The type of the fourteenth argument passed to the action. + The type of the fifteenth argument passed to the action. + The type of the sixteenth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + The type of the thirteenth argument passed to the action. + The type of the fourteenth argument passed to the action. + The type of the fifteenth argument passed to the action. + The type of the sixteenth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + Query provider used to construct the data source. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + Query provider used to construct the data source. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the thirteenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the thirteenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the thirteenth argument passed to the function. + The type of the fourteenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the thirteenth argument passed to the function. + The type of the fourteenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the thirteenth argument passed to the function. + The type of the fourteenth argument passed to the function. + The type of the fifteenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the thirteenth argument passed to the function. + The type of the fourteenth argument passed to the function. + The type of the fifteenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the thirteenth argument passed to the function. + The type of the fourteenth argument passed to the function. + The type of the fifteenth argument passed to the function. + The type of the sixteenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the thirteenth argument passed to the function. + The type of the fourteenth argument passed to the function. + The type of the fifteenth argument passed to the function. + The type of the sixteenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + + or is null. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The type of the eleventh argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The type of the eleventh argument passed to the begin delegate. + The type of the twelfth argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The type of the eleventh argument passed to the begin delegate. + The type of the twelfth argument passed to the begin delegate. + The type of the thirteenth argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The type of the eleventh argument passed to the begin delegate. + The type of the twelfth argument passed to the begin delegate. + The type of the thirteenth argument passed to the begin delegate. + The type of the fourteenth argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The type of the eleventh argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The type of the eleventh argument passed to the begin delegate. + The type of the twelfth argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The type of the eleventh argument passed to the begin delegate. + The type of the twelfth argument passed to the begin delegate. + The type of the thirteenth argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The type of the eleventh argument passed to the begin delegate. + The type of the twelfth argument passed to the begin delegate. + The type of the thirteenth argument passed to the begin delegate. + The type of the fourteenth argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Creates a pattern that matches when both observable sequences have an available element. + + The type of the elements in the left sequence. + The type of the elements in the right sequence. + Observable sequence to match with the right sequence. + Observable sequence to match with the left sequence. + Pattern object that matches when both observable sequences have an available element. + or is null. + + + + Matches when the observable sequence has an available element and projects the element by invoking the selector function. + + The type of the elements in the source sequence. + The type of the elements in the result sequence, returned by the selector function. + Observable sequence to apply the selector on. + Selector that will be invoked for elements in the source sequence. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + or is null. + + + + Joins together the results from several patterns. + + The type of the elements in the result sequence, obtained from the specified patterns. + Query provider used to construct the data source. + A series of plans created by use of the Then operator on patterns. + An observable sequence with the results from matching several patterns. + or is null. + + + + Joins together the results from several patterns. + + The type of the elements in the result sequence, obtained from the specified patterns. + Query provider used to construct the data source. + A series of plans created by use of the Then operator on patterns. + An observable sequence with the results form matching several patterns. + or is null. + + + + Try winning the race for the right of emission. + + If true, the contender is the left source. + True if the contender has won the race. + + + + If true, this observer won the race and now can emit + on a fast path. + + + + + Automatically connect the upstream IConnectableObservable once the + specified number of IObservers have subscribed to this IObservable. + + The upstream value type. + + + + The only instance for a TResult type: this source + is completely stateless and has a constant behavior. + + + + + No need for instantiating this more than once per TResult. + + + + + Contains the current active connection's state or null + if no connection is active at the moment. + Should be manipulated while holding the lock. + + + + + Contains the connection reference the downstream observer + has subscribed to. Its purpose is to + avoid subscribing, connecting and disconnecting + while holding a lock. + + + + + Holds an individual connection state: the observer count and + the connection's IDisposable. + + + + + Relays items to the downstream until the predicate returns true. + + The element type of the sequence + + + + Provides a set of static methods for writing queries over observable sequences, allowing translation to a target query language. + + + + + Subscribes to each observable sequence returned by the iteratorMethod in sequence and produces a Unit value on the resulting sequence for each step of the iteration. + + Query provider used to construct the data source. + Iterator method that drives the resulting observable sequence. + An observable sequence obtained by running the iterator and returning Unit values for each iteration step. + + is null. + + + + Subscribes to each observable sequence returned by the iteratorMethod in sequence and returns the observable sequence of values sent to the observer given to the iteratorMethod. + + Query provider used to construct the data source. + The type of the elements in the produced sequence. + Iterator method that produces elements in the resulting sequence by calling the given observer. + An observable sequence obtained by running the iterator and returning the elements that were sent to the observer. + + is null. + + + + Expands an observable sequence by recursively invoking selector. + + The type of the elements in the source sequence and each of the recursively expanded sources obtained by running the selector function. + Source sequence with the initial elements. + Selector function to invoke for each produced element, resulting in another sequence to which the selector will be invoked recursively again. + An observable sequence containing all the elements produced by the recursive expansion. + + or is null. + + + + Expands an observable sequence by recursively invoking selector, using the specified scheduler to enumerate the queue of obtained sequences. + + The type of the elements in the source sequence and each of the recursively expanded sources obtained by running the selector function. + Source sequence with the initial elements. + Selector function to invoke for each produced element, resulting in another sequence to which the selector will be invoked recursively again. + Scheduler on which to perform the expansion by enumerating the internal queue of obtained sequences. + An observable sequence containing all the elements produced by the recursive expansion. + + or or is null. + + + + Runs all specified observable sequences in parallel and collects their last elements. + + Query provider used to construct the data source. + The type of the elements in the source sequences. + Observable sequence to collect the last elements for. + An observable sequence with an array collecting the last elements of all the input sequences. + + is null. + + + + Runs all observable sequences in the enumerable sources sequence in parallel and collect their last elements. + + Query provider used to construct the data source. + The type of the elements in the source sequences. + Observable sequence to collect the last elements for. + An observable sequence with an array collecting the last elements of all the input sequences. + + is null. + + + + Runs two observable sequences in parallel and combines their last elements. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable sequence. + Second observable sequence. + Result selector function to invoke with the last elements of both sequences. + An observable sequence with the result of calling the selector function with the last elements of both input sequences. + + or or is null. + + + + Returns an observable sequence that is the result of invoking the selector on the source sequence, without sharing subscriptions. + This operator allows for a fluent style of writing queries that use the same sequence multiple times. + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence that will be shared in the selector function. + Selector function which can use the source sequence as many times as needed, without sharing subscriptions to the source sequence. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + + or is null. + + + + Comonadic bind operator. + + + + + Comonadic bind operator. + + + + + Merges two observable sequences into one observable sequence by combining each element from the first source with the latest element from the second source, if any. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + First observable source. + Second observable source. + An observable sequence containing the result of combining each element of the first source with the latest element from the second source, if any, as a tuple value. + or is null. + + + + Merges an observable sequence and an enumerable sequence into one observable sequence of tuple values. + + The type of the elements in the first observable source sequence. + The type of the elements in the second enumerable source sequence. + First observable source. + Second enumerable source. + An observable sequence containing the result of pairwise combining the elements of the first and second source as a tuple value. + or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + First observable source. + Second observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + First observable source. + Second observable source. + Third observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Fourteenth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the fifteenth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Fourteenth observable source. + Fifteenth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the fifteenth source sequence. + The type of the elements in the sixteenth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Fourteenth observable source. + Fifteenth observable source. + Sixteenth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + First observable source. + Second observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + First observable source. + Second observable source. + Third observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Fourteenth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the fifteenth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Fourteenth observable source. + Fifteenth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the fifteenth source sequence. + The type of the elements in the sixteenth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Fourteenth observable source. + Fifteenth observable source. + Sixteenth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or or or or or or or or or is null. + + + + (Infrastructure) Implement query debugger services. + + + + + The System.Reactive.Linq namespace contains interfaces and classes that support expressing queries over observable sequences, using Language Integrated Query (LINQ). + Query operators are made available as extension methods for and defined on the Observable and Qbservable classes, respectively. + + + + + An ObserveOn operator implementation that uses lock-free + techniques to signal events to the downstream. + + The element type of the sequence. + + + + The current task representing a running drain operation. + + + + + Indicates the work-in-progress state of this operator, + zero means no work is currently being done. + + + + + If true, the upstream has issued OnCompleted. + + + + + If is true and this is non-null, the upstream + failed with an OnError. + + + + + Indicates a dispose has been requested. + + + + + Remove remaining elements from the queue upon + cancellation or failure. + + The queue to use. The argument ensures that the + _queue field is not re-read from memory unnecessarily + due to the memory barriers inside TryDequeue mandating it + despite the field is read-only. + + + + Submit the drain task via the appropriate scheduler if + there is no drain currently running (wip > 0). + + + + + The static action to be scheduled on a simple scheduler. + Avoids creating a delegate that captures this + whenever the signals have to be drained. + + + + + Emits at most one signal per run on a scheduler that doesn't like + long running tasks. + + The scheduler to use for scheduling the next signal emission if necessary. + The IDisposable of the recursively scheduled task or an empty disposable. + + + + Executes a drain step by checking the disposed state, + checking for the terminated state and for an + empty queue, issuing the appropriate signals to the + given downstream. + + The queue to use. The argument ensures that the + _queue field is not re-read from memory due to the memory barriers + inside TryDequeue mandating it despite the field is read-only. + In addition, the DrainStep is invoked from the DrainLongRunning's loop + so reading _queue inside this method would still incur the same barrier + overhead otherwise. + + + + Signals events on a ISchedulerLongRunning by blocking the emission thread while waiting + for them from the upstream. + + The element type of the sequence. + + + + This will run a suspending drain task, hogging the backing thread + until the sequence terminates or gets disposed. + + + + + The queue for holding the OnNext items, terminal signals have their own fields. + + + + + Protects the suspension and resumption of the long running drain task. + + + + + The work-in-progress counter. If it jumps from 0 to 1, the drain task is resumed, + if it reaches 0 again, the drain task is suspended. + + + + + Set to true if the upstream terminated. + + + + + Set to a non-null Exception if the upstream terminated with OnError. + + + + + Indicates the sequence has been disposed and the drain task should quit. + + + + + Makes sure the drain task is scheduled only once, when the first signal + from upstream arrives. + + + + + The disposable tracking the drain task. + + + + + Static reference to the Drain method, saves allocation. + + + + + Override this method to dispose additional resources. + The method is guaranteed to be called at most once. + + If true, the method was called from . + + + + Base class for implementation of query operators, providing a lightweight sink that can be disposed to mute the outgoing observer. + + Type of the resulting sequence's elements. + + Implementations of sinks are responsible to enforce the message grammar on the associated observer. Upon sending a terminal message, a pairing Dispose call should be made to trigger cancellation of related resources and to mute the outgoing observer. + + + + Holds onto a singleton IDisposable indicating a ready state. + + + + + This indicates the operation has been prepared and ready for + the next step. + + + + + Provides a mechanism for receiving push-based notifications and returning a response. + + + The type of the elements received by the observer. + This type parameter is contravariant. That is, you can use either the type you specified or any type that is less derived. For more information about covariance and contravariance, see Covariance and Contravariance in Generics. + + + The type of the result returned from the observer's notification handlers. + This type parameter is covariant. That is, you can use either the type you specified or any type that is more derived. For more information about covariance and contravariance, see Covariance and Contravariance in Generics. + + + + + Notifies the observer of a new element in the sequence. + + The new element in the sequence. + Result returned upon observation of a new element. + + + + Notifies the observer that an exception has occurred. + + The exception that occurred. + Result returned upon observation of an error. + + + + Notifies the observer of the end of the sequence. + + Result returned upon observation of the sequence completion. + + + + Abstract base class for join patterns. + + + + + Represents a join pattern over one observable sequence. + + The type of the elements in the first source sequence. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over two observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + + + + Creates a pattern that matches when all three observable sequences have an available element. + + The type of the elements in the third observable sequence. + Observable sequence to match with the two previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over three observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + + + + Creates a pattern that matches when all four observable sequences have an available element. + + The type of the elements in the fourth observable sequence. + Observable sequence to match with the three previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over four observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + + + + Creates a pattern that matches when all five observable sequences have an available element. + + The type of the elements in the fifth observable sequence. + Observable sequence to match with the four previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over five observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + + + + Creates a pattern that matches when all six observable sequences have an available element. + + The type of the elements in the sixth observable sequence. + Observable sequence to match with the five previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over six observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + + + + Creates a pattern that matches when all seven observable sequences have an available element. + + The type of the elements in the seventh observable sequence. + Observable sequence to match with the six previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over seven observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + + + + Creates a pattern that matches when all eight observable sequences have an available element. + + The type of the elements in the eighth observable sequence. + Observable sequence to match with the seven previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over eight observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + + + + Creates a pattern that matches when all nine observable sequences have an available element. + + The type of the elements in the ninth observable sequence. + Observable sequence to match with the eight previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over nine observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + + + + Creates a pattern that matches when all ten observable sequences have an available element. + + The type of the elements in the tenth observable sequence. + Observable sequence to match with the nine previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over ten observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + + + + Creates a pattern that matches when all eleven observable sequences have an available element. + + The type of the elements in the eleventh observable sequence. + Observable sequence to match with the ten previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over eleven observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + + + + Creates a pattern that matches when all twelve observable sequences have an available element. + + The type of the elements in the twelfth observable sequence. + Observable sequence to match with the eleven previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over twelve observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + + + + Creates a pattern that matches when all thirteen observable sequences have an available element. + + The type of the elements in the thirteenth observable sequence. + Observable sequence to match with the twelve previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over thirteen observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + + + + Creates a pattern that matches when all fourteen observable sequences have an available element. + + The type of the elements in the fourteenth observable sequence. + Observable sequence to match with the thirteen previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over fourteen observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + + + + Creates a pattern that matches when all fifteen observable sequences have an available element. + + The type of the elements in the fifteenth observable sequence. + Observable sequence to match with the fourteen previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over fifteen observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the fifteenth source sequence. + + + + Creates a pattern that matches when all sixteen observable sequences have an available element. + + The type of the elements in the sixteenth observable sequence. + Observable sequence to match with the fifteen previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over sixteen observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the fifteenth source sequence. + The type of the elements in the sixteenth source sequence. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents an execution plan for join patterns. + + The type of the results produced by the plan. + + + + Abstract base class for join patterns represented by an expression tree. + + + + + Creates a new join pattern object using the specified expression tree representation. + + Expression tree representing the join pattern. + + + + Gets the expression tree representing the join pattern. + + + + + Represents a join pattern over two observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + + + + Creates a pattern that matches when all three observable sequences have an available element. + + The type of the elements in the third observable sequence. + Observable sequence to match with the two previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over three observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + + + + Creates a pattern that matches when all four observable sequences have an available element. + + The type of the elements in the fourth observable sequence. + Observable sequence to match with the three previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over four observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + + + + Creates a pattern that matches when all five observable sequences have an available element. + + The type of the elements in the fifth observable sequence. + Observable sequence to match with the four previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over five observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + + + + Creates a pattern that matches when all six observable sequences have an available element. + + The type of the elements in the sixth observable sequence. + Observable sequence to match with the five previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over six observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + + + + Creates a pattern that matches when all seven observable sequences have an available element. + + The type of the elements in the seventh observable sequence. + Observable sequence to match with the six previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over seven observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + + + + Creates a pattern that matches when all eight observable sequences have an available element. + + The type of the elements in the eighth observable sequence. + Observable sequence to match with the seven previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over eight observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + + + + Creates a pattern that matches when all nine observable sequences have an available element. + + The type of the elements in the ninth observable sequence. + Observable sequence to match with the eight previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over nine observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + + + + Creates a pattern that matches when all ten observable sequences have an available element. + + The type of the elements in the tenth observable sequence. + Observable sequence to match with the nine previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over ten observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + + + + Creates a pattern that matches when all eleven observable sequences have an available element. + + The type of the elements in the eleventh observable sequence. + Observable sequence to match with the ten previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over eleven observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + + + + Creates a pattern that matches when all twelve observable sequences have an available element. + + The type of the elements in the twelfth observable sequence. + Observable sequence to match with the eleven previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over twelve observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + + + + Creates a pattern that matches when all thirteen observable sequences have an available element. + + The type of the elements in the thirteenth observable sequence. + Observable sequence to match with the twelve previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over thirteen observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + + + + Creates a pattern that matches when all fourteen observable sequences have an available element. + + The type of the elements in the fourteenth observable sequence. + Observable sequence to match with the thirteen previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over fourteen observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + + + + Creates a pattern that matches when all fifteen observable sequences have an available element. + + The type of the elements in the fifteenth observable sequence. + Observable sequence to match with the fourteen previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over fifteen observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the fifteenth source sequence. + + + + Creates a pattern that matches when all sixteen observable sequences have an available element. + + The type of the elements in the sixteenth observable sequence. + Observable sequence to match with the fifteen previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over sixteen observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the fifteenth source sequence. + The type of the elements in the sixteenth source sequence. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents an execution plan for join patterns represented by an expression tree. + + The type of the results produced by the plan. + + + + Gets the expression tree representing the join pattern execution plan. + + + + + The System.Reactive.Joins namespace contains classes used to express join patterns over observable sequences using fluent method syntax. + + + + + Represents an object that retains the elements of the observable sequence and signals the end of the sequence. + + The type of elements received from the source sequence. + + + + Constructs an object that retains the values of source and signals the end of the sequence. + + The observable sequence whose elements will be retained in the list. + is null. + + + + Returns the last value of the observable sequence. + + + + + Determines the index of a specific item in the ListObservable. + + The element to determine the index for. + The index of the specified item in the list; -1 if not found. + + + + Inserts an item to the ListObservable at the specified index. + + The index to insert the item at. + The item to insert in the list. + + + + Removes the ListObservable item at the specified index. + + The index of the item to remove. + + + + Gets or sets the element at the specified index. + + The index of the item to retrieve or set. + + + + Adds an item to the ListObservable. + + The item to add to the list. + + + + Removes all items from the ListObservable. + + + + + Determines whether the ListObservable contains a specific value. + + The item to search for in the list. + true if found; false otherwise. + + + + Copies the elements of the ListObservable to an System.Array, starting at a particular System.Array index. + + The array to copy elements to. + The start index in the array to start copying elements to. + + + + Gets the number of elements contained in the ListObservable. + + + + + Gets a value that indicates whether the ListObservable is read-only. + + + + + Removes the first occurrence of a specific object from the ListObservable. + + The item to remove from the list. + true if the item was found; false otherwise. + + + + Returns an enumerator that iterates through the collection. + + Enumerator over the list. + + + + Subscribes an observer to the ListObservable which will be notified upon completion. + + The observer to send completion or error messages to. + The disposable resource that can be used to unsubscribe. + is null. + + + + The System.Reactive namespace contains interfaces and classes used throughout the Reactive Extensions library. + + + + + The System.Reactive.Subjects namespace contains interfaces and classes to represent subjects, which are objects implementing both and . + Subjects are often used as sources of events, allowing one party to raise events and allowing another party to write queries over the event stream. Because of their ability to + have multiple registered observers, subjects are also used as a facility to provide multicast behavior for event streams in queries. + + + + + Represents the result of an asynchronous operation. + The last value before the OnCompleted notification, or the error received through OnError, is sent to all subscribed observers. + + The type of the elements processed by the subject. + + + + A pre-allocated empty array indicating the AsyncSubject has terminated. + + + + + A pre-allocated empty array indicating the AsyncSubject has been disposed. + + + + + Creates a subject that can only receive one value and that value is cached for all future observations. + + + + + Indicates whether the subject has observers subscribed to it. + + + + + Indicates whether the subject has been disposed. + + + + + Notifies all subscribed observers about the end of the sequence, also causing the last received value to be sent out (if any). + + + + + Notifies all subscribed observers about the exception. + + The exception to send to all observers. + is null. + + + + Sends a value to the subject. The last value received before successful termination will be sent to all subscribed and future observers. + + The value to store in the subject. + + + + Subscribes an observer to the subject. + + Observer to subscribe to the subject. + Disposable object that can be used to unsubscribe the observer from the subject. + is null. + + + + A disposable connecting the AsyncSubject and an IObserver. + + + + + Unsubscribe all observers and release resources. + + + + + Gets an awaitable object for the current AsyncSubject. + + Object that can be awaited. + + + + Specifies a callback action that will be invoked when the subject completes. + + Callback action that will be invoked when the subject completes. + is null. + + + + Gets whether the AsyncSubject has completed. + + + + + Gets the last element of the subject, potentially blocking until the subject completes successfully or exceptionally. + + The last element of the subject. Throws an InvalidOperationException if no element was received. + The source sequence is empty. + + + + Represents a value that changes over time. + Observers can subscribe to the subject to receive the last (or initial) value and all subsequent notifications. + + The type of the elements processed by the subject. + + + + Initializes a new instance of the class which creates a subject that caches its last value and starts with the specified value. + + Initial value sent to observers when no other value has been received by the subject yet. + + + + Indicates whether the subject has observers subscribed to it. + + + + + Indicates whether the subject has been disposed. + + + + + Gets the current value or throws an exception. + + The initial value passed to the constructor until is called; after which, the last value passed to . + + is frozen after is called. + After is called, always throws the specified exception. + An exception is always thrown after is called. + + Reading is a thread-safe operation, though there's a potential race condition when or are being invoked concurrently. + In some cases, it may be necessary for a caller to use external synchronization to avoid race conditions. + + + Dispose was called. + + + + Tries to get the current value or throws an exception. + + The initial value passed to the constructor until is called; after which, the last value passed to . + true if a value is available; false if the subject was disposed. + + The value returned from is frozen after is called. + After is called, always throws the specified exception. + + Calling is a thread-safe operation, though there's a potential race condition when or are being invoked concurrently. + In some cases, it may be necessary for a caller to use external synchronization to avoid race conditions. + + + + + + Notifies all subscribed observers about the end of the sequence. + + + + + Notifies all subscribed observers about the exception. + + The exception to send to all observers. + is null. + + + + Notifies all subscribed observers about the arrival of the specified element in the sequence. + + The value to send to all observers. + + + + Subscribes an observer to the subject. + + Observer to subscribe to the subject. + Disposable object that can be used to unsubscribe the observer from the subject. + is null. + + + + Unsubscribe all observers and release resources. + + + + + Represents an observable wrapper that can be connected and disconnected from its underlying observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the resulting sequence, after transformation through the subject. + + + + Creates an observable that can be connected and disconnected from its source. + + Underlying observable source sequence that can be connected and disconnected from the wrapper. + Subject exposed by the connectable observable, receiving data from the underlying source sequence upon connection. + + + + Connects the observable wrapper to its source. All subscribed observers will receive values from the underlying observable sequence as long as the connection is established. + + Disposable object used to disconnect the observable wrapper from its source, causing subscribed observer to stop receiving values from the underlying observable sequence. + + + + Subscribes an observer to the observable sequence. No values from the underlying observable source will be received unless a connection was established through the Connect method. + + Observer that will receive values from the underlying observable source when the current ConnectableObservable instance is connected through a call to Connect. + Disposable used to unsubscribe from the observable sequence. + + + + Represents an observable wrapper that can be connected and disconnected from its underlying observable sequence. + + + The type of the elements in the sequence. + This type parameter is covariant. That is, you can use either the type you specified or any type that is more derived. For more information about covariance and contravariance, see Covariance and Contravariance in Generics. + + + + + Connects the observable wrapper to its source. All subscribed observers will receive values from the underlying observable sequence as long as the connection is established. + + Disposable used to disconnect the observable wrapper from its source, causing subscribed observer to stop receiving values from the underlying observable sequence. + + + + Represents an object that is both an observable sequence as well as an observer. + + The type of the elements processed by the subject. + + + + Represents an object that is both an observable sequence as well as an observer. + + + The type of the elements received by the subject. + This type parameter is contravariant. That is, you can use either the type you specified or any type that is less derived. For more information about covariance and contravariance, see Covariance and Contravariance in Generics. + + + The type of the elements produced by the subject. + This type parameter is covariant. That is, you can use either the type you specified or any type that is more derived. For more information about covariance and contravariance, see Covariance and Contravariance in Generics. + + + + + Represents an object that is both an observable sequence as well as an observer. + Each notification is broadcasted to all subscribed and future observers, subject to buffer trimming policies. + + The type of the elements processed by the subject. + + + + Underlying optimized implementation of the replay subject. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified scheduler. + + Scheduler the observers are invoked on. + is null. + + + + Initializes a new instance of the class with the specified buffer size. + + Maximum element count of the replay buffer. + is less than zero. + + + + Initializes a new instance of the class with the specified buffer size and scheduler. + + Maximum element count of the replay buffer. + Scheduler the observers are invoked on. + is null. + is less than zero. + + + + Initializes a new instance of the class with the specified window. + + Maximum time length of the replay buffer. + is less than . + + + + Initializes a new instance of the class with the specified window and scheduler. + + Maximum time length of the replay buffer. + Scheduler the observers are invoked on. + is null. + is less than . + + + + Initializes a new instance of the class with the specified buffer size and window. + + Maximum element count of the replay buffer. + Maximum time length of the replay buffer. + is less than zero. -or- is less than . + + + + Initializes a new instance of the class with the specified buffer size, window and scheduler. + + Maximum element count of the replay buffer. + Maximum time length of the replay buffer. + Scheduler the observers are invoked on. + is less than zero. -or- is less than . + is null. + + + + Indicates whether the subject has observers subscribed to it. + + + + + Indicates whether the subject has been disposed. + + + + + Notifies all subscribed and future observers about the arrival of the specified element in the sequence. + + The value to send to all observers. + + + + Notifies all subscribed and future observers about the specified exception. + + The exception to send to all observers. + is null. + + + + Notifies all subscribed and future observers about the end of the sequence. + + + + + Subscribes an observer to the subject. + + Observer to subscribe to the subject. + Disposable object that can be used to unsubscribe the observer from the subject. + is null. + + + + Releases all resources used by the current instance of the class and unsubscribe all observers. + + + + + Original implementation of the ReplaySubject with time based operations (Scheduling, Stopwatch, buffer-by-time). + + + + + Specialized scheduled observer similar to a scheduled observer for the immediate scheduler. + + Type of the elements processed by the observer. + + + + Gate to control ownership transfer and protect data structures. + + + + + Observer to forward notifications to. + + + + + Queue to enqueue OnNext notifications into. + + + + + Standby queue to swap out for _queue when transferring ownership. This allows to reuse + queues in case of busy subjects where the initial replay doesn't suffice to catch up. + + + + + Exception passed to an OnError notification, if any. + + + + + Indicates whether an OnCompleted notification was received. + + + + + Indicates whether the observer is busy, i.e. some thread is actively draining the + notifications that were queued up. + + + + + Indicates whether a failure occurred when the owner was draining the queue. This will + prevent future work to be processed. + + + + + Creates a new scheduled observer that proxies to the specified observer. + + Observer to forward notifications to. + + + + Disposes the observer. + + + + + Notifies the observer of pending work. This will either cause the current owner to + process the newly enqueued notifications, or it will cause the calling thread to + become the owner and start processing the notification queue. + + + + + Notifies the observer of pending work. This will either cause the current owner to + process the newly enqueued notifications, or it will cause the calling thread to + become the owner and start processing the notification queue. + + The number of enqueued notifications to process (ignored). + + + + Enqueues an OnCompleted notification. + + + + + Enqueues an OnError notification. + + Error of the notification. + + + + Enqueues an OnNext notification. + + Value of the notification. + + + + Terminates the observer upon receiving terminal notifications, thus preventing + future notifications to go out. + + Observer to send terminal notifications to. + + + + Represents an object that is both an observable sequence as well as an observer. + Each notification is broadcasted to all subscribed observers. + + The type of the elements processed by the subject. + + + + Creates a subject. + + + + + Indicates whether the subject has observers subscribed to it. + + + + + Indicates whether the subject has been disposed. + + + + + Notifies all subscribed observers about the end of the sequence. + + + + + Notifies all subscribed observers about the specified exception. + + The exception to send to all currently subscribed observers. + is null. + + + + Notifies all subscribed observers about the arrival of the specified element in the sequence. + + The value to send to all currently subscribed observers. + + + + Subscribes an observer to the subject. + + Observer to subscribe to the subject. + Disposable object that can be used to unsubscribe the observer from the subject. + is null. + + + + Releases all resources used by the current instance of the class and unsubscribes all observers. + + + + + Provides a set of static methods for creating subjects. + + + + + Creates a subject from the specified observer and observable. + + The type of the elements received by the observer. + The type of the elements produced by the observable sequence. + The observer used to send messages to the subject. + The observable used to subscribe to messages sent from the subject. + Subject implemented using the given observer and observable. + or is null. + + + + Creates a subject from the specified observer and observable. + + The type of the elements received by the observer and produced by the observable sequence. + The observer used to send messages to the subject. + The observable used to subscribe to messages sent from the subject. + Subject implemented using the given observer and observable. + or is null. + + + + Synchronizes the messages sent to the subject. + + The type of the elements received by the subject. + The type of the elements produced by the subject. + The subject to synchronize. + Subject whose messages are synchronized. + is null. + + + + Synchronizes the messages sent to the subject. + + The type of the elements received and produced by the subject. + The subject to synchronize. + Subject whose messages are synchronized. + is null. + + + + Synchronizes the messages sent to the subject and notifies observers on the specified scheduler. + + The type of the elements received by the subject. + The type of the elements produced by the subject. + The subject to synchronize. + Scheduler to notify observers on. + Subject whose messages are synchronized and whose observers are notified on the given scheduler. + or is null. + + + + Synchronizes the messages sent to the subject and notifies observers on the specified scheduler. + + The type of the elements received and produced by the subject. + The subject to synchronize. + Scheduler to notify observers on. + Subject whose messages are synchronized and whose observers are notified on the given scheduler. + or is null. + + + + Base class for objects that are both an observable sequence as well as an observer. + + The type of the elements processed by the subject. + + + + Indicates whether the subject has observers subscribed to it. + + + + + Indicates whether the subject has been disposed. + + + + + Releases all resources used by the current instance of the subject and unsubscribes all observers. + + + + + Notifies all subscribed observers about the end of the sequence. + + + + + Notifies all subscribed observers about the specified exception. + + The exception to send to all currently subscribed observers. + is null. + + + + Notifies all subscribed observers about the arrival of the specified element in the sequence. + + The value to send to all currently subscribed observers. + + + + Subscribes an observer to the subject. + + Observer to subscribe to the subject. + Disposable object that can be used to unsubscribe the observer from the subject. + is null. + + + + Indicates the type of a notification. + + + + + Represents an OnNext notification. + + + + + Represents an OnError notification. + + + + + Represents an OnCompleted notification. + + + + + Represents a notification to an observer. + + The type of the elements received by the observer. + + + + Default constructor used by derived types. + + + + + Returns the value of an OnNext notification or throws an exception. + + + + + Returns a value that indicates whether the notification has a value. + + + + + Returns the exception of an OnError notification or returns null. + + + + + Gets the kind of notification that is represented. + + + + + Represents an OnNext notification to an observer. + + + + + Constructs a notification of a new value. + + + + + Returns the value of an OnNext notification. + + + + + Returns null. + + + + + Returns true. + + + + + Returns . + + + + + Returns the hash code for this instance. + + + + + Indicates whether this instance and a specified object are equal. + + + + + Returns a string representation of this instance. + + + + + Invokes the observer's method corresponding to the notification. + + Observer to invoke the notification on. + + + + Invokes the observer's method corresponding to the notification and returns the produced result. + + Observer to invoke the notification on. + Result produced by the observation. + + + + Invokes the delegate corresponding to the notification. + + Delegate to invoke for an OnNext notification. + Delegate to invoke for an OnError notification. + Delegate to invoke for an OnCompleted notification. + + + + Invokes the delegate corresponding to the notification and returns the produced result. + + Delegate to invoke for an OnNext notification. + Delegate to invoke for an OnError notification. + Delegate to invoke for an OnCompleted notification. + Result produced by the observation. + + + + Represents an OnError notification to an observer. + + + + + Constructs a notification of an exception. + + + + + Throws the exception. + + + + + Returns the exception. + + + + + Returns false. + + + + + Returns . + + + + + Returns the hash code for this instance. + + + + + Indicates whether this instance and other are equal. + + + + + Returns a string representation of this instance. + + + + + Invokes the observer's method corresponding to the notification. + + Observer to invoke the notification on. + + + + Invokes the observer's method corresponding to the notification and returns the produced result. + + Observer to invoke the notification on. + Result produced by the observation. + + + + Invokes the delegate corresponding to the notification. + + Delegate to invoke for an OnNext notification. + Delegate to invoke for an OnError notification. + Delegate to invoke for an OnCompleted notification. + + + + Invokes the delegate corresponding to the notification and returns the produced result. + + Delegate to invoke for an OnNext notification. + Delegate to invoke for an OnError notification. + Delegate to invoke for an OnCompleted notification. + Result produced by the observation. + + + + Represents an OnCompleted notification to an observer. + + + + + Complete notifications are stateless thus only one instance + can ever exist per type. + + + + + Constructs a notification of the end of a sequence. + + + + + Throws an . + + + + + Returns null. + + + + + Returns false. + + + + + Returns . + + + + + Returns the hash code for this instance. + + + + + Indicates whether this instance and other are equal. + + + + + Returns a string representation of this instance. + + + + + Invokes the observer's method corresponding to the notification. + + Observer to invoke the notification on. + + + + Invokes the observer's method corresponding to the notification and returns the produced result. + + Observer to invoke the notification on. + Result produced by the observation. + + + + Invokes the delegate corresponding to the notification. + + Delegate to invoke for an OnNext notification. + Delegate to invoke for an OnError notification. + Delegate to invoke for an OnCompleted notification. + + + + Invokes the delegate corresponding to the notification and returns the produced result. + + Delegate to invoke for an OnNext notification. + Delegate to invoke for an OnError notification. + Delegate to invoke for an OnCompleted notification. + Result produced by the observation. + + + + Determines whether the current object has the same observer message payload as a specified value. + + An object to compare to the current object. + true if both objects have the same observer message payload; otherwise, false. + + Equality of objects is based on the equality of the observer message payload they represent, including the notification Kind and the Value or Exception (if any). + This means two objects can be equal even though they don't represent the same observer method call, but have the same Kind and have equal parameters passed to the observer method. + In case one wants to determine whether two objects represent the same observer method call, use Object.ReferenceEquals identity equality instead. + + + + + Determines whether the two specified objects have the same observer message payload. + + The first to compare, or null. + The second to compare, or null. + true if the first value has the same observer message payload as the second value; otherwise, false. + + Equality of objects is based on the equality of the observer message payload they represent, including the notification Kind and the Value or Exception (if any). + This means two objects can be equal even though they don't represent the same observer method call, but have the same Kind and have equal parameters passed to the observer method. + In case one wants to determine whether two objects represent the same observer method call, use Object.ReferenceEquals identity equality instead. + + + + + Determines whether the two specified objects have a different observer message payload. + + The first to compare, or null. + The second to compare, or null. + true if the first value has a different observer message payload as the second value; otherwise, false. + + Equality of objects is based on the equality of the observer message payload they represent, including the notification Kind and the Value or Exception (if any). + This means two objects can be equal even though they don't represent the same observer method call, but have the same Kind and have equal parameters passed to the observer method. + In case one wants to determine whether two objects represent a different observer method call, use Object.ReferenceEquals identity equality instead. + + + + + Determines whether the specified System.Object is equal to the current . + + The System.Object to compare with the current . + true if the specified System.Object is equal to the current ; otherwise, false. + + Equality of objects is based on the equality of the observer message payload they represent, including the notification Kind and the Value or Exception (if any). + This means two objects can be equal even though they don't represent the same observer method call, but have the same Kind and have equal parameters passed to the observer method. + In case one wants to determine whether two objects represent the same observer method call, use Object.ReferenceEquals identity equality instead. + + + + + Invokes the observer's method corresponding to the notification. + + Observer to invoke the notification on. + + + + Invokes the observer's method corresponding to the notification and returns the produced result. + + The type of the result returned from the observer's notification handlers. + Observer to invoke the notification on. + Result produced by the observation. + + + + Invokes the delegate corresponding to the notification. + + Delegate to invoke for an OnNext notification. + Delegate to invoke for an OnError notification. + Delegate to invoke for an OnCompleted notification. + + + + Invokes the delegate corresponding to the notification and returns the produced result. + + The type of the result returned from the notification handler delegates. + Delegate to invoke for an OnNext notification. + Delegate to invoke for an OnError notification. + Delegate to invoke for an OnCompleted notification. + Result produced by the observation. + + + + Returns an observable sequence with a single notification, using the immediate scheduler. + + The observable sequence that surfaces the behavior of the notification upon subscription. + + + + Returns an observable sequence with a single notification. + + Scheduler to send out the notification calls on. + The observable sequence that surfaces the behavior of the notification upon subscription. + + + + Provides a set of static methods for constructing notifications. + + + + + Creates an object that represents an OnNext notification to an observer. + + The type of the elements received by the observer. Upon dematerialization of the notifications into an observable sequence, this type is used as the element type for the sequence. + The value contained in the notification. + The OnNext notification containing the value. + + + + Creates an object that represents an OnError notification to an observer. + + The type of the elements received by the observer. Upon dematerialization of the notifications into an observable sequence, this type is used as the element type for the sequence. + The exception contained in the notification. + The OnError notification containing the exception. + is null. + + + + Creates an object that represents an OnCompleted notification to an observer. + + The type of the elements received by the observer. Upon dematerialization of the notifications into an observable sequence, this type is used as the element type for the sequence. + The OnCompleted notification. + + + + Abstract base class for implementations of the interface. + + + If you don't need a named type to create an observable sequence (i.e. you rather need + an instance rather than a reusable type), use the Observable.Create method to create + an observable sequence with specified subscription behavior. + + The type of the elements in the sequence. + + + + Subscribes the given observer to the observable sequence. + + Observer that will receive notifications from the observable sequence. + Disposable object representing an observer's subscription to the observable sequence. + is null. + + + + Implement this method with the core subscription logic for the observable sequence. + + Observer to send notifications to. + Disposable object representing an observer's subscription to the observable sequence. + + + + Provides a set of static methods for creating observers. + + + + + Creates an observer from a notification callback. + + The type of the elements received by the observer. + Action that handles a notification. + The observer object that invokes the specified handler using a notification corresponding to each message it receives. + is null. + + + + Creates a notification callback from an observer. + + The type of the elements received by the observer. + Observer object. + The action that forwards its input notification to the underlying observer. + is null. + + + + Creates an observer from the specified OnNext action. + + The type of the elements received by the observer. + Observer's OnNext action implementation. + The observer object implemented using the given actions. + is null. + + + + Creates an observer from the specified OnNext and OnError actions. + + The type of the elements received by the observer. + Observer's OnNext action implementation. + Observer's OnError action implementation. + The observer object implemented using the given actions. + or is null. + + + + Creates an observer from the specified OnNext and OnCompleted actions. + + The type of the elements received by the observer. + Observer's OnNext action implementation. + Observer's OnCompleted action implementation. + The observer object implemented using the given actions. + or is null. + + + + Creates an observer from the specified OnNext, OnError, and OnCompleted actions. + + The type of the elements received by the observer. + Observer's OnNext action implementation. + Observer's OnError action implementation. + Observer's OnCompleted action implementation. + The observer object implemented using the given actions. + or or is null. + + + + Hides the identity of an observer. + + The type of the elements received by the source observer. + An observer whose identity to hide. + An observer that hides the identity of the specified observer. + is null. + + + + Checks access to the observer for grammar violations. This includes checking for multiple OnError or OnCompleted calls, as well as reentrancy in any of the observer methods. + If a violation is detected, an InvalidOperationException is thrown from the offending observer method call. + + The type of the elements received by the source observer. + The observer whose callback invocations should be checked for grammar violations. + An observer that checks callbacks invocations against the observer grammar and, if the checks pass, forwards those to the specified observer. + is null. + + + + Synchronizes access to the observer such that its callback methods cannot be called concurrently from multiple threads. This overload is useful when coordinating access to an observer. + Notice reentrant observer callbacks on the same thread are still possible. + + The type of the elements received by the source observer. + The observer whose callbacks should be synchronized. + An observer that delivers callbacks to the specified observer in a synchronized manner. + is null. + + Because a Monitor is used to perform the synchronization, there's no protection against reentrancy from the same thread. + Hence, overlapped observer callbacks are still possible, which is invalid behavior according to the observer grammar. In order to protect against this behavior as + well, use the overload, passing true for the second parameter. + + + + + Synchronizes access to the observer such that its callback methods cannot be called concurrently. This overload is useful when coordinating access to an observer. + The parameter configures the type of lock used for synchronization. + + The type of the elements received by the source observer. + The observer whose callbacks should be synchronized. + If set to true, reentrant observer callbacks will be queued up and get delivered to the observer in a sequential manner. + An observer that delivers callbacks to the specified observer in a synchronized manner. + is null. + + When the parameter is set to false, behavior is identical to the overload which uses + a Monitor for synchronization. When the parameter is set to true, an + is used to queue up callbacks to the specified observer if a reentrant call is made. + + + + + Synchronizes access to the observer such that its callback methods cannot be called concurrently by multiple threads, using the specified gate object for use by a Monitor-based lock. + This overload is useful when coordinating multiple observers that access shared state by synchronizing on a common gate object. + Notice reentrant observer callbacks on the same thread are still possible. + + The type of the elements received by the source observer. + The observer whose callbacks should be synchronized. + Gate object to synchronize each observer call on. + An observer that delivers callbacks to the specified observer in a synchronized manner. + or is null. + + Because a Monitor is used to perform the synchronization, there's no protection against reentrancy from the same thread. + Hence, overlapped observer callbacks are still possible, which is invalid behavior according to the observer grammar. In order to protect against this behavior as + well, use the overload. + + + + + Synchronizes access to the observer such that its callback methods cannot be called concurrently, using the specified asynchronous lock to protect against concurrent and reentrant access. + This overload is useful when coordinating multiple observers that access shared state by synchronizing on a common asynchronous lock. + + The type of the elements received by the source observer. + The observer whose callbacks should be synchronized. + Gate object to synchronize each observer call on. + An observer that delivers callbacks to the specified observer in a synchronized manner. + or is null. + + + + Schedules the invocation of observer methods on the given scheduler. + + The type of the elements received by the source observer. + The observer to schedule messages for. + Scheduler to schedule observer messages on. + Observer whose messages are scheduled on the given scheduler. + or is null. + + + + Schedules the invocation of observer methods on the given synchronization context. + + The type of the elements received by the source observer. + The observer to schedule messages for. + Synchronization context to schedule observer messages on. + Observer whose messages are scheduled on the given synchronization context. + or is null. + + + + Converts an observer to a progress object. + + The type of the progress objects received by the source observer. + The observer to convert. + Progress object whose Report messages correspond to the observer's OnNext messages. + is null. + + + + Converts an observer to a progress object, using the specified scheduler to invoke the progress reporting method. + + The type of the progress objects received by the source observer. + The observer to convert. + Scheduler to report progress on. + Progress object whose Report messages correspond to the observer's OnNext messages. + or is null. + + + + Converts a progress object to an observer. + + The type of the progress objects received by the progress reporter. + The progress object to convert. + Observer whose OnNext messages correspond to the progress object's Report messages. + is null. + + + + Abstract base class for implementations of the interface. + + This base class enforces the grammar of observers where and are terminal messages. + The type of the elements in the sequence. + + + + Creates a new observer in a non-stopped state. + + + + + Notifies the observer of a new element in the sequence. + + Next element in the sequence. + + + + Implement this method to react to the receival of a new element in the sequence. + + Next element in the sequence. + This method only gets called when the observer hasn't stopped yet. + + + + Notifies the observer that an exception has occurred. + + The error that has occurred. + is null. + + + + Implement this method to react to the occurrence of an exception. + + The error that has occurred. + This method only gets called when the observer hasn't stopped yet, and causes the observer to stop. + + + + Notifies the observer of the end of the sequence. + + + + + Implement this method to react to the end of the sequence. + + This method only gets called when the observer hasn't stopped yet, and causes the observer to stop. + + + + Disposes the observer, causing it to transition to the stopped state. + + + + + Core implementation of . + + true if the Dispose call was triggered by the method; false if it was triggered by the finalizer. + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to Using the Scheduler.{0} property is no longer supported due to refactoring of the API surface and elimination of platform-specific dependencies. Please include System.Reactive.PlatformServices for your target platform and use the {0}Scheduler type instead. If you're building a Windows Store app, notice some schedulers are no longer supported. Consider using Scheduler.Default instead.. + + + + + Looks up a localized string similar to OnCompleted notification doesn't have a value.. + + + + + Looks up a localized string similar to Disposable has already been assigned.. + + + + + Looks up a localized string similar to Disposables collection can not contain null values.. + + + + + Looks up a localized string similar to Failed to start monitoring system clock changes.. + + + + + Looks up a localized string similar to Heap is empty.. + + + + + Looks up a localized string similar to Observer has already terminated.. + + + + + Looks up a localized string similar to Reentrancy has been detected.. + + + + + Looks up a localized string similar to This scheduler operation has already been awaited.. + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to {0} cannot be called when the scheduler is already running. Try using Sleep instead.. + + + + + Looks up a localized string similar to Could not find event '{0}' on object of type '{1}'.. + + + + + Looks up a localized string similar to Could not find event '{0}' on type '{1}'.. + + + + + Looks up a localized string similar to Add method should take 1 parameter.. + + + + + Looks up a localized string similar to The second parameter of the event delegate must be assignable to '{0}'.. + + + + + Looks up a localized string similar to Event is missing the add method.. + + + + + Looks up a localized string similar to Event is missing the remove method.. + + + + + Looks up a localized string similar to The event delegate must have a void return type.. + + + + + Looks up a localized string similar to The event delegate must have exactly two parameters.. + + + + + Looks up a localized string similar to Remove method should take 1 parameter.. + + + + + Looks up a localized string similar to The first parameter of the event delegate must be assignable to '{0}'.. + + + + + Looks up a localized string similar to Remove method of a WinRT event should take an EventRegistrationToken.. + + + + + Looks up a localized string similar to Sequence contains more than one element.. + + + + + Looks up a localized string similar to Sequence contains more than one matching element.. + + + + + Looks up a localized string similar to Sequence contains no elements.. + + + + + Looks up a localized string similar to Sequence contains no matching element.. + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to The WinRT thread pool doesn't support creating periodic timers with a period below 1 millisecond.. + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to Expected Qbservable.ToQueryable.. + + + + + Looks up a localized string similar to Invalid expression tree type.. + + + + + Looks up a localized string similar to There is no method '{0}' on type '{1}' that matches the specified arguments.. + + + + + Extension of the interface compatible with async method return types. + + + This class implements a "task-like" type that can be used as the return type of an asynchronous + method in C# 7.0 and beyond. For example: + + async ITaskObservable<int> RxAsync() + { + var res = await Observable.Return(21).Delay(TimeSpan.FromSeconds(1)); + return res * 2; + } + + + The type of the elements in the sequence. + + + + Gets an awaiter that can be used to await the eventual completion of the observable sequence. + + An awaiter that can be used to await the eventual completion of the observable sequence. + + + + Interface representing an awaiter for an . + + The type of the elements in the sequence. + + + + Gets a Boolean indicating whether the observable sequence has completed. + + + + + Gets the result produced by the observable sequence. + + The result produced by the observable sequence. + + + + The System.Reactive.Threading.Tasks namespace contains helpers for the conversion between tasks and observable sequences. + + + + + Provides a set of static methods for converting tasks to observable sequences. + + + + + Returns an observable sequence that signals when the task completes. + + Task to convert to an observable sequence. + An observable sequence that produces a unit value when the task completes, or propagates the exception produced by the task. + is null. + If the specified task object supports cancellation, consider using instead. + + + + Returns an observable sequence that signals when the task completes. + + Task to convert to an observable sequence. + Scheduler on which to notify observers about completion, cancellation or failure. + An observable sequence that produces a unit value when the task completes, or propagates the exception produced by the task. + is null or is null. + If the specified task object supports cancellation, consider using instead. + + + + Returns an observable sequence that propagates the result of the task. + + The type of the result produced by the task. + Task to convert to an observable sequence. + An observable sequence that produces the task's result, or propagates the exception produced by the task. + is null. + If the specified task object supports cancellation, consider using instead. + + + + Returns an observable sequence that propagates the result of the task. + + The type of the result produced by the task. + Task to convert to an observable sequence. + Scheduler on which to notify observers about completion, cancellation or failure. + An observable sequence that produces the task's result, or propagates the exception produced by the task. + is null or is null. + If the specified task object supports cancellation, consider using instead. + + + + Returns a task that will receive the last value or the exception produced by the observable sequence. + + The type of the elements in the source sequence. + Observable sequence to convert to a task. + A task that will receive the last element or the exception produced by the observable sequence. + is null. + + + + Returns a task that will receive the last value or the exception produced by the observable sequence. + + The type of the elements in the source sequence. + Observable sequence to convert to a task. + The scheduler used for overriding where the task completion signals will be issued. + A task that will receive the last element or the exception produced by the observable sequence. + or is null. + + + + Returns a task that will receive the last value or the exception produced by the observable sequence. + + The type of the elements in the source sequence. + Observable sequence to convert to a task. + The state to use as the underlying task's AsyncState. + A task that will receive the last element or the exception produced by the observable sequence. + is null. + + + + Returns a task that will receive the last value or the exception produced by the observable sequence. + + The type of the elements in the source sequence. + Observable sequence to convert to a task. + The state to use as the underlying task's AsyncState. + The scheduler used for overriding where the task completion signals will be issued. + A task that will receive the last element or the exception produced by the observable sequence. + or is null. + + + + Returns a task that will receive the last value or the exception produced by the observable sequence. + + The type of the elements in the source sequence. + Observable sequence to convert to a task. + Cancellation token that can be used to cancel the task, causing unsubscription from the observable sequence. + A task that will receive the last element or the exception produced by the observable sequence. + is null. + + + + Returns a task that will receive the last value or the exception produced by the observable sequence. + + The type of the elements in the source sequence. + Observable sequence to convert to a task. + Cancellation token that can be used to cancel the task, causing unsubscription from the observable sequence. + The scheduler used for overriding where the task completion signals will be issued. + A task that will receive the last element or the exception produced by the observable sequence. + or is null. + + + + Returns a task that will receive the last value or the exception produced by the observable sequence. + + The type of the elements in the source sequence. + Observable sequence to convert to a task. + Cancellation token that can be used to cancel the task, causing unsubscription from the observable sequence. + The state to use as the underlying task's . + A task that will receive the last element or the exception produced by the observable sequence. + is null. + + + + Returns a task that will receive the last value or the exception produced by the observable sequence. + + The type of the elements in the source sequence. + Observable sequence to convert to a task. + Cancellation token that can be used to cancel the task, causing unsubscription from the observable sequence. + The state to use as the underlying task's . + The scheduler used for overriding where the task completion signals will be issued. + A task that will receive the last element or the exception produced by the observable sequence. + or is null. + + + + Represents a value associated with time interval information. + The time interval can represent the time it took to produce the value, the interval relative to a previous value, the value's delivery time relative to a base, etc. + + The type of the value being annotated with time interval information. + + + + Constructs a time interval value. + + The value to be annotated with a time interval. + Time interval associated with the value. + + + + Gets the value. + + + + + Gets the interval. + + + + + Deconstructs the time interval value into a value and a time interval. + + The value. + Time interval associated with the value. + + + + Determines whether the current value has the same and as a specified value. + + An object to compare to the current value. + true if both values have the same and ; otherwise, false. + + + + Determines whether the two specified values have the same and . + + The first value to compare. + The second value to compare. + true if the first value has the same and as the second value; otherwise, false. + + + + Determines whether the two specified values don't have the same and . + + The first value to compare. + The second value to compare. + true if the first value has a different or as the second value; otherwise, false. + + + + Determines whether the specified System.Object is equal to the current . + + The System.Object to compare with the current . + true if the specified System.Object is equal to the current ; otherwise, false. + + + + Returns the hash code for the current value. + + A hash code for the current value. + + + + Returns a string representation of the current value. + + String representation of the current value. + + + + Represents value with a timestamp on it. + The timestamp typically represents the time the value was received, using an IScheduler's clock to obtain the current time. + + The type of the value being timestamped. + + + + Constructs a timestamped value. + + The value to be annotated with a timestamp. + Timestamp associated with the value. + + + + Gets the value. + + + + + Gets the timestamp. + + + + + Deconstructs the timestamped value into a value and a timestamp. + + The value. + Timestamp associated with the value. + + + + Determines whether the current value has the same and as a specified value. + + An object to compare to the current value. + true if both values have the same and ; otherwise, false. + + + + Determines whether the two specified values have the same and . + + The first value to compare. + The second value to compare. + true if the first value has the same and as the second value; otherwise, false. + + + + Determines whether the two specified values don't have the same and . + + The first value to compare. + The second value to compare. + true if the first value has a different or as the second value; otherwise, false. + + + + Determines whether the specified System.Object is equal to the current . + + The System.Object to compare with the current . + true if the specified System.Object is equal to the current ; otherwise, false. + + + + Returns the hash code for the current value. + + A hash code for the current value. + + + + Returns a string representation of the current value. + + String representation of the current value. + + + + A helper class with a factory method for creating instances. + + + + + Creates an instance of a . This is syntactic sugar that uses type inference + to avoid specifying a type in a constructor call, which is very useful when using anonymous types. + + The value to be annotated with a timestamp. + Timestamp associated with the value. + Creates a new timestamped value. + + + + Represents a type with a single value. This type is often used to denote the successful completion of a void-returning method (C#) or a Sub procedure (Visual Basic). + + + + + Determines whether the specified value is equal to the current . Because has a single value, this always returns true. + + An object to compare to the current value. + Because has a single value, this always returns true. + + + + Determines whether the specified System.Object is equal to the current . + + The System.Object to compare with the current . + true if the specified System.Object is a value; otherwise, false. + + + + Returns the hash code for the current value. + + A hash code for the current value. + + + + Returns a string representation of the current value. + + String representation of the current value. + + + + Determines whether the two specified values are equal. Because has a single value, this always returns true. + + The first value to compare. + The second value to compare. + Because has a single value, this always returns true. + + + + Determines whether the two specified values are not equal. Because has a single value, this always returns false. + + The first value to compare. + The second value to compare. + Because has a single value, this always returns false. + + + + Gets the single value. + + + + Specifies that null is allowed as an input even if the corresponding type disallows it. + + + Specifies that null is disallowed as an input even if the corresponding type allows it. + + + Specifies that an output may be null even if the corresponding type disallows it. + + + Specifies that an output will not be null even if the corresponding type allows it. Specifies that an input argument was not null when the call returns. + + + Specifies that when a method returns , the parameter may be null even if the corresponding type disallows it. + + + Initializes the attribute with the specified return value condition. + + The return value condition. If the method returns this value, the associated parameter may be null. + + + + Gets the return value condition. + + + Specifies that when a method returns , the parameter will not be null even if the corresponding type allows it. + + + Initializes the attribute with the specified return value condition. + + The return value condition. If the method returns this value, the associated parameter will not be null. + + + + Gets the return value condition. + + + Specifies that the output will be non-null if the named parameter is non-null. + + + Initializes the attribute with the associated parameter name. + + The associated parameter name. The output will be non-null if the argument to the parameter specified is non-null. + + + + Gets the associated parameter name. + + + Applied to a method that will never return under any circumstance. + + + Specifies that the method will not return if the associated Boolean parameter is passed the specified value. + + + Initializes the attribute with the specified parameter value. + + The condition parameter value. Code after the method will be considered unreachable by diagnostics if the argument to + the associated parameter matches this value. + + + + Gets the condition parameter value. + + + Specifies that the method or property will ensure that the listed field and property members have not-null values. + + + Initializes the attribute with a field or property member. + + The field or property member that is promised to be not-null. + + + + Initializes the attribute with the list of field and property members. + + The list of field and property members that are promised to be not-null. + + + + Gets field or property member names. + + + Specifies that the method or property will ensure that the listed field and property members have not-null values when returning with the specified return value condition. + + + Initializes the attribute with the specified return value condition and a field or property member. + + The return value condition. If the method returns this value, the associated parameter will not be null. + + + The field or property member that is promised to be not-null. + + + + Initializes the attribute with the specified return value condition and list of field and property members. + + The return value condition. If the method returns this value, the associated parameter will not be null. + + + The list of field and property members that are promised to be not-null. + + + + Gets the return value condition. + + + Gets field or property member names. + + + + Provides a set of static methods for subscribing delegates to observables. + + + + + Subscribes to the observable sequence without specifying any handlers. + This method can be used to evaluate the observable sequence for its side-effects only. + + The type of the elements in the source sequence. + Observable sequence to subscribe to. + object used to unsubscribe from the observable sequence. + is null. + + + + Subscribes an element handler to an observable sequence. + + The type of the elements in the source sequence. + Observable sequence to subscribe to. + Action to invoke for each element in the observable sequence. + object used to unsubscribe from the observable sequence. + or is null. + + + + Subscribes an element handler and an exception handler to an observable sequence. + + The type of the elements in the source sequence. + Observable sequence to subscribe to. + Action to invoke for each element in the observable sequence. + Action to invoke upon exceptional termination of the observable sequence. + object used to unsubscribe from the observable sequence. + or or is null. + + + + Subscribes an element handler and a completion handler to an observable sequence. + + The type of the elements in the source sequence. + Observable sequence to subscribe to. + Action to invoke for each element in the observable sequence. + Action to invoke upon graceful termination of the observable sequence. + object used to unsubscribe from the observable sequence. + or or is null. + + + + Subscribes an element handler, an exception handler, and a completion handler to an observable sequence. + + The type of the elements in the source sequence. + Observable sequence to subscribe to. + Action to invoke for each element in the observable sequence. + Action to invoke upon exceptional termination of the observable sequence. + Action to invoke upon graceful termination of the observable sequence. + object used to unsubscribe from the observable sequence. + or or or is null. + + + + Subscribes an observer to an observable sequence, using a to support unsubscription. + + The type of the elements in the source sequence. + Observable sequence to subscribe to. + Observer to subscribe to the sequence. + CancellationToken that can be signaled to unsubscribe from the source sequence. + or is null. + + + + Subscribes to the observable sequence without specifying any handlers, using a to support unsubscription. + This method can be used to evaluate the observable sequence for its side-effects only. + + The type of the elements in the source sequence. + Observable sequence to subscribe to. + CancellationToken that can be signaled to unsubscribe from the source sequence. + is null. + + + + Subscribes an element handler to an observable sequence, using a to support unsubscription. + + The type of the elements in the source sequence. + Observable sequence to subscribe to. + Action to invoke for each element in the observable sequence. + CancellationToken that can be signaled to unsubscribe from the source sequence. + or is null. + + + + Subscribes an element handler and an exception handler to an observable sequence, using a to support unsubscription. + + The type of the elements in the source sequence. + Observable sequence to subscribe to. + Action to invoke for each element in the observable sequence. + Action to invoke upon exceptional termination of the observable sequence. + CancellationToken that can be signaled to unsubscribe from the source sequence. + or or is null. + + + + Subscribes an element handler and a completion handler to an observable sequence, using a to support unsubscription. + + The type of the elements in the source sequence. + Observable sequence to subscribe to. + Action to invoke for each element in the observable sequence. + Action to invoke upon graceful termination of the observable sequence. + CancellationToken that can be signaled to unsubscribe from the source sequence. + or or is null. + + + + Subscribes an element handler, an exception handler, and a completion handler to an observable sequence, using a to support unsubscription. + + The type of the elements in the source sequence. + Observable sequence to subscribe to. + Action to invoke for each element in the observable sequence. + Action to invoke upon exceptional termination of the observable sequence. + Action to invoke upon graceful termination of the observable sequence. + CancellationToken that can be signaled to unsubscribe from the source sequence. + or or or is null. + + + + Subscribes to the specified source, re-routing synchronous exceptions during invocation of the method to the observer's channel. + This method is typically used when writing query operators. + + The type of the elements in the source sequence. + Observable sequence to subscribe to. + Observer that will be passed to the observable sequence, and that will be used for exception propagation. + object used to unsubscribe from the observable sequence. + or is null. + + + + Represents a builder for asynchronous methods that return a task-like . + + The type of the elements in the sequence. + + + + The compiler-generated asynchronous state machine representing the execution flow of the asynchronous + method whose return type is a task-like . + + + + + The underlying observable sequence representing the result produced by the asynchronous method. + + + + + Creates an instance of the struct. + + A new instance of the struct. + + + + Begins running the builder with the associated state machine. + + The type of the state machine. + The state machine instance, passed by reference. + is null. + + + + Associates the builder with the specified state machine. + + The state machine instance to associate with the builder. + is null. + The state machine was previously set. + + + + Marks the observable as successfully completed. + + The result to use to complete the observable sequence. + The observable has already completed. + + + + Marks the observable as failed and binds the specified exception to the observable sequence. + + The exception to bind to the observable sequence. + is null. + The observable has already completed. + + + + Gets the observable sequence for this builder. + + + + + Schedules the state machine to proceed to the next action when the specified awaiter completes. + + The type of the awaiter. + The type of the state machine. + The awaiter. + The state machine. + + + + Schedules the state machine to proceed to the next action when the specified awaiter completes. + + The type of the awaiter. + The type of the state machine. + The awaiter. + The state machine. + + + + Rethrows an exception that was thrown from an awaiter's OnCompleted methods. + + The exception to rethrow. + + + + Implementation of the IObservable<T> interface compatible with async method return types. + + + This class implements a "task-like" type that can be used as the return type of an asynchronous + method in C# 7.0 and beyond. For example: + + async Observable<int> RxAsync() + { + var res = await Observable.Return(21).Delay(TimeSpan.FromSeconds(1)); + return res * 2; + } + + + + + + The underlying observable sequence to subscribe to in case the asynchronous method did not + finish synchronously. + + + + + The result returned by the asynchronous method in case the method finished synchronously. + + + + + The exception thrown by the asynchronous method in case the method finished synchronously. + + + + + Creates a new for an asynchronous method that has not finished yet. + + + + + Creates a new for an asynchronous method that synchronously returned + the specified value. + + The result returned by the asynchronous method. + + + + Creates a new for an asynchronous method that synchronously threw + the specified . + + The exception thrown by the asynchronous method. + + + + Marks the observable as successfully completed. + + The result to use to complete the observable sequence. + The observable has already completed. + + + + Marks the observable as failed and binds the specified exception to the observable sequence. + + The exception to bind to the observable sequence. + is null. + The observable has already completed. + + + + Subscribes the given observer to the observable sequence. + + Observer that will receive notifications from the observable sequence. + Disposable object representing an observer's subscription to the observable sequence. + is null. + + + + Gets an awaiter that can be used to await the eventual completion of the observable sequence. + + An awaiter that can be used to await the eventual completion of the observable sequence. + + + + Gets a Boolean indicating whether the observable sequence has completed. + + + + + Gets the result produced by the observable sequence. + + The result produced by the observable sequence. + + + + Attaches the specified to the observable sequence. + + The continuation to attach. + + + diff --git a/Game/Assets/Supabase/System.Reactive.5.0.0/lib/netstandard2.0/System.Reactive.xml.meta b/Game/Assets/Supabase/System.Reactive.5.0.0/lib/netstandard2.0/System.Reactive.xml.meta new file mode 100644 index 0000000..1b38d64 --- /dev/null +++ b/Game/Assets/Supabase/System.Reactive.5.0.0/lib/netstandard2.0/System.Reactive.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 910344b2e59f0ce4c9fe69796ff836ec +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Reactive.5.0.0/lib/uap10.0.16299.meta b/Game/Assets/Supabase/System.Reactive.5.0.0/lib/uap10.0.16299.meta new file mode 100644 index 0000000..2e916a4 --- /dev/null +++ b/Game/Assets/Supabase/System.Reactive.5.0.0/lib/uap10.0.16299.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 22847898db4b1e04b944970077176a80 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Reactive.5.0.0/lib/uap10.0.16299/System.Reactive.dll b/Game/Assets/Supabase/System.Reactive.5.0.0/lib/uap10.0.16299/System.Reactive.dll new file mode 100644 index 0000000..974073b --- /dev/null +++ b/Game/Assets/Supabase/System.Reactive.5.0.0/lib/uap10.0.16299/System.Reactive.dll @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c51ff17844997c7afba0c94be54afc61114a44229b8c2cef2f706cb44b88ee91 +size 1491920 diff --git a/Game/Assets/Supabase/System.Reactive.5.0.0/lib/uap10.0.16299/System.Reactive.dll.meta b/Game/Assets/Supabase/System.Reactive.5.0.0/lib/uap10.0.16299/System.Reactive.dll.meta new file mode 100644 index 0000000..37af2d2 --- /dev/null +++ b/Game/Assets/Supabase/System.Reactive.5.0.0/lib/uap10.0.16299/System.Reactive.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: 03934fb501efc69458d827a890604911 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Reactive.5.0.0/lib/uap10.0.16299/System.Reactive.pri b/Game/Assets/Supabase/System.Reactive.5.0.0/lib/uap10.0.16299/System.Reactive.pri new file mode 100644 index 0000000000000000000000000000000000000000..77f7e3b6198f0a1f11a98981e6441927b26315e9 GIT binary patch literal 688 zcmaJJaB;qLtZ4QN(@+`}|mJJ=ZX}L4u0o zh#4O|1*h@djVDx j&q$Y!3QAo;*)J$}Dd^{gWlK{0J< literal 0 HcmV?d00001 diff --git a/Game/Assets/Supabase/System.Reactive.5.0.0/lib/uap10.0.16299/System.Reactive.pri.meta b/Game/Assets/Supabase/System.Reactive.5.0.0/lib/uap10.0.16299/System.Reactive.pri.meta new file mode 100644 index 0000000..e929821 --- /dev/null +++ b/Game/Assets/Supabase/System.Reactive.5.0.0/lib/uap10.0.16299/System.Reactive.pri.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 780435f594543924fac1c5a5ee895bf3 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Reactive.5.0.0/lib/uap10.0.16299/System.Reactive.xml b/Game/Assets/Supabase/System.Reactive.5.0.0/lib/uap10.0.16299/System.Reactive.xml new file mode 100644 index 0000000..28ecbe8 --- /dev/null +++ b/Game/Assets/Supabase/System.Reactive.5.0.0/lib/uap10.0.16299/System.Reactive.xml @@ -0,0 +1,28397 @@ + + + + System.Reactive + + + + + Class to create an instance from a delegate-based implementation of the method. + + The type of the elements in the sequence. + + + + Creates an observable sequence object from the specified subscription function. + + method implementation. + is null. + + + + Calls the subscription function that was supplied to the constructor. + + Observer to send notifications to. + Disposable object representing an observer's subscription to the observable sequence. + + + + Class to create an instance from delegate-based implementations of the On* methods. + + The type of the elements in the sequence. + + + + Creates an observer from the specified , , and actions. + + Observer's action implementation. + Observer's action implementation. + Observer's action implementation. + or or is null. + + + + Creates an observer from the specified action. + + Observer's action implementation. + is null. + + + + Creates an observer from the specified and actions. + + Observer's action implementation. + Observer's action implementation. + or is null. + + + + Creates an observer from the specified and actions. + + Observer's action implementation. + Observer's action implementation. + or is null. + + + + Calls the action implementing . + + Next element in the sequence. + + + + Calls the action implementing . + + The error that has occurred. + + + + Calls the action implementing . + + + + + This class fuses logic from ObserverBase, AnonymousObserver, and SafeObserver into one class. When an observer + needs to be safeguarded, an instance of this type can be created by SafeObserver.Create when it detects its + input is an AnonymousObserver, which is commonly used by end users when using the Subscribe extension methods + that accept delegates for the On* handlers. By doing the fusion, we make the call stack depth shorter which + helps debugging and some performance. + + + + + Asynchronous lock. + + + + + Queues the action for execution. If the caller acquires the lock and becomes the owner, + the queue is processed. If the lock is already owned, the action is queued and will get + processed by the owner. + + Action to queue for execution. + is null. + + + + Queues the action for execution. If the caller acquires the lock and becomes the owner, + the queue is processed. If the lock is already owned, the action is queued and will get + processed by the owner. + + Action to queue for execution. + The state to pass to the action when it gets invoked under the lock. + is null. + In case TState is a value type, this operation will involve boxing of . + However, this is often an improvement over the allocation of a closure object and a delegate. + + + + Clears the work items in the queue and drops further work being queued. + + + + + (Infrastructure) Concurrency abstraction layer. + + + + + Gets the current CAL. If no CAL has been set yet, it will be initialized to the default. + + + + + (Infrastructure) Concurrency abstraction layer interface. + + + This type is used by the Rx infrastructure and not meant for public consumption or implementation. + No guarantees are made about forward compatibility of the type's functionality and its usage. + + + + + Queues a method for execution at the specified relative time. + + Method to execute. + State to pass to the method. + Time to execute the method on. + Disposable object that can be used to stop the timer. + + + + Queues a method for periodic execution based on the specified period. + + Method to execute; should be safe for reentrancy. + Period for running the method periodically. + Disposable object that can be used to stop the timer. + + + + Queues a method for execution. + + Method to execute. + State to pass to the method. + Disposable object that can be used to cancel the queued method. + + + + Blocking sleep operation. + + Time to sleep. + + + + Starts a new stopwatch object. + + New stopwatch object; started at the time of the request. + + + + Gets whether long-running scheduling is supported. + + + + + Starts a new long-running thread. + + Method to execute. + State to pass to the method. + + + + Represents an object that schedules units of work on the current thread. + + Singleton instance of this type exposed through this static property. + + + + Gets the singleton instance of the current thread scheduler. + + + + + Gets a value that indicates whether the caller must call a Schedule method. + + + + + Gets a value that indicates whether the caller must call a Schedule method. + + + + + Schedules an action to be executed after dueTime. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + Relative time after which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Represents an object that schedules units of work on the platform's default scheduler. + + Singleton instance of this type exposed through this static property. + + + + Gets the singleton instance of the default scheduler. + + + + + Schedules an action to be executed. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Schedules an action to be executed after dueTime, using a System.Threading.Timer object. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + Relative time after which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Schedules a periodic piece of work, using a System.Threading.Timer object. + + The type of the state passed to the scheduled action. + Initial state passed to the action upon the first iteration. + Period for running the work periodically. + Action to be executed, potentially updating the state. + The disposable object used to cancel the scheduled recurring action (best effort). + is less than . + is null. + + + + Discovers scheduler services by interface type. + + Scheduler service interface type to discover. + Object implementing the requested service, if available; null otherwise. + + + + Represents an object that schedules units of work on a designated thread. + + + + + Counter for diagnostic purposes, to name the threads. + + + + + Thread factory function. + + + + + Stopwatch for timing free of absolute time dependencies. + + + + + Thread used by the event loop to run work items on. No work should be run on any other thread. + If ExitIfEmpty is set, the thread can quit and a new thread will be created when new work is scheduled. + + + + + Gate to protect data structures, including the work queue and the ready list. + + + + + Semaphore to count requests to re-evaluate the queue, from either Schedule requests or when a timer + expires and moves on to the next item in the queue. + + + + + Queue holding work items. Protected by the gate. + + + + + Queue holding items that are ready to be run as soon as possible. Protected by the gate. + + + + + Work item that will be scheduled next. Used upon reevaluation of the queue to check whether the next + item is still the same. If not, a new timer needs to be started (see below). + + + + + Disposable that always holds the timer to dispatch the first element in the queue. + + + + + Flag indicating whether the event loop should quit. When set, the event should be signaled as well to + wake up the event loop thread, which will subsequently abandon all work. + + + + + Creates an object that schedules units of work on a designated thread. + + + + + Creates an object that schedules units of work on a designated thread, using the specified factory to control thread creation options. + + Factory function for thread creation. + is null. + + + + Indicates whether the event loop thread is allowed to quit when no work is left. If new work + is scheduled afterwards, a new event loop thread is created. This property is used by the + NewThreadScheduler which uses an event loop for its recursive invocations. + + + + + Schedules an action to be executed after dueTime. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + Relative time after which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + is null. + The scheduler has been disposed and doesn't accept new work. + + + + Schedules a periodic piece of work on the designated thread. + + The type of the state passed to the scheduled action. + Initial state passed to the action upon the first iteration. + Period for running the work periodically. + Action to be executed, potentially updating the state. + The disposable object used to cancel the scheduled recurring action (best effort). + is null. + is less than . + The scheduler has been disposed and doesn't accept new work. + + + + Starts a new stopwatch object. + + New stopwatch object; started at the time of the request. + + + + Ends the thread associated with this scheduler. All remaining work in the scheduler queue is abandoned. + + + + + Ensures there is an event loop thread running. Should be called under the gate. + + + + + Event loop scheduled on the designated event loop thread. The loop is suspended/resumed using the event + which gets set by calls to Schedule, the next item timer, or calls to Dispose. + + + + + Base class for historical schedulers, which are virtual time schedulers that use for absolute time and for relative time. + + + + + Creates a new historical scheduler with the minimum value of as the initial clock value. + + + + + Creates a new historical scheduler with the specified initial clock value. + + Initial clock value. + + + + Creates a new historical scheduler with the specified initial clock value and absolute time comparer. + + Initial value for the clock. + Comparer to determine causality of events based on absolute time. + + + + Adds a relative time value to an absolute time value. + + Absolute time value. + Relative time value to add. + The resulting absolute time sum value. + + + + Converts the absolute time value to a value. + + Absolute time value to convert. + The corresponding value. + + + + Converts the value to a relative time value. + + value to convert. + The corresponding relative time value. + + + + Provides a virtual time scheduler that uses for absolute time and for relative time. + + + + + Creates a new historical scheduler with the minimum value of as the initial clock value. + + + + + Creates a new historical scheduler with the specified initial clock value. + + Initial value for the clock. + + + + Creates a new historical scheduler with the specified initial clock value. + + Initial value for the clock. + Comparer to determine causality of events based on absolute time. + is null. + + + + Gets the next scheduled item to be executed. + + The next scheduled item. + + + + Schedules an action to be executed at . + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + Absolute time at which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Represents an object that schedules units of work to run immediately on the current thread. + + Singleton instance of this type exposed through this static property. + + + + Gets the singleton instance of the immediate scheduler. + + + + + Schedules an action to be executed. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Schedules an action to be executed after dueTime. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + Relative time after which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Represents a work item that has been scheduled. + + Absolute time representation type. + + + + Gets the absolute time at which the item is due for invocation. + + + + + Invokes the work item. + + + + + Represents an object that schedules units of work. + + + + + Gets the scheduler's notion of current time. + + + + + Schedules an action to be executed. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + + + + Schedules an action to be executed after dueTime. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + Relative time after which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + + + + Schedules an action to be executed at dueTime. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + Absolute time at which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + + + + Scheduler with support for starting long-running tasks. + This type of scheduler can be used to run loops more efficiently instead of using recursive scheduling. + + + + + Schedules a long-running piece of work. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + + Notes to implementers + The returned disposable object should not prevent the work from starting, but only set the cancellation flag passed to the specified action. + + + + + Scheduler with support for running periodic tasks. + This type of scheduler can be used to run timers more efficiently instead of using recursive scheduling. + + + + + Schedules a periodic piece of work. + + The type of the state passed to the scheduled action. + Initial state passed to the action upon the first iteration. + Period for running the work periodically. + Action to be executed, potentially updating the state. + The disposable object used to cancel the scheduled recurring action (best effort). + + + + Abstraction for a stopwatch to compute time relative to a starting point. + + + + + Gets the time elapsed since the stopwatch object was obtained. + + + + + Provider for objects. + + + + + Starts a new stopwatch object. + + New stopwatch object; started at the time of the request. + + + + Abstract base class for machine-local schedulers, using the local system clock for time-based operations. + + + + + Gets the scheduler's notion of current time. + + + + + Schedules an action to be executed. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Schedules an action to be executed after dueTime. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + Relative time after which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + + + + Schedules an action to be executed at dueTime. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + Absolute time at which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Starts a new stopwatch object. + + New stopwatch object; started at the time of the request. + + Platform-specific scheduler implementations should reimplement + to provide a more efficient implementation (if available). + + + + + Discovers scheduler services by interface type. The base class implementation returns + requested services for each scheduler interface implemented by the derived class. For + more control over service discovery, derived types can override this method. + + Scheduler service interface type to discover. + Object implementing the requested service, if available; null otherwise. + + + + Gate to protect local scheduler queues. + + + + + Gate to protect queues and to synchronize scheduling decisions and system clock + change management. + + + + + Long term work queue. Contains work that's due beyond SHORTTERM, computed at the + time of enqueueing. + + + + + Disposable resource for the long term timer that will reevaluate and dispatch the + first item in the long term queue. A serial disposable is used to make "dispose + current and assign new" logic easier. The disposable itself is never disposed. + + + + + Item at the head of the long term queue for which the current long term timer is + running. Used to detect changes in the queue and decide whether we should replace + or can continue using the current timer (because no earlier long term work was + added to the queue). + + + + + Short term work queue. Contains work that's due soon, computed at the time of + enqueueing or upon reevaluation of the long term queue causing migration of work + items. This queue is kept in order to be able to relocate short term items back + to the long term queue in case a system clock change occurs. + + + + + Set of disposable handles to all of the current short term work Schedule calls, + allowing those to be cancelled upon a system clock change. + + + + + Threshold where an item is considered to be short term work or gets moved from + long term to short term. + + + + + Maximum error ratio for timer drift. We've seen machines with 10s drift on a + daily basis, which is in the order 10E-4, so we allow for extra margin here. + This value is used to calculate early arrival for the long term queue timer + that will reevaluate work for the short term queue. + + Example: -------------------------------...---------------------*-----$ + ^ ^ + | | + early due + 0.999 1.0 + + We also make the gap between early and due at least LONGTOSHORT so we have + enough time to transition work to short term and as a courtesy to the + destination scheduler to manage its queues etc. + + + + + Minimum threshold for the long term timer to fire before the queue is reevaluated + for short term work. This value is chosen to be less than SHORTTERM in order to + ensure the timer fires and has work to transition to the short term queue. + + + + + Threshold used to determine when a short term timer has fired too early compared + to the absolute due time. This provides a last chance protection against early + completion of scheduled work, which can happen in case of time adjustment in the + operating system (cf. GetSystemTimeAdjustment). + + + + + Longest interval supported by timers in the BCL. + + + + + Creates a new local scheduler. + + + + + Enqueues absolute time scheduled work in the timer queue or the short term work list. + + State to pass to the action. + Absolute time to run the work on. The timer queue is responsible to execute the work close to the specified time, also accounting for system clock changes. + Action to run, potentially recursing into the scheduler. + Disposable object to prevent the work from running. + + + + Schedule work that's due in the short term. This leads to relative scheduling calls to the + underlying scheduler for short TimeSpan values. If the system clock changes in the meantime, + the short term work is attempted to be cancelled and reevaluated. + + Work item to schedule in the short term. The caller is responsible to determine the work is indeed short term. + + + + Callback to process the next short term work item. + + Recursive scheduler supplied by the underlying scheduler. + Disposable used to identify the work the timer was triggered for (see code for usage). + Empty disposable. Recursive work cancellation is wired through the original WorkItem. + + + + Schedule work that's due on the long term. This leads to the work being queued up for + eventual transitioning to the short term work list. + + Work item to schedule on the long term. The caller is responsible to determine the work is indeed long term. + + + + Updates the long term timer which is responsible to transition work from the head of the + long term queue to the short term work list. + + Should be called under the scheduler lock. + + + + Evaluates the long term queue, transitioning short term work to the short term list, + and adjusting the new long term processing timer accordingly. + + + + + Callback invoked when a system clock change is observed in order to adjust and reevaluate + the internal scheduling queues. + + Currently not used. + Currently not used. + + + + Represents a work item in the absolute time scheduler. + + + This type is very similar to ScheduledItem, but we need a different Invoke signature to allow customization + of the target scheduler (e.g. when called in a recursive scheduling context, see ExecuteNextShortTermWorkItem). + + + + + Represents a work item that closes over scheduler invocation state. Subtyping is + used to have a common type for the scheduler queues. + + + + + Represents an object that schedules each unit of work on a separate thread. + + + + + Creates an object that schedules each unit of work on a separate thread. + + + + + Gets an instance of this scheduler that uses the default Thread constructor. + + + + + Creates an object that schedules each unit of work on a separate thread. + + Factory function for thread creation. + is null. + + + + Schedules an action to be executed after dueTime. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + Relative time after which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Schedules a long-running task by creating a new thread. Cancellation happens through polling. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Schedules a periodic piece of work by creating a new thread that goes to sleep when work has been dispatched and wakes up again at the next periodic due time. + + The type of the state passed to the scheduled action. + Initial state passed to the action upon the first iteration. + Period for running the work periodically. + Action to be executed, potentially updating the state. + The disposable object used to cancel the scheduled recurring action (best effort). + is null. + is less than . + + + + Starts a new stopwatch object. + + New stopwatch object; started at the time of the request. + + + + Abstract base class for scheduled work items. + + Absolute time representation type. + + + + Creates a new scheduled work item to run at the specified time. + + Absolute time at which the work item has to be executed. + Comparer used to compare work items based on their scheduled time. + is null. + + + + Gets the absolute time at which the item is due for invocation. + + + + + Invokes the work item. + + + + + Implement this method to perform the work item invocation, returning a disposable object for deep cancellation. + + Disposable object used to cancel the work item and/or derived work items. + + + + Compares the work item with another work item based on absolute time values. + + Work item to compare the current work item to. + Relative ordering between this and the specified work item. + The inequality operators are overloaded to provide results consistent with the implementation. Equality operators implement traditional reference equality semantics. + + + + Determines whether one specified object is due before a second specified object. + + The first object to compare. + The second object to compare. + true if the value of left is earlier than the value of right; otherwise, false. + This operator provides results consistent with the implementation. + + + + Determines whether one specified object is due before or at the same of a second specified object. + + The first object to compare. + The second object to compare. + true if the value of left is earlier than or simultaneous with the value of right; otherwise, false. + This operator provides results consistent with the implementation. + + + + Determines whether one specified object is due after a second specified object. + + The first object to compare. + The second object to compare. + true if the value of left is later than the value of right; otherwise, false. + This operator provides results consistent with the implementation. + + + + Determines whether one specified object is due after or at the same time of a second specified object. + + The first object to compare. + The second object to compare. + true if the value of left is later than or simultaneous with the value of right; otherwise, false. + This operator provides results consistent with the implementation. + + + + Determines whether two specified objects are equal. + + The first object to compare. + The second object to compare. + true if both are equal; otherwise, false. + This operator does not provide results consistent with the IComparable implementation. Instead, it implements reference equality. + + + + Determines whether two specified objects are inequal. + + The first object to compare. + The second object to compare. + true if both are inequal; otherwise, false. + This operator does not provide results consistent with the IComparable implementation. Instead, it implements reference equality. + + + + Determines whether a object is equal to the specified object. + + The object to compare to the current object. + true if the obj parameter is a object and is equal to the current object; otherwise, false. + + + + Returns the hash code for the current object. + + A 32-bit signed integer hash code. + + + + Cancels the work item by disposing the resource returned by as soon as possible. + + + + + Gets whether the work item has received a cancellation request. + + + + + Represents a scheduled work item based on the materialization of an IScheduler.Schedule method call. + + Absolute time representation type. + Type of the state passed to the scheduled action. + + + + Creates a materialized work item. + + Recursive scheduler to invoke the scheduled action with. + State to pass to the scheduled action. + Scheduled action. + Time at which to run the scheduled action. + Comparer used to compare work items based on their scheduled time. + or or is null. + + + + Creates a materialized work item. + + Recursive scheduler to invoke the scheduled action with. + State to pass to the scheduled action. + Scheduled action. + Time at which to run the scheduled action. + or is null. + + + + Invokes the scheduled action with the supplied recursive scheduler and state. + + Cancellation resource returned by the scheduled action. + + + + Provides a set of static properties to access commonly used schedulers. + + + + + Yields execution of the current work item on the scheduler to another work item on the scheduler. + The caller should await the result of calling Yield to schedule the remainder of the current work item (known as the continuation). + + Scheduler to yield work on. + Scheduler operation object to await in order to schedule the continuation. + is null. + + + + Yields execution of the current work item on the scheduler to another work item on the scheduler. + The caller should await the result of calling Yield to schedule the remainder of the current work item (known as the continuation). + + Scheduler to yield work on. + Cancellation token to cancel the continuation to run. + Scheduler operation object to await in order to schedule the continuation. + is null. + + + + Suspends execution of the current work item on the scheduler for the specified duration. + The caller should await the result of calling Sleep to schedule the remainder of the current work item (known as the continuation) after the specified duration. + + Scheduler to yield work on. + Time when the continuation should run. + Scheduler operation object to await in order to schedule the continuation. + is null. + + + + Suspends execution of the current work item on the scheduler for the specified duration. + The caller should await the result of calling Sleep to schedule the remainder of the current work item (known as the continuation) after the specified duration. + + Scheduler to yield work on. + Time when the continuation should run. + Cancellation token to cancel the continuation to run. + Scheduler operation object to await in order to schedule the continuation. + is null. + + + + Suspends execution of the current work item on the scheduler until the specified due time. + The caller should await the result of calling Sleep to schedule the remainder of the current work item (known as the continuation) at the specified due time. + + Scheduler to yield work on. + Time when the continuation should run. + Scheduler operation object to await in order to schedule the continuation. + is null. + + + + Suspends execution of the current work item on the scheduler until the specified due time. + The caller should await the result of calling Sleep to schedule the remainder of the current work item (known as the continuation) at the specified due time. + + Scheduler to yield work on. + Time when the continuation should run. + Cancellation token to cancel the continuation to run. + Scheduler operation object to await in order to schedule the continuation. + is null. + + + + Schedules work using an asynchronous method, allowing for cooperative scheduling in an imperative coding style. + + The type of the state passed to the scheduled action. + Scheduler to schedule work on. + State to pass to the asynchronous method. + Asynchronous method to run the work, using Yield and Sleep operations for cooperative scheduling and injection of cancellation points. + Disposable object that allows to cancel outstanding work on cooperative cancellation points or through the cancellation token passed to the asynchronous method. + or is null. + + + + Schedules work using an asynchronous method, allowing for cooperative scheduling in an imperative coding style. + + The type of the state passed to the scheduled action. + Scheduler to schedule work on. + State to pass to the asynchronous method. + Asynchronous method to run the work, using Yield and Sleep operations for cooperative scheduling and injection of cancellation points. + Disposable object that allows to cancel outstanding work on cooperative cancellation points or through the cancellation token passed to the asynchronous method. + or is null. + + + + Schedules work using an asynchronous method, allowing for cooperative scheduling in an imperative coding style. + + Scheduler to schedule work on. + Asynchronous method to run the work, using Yield and Sleep operations for cooperative scheduling and injection of cancellation points. + Disposable object that allows to cancel outstanding work on cooperative cancellation points or through the cancellation token passed to the asynchronous method. + or is null. + + + + Schedules work using an asynchronous method, allowing for cooperative scheduling in an imperative coding style. + + Scheduler to schedule work on. + Asynchronous method to run the work, using Yield and Sleep operations for cooperative scheduling and injection of cancellation points. + Disposable object that allows to cancel outstanding work on cooperative cancellation points or through the cancellation token passed to the asynchronous method. + or is null. + + + + Schedules work using an asynchronous method, allowing for cooperative scheduling in an imperative coding style. + + The type of the state passed to the scheduled action. + Scheduler to schedule work on. + State to pass to the asynchronous method. + Relative time after which to execute the action. + Asynchronous method to run the work, using Yield and Sleep operations for cooperative scheduling and injection of cancellation points. + Disposable object that allows to cancel outstanding work on cooperative cancellation points or through the cancellation token passed to the asynchronous method. + or is null. + + + + Schedules work using an asynchronous method, allowing for cooperative scheduling in an imperative coding style. + + The type of the state passed to the scheduled action. + Scheduler to schedule work on. + State to pass to the asynchronous method. + Relative time after which to execute the action. + Asynchronous method to run the work, using Yield and Sleep operations for cooperative scheduling and injection of cancellation points. + Disposable object that allows to cancel outstanding work on cooperative cancellation points or through the cancellation token passed to the asynchronous method. + or is null. + + + + Schedules work using an asynchronous method, allowing for cooperative scheduling in an imperative coding style. + + Scheduler to schedule work on. + Relative time after which to execute the action. + Asynchronous method to run the work, using Yield and Sleep operations for cooperative scheduling and injection of cancellation points. + Disposable object that allows to cancel outstanding work on cooperative cancellation points or through the cancellation token passed to the asynchronous method. + or is null. + + + + Schedules work using an asynchronous method, allowing for cooperative scheduling in an imperative coding style. + + Scheduler to schedule work on. + Relative time after which to execute the action. + Asynchronous method to run the work, using Yield and Sleep operations for cooperative scheduling and injection of cancellation points. + Disposable object that allows to cancel outstanding work on cooperative cancellation points or through the cancellation token passed to the asynchronous method. + or is null. + + + + Schedules work using an asynchronous method, allowing for cooperative scheduling in an imperative coding style. + + The type of the state passed to the scheduled action. + Scheduler to schedule work on. + State to pass to the asynchronous method. + Absolute time at which to execute the action. + Asynchronous method to run the work, using Yield and Sleep operations for cooperative scheduling and injection of cancellation points. + Disposable object that allows to cancel outstanding work on cooperative cancellation points or through the cancellation token passed to the asynchronous method. + or is null. + + + + Schedules work using an asynchronous method, allowing for cooperative scheduling in an imperative coding style. + + The type of the state passed to the scheduled action. + Scheduler to schedule work on. + State to pass to the asynchronous method. + Absolute time at which to execute the action. + Asynchronous method to run the work, using Yield and Sleep operations for cooperative scheduling and injection of cancellation points. + Disposable object that allows to cancel outstanding work on cooperative cancellation points or through the cancellation token passed to the asynchronous method. + or is null. + + + + Schedules work using an asynchronous method, allowing for cooperative scheduling in an imperative coding style. + + Scheduler to schedule work on. + Absolute time at which to execute the action. + Asynchronous method to run the work, using Yield and Sleep operations for cooperative scheduling and injection of cancellation points. + Disposable object that allows to cancel outstanding work on cooperative cancellation points or through the cancellation token passed to the asynchronous method. + or is null. + + + + Schedules work using an asynchronous method, allowing for cooperative scheduling in an imperative coding style. + + Scheduler to schedule work on. + Absolute time at which to execute the action. + Asynchronous method to run the work, using Yield and Sleep operations for cooperative scheduling and injection of cancellation points. + Disposable object that allows to cancel outstanding work on cooperative cancellation points or through the cancellation token passed to the asynchronous method. + or is null. + + + + Gets the current time according to the local machine's system clock. + + + + + Normalizes the specified value to a positive value. + + The value to normalize. + The specified TimeSpan value if it is zero or positive; otherwise, . + + + + Gets a scheduler that schedules work immediately on the current thread. + + + + + Gets a scheduler that schedules work as soon as possible on the current thread. + + + + + Gets a scheduler that schedules work on the platform's default scheduler. + + + + + Gets a scheduler that schedules work on the thread pool. + + + + + Gets a scheduler that schedules work on a new thread using default thread creation options. + + + + + Gets a scheduler that schedules work on Task Parallel Library (TPL) task pool using the default TaskScheduler. + + + + + Schedules an action to be executed recursively. + + Scheduler to execute the recursive action on. + Action to execute recursively. The parameter passed to the action is used to trigger recursive scheduling of the action. + The disposable object used to cancel the scheduled action (best effort). + or is null. + + + + Schedules an action to be executed recursively. + + The type of the state passed to the scheduled action. + Scheduler to execute the recursive action on. + State passed to the action to be executed. + Action to execute recursively. The last parameter passed to the action is used to trigger recursive scheduling of the action, passing in recursive invocation state. + The disposable object used to cancel the scheduled action (best effort). + or is null. + + + + Schedules an action to be executed recursively after a specified relative due time. + + Scheduler to execute the recursive action on. + Action to execute recursively. The parameter passed to the action is used to trigger recursive scheduling of the action at the specified relative time. + Relative time after which to execute the action for the first time. + The disposable object used to cancel the scheduled action (best effort). + or is null. + + + + Schedules an action to be executed recursively after a specified relative due time. + + The type of the state passed to the scheduled action. + Scheduler to execute the recursive action on. + State passed to the action to be executed. + Action to execute recursively. The last parameter passed to the action is used to trigger recursive scheduling of the action, passing in the recursive due time and invocation state. + Relative time after which to execute the action for the first time. + The disposable object used to cancel the scheduled action (best effort). + or is null. + + + + Schedules an action to be executed recursively at a specified absolute due time. + + Scheduler to execute the recursive action on. + Action to execute recursively. The parameter passed to the action is used to trigger recursive scheduling of the action at the specified absolute time. + Absolute time at which to execute the action for the first time. + The disposable object used to cancel the scheduled action (best effort). + or is null. + + + + Schedules an action to be executed recursively at a specified absolute due time. + + The type of the state passed to the scheduled action. + Scheduler to execute the recursive action on. + State passed to the action to be executed. + Action to execute recursively. The last parameter passed to the action is used to trigger recursive scheduling of the action, passing in the recursive due time and invocation state. + Absolute time at which to execute the action for the first time. + The disposable object used to cancel the scheduled action (best effort). + or is null. + + + + Returns the implementation of the specified scheduler, or null if no such implementation is available. + + Scheduler to get the implementation for. + The scheduler's implementation if available; null otherwise. + + This helper method is made available for query operator authors in order to discover scheduler services by using the required + IServiceProvider pattern, which allows for interception or redefinition of scheduler services. + + + + + Returns the implementation of the specified scheduler, or null if no such implementation is available. + + Scheduler to get the implementation for. + The scheduler's implementation if available; null otherwise. + + + This helper method is made available for query operator authors in order to discover scheduler services by using the required + IServiceProvider pattern, which allows for interception or redefinition of scheduler services. + + + Consider using in case a stopwatch is required, but use of emulation stopwatch based + on the scheduler's clock is acceptable. Use of this method is recommended for best-effort use of the stopwatch provider + scheduler service, where the caller falls back to not using stopwatches if this facility wasn't found. + + + + + + Returns the implementation of the specified scheduler, or null if no such implementation is available. + + Scheduler to get the implementation for. + The scheduler's implementation if available; null otherwise. + + + This helper method is made available for query operator authors in order to discover scheduler services by using the required + IServiceProvider pattern, which allows for interception or redefinition of scheduler services. + + + Consider using the extension methods for in case periodic scheduling + is required and emulation of periodic behavior using other scheduler services is desirable. Use of this method is recommended + for best-effort use of the periodic scheduling service, where the caller falls back to not using periodic scheduling if this + facility wasn't found. + + + + + + Schedules a periodic piece of work by dynamically discovering the scheduler's capabilities. + If the scheduler supports periodic scheduling, the request will be forwarded to the periodic scheduling implementation. + If the scheduler provides stopwatch functionality, the periodic task will be emulated using recursive scheduling with a stopwatch to correct for time slippage. + Otherwise, the periodic task will be emulated using recursive scheduling. + + The type of the state passed to the scheduled action. + The scheduler to run periodic work on. + Initial state passed to the action upon the first iteration. + Period for running the work periodically. + Action to be executed, potentially updating the state. + The disposable object used to cancel the scheduled recurring action (best effort). + or is null. + is less than . + + + + Schedules a periodic piece of work by dynamically discovering the scheduler's capabilities. + If the scheduler supports periodic scheduling, the request will be forwarded to the periodic scheduling implementation. + If the scheduler provides stopwatch functionality, the periodic task will be emulated using recursive scheduling with a stopwatch to correct for time slippage. + Otherwise, the periodic task will be emulated using recursive scheduling. + + The type of the state passed to the scheduled action. + Scheduler to execute the action on. + State passed to the action to be executed. + Period for running the work periodically. + Action to be executed. + The disposable object used to cancel the scheduled recurring action (best effort). + or is null. + is less than . + + + + Schedules a periodic piece of work by dynamically discovering the scheduler's capabilities. + If the scheduler supports periodic scheduling, the request will be forwarded to the periodic scheduling implementation. + If the scheduler provides stopwatch functionality, the periodic task will be emulated using recursive scheduling with a stopwatch to correct for time slippage. + Otherwise, the periodic task will be emulated using recursive scheduling. + + Scheduler to execute the action on. + Period for running the work periodically. + Action to be executed. + The disposable object used to cancel the scheduled recurring action (best effort). + or is null. + is less than . + + + + Starts a new stopwatch object by dynamically discovering the scheduler's capabilities. + If the scheduler provides stopwatch functionality, the request will be forwarded to the stopwatch provider implementation. + Otherwise, the stopwatch will be emulated using the scheduler's notion of absolute time. + + Scheduler to obtain a stopwatch for. + New stopwatch object; started at the time of the request. + is null. + The resulting stopwatch object can have non-monotonic behavior. + + + + Schedules an action to be executed. + + Scheduler to execute the action on. + Action to execute. + The disposable object used to cancel the scheduled action (best effort). + or is null. + + + + Schedules an action to be executed. + + Scheduler to execute the action on. + A state object to be passed to . + Action to execute. + The disposable object used to cancel the scheduled action (best effort). + or is null. + + + + Schedules an action to be executed. + + Scheduler to execute the action on. + A state object to be passed to . + Action to execute. + The disposable object used to cancel the scheduled action (best effort). + or is null. + + + + Schedules an action to be executed after the specified relative due time. + + Scheduler to execute the action on. + Action to execute. + Relative time after which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + or is null. + + + + Schedules an action to be executed after the specified relative due time. + + Scheduler to execute the action on. + Action to execute. + A state object to be passed to . + Relative time after which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + or is null. + + + + Schedules an action to be executed after the specified relative due time. + + Scheduler to execute the action on. + Action to execute. + A state object to be passed to . + Relative time after which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + or is null. + + + + Schedules an action to be executed at the specified absolute due time. + + Scheduler to execute the action on. + Action to execute. + Absolute time at which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + or is null. + + + + Schedules an action to be executed after the specified relative due time. + + Scheduler to execute the action on. + Action to execute. + A state object to be passed to . + Relative time after which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + or is null. + + + + Schedules an action to be executed after the specified relative due time. + + Scheduler to execute the action on. + Action to execute. + A state object to be passed to . + Relative time after which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + or is null. + + + + Schedules an action to be executed. + + Scheduler to execute the action on. + Action to execute. + The disposable object used to cancel the scheduled action (best effort). + or is null. + + + + Returns a scheduler that represents the original scheduler, without any of its interface-based optimizations (e.g. long running scheduling). + + Scheduler to disable all optimizations for. + Proxy to the original scheduler but without any optimizations enabled. + is null. + + + + Returns a scheduler that represents the original scheduler, without the specified set of interface-based optimizations (e.g. long running scheduling). + + Scheduler to disable the specified optimizations for. + Types of the optimization interfaces that have to be disabled. + Proxy to the original scheduler but without the specified optimizations enabled. + or is null. + + + + Returns a scheduler that wraps the original scheduler, adding exception handling for scheduled actions. + + Type of the exception to check for. + Scheduler to apply an exception filter for. + Handler that's run if an exception is caught. The exception will be rethrown if the handler returns false. + Wrapper around the original scheduler, enforcing exception handling. + or is null. + + + + Represents an awaitable scheduler operation. Awaiting the object causes the continuation to be posted back to the originating scheduler's work queue. + + + + + Controls whether the continuation is run on the originating synchronization context (false by default). + + true to run the continuation on the captured synchronization context; false otherwise (default). + Scheduler operation object with configured await behavior. + + + + Gets an awaiter for the scheduler operation, used to post back the continuation. + + Awaiter for the scheduler operation. + + + + (Infrastructure) Scheduler operation awaiter type used by the code generated for C# await and Visual Basic Await expressions. + + + + + Indicates whether the scheduler operation has completed. Returns false unless cancellation was already requested. + + + + + Completes the scheduler operation, throwing an OperationCanceledException in case cancellation was requested. + + + + + Registers the continuation with the scheduler operation. + + Continuation to be run on the originating scheduler. + + + + Efficient scheduler queue that maintains scheduled items sorted by absolute time. + + Absolute time representation type. + This type is not thread safe; users should ensure proper synchronization. + + + + Creates a new scheduler queue with a default initial capacity. + + + + + Creates a new scheduler queue with the specified initial capacity. + + Initial capacity of the scheduler queue. + is less than zero. + + + + Gets the number of scheduled items in the scheduler queue. + + + + + Enqueues the specified work item to be scheduled. + + Work item to be scheduled. + + + + Removes the specified work item from the scheduler queue. + + Work item to be removed from the scheduler queue. + true if the item was found; false otherwise. + + + + Dequeues the next work item from the scheduler queue. + + Next work item in the scheduler queue (removed). + + + + Peeks the next work item in the scheduler queue. + + Next work item in the scheduler queue (not removed). + + + + Provides basic synchronization and scheduling services for observable sequences. + + + + + Wraps the source sequence in order to run its subscription and unsubscription logic on the specified scheduler. + + The type of the elements in the source sequence. + Source sequence. + Scheduler to perform subscription and unsubscription actions on. + The source sequence whose subscriptions and unsubscriptions happen on the specified scheduler. + or is null. + + Only the side-effects of subscribing to the source sequence and disposing subscriptions to the source sequence are run on the specified scheduler. + In order to invoke observer callbacks on the specified scheduler, e.g. to offload callback processing to a dedicated thread, use . + + + + + Wraps the source sequence in order to run its subscription and unsubscription logic on the specified synchronization context. + + The type of the elements in the source sequence. + Source sequence. + Synchronization context to perform subscription and unsubscription actions on. + The source sequence whose subscriptions and unsubscriptions happen on the specified synchronization context. + or is null. + + Only the side-effects of subscribing to the source sequence and disposing subscriptions to the source sequence are run on the specified synchronization context. + In order to invoke observer callbacks on the specified synchronization context, e.g. to post callbacks to a UI thread represented by the synchronization context, use . + + + + + Wraps the source sequence in order to run its observer callbacks on the specified scheduler. + + The type of the elements in the source sequence. + Source sequence. + Scheduler to notify observers on. + The source sequence whose observations happen on the specified scheduler. + or is null. + + + + Wraps the source sequence in order to run its observer callbacks on the specified synchronization context. + + The type of the elements in the source sequence. + Source sequence. + Synchronization context to notify observers on. + The source sequence whose observations happen on the specified synchronization context. + or is null. + + + + Wraps the source sequence in order to ensure observer callbacks are properly serialized. + + The type of the elements in the source sequence. + Source sequence. + The source sequence whose outgoing calls to observers are synchronized. + is null. + + + + Wraps the source sequence in order to ensure observer callbacks are synchronized using the specified gate object. + + The type of the elements in the source sequence. + Source sequence. + Gate object to synchronize each observer call on. + The source sequence whose outgoing calls to observers are synchronized on the given gate object. + or is null. + + + + The new ObserveOn operator run with an IScheduler in a lock-free manner. + + + + + The new ObserveOn operator run with an ISchedulerLongRunning in a mostly lock-free manner. + + + + + Represents an object that schedules units of work on a provided . + + + + + Creates an object that schedules units of work on the provided . + + Synchronization context to schedule units of work on. + is null. + + + + Creates an object that schedules units of work on the provided . + + Synchronization context to schedule units of work on. + Configures whether scheduling always posts to the synchronization context, regardless whether the caller is on the same synchronization context. + is null. + + + + Schedules an action to be executed. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Schedules an action to be executed after dueTime. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + Relative time after which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Represents an object that schedules units of work on the Task Parallel Library (TPL) task pool. + + Instance of this type using the default TaskScheduler to schedule work on the TPL task pool. + + + + Creates an object that schedules units of work using the provided . + + Task factory used to create tasks to run units of work. + is null. + + + + Gets an instance of this scheduler that uses the default . + + + + + Schedules an action to be executed. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Schedules an action to be executed after dueTime. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + Relative time after which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Schedules a long-running task by creating a new task using TaskCreationOptions.LongRunning. Cancellation happens through polling. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Gets a new stopwatch object. + + New stopwatch object; started at the time of the request. + + + + Schedules a periodic piece of work by running a platform-specific timer to create tasks periodically. + + The type of the state passed to the scheduled action. + Initial state passed to the action upon the first iteration. + Period for running the work periodically. + Action to be executed, potentially updating the state. + The disposable object used to cancel the scheduled recurring action (best effort). + is null. + is less than . + + + + Represents an object that schedules units of work on the Windows Runtime thread pool. + + Singleton instance of this type exposed through this static property. + + + + Constructs a ThreadPoolScheduler that schedules units of work on the Windows ThreadPool. + + + + + Constructs a ThreadPoolScheduler that schedules units of work on the Windows ThreadPool with the given priority. + + Priority for scheduled units of work. + + + + Constructs a ThreadPoolScheduler that schedules units of work on the Windows ThreadPool with the given priority. + + Priority for scheduled units of work. + Options that configure how work is scheduled. + + + + Gets the singleton instance of the Windows Runtime thread pool scheduler. + + + + + Gets the singleton instance of the Windows Runtime thread pool scheduler. + + + + + Gets the priority at which work is scheduled. + + + + + Gets the options that configure how work is scheduled. + + + + + Schedules an action to be executed. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Schedules an action to be executed after dueTime, using a Windows.System.Threading.ThreadPoolTimer object. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + Relative time after which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Schedules a periodic piece of work, using a Windows.System.Threading.ThreadPoolTimer object. + + The type of the state passed to the scheduled action. + Initial state passed to the action upon the first iteration. + Period for running the work periodically. + Action to be executed, potentially updating the state. + The disposable object used to cancel the scheduled recurring action (best effort). + is null. + is less than one millisecond. + + + + Base class for virtual time schedulers. + + Absolute time representation type. + Relative time representation type. + + + + Creates a new virtual time scheduler with the default value of TAbsolute as the initial clock value. + + + + + Creates a new virtual time scheduler with the specified initial clock value and absolute time comparer. + + Initial value for the clock. + Comparer to determine causality of events based on absolute time. + is null. + + + + Adds a relative time value to an absolute time value. + + Absolute time value. + Relative time value to add. + The resulting absolute time sum value. + + + + Converts the absolute time value to a DateTimeOffset value. + + Absolute time value to convert. + The corresponding DateTimeOffset value. + + + + Converts the TimeSpan value to a relative time value. + + TimeSpan value to convert. + The corresponding relative time value. + + + + Gets whether the scheduler is enabled to run work. + + + + + Gets the comparer used to compare absolute time values. + + + + + Schedules an action to be executed at dueTime. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Absolute time at which to execute the action. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + + + + Schedules an action to be executed at dueTime. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Relative time after which to execute the action. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + + + + Schedules an action to be executed. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Schedules an action to be executed after dueTime. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Relative time after which to execute the action. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Schedules an action to be executed at dueTime. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Absolute time at which to execute the action. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Starts the virtual time scheduler. + + + + + Stops the virtual time scheduler. + + + + + Advances the scheduler's clock to the specified time, running all work till that point. + + Absolute time to advance the scheduler's clock to. + is in the past. + The scheduler is already running. VirtualTimeScheduler doesn't support running nested work dispatch loops. To simulate time slippage while running work on the scheduler, use . + + + + Advances the scheduler's clock by the specified relative time, running all work scheduled for that timespan. + + Relative time to advance the scheduler's clock by. + is negative. + The scheduler is already running. VirtualTimeScheduler doesn't support running nested work dispatch loops. To simulate time slippage while running work on the scheduler, use . + + + + Advances the scheduler's clock by the specified relative time. + + Relative time to advance the scheduler's clock by. + is negative. + + + + Gets the scheduler's absolute time clock value. + + + + + Gets the scheduler's notion of current time. + + + + + Gets the next scheduled item to be executed. + + The next scheduled item. + + + + Discovers scheduler services by interface type. The base class implementation supports + only the IStopwatchProvider service. To influence service discovery - such as adding + support for other scheduler services - derived types can override this method. + + Scheduler service interface type to discover. + Object implementing the requested service, if available; null otherwise. + + + + Starts a new stopwatch object. + + New stopwatch object; started at the time of the request. + + + + Base class for virtual time schedulers using a priority queue for scheduled items. + + Absolute time representation type. + Relative time representation type. + + + + Creates a new virtual time scheduler with the default value of TAbsolute as the initial clock value. + + + + + Creates a new virtual time scheduler. + + Initial value for the clock. + Comparer to determine causality of events based on absolute time. + is null. + + + + Gets the next scheduled item to be executed. + + The next scheduled item. + + + + Schedules an action to be executed at dueTime. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + Absolute time at which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Provides a set of extension methods for virtual time scheduling. + + + + + Schedules an action to be executed at . + + Absolute time representation type. + Relative time representation type. + Scheduler to execute the action on. + Relative time after which to execute the action. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + or is null. + + + + Schedules an action to be executed at . + + Absolute time representation type. + Relative time representation type. + Scheduler to execute the action on. + Absolute time at which to execute the action. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + or is null. + + + + The System.Reactive.Concurrency namespace contains interfaces and classes that provide the scheduler infrastructure used by Reactive Extensions to construct and + process event streams. Schedulers are used to parameterize the concurrency introduced by query operators, provide means to virtualize time, to process historical data, + and to write unit tests for functionality built using Reactive Extensions constructs. + + + + + Represents an object that schedules units of work on a . + + + This scheduler type is typically used indirectly through the and methods that use the current CoreDispatcher. + + + + + Constructs a that schedules units of work on the given . + + Dispatcher to schedule work on. + is null. + + + + Constructs a that schedules units of work on the given with the given priority. + + Dispatcher to schedule work on. + Priority for scheduled units of work. + is null. + + + + Gets the scheduler that schedules work on the associated with the current Window. + + + + + Gets the associated with the . + + + + + Gets the priority at which work is scheduled. + + + + + Schedules an action to be executed on the dispatcher. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Schedules an action to be executed after on the dispatcher, using a object. + + The type of the state passed to the scheduled action. + State passed to the action to be executed. + Action to be executed. + Relative time after which to execute the action. + The disposable object used to cancel the scheduled action (best effort). + is null. + + + + Schedules a periodic piece of work on the dispatcher, using a object. + + The type of the state passed to the scheduled action. + Initial state passed to the action upon the first iteration. + Period for running the work periodically. + Action to be executed, potentially updating the state. + The disposable object used to cancel the scheduled recurring action (best effort). + is null. + is less than . + + + + Represents an Action-based disposable. + + + + + Constructs a new disposable with the given action used for disposal. + + Disposal action which will be run upon calling Dispose. + + + + Gets a value that indicates whether the object is disposed. + + + + + Calls the disposal action if and only if the current instance hasn't been disposed yet. + + + + + Represents a Action-based disposable that can hold onto some state. + + + + + Constructs a new disposable with the given action used for disposal. + + The state to be passed to the disposal action. + Disposal action which will be run upon calling Dispose. + + + + Gets a value that indicates whether the object is disposed. + + + + + Calls the disposal action if and only if the current instance hasn't been disposed yet. + + + + + Represents a disposable resource that can be checked for disposal status. + + + + + Initializes a new instance of the class. + + + + + Gets a value that indicates whether the object is disposed. + + + + + Sets the status to disposed, which can be observer through the property. + + + + + Represents a disposable resource that has an associated that will be set to the cancellation requested state upon disposal. + + + + + Initializes a new instance of the class that uses an existing . + + used for cancellation. + is null. + + + + Initializes a new instance of the class that uses a new . + + + + + Gets the used by this . + + + + + Cancels the underlying . + + + + + Gets a value that indicates whether the object is disposed. + + + + + Represents a group of disposable resources that are disposed together. + + + + + Initializes a new instance of the class with no disposables contained by it initially. + + + + + Initializes a new instance of the class with the specified number of disposables. + + The number of disposables that the new CompositeDisposable can initially store. + is less than zero. + + + + Initializes a new instance of the class from a group of disposables. + + Disposables that will be disposed together. + is null. + Any of the disposables in the collection is null. + + + + Initializes a new instance of the class from a group of disposables. + + Disposables that will be disposed together. + is null. + Any of the disposables in the collection is null. + + + + Gets the number of disposables contained in the . + + + + + Adds a disposable to the or disposes the disposable if the is disposed. + + Disposable to add. + is null. + + + + Removes and disposes the first occurrence of a disposable from the . + + Disposable to remove. + true if found; false otherwise. + is null. + + + + Disposes all disposables in the group and removes them from the group. + + + + + Removes and disposes all disposables from the , but does not dispose the . + + + + + Determines whether the contains a specific disposable. + + Disposable to search for. + true if the disposable was found; otherwise, false. + is null. + + + + Copies the disposables contained in the to an array, starting at a particular array index. + + Array to copy the contained disposables to. + Target index at which to copy the first disposable of the group. + is null. + is less than zero. -or - is larger than or equal to the array length. + + + + Always returns false. + + + + + Returns an enumerator that iterates through the . + + An enumerator to iterate over the disposables. + + + + Returns an enumerator that iterates through the . + + An enumerator to iterate over the disposables. + + + + Gets a value that indicates whether the object is disposed. + + + + + An empty enumerator for the + method to avoid allocation on disposed or empty composites. + + + + + An enumerator for an array of disposables. + + + + + Represents a disposable resource whose disposal invocation will be posted to the specified . + + + + + Initializes a new instance of the class that uses the specified on which to dispose the specified disposable resource. + + Context to perform disposal on. + Disposable whose Dispose operation to run on the given synchronization context. + or is null. + + + + Gets the provided . + + + + + Gets a value that indicates whether the object is disposed. + + + + + Disposes the underlying disposable on the provided . + + + + + Provides a set of static methods for creating objects. + + + + + Represents a disposable that does nothing on disposal. + + + + + Singleton default disposable. + + + + + Does nothing. + + + + + Gets the disposable that does nothing when disposed. + + + + + Creates a disposable object that invokes the specified action when disposed. + + Action to run during the first call to . The action is guaranteed to be run at most once. + The disposable object that runs the given action upon disposal. + is null. + + + + Creates a disposable object that invokes the specified action when disposed. + + The state to be passed to the action. + Action to run during the first call to . The action is guaranteed to be run at most once. + The disposable object that runs the given action upon disposal. + is null. + + + + Gets the value stored in or a null if + was already disposed. + + + + + Gets the value stored in or a no-op-Disposable if + was already disposed. + + + + + Tries to assign to . + + A value indicating the outcome of the operation. + + + + Tries to assign to . If + is not disposed and is assigned a different value, it will not be disposed. + + true if was successfully assigned to . + false has been disposed. + + + + Tries to assign to . If + is not disposed and is assigned a different value, it will be disposed. + + true if was successfully assigned to . + false has been disposed. + + + + Disposes . + + + + + Disposable resource with disposal state tracking. + + + + + Gets a value that indicates whether the object is disposed. + + + + + Represents a disposable resource whose underlying disposable resource can be swapped for another disposable resource. + + + + + Initializes a new instance of the class with no current underlying disposable. + + + + + Gets a value that indicates whether the object is disposed. + + + + + Gets or sets the underlying disposable. After disposal, the result of getting this property is undefined. + + If the has already been disposed, assignment to this property causes immediate disposal of the given disposable object. + + + + Disposes the underlying disposable as well as all future replacements. + + + + + Represents a disposable resource whose underlying disposable resource can be swapped for another disposable resource. + + + + + Gets a value that indicates whether the object is disposed. + + + + + Gets or sets the underlying disposable. After disposal, the result of getting this property is undefined. + + If the has already been disposed, assignment to this property causes immediate disposal of the given disposable object. + + + + Disposes the underlying disposable as well as all future replacements. + + + + + Represents a disposable resource that only disposes its underlying disposable resource when all dependent disposable objects have been disposed. + + + + + Holds the number of active child disposables and the + indicator bit (31) if the main _disposable has been marked + for disposition. + + + + + Initializes a new instance of the class with the specified disposable. + + Underlying disposable. + is null. + + + + Initializes a new instance of the class with the specified disposable. + + Underlying disposable. + Indicates whether subsequent calls to should throw when this instance is disposed. + is null. + + + + Gets a value that indicates whether the object is disposed. + + + + + Returns a dependent disposable that when disposed decreases the refcount on the underlying disposable. + + A dependent disposable contributing to the reference count that manages the underlying disposable's lifetime. + This instance has been disposed and is configured to throw in this case by . + + + + Disposes the underlying disposable only when all dependent disposables have been disposed. + + + + + Represents a disposable resource whose disposal invocation will be scheduled on the specified . + + + + + Initializes a new instance of the class that uses an on which to dispose the disposable. + + Scheduler where the disposable resource will be disposed on. + Disposable resource to dispose on the given scheduler. + or is null. + + + + Gets the scheduler where the disposable resource will be disposed on. + + + + + Gets the underlying disposable. After disposal, the result is undefined. + + + + + Gets a value that indicates whether the object is disposed. + + + + + Disposes the wrapped disposable on the provided scheduler. + + + + + Represents a disposable resource whose underlying disposable resource can be replaced by another disposable resource, causing automatic disposal of the previous underlying disposable resource. + + + + + Initializes a new instance of the class. + + + + + Gets a value that indicates whether the object is disposed. + + + + + Gets or sets the underlying disposable. + + If the SerialDisposable has already been disposed, assignment to this property causes immediate disposal of the given disposable object. Assigning this property disposes the previous disposable object. + + + + Disposes the underlying disposable as well as all future replacements. + + + + + Represents a disposable resource whose underlying disposable resource can be replaced by another disposable resource, causing automatic disposal of the previous underlying disposable resource. + + + + + Gets a value that indicates whether the object is disposed. + + + + + Gets or sets the underlying disposable. + + If the SerialDisposable has already been disposed, assignment to this property causes immediate disposal of the given disposable object. Assigning this property disposes the previous disposable object. + + + + Disposes the underlying disposable as well as all future replacements. + + + + + Represents a disposable resource which only allows a single assignment of its underlying disposable resource. + If an underlying disposable resource has already been set, future attempts to set the underlying disposable resource will throw an . + + + + + Initializes a new instance of the class. + + + + + Gets a value that indicates whether the object is disposed. + + + + + Gets or sets the underlying disposable. After disposal, the result of getting this property is undefined. + + Thrown if the has already been assigned to. + + + + Disposes the underlying disposable. + + + + + Represents a disposable resource which only allows a single assignment of its underlying disposable resource. + If an underlying disposable resource has already been set, future attempts to set the underlying disposable resource will throw an . + + + + + Gets a value that indicates whether the object is disposed. + + + + + Gets or sets the underlying disposable. After disposal, the result of getting this property is undefined. + + Thrown if the has already been assigned to. + + + + Disposes the underlying disposable. + + + + + Represents a group of disposable resources that are disposed together. + + + + + Creates a new group containing two disposable resources that are disposed together. + + The first disposable resource to add to the group. + The second disposable resource to add to the group. + Group of disposable resources that are disposed together. + + + + Creates a new group of disposable resources that are disposed together. + + Disposable resources to add to the group. + Group of disposable resources that are disposed together. + + + + Creates a group of disposable resources that are disposed together + and without copying or checking for nulls inside the group. + + The array of disposables that is trusted + to not contain nulls and gives no need to defensively copy it. + Group of disposable resources that are disposed together. + + + + Creates a new group of disposable resources that are disposed together. + + Disposable resources to add to the group. + Group of disposable resources that are disposed together. + + + + Disposes all disposables in the group. + + + + + Gets a value that indicates whether the object is disposed. + + + + + A stable composite that doesn't do defensive copy of + the input disposable array nor checks it for null. + + + + + The System.Reactive.Disposables namespace contains interfaces and classes that provide a compositional set of constructs used to deal with resource and subscription + management in Reactive Extensions. Those types are used extensively within the implementation of Reactive Extensions and are useful when writing custom query operators or + schedulers. + + + + + Provides access to the platform enlightenments used by other Rx libraries to improve system performance and + runtime efficiency. While Rx can run without platform enlightenments loaded, it's recommended to deploy the + System.Reactive.PlatformServices assembly with your application and call during + application startup to ensure enlightenments are properly loaded. + + + + + Ensures that the calling assembly has a reference to the System.Reactive.PlatformServices assembly with + platform enlightenments. If no reference is made from the user code, it's possible for the build process + to drop the deployment of System.Reactive.PlatformServices, preventing its runtime discovery. + + + true if the loaded enlightenment provider matches the provided defined in the current assembly; false + otherwise. When a custom enlightenment provider is installed by the host, false will be returned. + + + + + (Infrastructure) Provider for platform-specific framework enlightenments. + + + + + (Infrastructure) Tries to gets the specified service. + + Service type. + Optional set of arguments. + Service instance or null if not found. + + + + (Infrastructure) Services to rethrow exceptions. + + + This type is used by the Rx infrastructure and not meant for public consumption or implementation. + No guarantees are made about forward compatibility of the type's functionality and its usage. + + + + + Rethrows the specified exception. + + Exception to rethrow. + + + + (Infrastructure) Provides access to the host's lifecycle management services. + + + + + Event that gets raised when the host suspends the application. + + + + + Event that gets raised when the host resumes the application. + + + + + Adds a reference to the host lifecycle manager, causing it to be sending notifications. + + + + + Removes a reference to the host lifecycle manager, causing it to stop sending notifications + if the removed reference was the last one. + + + + + (Infrastructure) Provides notifications about the host's lifecycle events. + + + + + Event that gets raised when the host suspends. + + + + + Event that gets raised when the host resumes. + + + + + (Infrastructure) Event arguments for host suspension events. + + + + + (Infrastructure) Event arguments for host resumption events. + + + + + (Infrastructure) Interface for enlightenment providers. + + + This type is used by the Rx infrastructure and not meant for public consumption or implementation. + No guarantees are made about forward compatibility of the type's functionality and its usage. + + + + + (Infrastructure) Tries to gets the specified service. + + Service type. + Optional set of arguments. + Service instance or null if not found. + + + + (Infrastructure) Provider for platform-specific framework enlightenments. + + + This type is used by the Rx infrastructure and not meant for public consumption or implementation. + + + + + (Infrastructure) Gets the current enlightenment provider. If none is loaded yet, accessing this property triggers provider resolution. + + + This member is used by the Rx infrastructure and not meant for public consumption or implementation. + + + + + (Infrastructure) Provides access to local system clock services. + + + This type is used by the Rx infrastructure and not meant for public consumption or implementation. + No guarantees are made about forward compatibility of the type's functionality and its usage. + + + + + Gets the local system clock time. + + + + + Adds a reference to the system clock monitor, causing it to be sending notifications. + + Thrown when the system doesn't support sending clock change notifications. + + + + Removes a reference to the system clock monitor, causing it to stop sending notifications + if the removed reference was the last one. + + + + + (Infrastructure) Provides access to the local system clock. + + + This type is used by the Rx infrastructure and not meant for public consumption or implementation. + No guarantees are made about forward compatibility of the type's functionality and its usage. + + + + + Gets the current time. + + + + + (Infrastructure) Provides a mechanism to notify local schedulers about system clock changes. + + + This type is used by the Rx infrastructure and not meant for public consumption or implementation. + No guarantees are made about forward compatibility of the type's functionality and its usage. + + + + + Event that gets raised when a system clock change is detected. + + + + + (Infrastructure) Event arguments for system clock change notifications. + + + This type is used by the Rx infrastructure and not meant for public consumption or implementation. + No guarantees are made about forward compatibility of the type's functionality and its usage. + + + + + Creates a new system clock notification object with unknown old and new times. + + + + + Creates a new system clock notification object with the specified old and new times. + + Time before the system clock changed, or DateTimeOffset.MinValue if not known. + Time after the system clock changed, or DateTimeOffset.MaxValue if not known. + + + + Gets the time before the system clock changed, or DateTimeOffset.MinValue if not known. + + + + + Gets the time after the system clock changed, or DateTimeOffset.MaxValue if not known. + + + + + (Infrastructure) Provides access to the local system clock. + + + + + Gets the current time. + + + + + (Infrastructure) Monitors for system clock changes based on a periodic timer. + + + + + Use the Unix milliseconds for the current time + so it can be atomically read/written without locking. + + + + + Creates a new monitor for system clock changes with the specified polling frequency. + + Polling frequency for system clock changes. + + + + Event that gets raised when a system clock change is detected. + + + + + The System.Reactive.PlatformServices namespace contains interfaces and classes used by the runtime infrastructure of Reactive Extensions. + Those are not intended to be used directly from user code and are subject to change in future releases of the product. + + + + + Represents a .NET event invocation consisting of the weakly typed object that raised the event and the data that was generated by the event. + + The type of the event data generated by the event. + + + + Creates a new data representation instance of a .NET event invocation with the given sender and event data. + + The sender object that raised the event. + The event data that was generated by the event. + + + + Represents a .NET event invocation consisting of the strongly typed object that raised the event and the data that was generated by the event. + + The type of the sender that raised the event. + The type of the event data generated by the event. + + + + Creates a new data representation instance of a .NET event invocation with the given sender and event data. + + The sender object that raised the event. + The event data that was generated by the event. + + + + Gets the sender object that raised the event. + + + + + Gets the event data that was generated by the event. + + + + + Deconstructs the event pattern value into a sender and event data. + + The sender object that raised the event. + The event data that was generated by the event. + + + + Determines whether the current object represents the same event as a specified object. + + An object to compare to the current object. + true if both objects represent the same event; otherwise, false. + + + + Determines whether the specified System.Object is equal to the current . + + The System.Object to compare with the current . + true if the specified System.Object is equal to the current ; otherwise, false. + + + + Returns the hash code for the current instance. + + A hash code for the current instance. + + + + Determines whether two specified objects represent the same event. + + The first to compare, or null. + The second to compare, or null. + true if both objects represent the same event; otherwise, false. + + + + Determines whether two specified objects represent a different event. + + The first to compare, or null. + The second to compare, or null. + true if both objects don't represent the same event; otherwise, false. + + + + Base class for classes that expose an observable sequence as a well-known event pattern (sender, event arguments). + Contains functionality to maintain a map of event handler delegates to observable sequence subscriptions. Subclasses + should only add an event with custom add and remove methods calling into the base class's operations. + + The type of the sender that raises the event. + The type of the event data generated by the event. + + + + Creates a new event pattern source. + + Source sequence to expose as an event. + Delegate used to invoke the event for each element of the sequence. + or is null. + + + + Adds the specified event handler, causing a subscription to the underlying source. + + Event handler to add. The same delegate should be passed to the operation in order to remove the event handler. + Invocation delegate to raise the event in the derived class. + or is null. + + + + Removes the specified event handler, causing a disposal of the corresponding subscription to the underlying source that was created during the operation. + + Event handler to remove. This should be the same delegate as one that was passed to the operation. + is null. + + + + Marks the program elements that are experimental. This class cannot be inherited. + + + + + Represents a .NET event invocation consisting of the strongly typed object that raised the event and the data that was generated by the event. + + + The type of the sender that raised the event. + This type parameter is covariant. That is, you can use either the type you specified or any type that is more derived. For more information about covariance and contravariance, see Covariance and Contravariance in Generics. + + + The type of the event data generated by the event. + This type parameter is covariant. That is, you can use either the type you specified or any type that is more derived. For more information about covariance and contravariance, see Covariance and Contravariance in Generics. + + + + + Gets the sender object that raised the event. + + + + + Gets the event data that was generated by the event. + + + + + Represents a data stream signaling its elements by means of an event. + + The type of the event data generated by the event. + + + + Event signaling the next element in the data stream. + + + + + Represents a data stream signaling its elements by means of an event. + + + The type of the event data generated by the event. + This type parameter is covariant. That is, you can use either the type you specified or any type that is more derived. For more information about covariance and contravariance, see Covariance and Contravariance in Generics. + + + + + Event signaling the next element in the data stream. + + + + + Utility methods to handle lock-free combining of Exceptions + as well as hosting a terminal-exception indicator for + lock-free termination support. + + + + + The singleton instance of the exception indicating a terminal state, + DO NOT LEAK or signal this via OnError! + + + + + Tries to atomically set the Exception on the given field if it is + still null. + + The target field to try to set atomically. + The exception to set, not null (not verified). + True if the operation succeeded, false if the target was not null. + + + + Utility methods for dealing with serializing OnXXX signals + for an IObserver where concurrent OnNext is still not allowed + but concurrent OnError/OnCompleted may happen. + This serialization case is generally lower overhead than + a full SerializedObserver wrapper and doesn't need + allocation. + + + + + Signals the given item to the observer in a serialized fashion + allowing a concurrent OnError or OnCompleted emission to be delayed until + the observer.OnNext returns. + Do not call OnNext from multiple threads as it may lead to ignored items. + Use a full SerializedObserver wrapper for merging multiple sequences. + + The element type of the observer. + The observer to signal events in a serialized fashion. + The item to signal. + Indicates there is an emission going on currently. + The field containing an error or terminal indicator. + + + + Signals the given exception to the observer. If there is a concurrent + OnNext emission is happening, saves the exception into the given field + otherwise to be picked up by . + This method can be called concurrently with itself and the other methods of this + helper class but only one terminal signal may actually win. + + The element type of the observer. + The observer to signal events in a serialized fashion. + The exception to signal sooner or later. + Indicates there is an emission going on currently. + The field containing an error or terminal indicator. + + + + Signals OnCompleted on the observer. If there is a concurrent + OnNext emission happening, the error field will host a special + terminal exception signal to be picked up by once it finishes with OnNext and signal the + OnCompleted as well. + This method can be called concurrently with itself and the other methods of this + helper class but only one terminal signal may actually win. + + The element type of the observer. + The observer to signal events in a serialized fashion. + Indicates there is an emission going on currently. + The field containing an error or terminal indicator. + + + + Base interface for observers that can dispose of a resource on a terminal notification + or when disposed itself. + + + + + + Interface with variance annotation; allows for better type checking when detecting capabilities in SubscribeSafe. + + Type of the resulting sequence's elements. + + + + Base class for implementation of query operators, providing performance benefits over the use of Observable.Create. + + Type of the resulting sequence's elements. + + + + Publicly visible Subscribe method. + + Observer to send notifications on. The implementation of a producer must ensure the correct message grammar on the observer. + IDisposable to cancel the subscription. This causes the underlying sink to be notified of unsubscription, causing it to prevent further messages from being sent to the observer. + + + + Core implementation of the query operator, called upon a new subscription to the producer object. + + Observer to send notifications on. The implementation of a producer must ensure the correct message grammar on the observer. + Disposable representing all the resources and/or subscriptions the operator uses to process events. + The observer passed in to this method is not protected using auto-detach behavior upon an OnError or OnCompleted call. The implementation must ensure proper resource disposal and enforce the message grammar. + + + + Publicly visible Subscribe method. + + Observer to send notifications on. The implementation of a producer must ensure the correct message grammar on the observer. + IDisposable to cancel the subscription. This causes the underlying sink to be notified of unsubscription, causing it to prevent further messages from being sent to the observer. + + + + Core implementation of the query operator, called upon a new subscription to the producer object. + + The sink object. + + + + Represents an observable sequence of elements that have a common key. + + + The type of the key shared by all elements in the group. + This type parameter is covariant. That is, you can use either the type you specified or any type that is more derived. For more information about covariance and contravariance, see Covariance and Contravariance in Generics. + + + The type of the elements in the group. + This type parameter is covariant. That is, you can use either the type you specified or any type that is more derived. For more information about covariance and contravariance, see Covariance and Contravariance in Generics. + + + + + Gets the common key. + + + + + Provides functionality to evaluate queries against a specific data source wherein the type of the data is known. + + + The type of the data in the data source. + This type parameter is covariant. That is, you can use either the type you specified or any type that is more derived. For more information about covariance and contravariance, see Covariance and Contravariance in Generics. + + + + + Provides functionality to evaluate queries against a specific data source wherein the type of the data is not specified. + + + + + Gets the type of the element(s) that are returned when the expression tree associated with this instance of IQbservable is executed. + + + + + Gets the expression tree that is associated with the instance of IQbservable. + + + + + Gets the query provider that is associated with this data source. + + + + + Defines methods to create and execute queries that are described by an IQbservable object. + + + + + Constructs an object that can evaluate the query represented by a specified expression tree. + + The type of the elements of the that is returned. + Expression tree representing the query. + IQbservable object that can evaluate the given query expression. + + + + Internal interface describing the LINQ to Events query language. + + + + + Internal interface describing the LINQ to Events query language. + + + + + Attribute applied to static classes providing expression tree forms of query methods, + mapping those to the corresponding methods for local query execution on the specified + target class type. + + + + + Creates a new mapping to the specified local execution query method implementation type. + + Type with query methods for local execution. + + + + Gets the type with the implementation of local query methods. + + + + + Provides a set of static methods for writing in-memory queries over observable sequences. + + + + + Applies an accumulator function over an observable sequence, returning the result of the aggregation as a single element in the result sequence. The specified seed value is used as the initial accumulator value. + For aggregation behavior with incremental intermediate results, see . + + The type of the elements in the source sequence. + The type of the result of the aggregation. + An observable sequence to aggregate over. + The initial accumulator value. + An accumulator function to be invoked on each element. + An observable sequence containing a single element with the final accumulator value. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Applies an accumulator function over an observable sequence, returning the result of the aggregation as a single element in the result sequence. The specified seed value is used as the initial accumulator value, + and the specified result selector function is used to select the result value. + + The type of the elements in the source sequence. + The type of the accumulator value. + The type of the resulting value. + An observable sequence to aggregate over. + The initial accumulator value. + An accumulator function to be invoked on each element. + A function to transform the final accumulator value into the result value. + An observable sequence containing a single element with the final accumulator value. + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Applies an accumulator function over an observable sequence, returning the result of the aggregation as a single element in the result sequence. + For aggregation behavior with incremental intermediate results, see . + + The type of the elements in the source sequence and the result of the aggregation. + An observable sequence to aggregate over. + An accumulator function to be invoked on each element. + An observable sequence containing a single element with the final accumulator value. + or is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Determines whether all elements of an observable sequence satisfy a condition. + + The type of the elements in the source sequence. + An observable sequence whose elements to apply the predicate to. + A function to test each element for a condition. + An observable sequence containing a single element determining whether all elements in the source sequence pass the test in the specified predicate. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Determines whether an observable sequence contains any elements. + + The type of the elements in the source sequence. + An observable sequence to check for non-emptiness. + An observable sequence containing a single element determining whether the source sequence contains any elements. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Determines whether any element of an observable sequence satisfies a condition. + + The type of the elements in the source sequence. + An observable sequence whose elements to apply the predicate to. + A function to test each element for a condition. + An observable sequence containing a single element determining whether any elements in the source sequence pass the test in the specified predicate. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values. + + A sequence of values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values. + is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values. + + A sequence of values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values. + is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values. + + A sequence of values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values. + is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values. + + A sequence of values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values. + is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values. + + A sequence of values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values. + is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of nullable values. + + A sequence of nullable values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of nullable values. + + A sequence of nullable values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of nullable values. + + A sequence of nullable values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of nullable values. + + A sequence of nullable values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + (Asynchronous) The sum of the elements in the source sequence is larger than . + + + + Computes the average of an observable sequence of nullable values. + + A sequence of nullable values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values. + or is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values. + or is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values. + or is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values. + or is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values. + or is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + or is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + or is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + or is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + or is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + or is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Determines whether an observable sequence contains a specified element by using the default equality comparer. + + The type of the elements in the source sequence. + An observable sequence in which to locate a value. + The value to locate in the source sequence. + An observable sequence containing a single element determining whether the source sequence contains an element that has the specified value. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Determines whether an observable sequence contains a specified element by using a specified System.Collections.Generic.IEqualityComparer{T}. + + The type of the elements in the source sequence. + An observable sequence in which to locate a value. + The value to locate in the source sequence. + An equality comparer to compare elements. + An observable sequence containing a single element determining whether the source sequence contains an element that has the specified value. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns an observable sequence containing an that represents the total number of elements in an observable sequence. + + The type of the elements in the source sequence. + An observable sequence that contains elements to be counted. + An observable sequence containing a single element with the number of elements in the input sequence. + is null. + (Asynchronous) The number of elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns an observable sequence containing an that represents how many elements in the specified observable sequence satisfy a condition. + + The type of the elements in the source sequence. + An observable sequence that contains elements to be counted. + A function to test each element for a condition. + An observable sequence containing a single element with a number that represents how many elements in the input sequence satisfy the condition in the predicate function. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the element at a specified index in a sequence. + + The type of the elements in the source sequence. + Observable sequence to return the element from. + The zero-based index of the element to retrieve. + An observable sequence that produces the element at the specified position in the source sequence. + is null. + is less than zero. + (Asynchronous) is greater than or equal to the number of elements in the source sequence. + + + + Returns the element at a specified index in a sequence or a default value if the index is out of range. + + The type of the elements in the source sequence. + Observable sequence to return the element from. + The zero-based index of the element to retrieve. + An observable sequence that produces the element at the specified position in the source sequence, or a default value if the index is outside the bounds of the source sequence. + is null. + is less than zero. + + + + Returns the first element of an observable sequence. + + The type of the elements in the source sequence. + Source observable sequence. + Sequence containing the first element in the observable sequence. + is null. + (Asynchronous) The source sequence is empty. + + + + Returns the first element of an observable sequence that satisfies the condition in the predicate. + + The type of the elements in the source sequence. + Source observable sequence. + A predicate function to evaluate for elements in the source sequence. + Sequence containing the first element in the observable sequence that satisfies the condition in the predicate. + or is null. + (Asynchronous) No element satisfies the condition in the predicate. -or- The source sequence is empty. + + + + Returns the first element of an observable sequence, or a default value if no such element exists. + + The type of the elements in the source sequence. + Source observable sequence. + Sequence containing the first element in the observable sequence, or a default value if no such element exists. + is null. + + + + Returns the first element of an observable sequence that satisfies the condition in the predicate, or a default value if no such element exists. + + The type of the elements in the source sequence. + Source observable sequence. + A predicate function to evaluate for elements in the source sequence. + Sequence containing the first element in the observable sequence that satisfies the condition in the predicate, or a default value if no such element exists. + or is null. + + + + Determines whether an observable sequence is empty. + + The type of the elements in the source sequence. + An observable sequence to check for emptiness. + An observable sequence containing a single element determining whether the source sequence is empty. + is null. + + + + Returns the last element of an observable sequence. + + The type of the elements in the source sequence. + Source observable sequence. + Sequence containing the last element in the observable sequence. + is null. + (Asynchronous) The source sequence is empty. + + + + Returns the last element of an observable sequence that satisfies the condition in the predicate. + + The type of the elements in the source sequence. + Source observable sequence. + A predicate function to evaluate for elements in the source sequence. + Sequence containing the last element in the observable sequence that satisfies the condition in the predicate. + or is null. + (Asynchronous) No element satisfies the condition in the predicate. -or- The source sequence is empty. + + + + Returns the last element of an observable sequence, or a default value if no such element exists. + + The type of the elements in the source sequence. + Source observable sequence. + Sequence containing the last element in the observable sequence, or a default value if no such element exists. + is null. + + + + Returns the last element of an observable sequence that satisfies the condition in the predicate, or a default value if no such element exists. + + The type of the elements in the source sequence. + Source observable sequence. + A predicate function to evaluate for elements in the source sequence. + Sequence containing the last element in the observable sequence that satisfies the condition in the predicate, or a default value if no such element exists. + or is null. + + + + Returns an observable sequence containing an that represents the total number of elements in an observable sequence. + + The type of the elements in the source sequence. + An observable sequence that contains elements to be counted. + An observable sequence containing a single element with the number of elements in the input sequence. + is null. + (Asynchronous) The number of elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns an observable sequence containing an that represents how many elements in the specified observable sequence satisfy a condition. + + The type of the elements in the source sequence. + An observable sequence that contains elements to be counted. + A function to test each element for a condition. + An observable sequence containing a single element with a number that represents how many elements in the input sequence satisfy the condition in the predicate function. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum element in an observable sequence. + + The type of the elements in the source sequence. + An observable sequence to determine the maximum element of. + An observable sequence containing a single element with the maximum element in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence according to the specified comparer. + + The type of the elements in the source sequence. + An observable sequence to determine the maximum element of. + Comparer used to compare elements. + An observable sequence containing a single element with the maximum element in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of values. + + A sequence of values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of values. + + A sequence of values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of values. + + A sequence of values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of values. + + A sequence of values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of values. + + A sequence of values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum value. + + The type of the elements in the source sequence. + The type of the objects derived from the elements in the source sequence to determine the maximum of. + An observable sequence to determine the minimum element of. + A transform function to apply to each element. + An observable sequence containing a single element with the value that corresponds to the maximum element in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum value according to the specified comparer. + + The type of the elements in the source sequence. + The type of the objects derived from the elements in the source sequence to determine the maximum of. + An observable sequence to determine the minimum element of. + A transform function to apply to each element. + Comparer used to compare elements. + An observable sequence containing a single element with the value that corresponds to the maximum element in the source sequence. + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the elements in an observable sequence with the maximum key value. + + The type of the elements in the source sequence. + The type of the key computed for each element in the source sequence. + An observable sequence to get the maximum elements for. + Key selector function. + An observable sequence containing a list of zero or more elements that have a maximum key value. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the elements in an observable sequence with the maximum key value according to the specified comparer. + + The type of the elements in the source sequence. + The type of the key computed for each element in the source sequence. + An observable sequence to get the maximum elements for. + Key selector function. + Comparer used to compare key values. + An observable sequence containing a list of zero or more elements that have a maximum key value. + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum element in an observable sequence. + + The type of the elements in the source sequence. + An observable sequence to determine the minimum element of. + An observable sequence containing a single element with the minimum element in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum element in an observable sequence according to the specified comparer. + + The type of the elements in the source sequence. + An observable sequence to determine the minimum element of. + Comparer used to compare elements. + An observable sequence containing a single element with the minimum element in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of values. + + A sequence of values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of values. + + A sequence of values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of values. + + A sequence of values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of values. + + A sequence of values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of values. + + A sequence of values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum value. + + The type of the elements in the source sequence. + The type of the objects derived from the elements in the source sequence to determine the minimum of. + An observable sequence to determine the minimum element of. + A transform function to apply to each element. + An observable sequence containing a single element with the value that corresponds to the minimum element in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum value according to the specified comparer. + + The type of the elements in the source sequence. + The type of the objects derived from the elements in the source sequence to determine the minimum of. + An observable sequence to determine the minimum element of. + A transform function to apply to each element. + Comparer used to compare elements. + An observable sequence containing a single element with the value that corresponds to the minimum element in the source sequence. + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the elements in an observable sequence with the minimum key value. + + The type of the elements in the source sequence. + The type of the key computed for each element in the source sequence. + An observable sequence to get the minimum elements for. + Key selector function. + An observable sequence containing a list of zero or more elements that have a minimum key value. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the elements in an observable sequence with the minimum key value according to the specified comparer. + + The type of the elements in the source sequence. + The type of the key computed for each element in the source sequence. + An observable sequence to get the minimum elements for. + Key selector function. + Comparer used to compare key values. + An observable sequence containing a list of zero or more elements that have a minimum key value. + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Determines whether two sequences are equal by comparing the elements pairwise. + + The type of the elements in the source sequence. + First observable sequence to compare. + Second observable sequence to compare. + An observable sequence that contains a single element which indicates whether both sequences are of equal length and their corresponding elements are equal according to the default equality comparer for their type. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Determines whether two sequences are equal by comparing the elements pairwise using a specified equality comparer. + + The type of the elements in the source sequence. + First observable sequence to compare. + Second observable sequence to compare. + Comparer used to compare elements of both sequences. + An observable sequence that contains a single element which indicates whether both sequences are of equal length and their corresponding elements are equal according to the specified equality comparer. + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Determines whether an observable and enumerable sequence are equal by comparing the elements pairwise. + + The type of the elements in the source sequence. + First observable sequence to compare. + Second observable sequence to compare. + An observable sequence that contains a single element which indicates whether both sequences are of equal length and their corresponding elements are equal according to the default equality comparer for their type. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Determines whether an observable and enumerable sequence are equal by comparing the elements pairwise using a specified equality comparer. + + The type of the elements in the source sequence. + First observable sequence to compare. + Second observable sequence to compare. + Comparer used to compare elements of both sequences. + An observable sequence that contains a single element which indicates whether both sequences are of equal length and their corresponding elements are equal according to the specified equality comparer. + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the only element of an observable sequence, and reports an exception if there is not exactly one element in the observable sequence. + + The type of the elements in the source sequence. + Source observable sequence. + Sequence containing the single element in the observable sequence. + is null. + (Asynchronous) The source sequence contains more than one element. -or- The source sequence is empty. + + + + Returns the only element of an observable sequence that satisfies the condition in the predicate, and reports an exception if there is not exactly one element in the observable sequence. + + The type of the elements in the source sequence. + Source observable sequence. + A predicate function to evaluate for elements in the source sequence. + Sequence containing the single element in the observable sequence that satisfies the condition in the predicate. + or is null. + (Asynchronous) No element satisfies the condition in the predicate. -or- More than one element satisfies the condition in the predicate. -or- The source sequence is empty. + + + + Returns the only element of an observable sequence, or a default value if the observable sequence is empty; this method reports an exception if there is more than one element in the observable sequence. + + The type of the elements in the source sequence. + Source observable sequence. + Sequence containing the single element in the observable sequence, or a default value if no such element exists. + is null. + (Asynchronous) The source sequence contains more than one element. + + + + Returns the only element of an observable sequence that matches the predicate, or a default value if no such element exists; this method reports an exception if there is more than one element in the observable sequence. + + The type of the elements in the source sequence. + Source observable sequence. + A predicate function to evaluate for elements in the source sequence. + Sequence containing the single element in the observable sequence that satisfies the condition in the predicate, or a default value if no such element exists. + or is null. + (Asynchronous) The sequence contains more than one element that satisfies the condition in the predicate. + + + + Computes the sum of a sequence of values. + + A sequence of values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of values. + + A sequence of values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of values. + + A sequence of values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + is null. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of values. + + A sequence of values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + is null. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of values. + + A sequence of values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + is null. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values. + + A sequence of nullable values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values. + + A sequence of nullable values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values. + + A sequence of nullable values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + is null. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values. + + A sequence of nullable values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + is null. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values. + + A sequence of nullable values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + is null. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + or is null. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + or is null. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + or is null. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + or is null. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + or is null. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + or is null. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates an array from an observable sequence. + + The type of the elements in the source sequence. + The source observable sequence to get an array of elements for. + An observable sequence containing a single element with an array containing all the elements of the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates a dictionary from an observable sequence according to a specified key selector function. + + The type of the elements in the source sequence. + The type of the dictionary key computed for each element in the source sequence. + An observable sequence to create a dictionary for. + A function to extract a key from each element. + An observable sequence containing a single element with a dictionary mapping unique key values onto the corresponding source sequence's element. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates a dictionary from an observable sequence according to a specified key selector function, and a comparer. + + The type of the elements in the source sequence. + The type of the dictionary key computed for each element in the source sequence. + An observable sequence to create a dictionary for. + A function to extract a key from each element. + An equality comparer to compare keys. + An observable sequence containing a single element with a dictionary mapping unique key values onto the corresponding source sequence's element. + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates a dictionary from an observable sequence according to a specified key selector function, and an element selector function. + + The type of the elements in the source sequence. + The type of the dictionary key computed for each element in the source sequence. + The type of the dictionary value computed for each element in the source sequence. + An observable sequence to create a dictionary for. + A function to extract a key from each element. + A transform function to produce a result element value from each element. + An observable sequence containing a single element with a dictionary mapping unique key values onto the corresponding source sequence's element. + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates a dictionary from an observable sequence according to a specified key selector function, a comparer, and an element selector function. + + The type of the elements in the source sequence. + The type of the dictionary key computed for each element in the source sequence. + The type of the dictionary value computed for each element in the source sequence. + An observable sequence to create a dictionary for. + A function to extract a key from each element. + A transform function to produce a result element value from each element. + An equality comparer to compare keys. + An observable sequence containing a single element with a dictionary mapping unique key values onto the corresponding source sequence's element. + or or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates a list from an observable sequence. + + The type of the elements in the source sequence. + The source observable sequence to get a list of elements for. + An observable sequence containing a single element with a list containing all the elements of the source sequence. + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates a lookup from an observable sequence according to a specified key selector function. + + The type of the elements in the source sequence. + The type of the lookup key computed for each element in the source sequence. + An observable sequence to create a lookup for. + A function to extract a key from each element. + An observable sequence containing a single element with a lookup mapping unique key values onto the corresponding source sequence's elements. + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates a lookup from an observable sequence according to a specified key selector function, and a comparer. + + The type of the elements in the source sequence. + The type of the lookup key computed for each element in the source sequence. + An observable sequence to create a lookup for. + A function to extract a key from each element. + An equality comparer to compare keys. + An observable sequence containing a single element with a lookup mapping unique key values onto the corresponding source sequence's elements. + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates a lookup from an observable sequence according to a specified key selector function, and an element selector function. + + The type of the elements in the source sequence. + The type of the lookup key computed for each element in the source sequence. + The type of the lookup value computed for each element in the source sequence. + An observable sequence to create a lookup for. + A function to extract a key from each element. + A transform function to produce a result element value from each element. + An observable sequence containing a single element with a lookup mapping unique key values onto the corresponding source sequence's elements. + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates a lookup from an observable sequence according to a specified key selector function, a comparer, and an element selector function. + + The type of the elements in the source sequence. + The type of the lookup key computed for each element in the source sequence. + The type of the lookup value computed for each element in the source sequence. + An observable sequence to create a lookup for. + A function to extract a key from each element. + A transform function to produce a result element value from each element. + An equality comparer to compare keys. + An observable sequence containing a single element with a lookup mapping unique key values onto the corresponding source sequence's elements. + or or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The type of the eleventh argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The type of the eleventh argument passed to the begin delegate. + The type of the twelfth argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The type of the eleventh argument passed to the begin delegate. + The type of the twelfth argument passed to the begin delegate. + The type of the thirteenth argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The type of the eleventh argument passed to the begin delegate. + The type of the twelfth argument passed to the begin delegate. + The type of the thirteenth argument passed to the begin delegate. + The type of the fourteenth argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The type of the eleventh argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The type of the eleventh argument passed to the begin delegate. + The type of the twelfth argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The type of the eleventh argument passed to the begin delegate. + The type of the twelfth argument passed to the begin delegate. + The type of the thirteenth argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The type of the eleventh argument passed to the begin delegate. + The type of the twelfth argument passed to the begin delegate. + The type of the thirteenth argument passed to the begin delegate. + The type of the fourteenth argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Invokes the specified function asynchronously, surfacing the result through an observable sequence. + + The type of the result returned by the function. + Function to run asynchronously. + An observable sequence exposing the function's result value, or an exception. + is null. + + + The function is called immediately, not during the subscription of the resulting sequence. + Multiple subscriptions to the resulting sequence can observe the function's result. + + + + + + Invokes the specified function asynchronously on the specified scheduler, surfacing the result through an observable sequence + + The type of the result returned by the function. + Function to run asynchronously. + Scheduler to run the function on. + An observable sequence exposing the function's result value, or an exception. + or is null. + + + The function is called immediately, not during the subscription of the resulting sequence. + Multiple subscriptions to the resulting sequence can observe the function's result. + + + + + + Invokes the asynchronous function, surfacing the result through an observable sequence. + + The type of the result returned by the asynchronous function. + Asynchronous function to run. + An observable sequence exposing the function's result value, or an exception. + is null. + + + The function is started immediately, not during the subscription of the resulting sequence. + Multiple subscriptions to the resulting sequence can observe the function's result. + + + + + + Invokes the asynchronous function, surfacing the result through an observable sequence. + + The type of the result returned by the asynchronous function. + Asynchronous function to run. + Scheduler on which to notify observers. + An observable sequence exposing the function's result value, or an exception. + is null or is null. + + + The function is started immediately, not during the subscription of the resulting sequence. + Multiple subscriptions to the resulting sequence can observe the function's result. + + + + + + Invokes the asynchronous function, surfacing the result through an observable sequence. + The CancellationToken is shared by all subscriptions on the resulting observable sequence. See the remarks section for more information. + + The type of the result returned by the asynchronous function. + Asynchronous function to run. + An observable sequence exposing the function's result value, or an exception. + is null. + + + The function is started immediately, not during the subscription of the resulting sequence. + Multiple subscriptions to the resulting sequence can observe the function's result. + + If any subscription to the resulting sequence is disposed, the CancellationToken is set. The observer associated to the disposed + subscription won't see the TaskCanceledException, but other observers will. You can protect against this using the Catch operator. + Be careful when handing out the resulting sequence because of this behavior. The most common use is to have a single subscription + to the resulting sequence, which controls the CancellationToken state. Alternatively, you can control subscription behavior using + multicast operators. + + + + + + + Invokes the asynchronous function, surfacing the result through an observable sequence. + The CancellationToken is shared by all subscriptions on the resulting observable sequence. See the remarks section for more information. + + The type of the result returned by the asynchronous function. + Asynchronous function to run. + Scheduler on which to notify observers. + An observable sequence exposing the function's result value, or an exception. + is null or is null. + + + The function is started immediately, not during the subscription of the resulting sequence. + Multiple subscriptions to the resulting sequence can observe the function's result. + + If any subscription to the resulting sequence is disposed, the CancellationToken is set. The observer associated to the disposed + subscription won't see the TaskCanceledException, but other observers will. You can protect against this using the Catch operator. + Be careful when handing out the resulting sequence because of this behavior. The most common use is to have a single subscription + to the resulting sequence, which controls the CancellationToken state. Alternatively, you can control subscription behavior using + multicast operators. + + + + + + + Invokes the action asynchronously, surfacing the result through an observable sequence. + + Action to run asynchronously. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + is null. + + + The action is called immediately, not during the subscription of the resulting sequence. + Multiple subscriptions to the resulting sequence can observe the action's outcome. + + + + + + Invokes the action asynchronously on the specified scheduler, surfacing the result through an observable sequence. + + Action to run asynchronously. + Scheduler to run the action on. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + or is null. + + + The action is called immediately, not during the subscription of the resulting sequence. + Multiple subscriptions to the resulting sequence can observe the action's outcome. + + + + + + Invokes the asynchronous action, surfacing the result through an observable sequence. + + Asynchronous action to run. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + is null. + + + The action is started immediately, not during the subscription of the resulting sequence. + Multiple subscriptions to the resulting sequence can observe the action's outcome. + + + + + + Invokes the asynchronous action, surfacing the result through an observable sequence. + + Asynchronous action to run. + Scheduler on which to notify observers. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + is null or is null. + + + The action is started immediately, not during the subscription of the resulting sequence. + Multiple subscriptions to the resulting sequence can observe the action's outcome. + + + + + + Invokes the asynchronous action, surfacing the result through an observable sequence. + The CancellationToken is shared by all subscriptions on the resulting observable sequence. See the remarks section for more information. + + Asynchronous action to run. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + is null. + + + The action is started immediately, not during the subscription of the resulting sequence. + Multiple subscriptions to the resulting sequence can observe the action's outcome. + + If any subscription to the resulting sequence is disposed, the CancellationToken is set. The observer associated to the disposed + subscription won't see the TaskCanceledException, but other observers will. You can protect against this using the Catch operator. + Be careful when handing out the resulting sequence because of this behavior. The most common use is to have a single subscription + to the resulting sequence, which controls the CancellationToken state. Alternatively, you can control subscription behavior using + multicast operators. + + + + + + + Invokes the asynchronous action, surfacing the result through an observable sequence. + The CancellationToken is shared by all subscriptions on the resulting observable sequence. See the remarks section for more information. + + Asynchronous action to run. + Scheduler on which to notify observers. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + is null or is null. + + + The action is started immediately, not during the subscription of the resulting sequence. + Multiple subscriptions to the resulting sequence can observe the action's outcome. + + If any subscription to the resulting sequence is disposed, the CancellationToken is set. The observer associated to the disposed + subscription won't see the TaskCanceledException, but other observers will. You can protect against this using the Catch operator. + Be careful when handing out the resulting sequence because of this behavior. The most common use is to have a single subscription + to the resulting sequence, which controls the CancellationToken state. Alternatively, you can control subscription behavior using + multicast operators. + + + + + + + Converts an asynchronous function into an observable sequence. Each subscription to the resulting sequence causes the function to be started. + + The type of the result returned by the asynchronous function. + Asynchronous function to convert. + An observable sequence exposing the result of invoking the function, or an exception. + is null. + + + + Converts an asynchronous function into an observable sequence. Each subscription to the resulting sequence causes the function to be started. + + The type of the result returned by the asynchronous function. + Asynchronous function to convert. + Scheduler on which to notify observers. + An observable sequence exposing the result of invoking the function, or an exception. + is null or is null. + + + + Converts an asynchronous function into an observable sequence. Each subscription to the resulting sequence causes the function to be started. + The CancellationToken passed to the asynchronous function is tied to the observable sequence's subscription that triggered the function's invocation and can be used for best-effort cancellation. + + The type of the result returned by the asynchronous function. + Asynchronous function to convert. + An observable sequence exposing the result of invoking the function, or an exception. + is null. + When a subscription to the resulting sequence is disposed, the CancellationToken that was fed to the asynchronous function will be signaled. + + + + Converts an asynchronous function into an observable sequence. Each subscription to the resulting sequence causes the function to be started. + The CancellationToken passed to the asynchronous function is tied to the observable sequence's subscription that triggered the function's invocation and can be used for best-effort cancellation. + + The type of the result returned by the asynchronous function. + Asynchronous function to convert. + Scheduler on which to notify observers. + An observable sequence exposing the result of invoking the function, or an exception. + is null or is null. + When a subscription to the resulting sequence is disposed, the CancellationToken that was fed to the asynchronous function will be signaled. + + + + Converts an asynchronous action into an observable sequence. Each subscription to the resulting sequence causes the action to be started. + + Asynchronous action to convert. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + is null. + + + + Converts an asynchronous action into an observable sequence. Each subscription to the resulting sequence causes the action to be started. + + Asynchronous action to convert. + Scheduler on which to notify observers. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + is null or is null. + + + + Converts an asynchronous action into an observable sequence. Each subscription to the resulting sequence causes the action to be started. + The CancellationToken passed to the asynchronous action is tied to the observable sequence's subscription that triggered the action's invocation and can be used for best-effort cancellation. + + Asynchronous action to convert. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + When a subscription to the resulting sequence is disposed, the CancellationToken that was fed to the asynchronous function will be signaled. + is null. + + + + Converts an asynchronous action into an observable sequence. Each subscription to the resulting sequence causes the action to be started. + The CancellationToken passed to the asynchronous action is tied to the observable sequence's subscription that triggered the action's invocation and can be used for best-effort cancellation. + + Asynchronous action to convert. + Scheduler on which to notify observers. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + When a subscription to the resulting sequence is disposed, the CancellationToken that was fed to the asynchronous function will be signaled. + is null or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + The type of the first argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + The type of the first argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the thirteenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the thirteenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the thirteenth argument passed to the function. + The type of the fourteenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the thirteenth argument passed to the function. + The type of the fourteenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the thirteenth argument passed to the function. + The type of the fourteenth argument passed to the function. + The type of the fifteenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the thirteenth argument passed to the function. + The type of the fourteenth argument passed to the function. + The type of the fifteenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the thirteenth argument passed to the function. + The type of the fourteenth argument passed to the function. + The type of the fifteenth argument passed to the function. + The type of the sixteenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the thirteenth argument passed to the function. + The type of the fourteenth argument passed to the function. + The type of the fifteenth argument passed to the function. + The type of the sixteenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Action to convert to an asynchronous action. + Asynchronous action. + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + The type of the first argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + The type of the first argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + The type of the thirteenth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + The type of the thirteenth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + The type of the thirteenth argument passed to the action. + The type of the fourteenth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + The type of the thirteenth argument passed to the action. + The type of the fourteenth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + The type of the thirteenth argument passed to the action. + The type of the fourteenth argument passed to the action. + The type of the fifteenth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + The type of the thirteenth argument passed to the action. + The type of the fourteenth argument passed to the action. + The type of the fifteenth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + The type of the thirteenth argument passed to the action. + The type of the fourteenth argument passed to the action. + The type of the fifteenth argument passed to the action. + The type of the sixteenth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + The type of the thirteenth argument passed to the action. + The type of the fourteenth argument passed to the action. + The type of the fifteenth argument passed to the action. + The type of the sixteenth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + or is null. + + + + Gets an awaiter that returns the last value of the observable sequence or throws an exception if the sequence is empty. + This operation subscribes to the observable sequence, making it hot. + + The type of the elements in the source sequence. + Source sequence to await. + Object that can be awaited. + is null. + + + + Gets an awaiter that returns the last value of the observable sequence or throws an exception if the sequence is empty. + This operation subscribes and connects to the observable sequence, making it hot. + + The type of the elements in the source sequence. + Source sequence to await. + Object that can be awaited. + is null. + + + + Gets an awaiter that returns the last value of the observable sequence or throws an exception if the sequence is empty. + This operation subscribes to the observable sequence, making it hot. The supplied CancellationToken can be used to cancel the subscription. + + The type of the elements in the source sequence. + Source sequence to await. + Cancellation token. + Object that can be awaited. + is null. + + + + Gets an awaiter that returns the last value of the observable sequence or throws an exception if the sequence is empty. + This operation subscribes and connects to the observable sequence, making it hot. The supplied CancellationToken can be used to cancel the subscription and connection. + + The type of the elements in the source sequence. + Source sequence to await. + Cancellation token. + Object that can be awaited. + is null. + + + + Multicasts the source sequence notifications through the specified subject to the resulting connectable observable. Upon connection of the + connectable observable, the subject is subscribed to the source exactly one, and messages are forwarded to the observers registered with + the connectable observable. For specializations with fixed subject types, see Publish, PublishLast, and Replay. + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be pushed into the specified subject. + Subject to push source elements into. + A connectable observable sequence that upon connection causes the source sequence to push results into the specified subject. + or is null. + + + + Multicasts the source sequence notifications through an instantiated subject into all uses of the sequence within a selector function. Each + subscription to the resulting sequence causes a separate multicast invocation, exposing the sequence resulting from the selector function's + invocation. For specializations with fixed subject types, see Publish, PublishLast, and Replay. + + The type of the elements in the source sequence. + The type of the elements produced by the intermediate subject. + The type of the elements in the result sequence. + Source sequence which will be multicasted in the specified selector function. + Factory function to create an intermediate subject through which the source sequence's elements will be multicast to the selector function. + Selector function which can use the multicasted source sequence subject to the policies enforced by the created subject. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + or or is null. + + + + Returns a connectable observable sequence that shares a single subscription to the underlying sequence. + This operator is a specialization of Multicast using a regular . + + The type of the elements in the source sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + A connectable observable sequence that shares a single subscription to the underlying sequence. + is null. + Subscribers will receive all notifications of the source from the time of the subscription on. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence. + This operator is a specialization of Multicast using a regular . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all notifications of the source from the time of the subscription on. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + or is null. + + + + + Returns a connectable observable sequence that shares a single subscription to the underlying sequence and starts with initialValue. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Initial value received by observers upon subscription. + A connectable observable sequence that shares a single subscription to the underlying sequence. + is null. + Subscribers will receive immediately receive the initial value, followed by all notifications of the source from the time of the subscription on. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence and starts with initialValue. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive immediately receive the initial value, followed by all notifications of the source from the time of the subscription on. + Initial value received by observers upon subscription. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + or is null. + + + + + Returns a connectable observable sequence that shares a single subscription to the underlying sequence containing only the last notification. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + A connectable observable sequence that shares a single subscription to the underlying sequence. + is null. + Subscribers will only receive the last notification of the source. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence containing only the last notification. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will only receive the last notification of the source. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + or is null. + + + + + Returns an observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + + The type of the elements in the source sequence. + Connectable observable sequence. + An observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + is null. + + + + Returns an observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + + The type of the elements in the source sequence. + Connectable observable sequence. + The time span that should be waited before possibly unsubscribing from the connectable observable. + An observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + is null. + + + + Returns an observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + + The type of the elements in the source sequence. + Connectable observable sequence. + The time span that should be waited before possibly unsubscribing from the connectable observable. + The scheduler to use for delayed unsubscription. + An observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + is null. + + + + Returns an observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + + The type of the elements in the source sequence. + Connectable observable sequence. + The minimum number of observers required to subscribe before establishing the connection to the source. + An observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + is null. + is non-positive. + + + + Returns an observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + + The type of the elements in the source sequence. + Connectable observable sequence. + The minimum number of observers required to subscribe before establishing the connection to the source. + The time span that should be waited before possibly unsubscribing from the connectable observable. + An observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + is null. + is non-positive. + + + + Returns an observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + + The type of the elements in the source sequence. + Connectable observable sequence. + The minimum number of observers required to subscribe before establishing the connection to the source. + The time span that should be waited before possibly unsubscribing from the connectable observable. + The scheduler to use for delayed unsubscription. + An observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + is null. + is non-positive. + + + + Automatically connect the upstream IConnectableObservable at most once when the + specified number of IObservers have subscribed to this IObservable. + + The type of the elements in the source sequence. + Connectable observable sequence. + The number of observers required to subscribe before the connection to source happens, non-positive value will trigger an immediate subscription. + If not null, the connection's IDisposable is provided to it. + An observable sequence that connects to the source at most once when the given number of observers have subscribed to it. + is null. + + + + Returns a connectable observable sequence that shares a single subscription to the underlying sequence replaying all notifications. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + A connectable observable sequence that shares a single subscription to the underlying sequence. + is null. + Subscribers will receive all the notifications of the source. + + + + + Returns a connectable observable sequence that shares a single subscription to the underlying sequence replaying all notifications. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Scheduler where connected observers will be invoked on. + A connectable observable sequence that shares a single subscription to the underlying sequence. + or is null. + Subscribers will receive all the notifications of the source. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying all notifications. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all the notifications of the source. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + or is null. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying all notifications. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all the notifications of the source. + Scheduler where connected observers within the selector function will be invoked on. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + or or is null. + + + + + Returns a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum time length for the replay buffer. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Maximum time length of the replay buffer. + A connectable observable sequence that shares a single subscription to the underlying sequence. + is null. + is less than TimeSpan.Zero. + Subscribers will receive all the notifications of the source subject to the specified replay buffer trimming policy. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum time length for the replay buffer. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all the notifications of the source subject to the specified replay buffer trimming policy. + Maximum time length of the replay buffer. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + or is null. + is less than TimeSpan.Zero. + + + + + Returns a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum time length for the replay buffer. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Maximum time length of the replay buffer. + Scheduler where connected observers will be invoked on. + A connectable observable sequence that shares a single subscription to the underlying sequence. + or is null. + is less than TimeSpan.Zero. + Subscribers will receive all the notifications of the source subject to the specified replay buffer trimming policy. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum time length for the replay buffer. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all the notifications of the source subject to the specified replay buffer trimming policy. + Maximum time length of the replay buffer. + Scheduler where connected observers within the selector function will be invoked on. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + or or is null. + is less than TimeSpan.Zero. + + + + + Returns a connectable observable sequence that shares a single subscription to the underlying sequence replaying bufferSize notifications. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Maximum element count of the replay buffer. + Scheduler where connected observers will be invoked on. + A connectable observable sequence that shares a single subscription to the underlying sequence. + or is null. + is less than zero. + Subscribers will receive all the notifications of the source subject to the specified replay buffer trimming policy. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum element count for the replay buffer. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all the notifications of the source subject to the specified replay buffer trimming policy. + Maximum element count of the replay buffer. + Scheduler where connected observers within the selector function will be invoked on. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + or or is null. + is less than zero. + + + + + Returns a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum element count for the replay buffer. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Maximum element count of the replay buffer. + A connectable observable sequence that shares a single subscription to the underlying sequence. + is null. + is less than zero. + Subscribers will receive all the notifications of the source subject to the specified replay buffer trimming policy. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum element count for the replay buffer. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all the notifications of the source subject to the specified replay buffer trimming policy. + Maximum element count of the replay buffer. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + or is null. + is less than zero. + + + + + Returns a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum time length and element count for the replay buffer. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Maximum element count of the replay buffer. + Maximum time length of the replay buffer. + A connectable observable sequence that shares a single subscription to the underlying sequence. + is null. + is less than zero. + is less than TimeSpan.Zero. + Subscribers will receive all the notifications of the source subject to the specified replay buffer trimming policy. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum time length and element count for the replay buffer. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all the notifications of the source subject to the specified replay buffer trimming policy. + Maximum element count of the replay buffer. + Maximum time length of the replay buffer. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + or is null. + is less than zero. + is less than TimeSpan.Zero. + + + + + Returns a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum time length and element count for the replay buffer. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Maximum element count of the replay buffer. + Maximum time length of the replay buffer. + Scheduler where connected observers will be invoked on. + A connectable observable sequence that shares a single subscription to the underlying sequence. + or is null. + is less than zero. + is less than TimeSpan.Zero. + Subscribers will receive all the notifications of the source subject to the specified replay buffer trimming policy. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum time length and element count for the replay buffer. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all the notifications of the source subject to the specified replay buffer trimming policy. + Maximum element count of the replay buffer. + Maximum time length of the replay buffer. + Scheduler where connected observers within the selector function will be invoked on. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + or or is null. + is less than zero. + is less than TimeSpan.Zero. + + + + + Produces an enumerable sequence of consecutive (possibly empty) chunks of the source sequence. + + The type of the elements in the source sequence. + Source observable sequence. + The enumerable sequence that returns consecutive (possibly empty) chunks upon each iteration. + is null. + + + + Produces an enumerable sequence that returns elements collected/aggregated from the source sequence between consecutive iterations. + + The type of the elements in the source sequence. + The type of the elements produced by the merge operation during collection. + Source observable sequence. + Factory to create a new collector object. + Merges a sequence element with the current collector. + The enumerable sequence that returns collected/aggregated elements from the source sequence upon each iteration. + or or is null. + + + + Produces an enumerable sequence that returns elements collected/aggregated from the source sequence between consecutive iterations. + + The type of the elements in the source sequence. + The type of the elements produced by the merge operation during collection. + Source observable sequence. + Factory to create the initial collector object. + Merges a sequence element with the current collector. + Factory to replace the current collector by a new collector. + The enumerable sequence that returns collected/aggregated elements from the source sequence upon each iteration. + or or or is null. + + + + Returns the first element of an observable sequence. + + The type of the elements in the source sequence. + Source observable sequence. + The first element in the observable sequence. + is null. + The source sequence is empty. + + + + + Returns the first element of an observable sequence that satisfies the condition in the predicate. + + The type of the elements in the source sequence. + Source observable sequence. + A predicate function to evaluate for elements in the source sequence. + The first element in the observable sequence that satisfies the condition in the predicate. + or is null. + No element satisfies the condition in the predicate. -or- The source sequence is empty. + + + + + Returns the first element of an observable sequence, or a default value if no such element exists. + + The type of the elements in the source sequence. + Source observable sequence. + The first element in the observable sequence, or a default value if no such element exists. + is null. + + + + + Returns the first element of an observable sequence that satisfies the condition in the predicate, or a default value if no such element exists. + + The type of the elements in the source sequence. + Source observable sequence. + A predicate function to evaluate for elements in the source sequence. + The first element in the observable sequence that satisfies the condition in the predicate, or a default value if no such element exists. + or is null. + + + + + Invokes an action for each element in the observable sequence, and blocks until the sequence is terminated. + + The type of the elements in the source sequence. + Source sequence. + Action to invoke for each element in the observable sequence. + or is null. + Because of its blocking nature, this operator is mainly used for testing. + + + + Invokes an action for each element in the observable sequence, incorporating the element's index, and blocks until the sequence is terminated. + + The type of the elements in the source sequence. + Source sequence. + Action to invoke for each element in the observable sequence. + or is null. + Because of its blocking nature, this operator is mainly used for testing. + + + + Returns an enumerator that enumerates all values of the observable sequence. + + The type of the elements in the source sequence. + An observable sequence to get an enumerator for. + The enumerator that can be used to enumerate over the elements in the observable sequence. + is null. + + + + Returns the last element of an observable sequence. + + The type of the elements in the source sequence. + Source observable sequence. + The last element in the observable sequence. + is null. + The source sequence is empty. + + + + + Returns the last element of an observable sequence that satisfies the condition in the predicate. + + The type of the elements in the source sequence. + Source observable sequence. + A predicate function to evaluate for elements in the source sequence. + The last element in the observable sequence that satisfies the condition in the predicate. + or is null. + No element satisfies the condition in the predicate. -or- The source sequence is empty. + + + + + Returns the last element of an observable sequence, or a default value if no such element exists. + + The type of the elements in the source sequence. + Source observable sequence. + The last element in the observable sequence, or a default value if no such element exists. + is null. + + + + + Returns the last element of an observable sequence that satisfies the condition in the predicate, or a default value if no such element exists. + + The type of the elements in the source sequence. + Source observable sequence. + A predicate function to evaluate for elements in the source sequence. + The last element in the observable sequence that satisfies the condition in the predicate, or a default value if no such element exists. + or is null. + + + + + Returns an enumerable sequence whose enumeration returns the latest observed element in the source observable sequence. + Enumerators on the resulting sequence will never produce the same element repeatedly, and will block until the next element becomes available. + + The type of the elements in the source sequence. + Source observable sequence. + The enumerable sequence that returns the last sampled element upon each iteration and subsequently blocks until the next element in the observable source sequence becomes available. + + + + Returns an enumerable sequence whose enumeration returns the most recently observed element in the source observable sequence, using the specified initial value in case no element has been sampled yet. + Enumerators on the resulting sequence never block and can produce the same element repeatedly. + + The type of the elements in the source sequence. + Source observable sequence. + Initial value that will be yielded by the enumerable sequence if no element has been sampled yet. + The enumerable sequence that returns the last sampled element upon each iteration. + is null. + + + + Returns an enumerable sequence whose enumeration blocks until the next element in the source observable sequence becomes available. + Enumerators on the resulting sequence will block until the next element becomes available. + + The type of the elements in the source sequence. + Source observable sequence. + The enumerable sequence that blocks upon each iteration until the next element in the observable source sequence becomes available. + is null. + + + + Returns the only element of an observable sequence, and throws an exception if there is not exactly one element in the observable sequence. + + The type of the elements in the source sequence. + Source observable sequence. + The single element in the observable sequence. + is null. + The source sequence contains more than one element. -or- The source sequence is empty. + + + + + Returns the only element of an observable sequence that satisfies the condition in the predicate, and throws an exception if there is not exactly one element matching the predicate in the observable sequence. + + The type of the elements in the source sequence. + Source observable sequence. + A predicate function to evaluate for elements in the source sequence. + The single element in the observable sequence that satisfies the condition in the predicate. + or is null. + No element satisfies the condition in the predicate. -or- More than one element satisfies the condition in the predicate. -or- The source sequence is empty. + + + + + Returns the only element of an observable sequence, or a default value if the observable sequence is empty; this method throws an exception if there is more than one element in the observable sequence. + + The type of the elements in the source sequence. + Source observable sequence. + The single element in the observable sequence, or a default value if no such element exists. + is null. + The source sequence contains more than one element. + + + + + Returns the only element of an observable sequence that satisfies the condition in the predicate, or a default value if no such element exists; this method throws an exception if there is more than one element matching the predicate in the observable sequence. + + The type of the elements in the source sequence. + Source observable sequence. + A predicate function to evaluate for elements in the source sequence. + The single element in the observable sequence that satisfies the condition in the predicate, or a default value if no such element exists. + or is null. + The sequence contains more than one element that satisfies the condition in the predicate. + + + + + Waits for the observable sequence to complete and returns the last element of the sequence. + If the sequence terminates with an OnError notification, the exception is thrown. + + The type of the elements in the source sequence. + Source observable sequence. + The last element in the observable sequence. + is null. + The source sequence is empty. + + + + Wraps the source sequence in order to run its observer callbacks on the specified scheduler. + + The type of the elements in the source sequence. + Source sequence. + Scheduler to notify observers on. + The source sequence whose observations happen on the specified scheduler. + or is null. + + This only invokes observer callbacks on a scheduler. In case the subscription and/or unsubscription actions have side-effects + that require to be run on a scheduler, use . + + + + + Wraps the source sequence in order to run its observer callbacks on the specified synchronization context. + + The type of the elements in the source sequence. + Source sequence. + Synchronization context to notify observers on. + The source sequence whose observations happen on the specified synchronization context. + or is null. + + This only invokes observer callbacks on a synchronization context. In case the subscription and/or unsubscription actions have side-effects + that require to be run on a synchronization context, use . + + + + + Wraps the source sequence in order to run its subscription and unsubscription logic on the specified scheduler. This operation is not commonly used; + see the remarks section for more information on the distinction between SubscribeOn and ObserveOn. + + The type of the elements in the source sequence. + Source sequence. + Scheduler to perform subscription and unsubscription actions on. + The source sequence whose subscriptions and unsubscriptions happen on the specified scheduler. + or is null. + + This only performs the side-effects of subscription and unsubscription on the specified scheduler. In order to invoke observer + callbacks on a scheduler, use . + + + + + Wraps the source sequence in order to run its subscription and unsubscription logic on the specified synchronization context. This operation is not commonly used; + see the remarks section for more information on the distinction between SubscribeOn and ObserveOn. + + The type of the elements in the source sequence. + Source sequence. + Synchronization context to perform subscription and unsubscription actions on. + The source sequence whose subscriptions and unsubscriptions happen on the specified synchronization context. + or is null. + + This only performs the side-effects of subscription and unsubscription on the specified synchronization context. In order to invoke observer + callbacks on a synchronization context, use . + + + + + Synchronizes the observable sequence such that observer notifications cannot be delivered concurrently. + This overload is useful to "fix" an observable sequence that exhibits concurrent callbacks on individual observers, which is invalid behavior for the query processor. + + The type of the elements in the source sequence. + Source sequence. + The source sequence whose outgoing calls to observers are synchronized. + is null. + + It's invalid behavior - according to the observer grammar - for a sequence to exhibit concurrent callbacks on a given observer. + This operator can be used to "fix" a source that doesn't conform to this rule. + + + + + Synchronizes the observable sequence such that observer notifications cannot be delivered concurrently, using the specified gate object. + This overload is useful when writing n-ary query operators, in order to prevent concurrent callbacks from different sources by synchronizing on a common gate object. + + The type of the elements in the source sequence. + Source sequence. + Gate object to synchronize each observer call on. + The source sequence whose outgoing calls to observers are synchronized on the given gate object. + or is null. + + + + Subscribes an observer to an enumerable sequence. + + The type of the elements in the source sequence. + Enumerable sequence to subscribe to. + Observer that will receive notifications from the enumerable sequence. + Disposable object that can be used to unsubscribe the observer from the enumerable + or is null. + + + + Subscribes an observer to an enumerable sequence, using the specified scheduler to run the enumeration loop. + + The type of the elements in the source sequence. + Enumerable sequence to subscribe to. + Observer that will receive notifications from the enumerable sequence. + Scheduler to perform the enumeration on. + Disposable object that can be used to unsubscribe the observer from the enumerable + or or is null. + + + + Converts an observable sequence to an enumerable sequence. + + The type of the elements in the source sequence. + An observable sequence to convert to an enumerable sequence. + The enumerable sequence containing the elements in the observable sequence. + is null. + + + + Exposes an observable sequence as an object with an -based .NET event. + + Observable source sequence. + The event source object. + is null. + + + + Exposes an observable sequence as an object with an -based .NET event. + + The type of the elements in the source sequence. + Observable source sequence. + The event source object. + is null. + + + + Exposes an observable sequence as an object with a .NET event, conforming to the standard .NET event pattern. + + The type of the event data generated by the event. + Observable source sequence. + The event source object. + is null. + + + + Converts an enumerable sequence to an observable sequence. + + The type of the elements in the source sequence. + Enumerable sequence to convert to an observable sequence. + The observable sequence whose elements are pulled from the given enumerable sequence. + is null. + + + + Converts an enumerable sequence to an observable sequence, using the specified scheduler to run the enumeration loop. + + The type of the elements in the source sequence. + Enumerable sequence to convert to an observable sequence. + Scheduler to run the enumeration of the input sequence on. + The observable sequence whose elements are pulled from the given enumerable sequence. + or is null. + + + + Creates an observable sequence from a specified Subscribe method implementation. + + The type of the elements in the produced sequence. + Implementation of the resulting observable sequence's Subscribe method. + The observable sequence with the specified implementation for the Subscribe method. + is null. + + Use of this operator is preferred over manual implementation of the interface. In case + you need a type implementing rather than an anonymous implementation, consider using + the abstract base class. + + + + + Creates an observable sequence from a specified Subscribe method implementation. + + The type of the elements in the produced sequence. + Implementation of the resulting observable sequence's Subscribe method, returning an Action delegate that will be wrapped in an IDisposable. + The observable sequence with the specified implementation for the Subscribe method. + is null. + + Use of this operator is preferred over manual implementation of the interface. In case + you need a type implementing rather than an anonymous implementation, consider using + the abstract base class. + + + + + Creates an observable sequence from a specified cancellable asynchronous Subscribe method. + The CancellationToken passed to the asynchronous Subscribe method is tied to the returned disposable subscription, allowing best-effort cancellation. + + The type of the elements in the produced sequence. + Asynchronous method used to produce elements. + The observable sequence surfacing the elements produced by the asynchronous method. + is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + When a subscription to the resulting sequence is disposed, the CancellationToken that was fed to the asynchronous subscribe function will be signaled. + + + + Creates an observable sequence from a specified asynchronous Subscribe method. + + The type of the elements in the produced sequence. + Asynchronous method used to produce elements. + The observable sequence surfacing the elements produced by the asynchronous method. + is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + + + + Creates an observable sequence from a specified cancellable asynchronous Subscribe method. + The CancellationToken passed to the asynchronous Subscribe method is tied to the returned disposable subscription, allowing best-effort cancellation. + + The type of the elements in the produced sequence. + Asynchronous method used to implement the resulting sequence's Subscribe method. + The observable sequence with the specified implementation for the Subscribe method. + is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + When a subscription to the resulting sequence is disposed, the CancellationToken that was fed to the asynchronous subscribe function will be signaled. + + + + Creates an observable sequence from a specified asynchronous Subscribe method. + + The type of the elements in the produced sequence. + Asynchronous method used to implement the resulting sequence's Subscribe method. + The observable sequence with the specified implementation for the Subscribe method. + is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + + + + Creates an observable sequence from a specified cancellable asynchronous Subscribe method. + The CancellationToken passed to the asynchronous Subscribe method is tied to the returned disposable subscription, allowing best-effort cancellation. + + The type of the elements in the produced sequence. + Asynchronous method used to implement the resulting sequence's Subscribe method, returning an Action delegate that will be wrapped in an IDisposable. + The observable sequence with the specified implementation for the Subscribe method. + is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + When a subscription to the resulting sequence is disposed, the CancellationToken that was fed to the asynchronous subscribe function will be signaled. + + + + Creates an observable sequence from a specified asynchronous Subscribe method. + + The type of the elements in the produced sequence. + Asynchronous method used to implement the resulting sequence's Subscribe method, returning an Action delegate that will be wrapped in an IDisposable. + The observable sequence with the specified implementation for the Subscribe method. + is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + + + + Returns an observable sequence that invokes the specified factory function whenever a new observer subscribes. + + The type of the elements in the sequence returned by the factory function, and in the resulting sequence. + Observable factory function to invoke for each observer that subscribes to the resulting sequence. + An observable sequence whose observers trigger an invocation of the given observable factory function. + is null. + + + + Returns an observable sequence that starts the specified asynchronous factory function whenever a new observer subscribes. + + The type of the elements in the sequence returned by the factory function, and in the resulting sequence. + Asynchronous factory function to start for each observer that subscribes to the resulting sequence. + An observable sequence whose observers trigger the given asynchronous observable factory function to be started. + is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + + + + Returns an observable sequence that starts the specified cancellable asynchronous factory function whenever a new observer subscribes. + The CancellationToken passed to the asynchronous factory function is tied to the returned disposable subscription, allowing best-effort cancellation. + + The type of the elements in the sequence returned by the factory function, and in the resulting sequence. + Asynchronous factory function to start for each observer that subscribes to the resulting sequence. + An observable sequence whose observers trigger the given asynchronous observable factory function to be started. + is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + When a subscription to the resulting sequence is disposed, the CancellationToken that was fed to the asynchronous observable factory function will be signaled. + + + + Returns an empty observable sequence. + + The type used for the type parameter of the resulting sequence. + An observable sequence with no elements. + + + + Returns an empty observable sequence. + + The type used for the type parameter of the resulting sequence. + Object solely used to infer the type of the type parameter. This parameter is typically used when creating a sequence of anonymously typed elements. + An observable sequence with no elements. + + + + Returns an empty observable sequence, using the specified scheduler to send out the single OnCompleted message. + + The type used for the type parameter of the resulting sequence. + Scheduler to send the termination call on. + An observable sequence with no elements. + is null. + + + + Returns an empty observable sequence, using the specified scheduler to send out the single OnCompleted message. + + The type used for the type parameter of the resulting sequence. + Scheduler to send the termination call on. + Object solely used to infer the type of the type parameter. This parameter is typically used when creating a sequence of anonymously typed elements. + An observable sequence with no elements. + is null. + + + + Generates an observable sequence by running a state-driven loop producing the sequence's elements. + + The type of the state used in the generator loop. + The type of the elements in the produced sequence. + Initial state. + Condition to terminate generation (upon returning false). + Iteration step function. + Selector function for results produced in the sequence. + The generated sequence. + or or is null. + + + + Generates an observable sequence by running a state-driven loop producing the sequence's elements, using the specified scheduler to send out observer messages. + + The type of the state used in the generator loop. + The type of the elements in the produced sequence. + Initial state. + Condition to terminate generation (upon returning false). + Iteration step function. + Selector function for results produced in the sequence. + Scheduler on which to run the generator loop. + The generated sequence. + or or or is null. + + + + Returns a non-terminating observable sequence, which can be used to denote an infinite duration (e.g. when using reactive joins). + + The type used for the type parameter of the resulting sequence. + An observable sequence whose observers will never get called. + + + + Returns a non-terminating observable sequence, which can be used to denote an infinite duration (e.g. when using reactive joins). + + The type used for the type parameter of the resulting sequence. + Object solely used to infer the type of the type parameter. This parameter is typically used when creating a sequence of anonymously typed elements. + An observable sequence whose observers will never get called. + + + + Generates an observable sequence of integral numbers within a specified range. + + The value of the first integer in the sequence. + The number of sequential integers to generate. + An observable sequence that contains a range of sequential integral numbers. + is less than zero. -or- + - 1 is larger than . + + + + Generates an observable sequence of integral numbers within a specified range, using the specified scheduler to send out observer messages. + + The value of the first integer in the sequence. + The number of sequential integers to generate. + Scheduler to run the generator loop on. + An observable sequence that contains a range of sequential integral numbers. + is less than zero. -or- + - 1 is larger than . + is null. + + + + Generates an observable sequence that repeats the given element infinitely. + + The type of the element that will be repeated in the produced sequence. + Element to repeat. + An observable sequence that repeats the given element infinitely. + + + + Generates an observable sequence that repeats the given element infinitely, using the specified scheduler to send out observer messages. + + The type of the element that will be repeated in the produced sequence. + Element to repeat. + Scheduler to run the producer loop on. + An observable sequence that repeats the given element infinitely. + is null. + + + + Generates an observable sequence that repeats the given element the specified number of times. + + The type of the element that will be repeated in the produced sequence. + Element to repeat. + Number of times to repeat the element. + An observable sequence that repeats the given element the specified number of times. + is less than zero. + + + + Generates an observable sequence that repeats the given element the specified number of times, using the specified scheduler to send out observer messages. + + The type of the element that will be repeated in the produced sequence. + Element to repeat. + Number of times to repeat the element. + Scheduler to run the producer loop on. + An observable sequence that repeats the given element the specified number of times. + is less than zero. + is null. + + + + Returns an observable sequence that contains a single element. + + The type of the element that will be returned in the produced sequence. + Single element in the resulting observable sequence. + An observable sequence containing the single specified element. + + + + Returns an observable sequence that contains a single element, using the specified scheduler to send out observer messages. + + The type of the element that will be returned in the produced sequence. + Single element in the resulting observable sequence. + Scheduler to send the single element on. + An observable sequence containing the single specified element. + is null. + + + + Returns an observable sequence that terminates with an exception. + + The type used for the type parameter of the resulting sequence. + Exception object used for the sequence's termination. + The observable sequence that terminates exceptionally with the specified exception object. + is null. + + + + Returns an observable sequence that terminates with an exception. + + The type used for the type parameter of the resulting sequence. + Exception object used for the sequence's termination. + Object solely used to infer the type of the type parameter. This parameter is typically used when creating a sequence of anonymously typed elements. + The observable sequence that terminates exceptionally with the specified exception object. + is null. + + + + Returns an observable sequence that terminates with an exception, using the specified scheduler to send out the single OnError message. + + The type used for the type parameter of the resulting sequence. + Exception object used for the sequence's termination. + Scheduler to send the exceptional termination call on. + The observable sequence that terminates exceptionally with the specified exception object. + or is null. + + + + Returns an observable sequence that terminates with an exception, using the specified scheduler to send out the single OnError message. + + The type used for the type parameter of the resulting sequence. + Exception object used for the sequence's termination. + Scheduler to send the exceptional termination call on. + Object solely used to infer the type of the type parameter. This parameter is typically used when creating a sequence of anonymously typed elements. + The observable sequence that terminates exceptionally with the specified exception object. + or is null. + + + + Constructs an observable sequence that depends on a resource object, whose lifetime is tied to the resulting observable sequence's lifetime. + + The type of the elements in the produced sequence. + The type of the resource used during the generation of the resulting sequence. Needs to implement . + Factory function to obtain a resource object. + Factory function to obtain an observable sequence that depends on the obtained resource. + An observable sequence whose lifetime controls the lifetime of the dependent resource object. + or is null. + + + + Constructs an observable sequence that depends on a resource object, whose lifetime is tied to the resulting observable sequence's lifetime. The resource is obtained and used through asynchronous methods. + The CancellationToken passed to the asynchronous methods is tied to the returned disposable subscription, allowing best-effort cancellation at any stage of the resource acquisition or usage. + + The type of the elements in the produced sequence. + The type of the resource used during the generation of the resulting sequence. Needs to implement . + Asynchronous factory function to obtain a resource object. + Asynchronous factory function to obtain an observable sequence that depends on the obtained resource. + An observable sequence whose lifetime controls the lifetime of the dependent resource object. + or is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + When a subscription to the resulting sequence is disposed, the CancellationToken that was fed to the asynchronous resource factory and observable factory functions will be signaled. + + + + Converts a .NET event, conforming to the standard .NET event pattern based on , to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on , to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on a supplied event delegate type, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + The delegate type of the event to be converted. + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on a supplied event delegate type, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + The delegate type of the event to be converted. + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on , to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + The delegate type of the event to be converted. + The type of the event data generated by the event. + A function used to convert the given event handler to a delegate compatible with the underlying .NET event. The resulting delegate is used in calls to the addHandler and removeHandler action parameters. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on , to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + The delegate type of the event to be converted. + The type of the event data generated by the event. + A function used to convert the given event handler to a delegate compatible with the underlying .NET event. The resulting delegate is used in calls to the addHandler and removeHandler action parameters. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on a supplied event delegate type with a strongly typed sender parameter, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + The delegate type of the event to be converted. + The type of the sender that raises the event. + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on a supplied event delegate type with a strongly typed sender parameter, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + The delegate type of the event to be converted. + The type of the sender that raises the event. + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on , to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on , to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts an instance .NET event, conforming to the standard .NET event pattern with an parameter, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the target object type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Object instance that exposes the event to convert. + Name of the event to convert. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts an instance .NET event, conforming to the standard .NET event pattern with an parameter, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the target object type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Object instance that exposes the event to convert. + Name of the event to convert. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts an instance .NET event, conforming to the standard .NET event pattern with strongly typed event arguments, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the target object type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + The type of the event data generated by the event. + Object instance that exposes the event to convert. + Name of the event to convert. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. -or- The event's second argument type is not assignable to TEventArgs. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts an instance .NET event, conforming to the standard .NET event pattern with strongly typed event arguments, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the target object type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + The type of the event data generated by the event. + Object instance that exposes the event to convert. + Name of the event to convert. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. -or- The event's second argument type is not assignable to TEventArgs. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts an instance .NET event, conforming to the standard .NET event pattern with a strongly typed sender and strongly typed event arguments, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the target object type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + The type of the sender that raises the event. + The type of the event data generated by the event. + Object instance that exposes the event to convert. + Name of the event to convert. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. -or- The event's first argument type is not assignable to TSender. -or- The event's second argument type is not assignable to TEventArgs. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts an instance .NET event, conforming to the standard .NET event pattern with a strongly typed sender and strongly typed event arguments, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the target object type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + The type of the sender that raises the event. + The type of the event data generated by the event. + Object instance that exposes the event to convert. + Name of the event to convert. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. -or- The event's first argument type is not assignable to TSender. -or- The event's second argument type is not assignable to TEventArgs. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a static .NET event, conforming to the standard .NET event pattern with an parameter, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the specified type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Type that exposes the static event to convert. + Name of the event to convert. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a static .NET event, conforming to the standard .NET event pattern with an parameter, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the specified type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Type that exposes the static event to convert. + Name of the event to convert. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a static .NET event, conforming to the standard .NET event pattern with strongly typed event arguments, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the specified type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + The type of the event data generated by the event. + Type that exposes the static event to convert. + Name of the event to convert. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. -or- The event's second argument type is not assignable to TEventArgs. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a static .NET event, conforming to the standard .NET event pattern with strongly typed event arguments, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the specified type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + The type of the event data generated by the event. + Type that exposes the static event to convert. + Name of the event to convert. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. -or- The event's second argument type is not assignable to TEventArgs. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a static .NET event, conforming to the standard .NET event pattern with a strongly typed sender and strongly typed event arguments, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the specified type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + The type of the sender that raises the event. + The type of the event data generated by the event. + Type that exposes the static event to convert. + Name of the event to convert. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. -or- The event's first argument type is not assignable to TSender. -or- The event's second argument type is not assignable to TEventArgs. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a static .NET event, conforming to the standard .NET event pattern with a strongly typed sender and strongly typed event arguments, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the specified type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + The type of the sender that raises the event. + The type of the event data generated by the event. + Type that exposes the static event to convert. + Name of the event to convert. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + or or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. -or- The event's first argument type is not assignable to TSender. -or- The event's second argument type is not assignable to TEventArgs. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a .NET event to an observable sequence, using a conversion function to obtain the event delegate. Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events conforming to the standard .NET event pattern, use any of the FromEventPattern overloads instead. + + The delegate type of the event to be converted. + The type of the event data generated by the event. + A function used to convert the given event handler to a delegate compatible with the underlying .NET event. The resulting delegate is used in calls to the addHandler and removeHandler action parameters. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains the event argument objects passed to the invocations of the underlying .NET event. + or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEvent, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEvent, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEvent calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a .NET event to an observable sequence, using a conversion function to obtain the event delegate. Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events conforming to the standard .NET event pattern, use any of the FromEventPattern overloads instead. + + The delegate type of the event to be converted. + The type of the event data generated by the event. + A function used to convert the given event handler to a delegate compatible with the underlying .NET event. The resulting delegate is used in calls to the addHandler and removeHandler action parameters. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains the event argument objects passed to the invocations of the underlying .NET event. + or or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEvent calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEvent that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a .NET event to an observable sequence, using a supplied event delegate type. Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events conforming to the standard .NET event pattern, use any of the FromEventPattern overloads instead. + + The delegate type of the event to be converted. + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains the event argument objects passed to the invocations of the underlying .NET event. + or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEvent, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEvent, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEvent calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a .NET event to an observable sequence, using a supplied event delegate type. Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events conforming to the standard .NET event pattern, use any of the FromEventPattern overloads instead. + + The delegate type of the event to be converted. + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains the event argument objects passed to the invocations of the underlying .NET event. + or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEvent calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEvent that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a generic Action-based .NET event to an observable sequence. Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events conforming to the standard .NET event pattern, use any of the FromEventPattern overloads instead. + + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains the event argument objects passed to the invocations of the underlying .NET event. + or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEvent, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEvent, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEvent calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a generic Action-based .NET event to an observable sequence. Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events conforming to the standard .NET event pattern, use any of the FromEventPattern overloads instead. + + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains the event argument objects passed to the invocations of the underlying .NET event. + or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEvent calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEvent that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts an Action-based .NET event to an observable sequence. Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events conforming to the standard .NET event pattern, use any of the FromEventPattern overloads instead. + + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains the event argument objects passed to the invocations of the underlying .NET event. + or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEvent, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEvent, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEvent calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts an Action-based .NET event to an observable sequence. Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events conforming to the standard .NET event pattern, use any of the FromEventPattern overloads instead. + + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains the event argument objects passed to the invocations of the underlying .NET event. + or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEvent calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEvent that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Invokes an action for each element in the observable sequence, and returns a Task object that will get signaled when the sequence terminates. + + The type of the elements in the source sequence. + Source sequence. + Action to invoke for each element in the observable sequence. + Task that signals the termination of the sequence. + or is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + + + + Invokes an action for each element in the observable sequence, and returns a Task object that will get signaled when the sequence terminates. + The loop can be quit prematurely by setting the specified cancellation token. + + The type of the elements in the source sequence. + Source sequence. + Action to invoke for each element in the observable sequence. + Cancellation token used to stop the loop. + Task that signals the termination of the sequence. + or is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + + + + Invokes an action for each element in the observable sequence, incorporating the element's index, and returns a Task object that will get signaled when the sequence terminates. + + The type of the elements in the source sequence. + Source sequence. + Action to invoke for each element in the observable sequence. + Task that signals the termination of the sequence. + or is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + + + + Invokes an action for each element in the observable sequence, incorporating the element's index, and returns a Task object that will get signaled when the sequence terminates. + The loop can be quit prematurely by setting the specified cancellation token. + + The type of the elements in the source sequence. + Source sequence. + Action to invoke for each element in the observable sequence. + Cancellation token used to stop the loop. + Task that signals the termination of the sequence. + or is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + + + + Uses to determine which source in to return, choosing if no match is found. + + The type of the value returned by the selector function, used to look up the resulting source. + The type of the elements in the result sequence. + Selector function invoked to determine the source to lookup in the dictionary. + Dictionary of sources to select from based on the invocation result. + Default source to select in case no matching source in is found. + The observable sequence retrieved from the dictionary based on the invocation result, or if no match is found. + or or is null. + + + + Uses to determine which source in to return, choosing an empty sequence on the specified scheduler if no match is found. + + The type of the value returned by the selector function, used to look up the resulting source. + The type of the elements in the result sequence. + Selector function invoked to determine the source to lookup in the dictionary. + Dictionary of sources to select from based on the invocation result. + Scheduler to generate an empty sequence on in case no matching source in is found. + The observable sequence retrieved from the dictionary based on the invocation result, or an empty sequence if no match is found. + or or is null. + + + + Uses to determine which source in to return, choosing an empty sequence if no match is found. + + The type of the value returned by the selector function, used to look up the resulting source. + The type of the elements in the result sequence. + Selector function invoked to determine the source to lookup in the dictionary. + Dictionary of sources to select from based on the invocation result. + The observable sequence retrieved from the dictionary based on the invocation result, or an empty sequence if no match is found. + or is null. + + + + Repeats the given as long as the specified holds, where the is evaluated after each repeated completed. + + The type of the elements in the source sequence. + Source to repeat as long as the function evaluates to true. + Condition that will be evaluated upon the completion of an iteration through the , to determine whether repetition of the source is required. + The observable sequence obtained by concatenating the sequence as long as the holds. + or is null. + + + + Concatenates the observable sequences obtained by running the for each element in the given enumerable . + + The type of the elements in the enumerable source sequence. + The type of the elements in the observable result sequence. + Enumerable source for which each element will be mapped onto an observable source that will be concatenated in the result sequence. + Function to select an observable source for each element in the . + The observable sequence obtained by concatenating the sources returned by for each element in the . + or is null. + + + + If the specified evaluates true, select the sequence. Otherwise, select the sequence. + + The type of the elements in the result sequence. + Condition evaluated to decide which sequence to return. + Sequence returned in case evaluates true. + Sequence returned in case evaluates false. + if evaluates true; otherwise. + or or is null. + + + + If the specified evaluates true, select the sequence. Otherwise, return an empty sequence. + + The type of the elements in the result sequence. + Condition evaluated to decide which sequence to return. + Sequence returned in case evaluates true. + if evaluates true; an empty sequence otherwise. + or is null. + + + + If the specified evaluates true, select the sequence. Otherwise, return an empty sequence generated on the specified scheduler. + + The type of the elements in the result sequence. + Condition evaluated to decide which sequence to return. + Sequence returned in case evaluates true. + Scheduler to generate an empty sequence on in case evaluates false. + if evaluates true; an empty sequence otherwise. + or or is null. + + + + Repeats the given as long as the specified holds, where the is evaluated before each repeated is subscribed to. + + The type of the elements in the source sequence. + Source to repeat as long as the function evaluates to true. + Condition that will be evaluated before subscription to the , to determine whether repetition of the source is required. + The observable sequence obtained by concatenating the sequence as long as the holds. + or is null. + + + + Creates a pattern that matches when both observable sequences have an available element. + + The type of the elements in the left sequence. + The type of the elements in the right sequence. + Observable sequence to match with the right sequence. + Observable sequence to match with the left sequence. + Pattern object that matches when both observable sequences have an available element. + or is null. + + + + Matches when the observable sequence has an available element and projects the element by invoking the selector function. + + The type of the elements in the source sequence. + The type of the elements in the result sequence, returned by the selector function. + Observable sequence to apply the selector on. + Selector that will be invoked for elements in the source sequence. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + or is null. + + + + Joins together the results from several patterns. + + The type of the elements in the result sequence, obtained from the specified patterns. + A series of plans created by use of the Then operator on patterns. + An observable sequence with the results from matching several patterns. + is null. + + + + Joins together the results from several patterns. + + The type of the elements in the result sequence, obtained from the specified patterns. + A series of plans created by use of the Then operator on patterns. + An observable sequence with the results form matching several patterns. + is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Fourteenth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the fifteenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Fourteenth observable source. + Fifteenth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or or or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the fifteenth source sequence. + The type of the elements in the sixteenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Fourteenth observable source. + Fifteenth observable source. + Sixteenth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or or or or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Propagates the observable sequence that reacts first. + + The type of the elements in the source sequences. + First observable sequence. + Second observable sequence. + An observable sequence that surfaces either of the given sequences, whichever reacted first. + or is null. + + + + Propagates the observable sequence that reacts first. + + The type of the elements in the source sequences. + Observable sources competing to react first. + An observable sequence that surfaces any of the given sequences, whichever reacted first. + is null. + + + + Propagates the observable sequence that reacts first. + + The type of the elements in the source sequences. + Observable sources competing to react first. + An observable sequence that surfaces any of the given sequences, whichever reacted first. + is null. + + + + Projects each element of an observable sequence into consecutive non-overlapping buffers. + + The type of the elements in the source sequence, and in the lists in the result sequence. + The type of the elements in the sequences indicating buffer closing events. + Source sequence to produce buffers over. + A function invoked to define the boundaries of the produced buffers. A new buffer is started when the previous one is closed. + An observable sequence of buffers. + or is null. + + + + Projects each element of an observable sequence into zero or more buffers. + + The type of the elements in the source sequence, and in the lists in the result sequence. + The type of the elements in the sequence indicating buffer opening events, also passed to the closing selector to obtain a sequence of buffer closing events. + The type of the elements in the sequences indicating buffer closing events. + Source sequence to produce buffers over. + Observable sequence whose elements denote the creation of new buffers. + A function invoked to define the closing of each produced buffer. + An observable sequence of buffers. + or or is null. + + + + Projects each element of an observable sequence into consecutive non-overlapping buffers. + + The type of the elements in the source sequence, and in the lists in the result sequence. + The type of the elements in the sequences indicating buffer boundary events. + Source sequence to produce buffers over. + Sequence of buffer boundary markers. The current buffer is closed and a new buffer is opened upon receiving a boundary marker. + An observable sequence of buffers. + or is null. + + + + Continues an observable sequence that is terminated by an exception of the specified type with the observable sequence produced by the handler. + + The type of the elements in the source sequence and sequences returned by the exception handler function. + The type of the exception to catch and handle. Needs to derive from . + Source sequence. + Exception handler function, producing another observable sequence. + An observable sequence containing the source sequence's elements, followed by the elements produced by the handler's resulting observable sequence in case an exception occurred. + or is null. + + + + Continues an observable sequence that is terminated by an exception with the next observable sequence. + + The type of the elements in the source sequence and handler sequence. + First observable sequence whose exception (if any) is caught. + Second observable sequence used to produce results when an error occurred in the first sequence. + An observable sequence containing the first sequence's elements, followed by the elements of the second sequence in case an exception occurred. + or is null. + + + + Continues an observable sequence that is terminated by an exception with the next observable sequence. + + The type of the elements in the source and handler sequences. + Observable sequences to catch exceptions for. + An observable sequence containing elements from consecutive source sequences until a source sequence terminates successfully. + is null. + + + + Continues an observable sequence that is terminated by an exception with the next observable sequence. + + The type of the elements in the source and handler sequences. + Observable sequences to catch exceptions for. + An observable sequence containing elements from consecutive source sequences until a source sequence terminates successfully. + is null. + + + + Merges two observable sequences into one observable sequence by using the selector function whenever one of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Function to invoke whenever either of the sources produces an element. + An observable sequence containing the result of combining elements of both sources using the specified result selector function. + or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the source sequences. + The type of the elements in the result sequence, returned by the selector function. + Observable sources. + Function to invoke whenever any of the sources produces an element. For efficiency, the input list is reused after the selector returns. Either aggregate or copy the values during the function call. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by emitting a list with the latest source elements whenever any of the observable sequences produces an element. + + The type of the elements in the source sequences, and in the lists in the result sequence. + Observable sources. + An observable sequence containing lists of the latest elements of the sources. + is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by emitting a list with the latest source elements whenever any of the observable sequences produces an element. + + The type of the elements in the source sequences, and in the lists in the result sequence. + Observable sources. + An observable sequence containing lists of the latest elements of the sources. + is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Concatenates the second observable sequence to the first observable sequence upon successful termination of the first. + + The type of the elements in the source sequences. + First observable sequence. + Second observable sequence. + An observable sequence that contains the elements of the first sequence, followed by those of the second the sequence. + or is null. + + + + Concatenates all of the specified observable sequences, as long as the previous observable sequence terminated successfully. + + The type of the elements in the source sequences. + Observable sequences to concatenate. + An observable sequence that contains the elements of each given sequence, in sequential order. + is null. + + + + Concatenates all observable sequences in the given enumerable sequence, as long as the previous observable sequence terminated successfully. + + The type of the elements in the source sequences. + Observable sequences to concatenate. + An observable sequence that contains the elements of each given sequence, in sequential order. + is null. + + + + Concatenates all inner observable sequences, as long as the previous observable sequence terminated successfully. + + The type of the elements in the source sequences. + Observable sequence of inner observable sequences. + An observable sequence that contains the elements of each observed inner sequence, in sequential order. + is null. + + + + Concatenates all task results, as long as the previous task terminated successfully. + + The type of the results produced by the tasks. + Observable sequence of tasks. + An observable sequence that contains the results of each task, in sequential order. + is null. + If the tasks support cancellation, consider manual conversion of the tasks using , followed by a concatenation operation using . + + + + Merges elements from all inner observable sequences into a single observable sequence. + + The type of the elements in the source sequences. + Observable sequence of inner observable sequences. + The observable sequence that merges the elements of the inner sequences. + is null. + + + + Merges results from all source tasks into a single observable sequence. + + The type of the results produced by the source tasks. + Observable sequence of tasks. + The observable sequence that merges the results of the source tasks. + is null. + If the tasks support cancellation, consider manual conversion of the tasks using , followed by a merge operation using . + + + + Merges elements from all inner observable sequences into a single observable sequence, limiting the number of concurrent subscriptions to inner sequences. + + The type of the elements in the source sequences. + Observable sequence of inner observable sequences. + Maximum number of inner observable sequences being subscribed to concurrently. + The observable sequence that merges the elements of the inner sequences. + is null. + is less than or equal to zero. + + + + Merges elements from all observable sequences in the given enumerable sequence into a single observable sequence, limiting the number of concurrent subscriptions to inner sequences. + + The type of the elements in the source sequences. + Enumerable sequence of observable sequences. + Maximum number of observable sequences being subscribed to concurrently. + The observable sequence that merges the elements of the observable sequences. + is null. + is less than or equal to zero. + + + + Merges elements from all observable sequences in the given enumerable sequence into a single observable sequence, limiting the number of concurrent subscriptions to inner sequences, and using the specified scheduler for enumeration of and subscription to the sources. + + The type of the elements in the source sequences. + Enumerable sequence of observable sequences. + Maximum number of observable sequences being subscribed to concurrently. + Scheduler to run the enumeration of the sequence of sources on. + The observable sequence that merges the elements of the observable sequences. + or is null. + is less than or equal to zero. + + + + Merges elements from two observable sequences into a single observable sequence. + + The type of the elements in the source sequences. + First observable sequence. + Second observable sequence. + The observable sequence that merges the elements of the given sequences. + or is null. + + + + Merges elements from two observable sequences into a single observable sequence, using the specified scheduler for enumeration of and subscription to the sources. + + The type of the elements in the source sequences. + First observable sequence. + Second observable sequence. + Scheduler used to introduce concurrency for making subscriptions to the given sequences. + The observable sequence that merges the elements of the given sequences. + or or is null. + + + + Merges elements from all of the specified observable sequences into a single observable sequence. + + The type of the elements in the source sequences. + Observable sequences. + The observable sequence that merges the elements of the observable sequences. + is null. + + + + Merges elements from all of the specified observable sequences into a single observable sequence, using the specified scheduler for enumeration of and subscription to the sources. + + The type of the elements in the source sequences. + Observable sequences. + Scheduler to run the enumeration of the sequence of sources on. + The observable sequence that merges the elements of the observable sequences. + or is null. + + + + Merges elements from all observable sequences in the given enumerable sequence into a single observable sequence. + + The type of the elements in the source sequences. + Enumerable sequence of observable sequences. + The observable sequence that merges the elements of the observable sequences. + is null. + + + + Merges elements from all observable sequences in the given enumerable sequence into a single observable sequence, using the specified scheduler for enumeration of and subscription to the sources. + + The type of the elements in the source sequences. + Enumerable sequence of observable sequences. + Scheduler to run the enumeration of the sequence of sources on. + The observable sequence that merges the elements of the observable sequences. + or is null. + + + + Concatenates the second observable sequence to the first observable sequence upon successful or exceptional termination of the first. + + The type of the elements in the source sequences. + First observable sequence whose exception (if any) is caught. + Second observable sequence used to produce results after the first sequence terminates. + An observable sequence that concatenates the first and second sequence, even if the first sequence terminates exceptionally. + or is null. + + + + Concatenates all of the specified observable sequences, even if the previous observable sequence terminated exceptionally. + + The type of the elements in the source sequences. + Observable sequences to concatenate. + An observable sequence that concatenates the source sequences, even if a sequence terminates exceptionally. + is null. + + + + Concatenates all observable sequences in the given enumerable sequence, even if the previous observable sequence terminated exceptionally. + + The type of the elements in the source sequences. + Observable sequences to concatenate. + An observable sequence that concatenates the source sequences, even if a sequence terminates exceptionally. + is null. + + + + Returns the elements from the source observable sequence only after the other observable sequence produces an element. + Starting from Rx.NET 4.0, this will subscribe to before subscribing to + so in case emits an element right away, elements from are not missed. + + The type of the elements in the source sequence. + The type of the elements in the other sequence that indicates the end of skip behavior. + Source sequence to propagate elements for. + Observable sequence that triggers propagation of elements of the source sequence. + An observable sequence containing the elements of the source sequence starting from the point the other sequence triggered propagation. + or is null. + + + + Transforms an observable sequence of observable sequences into an observable sequence + producing values only from the most recent observable sequence. + Each time a new inner observable sequence is received, unsubscribe from the + previous inner observable sequence. + + The type of the elements in the source sequences. + Observable sequence of inner observable sequences. + The observable sequence that at any point in time produces the elements of the most recent inner observable sequence that has been received. + is null. + + + + Transforms an observable sequence of tasks into an observable sequence + producing values only from the most recent observable sequence. + Each time a new task is received, the previous task's result is ignored. + + The type of the results produced by the source tasks. + Observable sequence of tasks. + The observable sequence that at any point in time produces the result of the most recent task that has been received. + is null. + If the tasks support cancellation, consider manual conversion of the tasks using , followed by a switch operation using . + + + + Returns the elements from the source observable sequence until the other observable sequence produces an element. + + The type of the elements in the source sequence. + The type of the elements in the other sequence that indicates the end of take behavior. + Source sequence to propagate elements for. + Observable sequence that terminates propagation of elements of the source sequence. + An observable sequence containing the elements of the source sequence up to the point the other sequence interrupted further propagation. + or is null. + + + + Relays elements from the source observable sequence and calls the predicate after an + emission to check if the sequence should stop after that specific item. + + The type of the elements in the source and result sequences. + The source sequence to relay elements of. + Called after each upstream item has been emitted with + that upstream item and should return true to indicate the sequence should + complete. + The observable sequence with the source elements until the stop predicate returns true. + + The following sequence will stop after the value 5 has been encountered: + + Observable.Range(1, 10) + .TakeUntil(item => item == 5) + .Subscribe(Console.WriteLine); + + + If or is null. + + + + Projects each element of an observable sequence into consecutive non-overlapping windows. + + The type of the elements in the source sequence, and in the windows in the result sequence. + The type of the elements in the sequences indicating window closing events. + Source sequence to produce windows over. + A function invoked to define the boundaries of the produced windows. A new window is started when the previous one is closed. + An observable sequence of windows. + or is null. + + + + Projects each element of an observable sequence into zero or more windows. + + The type of the elements in the source sequence, and in the windows in the result sequence. + The type of the elements in the sequence indicating window opening events, also passed to the closing selector to obtain a sequence of window closing events. + The type of the elements in the sequences indicating window closing events. + Source sequence to produce windows over. + Observable sequence whose elements denote the creation of new windows. + A function invoked to define the closing of each produced window. + An observable sequence of windows. + or or is null. + + + + Projects each element of an observable sequence into consecutive non-overlapping windows. + + The type of the elements in the source sequence, and in the windows in the result sequence. + The type of the elements in the sequences indicating window boundary events. + Source sequence to produce windows over. + Sequence of window boundary markers. The current window is closed and a new window is opened upon receiving a boundary marker. + An observable sequence of windows. + or is null. + + + + Merges two observable sequences into one observable sequence by combining each element from the first source with the latest element from the second source, if any. + Starting from Rx.NET 4.0, this will subscribe to before subscribing to to have a latest element readily available + in case emits an element right away. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Function to invoke for each element from the first source combined with the latest element from the second source, if any. + An observable sequence containing the result of combining each element of the first source with the latest element from the second source, if any, using the specified result selector function. + or or is null. + + + + Merges two observable sequences into one observable sequence by combining their elements in a pairwise fashion. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Function to invoke for each consecutive pair of elements from the first and second source. + An observable sequence containing the result of pairwise combining the elements of the first and second source using the specified result selector function. + or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the source sequences. + The type of the elements in the result sequence, returned by the selector function. + Observable sources. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or is null. + + + + Merges the specified observable sequences into one observable sequence by emitting a list with the elements of the observable sequences at corresponding indexes. + + The type of the elements in the source sequences, and in the lists in the result sequence. + Observable sources. + An observable sequence containing lists of elements at corresponding indexes. + is null. + + + + Merges the specified observable sequences into one observable sequence by emitting a list with the elements of the observable sequences at corresponding indexes. + + The type of the elements in the source sequences, and in the lists in the result sequence. + Observable sources. + An observable sequence containing lists of elements at corresponding indexes. + is null. + + + + Merges an observable sequence and an enumerable sequence into one observable sequence by using the selector function. + + The type of the elements in the first observable source sequence. + The type of the elements in the second enumerable source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second enumerable source. + Function to invoke for each consecutive pair of elements from the first and second source. + An observable sequence containing the result of pairwise combining the elements of the first and second source using the specified result selector function. + or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Fourteenth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the fifteenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Fourteenth observable source. + Fifteenth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the fifteenth source sequence. + The type of the elements in the sixteenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Fourteenth observable source. + Fifteenth observable source. + Sixteenth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + or or or or or or or or or or or or or or or or is null. + + + + Append a value to an observable sequence. + + The type of the elements in the source sequence. + Source sequence to append the value to. + Value to append to the specified sequence. + The source sequence appended with the specified value. + is null. + + + + Append a value to an observable sequence. + + The type of the elements in the source sequence. + Source sequence to append the value to. + Value to append to the specified sequence. + Scheduler to emit the append values on. + The source sequence appended with the specified value. + is null. + + + + Hides the identity of an observable sequence. + + The type of the elements in the source sequence. + An observable sequence whose identity to hide. + An observable sequence that hides the identity of the source sequence. + is null. + + + + Projects each element of an observable sequence into consecutive non-overlapping buffers which are produced based on element count information. + + The type of the elements in the source sequence, and in the lists in the result sequence. + Source sequence to produce buffers over. + Length of each buffer. + An observable sequence of buffers. + is null. + is less than or equal to zero. + + + + Projects each element of an observable sequence into zero or more buffers which are produced based on element count information. + + The type of the elements in the source sequence, and in the lists in the result sequence. + Source sequence to produce buffers over. + Length of each buffer. + Number of elements to skip between creation of consecutive buffers. + An observable sequence of buffers. + is null. + or is less than or equal to zero. + + + + Dematerializes the explicit notification values of an observable sequence as implicit notifications. + + The type of the elements materialized in the source sequence notification objects. + An observable sequence containing explicit notification values which have to be turned into implicit notifications. + An observable sequence exhibiting the behavior corresponding to the source sequence's notification values. + is null. + + + + Returns an observable sequence that contains only distinct contiguous elements. + + The type of the elements in the source sequence. + An observable sequence to retain distinct contiguous elements for. + An observable sequence only containing the distinct contiguous elements from the source sequence. + is null. + + + + Returns an observable sequence that contains only distinct contiguous elements according to the comparer. + + The type of the elements in the source sequence. + An observable sequence to retain distinct contiguous elements for. + Equality comparer for source elements. + An observable sequence only containing the distinct contiguous elements from the source sequence. + or is null. + + + + Returns an observable sequence that contains only distinct contiguous elements according to the keySelector. + + The type of the elements in the source sequence. + The type of the discriminator key computed for each element in the source sequence. + An observable sequence to retain distinct contiguous elements for, based on a computed key value. + A function to compute the comparison key for each element. + An observable sequence only containing the distinct contiguous elements, based on a computed key value, from the source sequence. + or is null. + + + + Returns an observable sequence that contains only distinct contiguous elements according to the keySelector and the comparer. + + The type of the elements in the source sequence. + The type of the discriminator key computed for each element in the source sequence. + An observable sequence to retain distinct contiguous elements for, based on a computed key value. + A function to compute the comparison key for each element. + Equality comparer for computed key values. + An observable sequence only containing the distinct contiguous elements, based on a computed key value, from the source sequence. + or or is null. + + + + Invokes an action for each element in the observable sequence, and propagates all observer messages through the result sequence. + This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + + The type of the elements in the source sequence. + Source sequence. + Action to invoke for each element in the observable sequence. + The source sequence with the side-effecting behavior applied. + or is null. + + + + Invokes an action for each element in the observable sequence and invokes an action upon graceful termination of the observable sequence. + This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + + The type of the elements in the source sequence. + Source sequence. + Action to invoke for each element in the observable sequence. + Action to invoke upon graceful termination of the observable sequence. + The source sequence with the side-effecting behavior applied. + or or is null. + + + + Invokes an action for each element in the observable sequence and invokes an action upon exceptional termination of the observable sequence. + This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + + The type of the elements in the source sequence. + Source sequence. + Action to invoke for each element in the observable sequence. + Action to invoke upon exceptional termination of the observable sequence. + The source sequence with the side-effecting behavior applied. + or or is null. + + + + Invokes an action for each element in the observable sequence and invokes an action upon graceful or exceptional termination of the observable sequence. + This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + + The type of the elements in the source sequence. + Source sequence. + Action to invoke for each element in the observable sequence. + Action to invoke upon exceptional termination of the observable sequence. + Action to invoke upon graceful termination of the observable sequence. + The source sequence with the side-effecting behavior applied. + or or or is null. + + + + Invokes the observer's methods for each message in the source sequence. + This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + + The type of the elements in the source sequence. + Source sequence. + Observer whose methods to invoke as part of the source sequence's observation. + The source sequence with the side-effecting behavior applied. + or is null. + + + + Invokes a specified action after the source observable sequence terminates gracefully or exceptionally. + + The type of the elements in the source sequence. + Source sequence. + Action to invoke after the source observable sequence terminates. + Source sequence with the action-invoking termination behavior applied. + or is null. + + + + Ignores all elements in an observable sequence leaving only the termination messages. + + The type of the elements in the source sequence. + Source sequence. + An empty observable sequence that signals termination, successful or exceptional, of the source sequence. + is null. + + + + Materializes the implicit notifications of an observable sequence as explicit notification values. + + The type of the elements in the source sequence. + An observable sequence to get notification values for. + An observable sequence containing the materialized notification values from the source sequence. + is null. + + + + Prepend a value to an observable sequence. + + The type of the elements in the source sequence. + Source sequence to prepend the value to. + Value to prepend to the specified sequence. + The source sequence prepended with the specified value. + is null. + + + + Prepend a value to an observable sequence. + + The type of the elements in the source sequence. + Source sequence to prepend the value to. + Value to prepend to the specified sequence. + Scheduler to emit the prepend values on. + The source sequence prepended with the specified value. + is null. + + + + Repeats the observable sequence indefinitely. + + The type of the elements in the source sequence. + Observable sequence to repeat. + The observable sequence producing the elements of the given sequence repeatedly and sequentially. + is null. + + + + Repeats the observable sequence a specified number of times. + + The type of the elements in the source sequence. + Observable sequence to repeat. + Number of times to repeat the sequence. + The observable sequence producing the elements of the given sequence repeatedly. + is null. + is less than zero. + + + + Repeatedly resubscribes to the source observable after a normal completion and when the observable + returned by a handler produces an arbitrary item. + + The type of the elements in the source sequence. + The arbitrary element type signaled by the handler observable. + Observable sequence to keep repeating when it successfully terminates. + The function that is called for each observer and takes an observable sequence objects. + It should return an observable of arbitrary items that should signal that arbitrary item in + response to receiving the completion signal from the source observable. If this observable signals + a terminal event, the sequence is terminated with that signal instead. + An observable sequence producing the elements of the given sequence repeatedly while each repetition terminates successfully. + is null. + is null. + + + + Repeats the source observable sequence until it successfully terminates. + + The type of the elements in the source sequence. + Observable sequence to repeat until it successfully terminates. + An observable sequence producing the elements of the given sequence repeatedly until it terminates successfully. + is null. + + + + Repeats the source observable sequence the specified number of times or until it successfully terminates. + + The type of the elements in the source sequence. + Observable sequence to repeat until it successfully terminates. + Number of times to repeat the sequence. + An observable sequence producing the elements of the given sequence repeatedly until it terminates successfully. + is null. + is less than zero. + + + + Retries (resubscribes to) the source observable after a failure and when the observable + returned by a handler produces an arbitrary item. + + The type of the elements in the source sequence. + The arbitrary element type signaled by the handler observable. + Observable sequence to repeat until it successfully terminates. + The function that is called for each observer and takes an observable sequence of + errors. It should return an observable of arbitrary items that should signal that arbitrary item in + response to receiving the failure Exception from the source observable. If this observable signals + a terminal event, the sequence is terminated with that signal instead. + An observable sequence producing the elements of the given sequence repeatedly until it terminates successfully. + is null. + is null. + + + + Applies an accumulator function over an observable sequence and returns each intermediate result. The specified seed value is used as the initial accumulator value. + For aggregation behavior with no intermediate results, see . + + The type of the elements in the source sequence. + The type of the result of the aggregation. + An observable sequence to accumulate over. + The initial accumulator value. + An accumulator function to be invoked on each element. + An observable sequence containing the accumulated values. + or is null. + + + + Applies an accumulator function over an observable sequence and returns each intermediate result. + For aggregation behavior with no intermediate results, see . + + The type of the elements in the source sequence and the result of the aggregation. + An observable sequence to accumulate over. + An accumulator function to be invoked on each element. + An observable sequence containing the accumulated values. + or is null. + + + + Bypasses a specified number of elements at the end of an observable sequence. + + The type of the elements in the source sequence. + Source sequence. + Number of elements to bypass at the end of the source sequence. + An observable sequence containing the source sequence elements except for the bypassed ones at the end. + is null. + is less than zero. + + This operator accumulates a queue with a length enough to store the first elements. As more elements are + received, elements are taken from the front of the queue and produced on the result sequence. This causes elements to be delayed. + + + + + Prepends a sequence of values to an observable sequence. + + The type of the elements in the source sequence. + Source sequence to prepend values to. + Values to prepend to the specified sequence. + The source sequence prepended with the specified values. + or is null. + + + + Prepends a sequence of values to an observable sequence. + + The type of the elements in the source sequence. + Source sequence to prepend values to. + Values to prepend to the specified sequence. + The source sequence prepended with the specified values. + or is null. + + + + Prepends a sequence of values to an observable sequence. + + The type of the elements in the source sequence. + Source sequence to prepend values to. + Scheduler to emit the prepended values on. + Values to prepend to the specified sequence. + The source sequence prepended with the specified values. + or or is null. + + + + Prepends a sequence of values to an observable sequence. + + The type of the elements in the source sequence. + Source sequence to prepend values to. + Scheduler to emit the prepended values on. + Values to prepend to the specified sequence. + The source sequence prepended with the specified values. + or or is null. + + + + Returns a specified number of contiguous elements from the end of an observable sequence. + + The type of the elements in the source sequence. + Source sequence. + Number of elements to take from the end of the source sequence. + An observable sequence containing the specified number of elements from the end of the source sequence. + is null. + is less than zero. + + This operator accumulates a buffer with a length enough to store elements elements. Upon completion of + the source sequence, this buffer is drained on the result sequence. This causes the elements to be delayed. + + + + + Returns a specified number of contiguous elements from the end of an observable sequence, using the specified scheduler to drain the queue. + + The type of the elements in the source sequence. + Source sequence. + Number of elements to take from the end of the source sequence. + Scheduler used to drain the queue upon completion of the source sequence. + An observable sequence containing the specified number of elements from the end of the source sequence. + or is null. + is less than zero. + + This operator accumulates a buffer with a length enough to store elements elements. Upon completion of + the source sequence, this buffer is drained on the result sequence. This causes the elements to be delayed. + + + + + Returns a list with the specified number of contiguous elements from the end of an observable sequence. + + The type of the elements in the source sequence. + Source sequence. + Number of elements to take from the end of the source sequence. + An observable sequence containing a single list with the specified number of elements from the end of the source sequence. + is null. + is less than zero. + + This operator accumulates a buffer with a length enough to store elements. Upon completion of the + source sequence, this buffer is produced on the result sequence. + + + + + Projects each element of an observable sequence into consecutive non-overlapping windows which are produced based on element count information. + + The type of the elements in the source sequence, and in the windows in the result sequence. + Source sequence to produce windows over. + Length of each window. + An observable sequence of windows. + is null. + is less than or equal to zero. + + + + Projects each element of an observable sequence into zero or more windows which are produced based on element count information. + + The type of the elements in the source sequence, and in the windows in the result sequence. + Source sequence to produce windows over. + Length of each window. + Number of elements to skip between creation of consecutive windows. + An observable sequence of windows. + is null. + or is less than or equal to zero. + + + + Converts the elements of an observable sequence to the specified type. + + The type to convert the elements in the source sequence to. + The observable sequence that contains the elements to be converted. + An observable sequence that contains each element of the source sequence converted to the specified type. + is null. + + + + Returns the elements of the specified sequence or the type parameter's default value in a singleton sequence if the sequence is empty. + + The type of the elements in the source sequence (if any), whose default value will be taken if the sequence is empty. + The sequence to return a default value for if it is empty. + An observable sequence that contains the default value for the TSource type if the source is empty; otherwise, the elements of the source itself. + is null. + + + + Returns the elements of the specified sequence or the specified value in a singleton sequence if the sequence is empty. + + The type of the elements in the source sequence (if any), and the specified default value which will be taken if the sequence is empty. + The sequence to return the specified value for if it is empty. + The value to return if the sequence is empty. + An observable sequence that contains the specified default value if the source is empty; otherwise, the elements of the source itself. + is null. + + + + Returns an observable sequence that contains only distinct elements. + + The type of the elements in the source sequence. + An observable sequence to retain distinct elements for. + An observable sequence only containing the distinct elements from the source sequence. + is null. + Usage of this operator should be considered carefully due to the maintenance of an internal lookup structure which can grow large. + + + + Returns an observable sequence that contains only distinct elements according to the comparer. + + The type of the elements in the source sequence. + An observable sequence to retain distinct elements for. + Equality comparer for source elements. + An observable sequence only containing the distinct elements from the source sequence. + or is null. + Usage of this operator should be considered carefully due to the maintenance of an internal lookup structure which can grow large. + + + + Returns an observable sequence that contains only distinct elements according to the keySelector. + + The type of the elements in the source sequence. + The type of the discriminator key computed for each element in the source sequence. + An observable sequence to retain distinct elements for. + A function to compute the comparison key for each element. + An observable sequence only containing the distinct elements, based on a computed key value, from the source sequence. + or is null. + Usage of this operator should be considered carefully due to the maintenance of an internal lookup structure which can grow large. + + + + Returns an observable sequence that contains only distinct elements according to the keySelector and the comparer. + + The type of the elements in the source sequence. + The type of the discriminator key computed for each element in the source sequence. + An observable sequence to retain distinct elements for. + A function to compute the comparison key for each element. + Equality comparer for source elements. + An observable sequence only containing the distinct elements, based on a computed key value, from the source sequence. + or or is null. + Usage of this operator should be considered carefully due to the maintenance of an internal lookup structure which can grow large. + + + + Groups the elements of an observable sequence according to a specified key selector function. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + An observable sequence whose elements to group. + A function to extract the key for each element. + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + or is null. + + + + Groups the elements of an observable sequence according to a specified key selector function and comparer. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + An observable sequence whose elements to group. + A function to extract the key for each element. + An equality comparer to compare keys with. + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + or or is null. + + + + Groups the elements of an observable sequence and selects the resulting elements by using a specified function. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements within the groups computed for each element in the source sequence. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to map each source element to an element in an observable group. + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + or or is null. + + + + Groups the elements of an observable sequence according to a specified key selector function and comparer and selects the resulting elements by using a specified function. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements within the groups computed for each element in the source sequence. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to map each source element to an element in an observable group. + An equality comparer to compare keys with. + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + or or or is null. + + + + Groups the elements of an observable sequence with the specified initial capacity according to a specified key selector function. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + An observable sequence whose elements to group. + A function to extract the key for each element. + The initial number of elements that the underlying dictionary can contain. + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + or is null. + is less than 0. + + + + Groups the elements of an observable sequence with the specified initial capacity according to a specified key selector function and comparer. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + An observable sequence whose elements to group. + A function to extract the key for each element. + The initial number of elements that the underlying dictionary can contain. + An equality comparer to compare keys with. + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + or or is null. + is less than 0. + + + + Groups the elements of an observable sequence with the specified initial capacity and selects the resulting elements by using a specified function. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements within the groups computed for each element in the source sequence. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to map each source element to an element in an observable group. + The initial number of elements that the underlying dictionary can contain. + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + or or is null. + is less than 0. + + + + Groups the elements of an observable sequence with the specified initial capacity according to a specified key selector function and comparer and selects the resulting elements by using a specified function. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements within the groups computed for each element in the source sequence. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to map each source element to an element in an observable group. + The initial number of elements that the underlying dictionary can contain. + An equality comparer to compare keys with. + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + or or or is null. + is less than 0. + + + + Groups the elements of an observable sequence according to a specified key selector function and comparer and selects the resulting elements by using a specified function. + A duration selector function is used to control the lifetime of groups. When a group expires, it receives an OnCompleted notification. When a new element with the same + key value as a reclaimed group occurs, the group will be reborn with a new lifetime request. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements within the groups computed for each element in the source sequence. + The type of the elements in the duration sequences obtained for each group to denote its lifetime. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to map each source element to an element in an observable group. + A function to signal the expiration of a group. + An equality comparer to compare keys with. + + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + If a group's lifetime expires, a new group with the same key value can be created once an element with such a key value is encountered. + + or or or or is null. + + + + Groups the elements of an observable sequence according to a specified key selector function and selects the resulting elements by using a specified function. + A duration selector function is used to control the lifetime of groups. When a group expires, it receives an OnCompleted notification. When a new element with the same + key value as a reclaimed group occurs, the group will be reborn with a new lifetime request. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements within the groups computed for each element in the source sequence. + The type of the elements in the duration sequences obtained for each group to denote its lifetime. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to map each source element to an element in an observable group. + A function to signal the expiration of a group. + + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + If a group's lifetime expires, a new group with the same key value can be created once an element with such a key value is encountered. + + or or or is null. + + + + Groups the elements of an observable sequence according to a specified key selector function and comparer. + A duration selector function is used to control the lifetime of groups. When a group expires, it receives an OnCompleted notification. When a new element with the same + key value as a reclaimed group occurs, the group will be reborn with a new lifetime request. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements in the duration sequences obtained for each group to denote its lifetime. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to signal the expiration of a group. + An equality comparer to compare keys with. + + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + If a group's lifetime expires, a new group with the same key value can be created once an element with such a key value is encountered. + + or or or is null. + + + + Groups the elements of an observable sequence according to a specified key selector function. + A duration selector function is used to control the lifetime of groups. When a group expires, it receives an OnCompleted notification. When a new element with the same + key value as a reclaimed group occurs, the group will be reborn with a new lifetime request. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements in the duration sequences obtained for each group to denote its lifetime. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to signal the expiration of a group. + + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + If a group's lifetime expires, a new group with the same key value can be created once an element with such a key value is encountered. + + or or is null. + + + + Groups the elements of an observable sequence with the specified initial capacity according to a specified key selector function and comparer and selects the resulting elements by using a specified function. + A duration selector function is used to control the lifetime of groups. When a group expires, it receives an OnCompleted notification. When a new element with the same + key value as a reclaimed group occurs, the group will be reborn with a new lifetime request. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements within the groups computed for each element in the source sequence. + The type of the elements in the duration sequences obtained for each group to denote its lifetime. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to map each source element to an element in an observable group. + A function to signal the expiration of a group. + The initial number of elements that the underlying dictionary can contain. + An equality comparer to compare keys with. + + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + If a group's lifetime expires, a new group with the same key value can be created once an element with such a key value is encountered. + + or or or or is null. + is less than 0. + + + + Groups the elements of an observable sequence with the specified initial capacity according to a specified key selector function and selects the resulting elements by using a specified function. + A duration selector function is used to control the lifetime of groups. When a group expires, it receives an OnCompleted notification. When a new element with the same + key value as a reclaimed group occurs, the group will be reborn with a new lifetime request. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements within the groups computed for each element in the source sequence. + The type of the elements in the duration sequences obtained for each group to denote its lifetime. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to map each source element to an element in an observable group. + A function to signal the expiration of a group. + The initial number of elements that the underlying dictionary can contain. + + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + If a group's lifetime expires, a new group with the same key value can be created once an element with such a key value is encountered. + + or or or is null. + is less than 0. + + + + Groups the elements of an observable sequence with the specified initial capacity according to a specified key selector function and comparer. + A duration selector function is used to control the lifetime of groups. When a group expires, it receives an OnCompleted notification. When a new element with the same + key value as a reclaimed group occurs, the group will be reborn with a new lifetime request. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements in the duration sequences obtained for each group to denote its lifetime. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to signal the expiration of a group. + The initial number of elements that the underlying dictionary can contain. + An equality comparer to compare keys with. + + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + If a group's lifetime expires, a new group with the same key value can be created once an element with such a key value is encountered. + + or or or is null. + is less than 0. + + + + Groups the elements of an observable sequence with the specified initial capacity according to a specified key selector function. + A duration selector function is used to control the lifetime of groups. When a group expires, it receives an OnCompleted notification. When a new element with the same + key value as a reclaimed group occurs, the group will be reborn with a new lifetime request. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements in the duration sequences obtained for each group to denote its lifetime. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to signal the expiration of a group. + The initial number of elements that the underlying dictionary can contain. + + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + If a group's lifetime expires, a new group with the same key value can be created once an element with such a key value is encountered. + + or or is null. + is less than 0. + + + + Correlates the elements of two sequences based on overlapping durations, and groups the results. + + The type of the elements in the left source sequence. + The type of the elements in the right source sequence. + The type of the elements in the duration sequence denoting the computed duration of each element in the left source sequence. + The type of the elements in the duration sequence denoting the computed duration of each element in the right source sequence. + The type of the elements in the result sequence, obtained by invoking the result selector function for source elements with overlapping duration. + The left observable sequence to join elements for. + The right observable sequence to join elements for. + A function to select the duration of each element of the left observable sequence, used to determine overlap. + A function to select the duration of each element of the right observable sequence, used to determine overlap. + A function invoked to compute a result element for any element of the left sequence with overlapping elements from the right observable sequence. + An observable sequence that contains result elements computed from source elements that have an overlapping duration. + or or or or is null. + + + + Correlates the elements of two sequences based on overlapping durations. + + The type of the elements in the left source sequence. + The type of the elements in the right source sequence. + The type of the elements in the duration sequence denoting the computed duration of each element in the left source sequence. + The type of the elements in the duration sequence denoting the computed duration of each element in the right source sequence. + The type of the elements in the result sequence, obtained by invoking the result selector function for source elements with overlapping duration. + The left observable sequence to join elements for. + The right observable sequence to join elements for. + A function to select the duration of each element of the left observable sequence, used to determine overlap. + A function to select the duration of each element of the right observable sequence, used to determine overlap. + A function invoked to compute a result element for any two overlapping elements of the left and right observable sequences. + An observable sequence that contains result elements computed from source elements that have an overlapping duration. + or or or or is null. + + + + Filters the elements of an observable sequence based on the specified type. + + The type to filter the elements in the source sequence on. + The observable sequence that contains the elements to be filtered. + An observable sequence that contains elements from the input sequence of type TResult. + is null. + + + + Projects each element of an observable sequence into a new form. + + The type of the elements in the source sequence. + The type of the elements in the result sequence, obtained by running the selector function for each element in the source sequence. + A sequence of elements to invoke a transform function on. + A transform function to apply to each source element. + An observable sequence whose elements are the result of invoking the transform function on each element of source. + or is null. + + + + Projects each element of an observable sequence into a new form by incorporating the element's index. + + The type of the elements in the source sequence. + The type of the elements in the result sequence, obtained by running the selector function for each element in the source sequence. + A sequence of elements to invoke a transform function on. + A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + An observable sequence whose elements are the result of invoking the transform function on each element of source. + or is null. + + + + Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the other sequence and the elements in the result sequence. + An observable sequence of elements to project. + An observable sequence to project each element from the source sequence onto. + An observable sequence whose elements are the result of projecting each source element onto the other sequence and merging all the resulting sequences together. + or is null. + + + + Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected inner sequences and the elements in the merged result sequence. + An observable sequence of elements to project. + A transform function to apply to each element. + An observable sequence whose elements are the result of invoking the one-to-many transform function on each element of the input sequence. + or is null. + + + + Projects each element of an observable sequence to an observable sequence by incorporating the element's index and merges the resulting observable sequences into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected inner sequences and the elements in the merged result sequence. + An observable sequence of elements to project. + A transform function to apply to each element; the second parameter of the function represents the index of the source element. + An observable sequence whose elements are the result of invoking the one-to-many transform function on each element of the input sequence. + or is null. + + + + Projects each element of an observable sequence to a task and merges all of the task results into one observable sequence. + + The type of the elements in the source sequence. + The type of the result produced by the projected tasks and the elements in the merged result sequence. + An observable sequence of elements to project. + A transform function to apply to each element. + An observable sequence whose elements are the result of the tasks executed for each element of the input sequence. + This overload supports composition of observable sequences and tasks, without requiring manual conversion of the tasks to observable sequences using . + or is null. + + + + Projects each element of an observable sequence to a task by incorporating the element's index and merges all of the task results into one observable sequence. + + The type of the elements in the source sequence. + The type of the result produced by the projected tasks and the elements in the merged result sequence. + An observable sequence of elements to project. + A transform function to apply to each element; the second parameter of the function represents the index of the source element. + An observable sequence whose elements are the result of the tasks executed for each element of the input sequence. + This overload supports composition of observable sequences and tasks, without requiring manual conversion of the tasks to observable sequences using . + or is null. + + + + Projects each element of an observable sequence to a task with cancellation support and merges all of the task results into one observable sequence. + + The type of the elements in the source sequence. + The type of the result produced by the projected tasks and the elements in the merged result sequence. + An observable sequence of elements to project. + A transform function to apply to each element. + An observable sequence whose elements are the result of the tasks executed for each element of the input sequence. + This overload supports composition of observable sequences and tasks, without requiring manual conversion of the tasks to observable sequences using . + or is null. + + + + Projects each element of an observable sequence to a task by incorporating the element's index with cancellation support and merges all of the task results into one observable sequence. + + The type of the elements in the source sequence. + The type of the result produced by the projected tasks and the elements in the merged result sequence. + An observable sequence of elements to project. + A transform function to apply to each element; the second parameter of the function represents the index of the source element. + An observable sequence whose elements are the result of the tasks executed for each element of the input sequence. + This overload supports composition of observable sequences and tasks, without requiring manual conversion of the tasks to observable sequences using . + or is null. + + + + Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected intermediate sequences. + The type of the elements in the result sequence, obtained by using the selector to combine source sequence elements with their corresponding intermediate sequence elements. + An observable sequence of elements to project. + A transform function to apply to each element. + A transform function to apply to each element of the intermediate sequence. + An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + or or is null. + + + + Projects each element of an observable sequence to an observable sequence by incorporating the element's index, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected intermediate sequences. + The type of the elements in the result sequence, obtained by using the selector to combine source sequence elements with their corresponding intermediate sequence elements. + An observable sequence of elements to project. + A transform function to apply to each element; the second parameter of the function represents the index of the source element. + A transform function to apply to each element of the intermediate sequence; the second parameter of the function represents the index of the source element and the fourth parameter represents the index of the intermediate element. + An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + or or is null. + + + + Projects each element of an observable sequence to a task, invokes the result selector for the source element and the task result, and merges the results into one observable sequence. + + The type of the elements in the source sequence. + The type of the results produced by the projected intermediate tasks. + The type of the elements in the result sequence, obtained by using the selector to combine source sequence elements with their corresponding intermediate task results. + An observable sequence of elements to project. + A transform function to apply to each element. + A transform function to apply to each element of the intermediate sequence. + An observable sequence whose elements are the result of obtaining a task for each element of the input sequence and then mapping the task's result and its corresponding source element to a result element. + or or is null. + This overload supports using LINQ query comprehension syntax in C# and Visual Basic to compose observable sequences and tasks, without requiring manual conversion of the tasks to observable sequences using . + + + + Projects each element of an observable sequence to a task by incorporating the element's index, invokes the result selector for the source element and the task result, and merges the results into one observable sequence. + + The type of the elements in the source sequence. + The type of the results produced by the projected intermediate tasks. + The type of the elements in the result sequence, obtained by using the selector to combine source sequence elements with their corresponding intermediate task results. + An observable sequence of elements to project. + A transform function to apply to each element; the second parameter of the function represents the index of the source element. + A transform function to apply to each element of the intermediate sequence; the second parameter of the function represents the index of the source element. + An observable sequence whose elements are the result of obtaining a task for each element of the input sequence and then mapping the task's result and its corresponding source element to a result element. + or or is null. + This overload supports using LINQ query comprehension syntax in C# and Visual Basic to compose observable sequences and tasks, without requiring manual conversion of the tasks to observable sequences using . + + + + Projects each element of an observable sequence to a task with cancellation support, invokes the result selector for the source element and the task result, and merges the results into one observable sequence. + + The type of the elements in the source sequence. + The type of the results produced by the projected intermediate tasks. + The type of the elements in the result sequence, obtained by using the selector to combine source sequence elements with their corresponding intermediate task results. + An observable sequence of elements to project. + A transform function to apply to each element. + A transform function to apply to each element of the intermediate sequence. + An observable sequence whose elements are the result of obtaining a task for each element of the input sequence and then mapping the task's result and its corresponding source element to a result element. + or or is null. + This overload supports using LINQ query comprehension syntax in C# and Visual Basic to compose observable sequences and tasks, without requiring manual conversion of the tasks to observable sequences using . + + + + Projects each element of an observable sequence to a task by incorporating the element's index with cancellation support, invokes the result selector for the source element and the task result, and merges the results into one observable sequence. + + The type of the elements in the source sequence. + The type of the results produced by the projected intermediate tasks. + The type of the elements in the result sequence, obtained by using the selector to combine source sequence elements with their corresponding intermediate task results. + An observable sequence of elements to project. + A transform function to apply to each element; the second parameter of the function represents the index of the source element. + A transform function to apply to each element of the intermediate sequence; the second parameter of the function represents the index of the source element. + An observable sequence whose elements are the result of obtaining a task for each element of the input sequence and then mapping the task's result and its corresponding source element to a result element. + or or is null. + This overload supports using LINQ query comprehension syntax in C# and Visual Basic to compose observable sequences and tasks, without requiring manual conversion of the tasks to observable sequences using . + + + + Projects each notification of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected inner sequences and the elements in the merged result sequence. + An observable sequence of notifications to project. + A transform function to apply to each element. + A transform function to apply when an error occurs in the source sequence. + A transform function to apply when the end of the source sequence is reached. + An observable sequence whose elements are the result of invoking the one-to-many transform function corresponding to each notification in the input sequence. + or or or is null. + + + + Projects each notification of an observable sequence to an observable sequence by incorporating the element's index and merges the resulting observable sequences into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected inner sequences and the elements in the merged result sequence. + An observable sequence of notifications to project. + A transform function to apply to each element; the second parameter of the function represents the index of the source element. + A transform function to apply when an error occurs in the source sequence. + A transform function to apply when the end of the source sequence is reached. + An observable sequence whose elements are the result of invoking the one-to-many transform function corresponding to each notification in the input sequence. + or or or is null. + + + + Projects each element of an observable sequence to an enumerable sequence and concatenates the resulting enumerable sequences into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected inner enumerable sequences and the elements in the merged result sequence. + An observable sequence of elements to project. + A transform function to apply to each element. + An observable sequence whose elements are the result of invoking the one-to-many transform function on each element of the input sequence. + or is null. + The projected sequences are enumerated synchronously within the OnNext call of the source sequence. In order to do a concurrent, non-blocking merge, change the selector to return an observable sequence obtained using the conversion. + + + + Projects each element of an observable sequence to an enumerable sequence by incorporating the element's index and concatenates the resulting enumerable sequences into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected inner enumerable sequences and the elements in the merged result sequence. + An observable sequence of elements to project. + A transform function to apply to each element; the second parameter of the function represents the index of the source element. + An observable sequence whose elements are the result of invoking the one-to-many transform function on each element of the input sequence. + or is null. + The projected sequences are enumerated synchronously within the OnNext call of the source sequence. In order to do a concurrent, non-blocking merge, change the selector to return an observable sequence obtained using the conversion. + + + + Projects each element of an observable sequence to an enumerable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected intermediate enumerable sequences. + The type of the elements in the result sequence, obtained by using the selector to combine source sequence elements with their corresponding intermediate sequence elements. + An observable sequence of elements to project. + A transform function to apply to each element. + A transform function to apply to each element of the intermediate sequence. + An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + or or is null. + The projected sequences are enumerated synchronously within the OnNext call of the source sequence. In order to do a concurrent, non-blocking merge, change the selector to return an observable sequence obtained using the conversion. + + + + Projects each element of an observable sequence to an enumerable sequence by incorporating the element's index, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected intermediate enumerable sequences. + The type of the elements in the result sequence, obtained by using the selector to combine source sequence elements with their corresponding intermediate sequence elements. + An observable sequence of elements to project. + A transform function to apply to each element; the second parameter of the function represents the index of the source element. + A transform function to apply to each element of the intermediate sequence; the second parameter of the function represents the index of the source element and the fourth parameter represents the index of the intermediate element. + An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + or or is null. + The projected sequences are enumerated synchronously within the OnNext call of the source sequence. In order to do a concurrent, non-blocking merge, change the selector to return an observable sequence obtained using the conversion. + + + + Bypasses a specified number of elements in an observable sequence and then returns the remaining elements. + + The type of the elements in the source sequence. + The sequence to take elements from. + The number of elements to skip before returning the remaining elements. + An observable sequence that contains the elements that occur after the specified index in the input sequence. + is null. + is less than zero. + + + + Bypasses elements in an observable sequence as long as a specified condition is true and then returns the remaining elements. + + The type of the elements in the source sequence. + An observable sequence to return elements from. + A function to test each element for a condition. + An observable sequence that contains the elements from the input sequence starting at the first element in the linear series that does not pass the test specified by predicate. + or is null. + + + + Bypasses elements in an observable sequence as long as a specified condition is true and then returns the remaining elements. + The element's index is used in the logic of the predicate function. + + The type of the elements in the source sequence. + An observable sequence to return elements from. + A function to test each element for a condition; the second parameter of the function represents the index of the source element. + An observable sequence that contains the elements from the input sequence starting at the first element in the linear series that does not pass the test specified by predicate. + or is null. + + + + Returns a specified number of contiguous elements from the start of an observable sequence. + + The type of the elements in the source sequence. + The sequence to take elements from. + The number of elements to return. + An observable sequence that contains the specified number of elements from the start of the input sequence. + is null. + is less than zero. + + + + Returns a specified number of contiguous elements from the start of an observable sequence, using the specified scheduler for the edge case of Take(0). + + The type of the elements in the source sequence. + The sequence to take elements from. + The number of elements to return. + Scheduler used to produce an OnCompleted message in case count is set to 0. + An observable sequence that contains the specified number of elements from the start of the input sequence. + or is null. + is less than zero. + + + + Returns elements from an observable sequence as long as a specified condition is true. + + The type of the elements in the source sequence. + A sequence to return elements from. + A function to test each element for a condition. + An observable sequence that contains the elements from the input sequence that occur before the element at which the test no longer passes. + or is null. + + + + Returns elements from an observable sequence as long as a specified condition is true. + The element's index is used in the logic of the predicate function. + + The type of the elements in the source sequence. + A sequence to return elements from. + A function to test each element for a condition; the second parameter of the function represents the index of the source element. + An observable sequence that contains the elements from the input sequence that occur before the element at which the test no longer passes. + or is null. + + + + Filters the elements of an observable sequence based on a predicate. + + The type of the elements in the source sequence. + An observable sequence whose elements to filter. + A function to test each source element for a condition. + An observable sequence that contains elements from the input sequence that satisfy the condition. + or is null. + + + + Filters the elements of an observable sequence based on a predicate by incorporating the element's index. + + The type of the elements in the source sequence. + An observable sequence whose elements to filter. + A function to test each source element for a condition; the second parameter of the function represents the index of the source element. + An observable sequence that contains elements from the input sequence that satisfy the condition. + or is null. + + + + Projects each element of an observable sequence into consecutive non-overlapping buffers which are produced based on timing information. + + The type of the elements in the source sequence, and in the lists in the result sequence. + Source sequence to produce buffers over. + Length of each buffer. + An observable sequence of buffers. + is null. + is less than TimeSpan.Zero. + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create buffers as fast as it can. + Because all source sequence elements end up in one of the buffers, some buffers won't have a zero time span. This is a side-effect of the asynchrony introduced + by the scheduler, where the action to close the current buffer and to create a new buffer may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Projects each element of an observable sequence into consecutive non-overlapping buffers which are produced based on timing information, using the specified scheduler to run timers. + + The type of the elements in the source sequence, and in the lists in the result sequence. + Source sequence to produce buffers over. + Length of each buffer. + Scheduler to run buffering timers on. + An observable sequence of buffers. + or is null. + is less than TimeSpan.Zero. + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create buffers as fast as it can. + Because all source sequence elements end up in one of the buffers, some buffers won't have a zero time span. This is a side-effect of the asynchrony introduced + by the scheduler, where the action to close the current buffer and to create a new buffer may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Projects each element of an observable sequence into zero or more buffers which are produced based on timing information. + + The type of the elements in the source sequence, and in the lists in the result sequence. + Source sequence to produce buffers over. + Length of each buffer. + Interval between creation of consecutive buffers. + An observable sequence of buffers. + is null. + or is less than TimeSpan.Zero. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create buffers with minimum duration + length. However, some buffers won't have a zero time span. This is a side-effect of the asynchrony introduced by the scheduler, where the action to close the + current buffer may not execute immediately, despite the TimeSpan.Zero due time. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create buffers as fast as it can. + However, this doesn't mean all buffers will start at the beginning of the source sequence. This is a side-effect of the asynchrony introduced by the scheduler, + where the action to create a new buffer may not execute immediately, despite the TimeSpan.Zero due time. + + + + + + Projects each element of an observable sequence into zero or more buffers which are produced based on timing information, using the specified scheduler to run timers. + + The type of the elements in the source sequence, and in the lists in the result sequence. + Source sequence to produce buffers over. + Length of each buffer. + Interval between creation of consecutive buffers. + Scheduler to run buffering timers on. + An observable sequence of buffers. + or is null. + or is less than TimeSpan.Zero. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create buffers with minimum duration + length. However, some buffers won't have a zero time span. This is a side-effect of the asynchrony introduced by the scheduler, where the action to close the + current buffer may not execute immediately, despite the TimeSpan.Zero due time. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create buffers as fast as it can. + However, this doesn't mean all buffers will start at the beginning of the source sequence. This is a side-effect of the asynchrony introduced by the scheduler, + where the action to create a new buffer may not execute immediately, despite the TimeSpan.Zero due time. + + + + + + Projects each element of an observable sequence into a buffer that's sent out when either it's full or a given amount of time has elapsed. + A useful real-world analogy of this overload is the behavior of a ferry leaving the dock when all seats are taken, or at the scheduled time of departure, whichever event occurs first. + + The type of the elements in the source sequence, and in the lists in the result sequence. + Source sequence to produce buffers over. + Maximum time length of a window. + Maximum element count of a window. + An observable sequence of buffers. + is null. + is less than TimeSpan.Zero. -or- is less than or equal to zero. + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create buffers as fast as it can. + Because all source sequence elements end up in one of the buffers, some buffers won't have a zero time span. This is a side-effect of the asynchrony introduced + by the scheduler, where the action to close the current buffer and to create a new buffer may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Projects each element of an observable sequence into a buffer that's sent out when either it's full or a given amount of time has elapsed, using the specified scheduler to run timers. + A useful real-world analogy of this overload is the behavior of a ferry leaving the dock when all seats are taken, or at the scheduled time of departure, whichever event occurs first. + + The type of the elements in the source sequence, and in the lists in the result sequence. + Source sequence to produce buffers over. + Maximum time length of a buffer. + Maximum element count of a buffer. + Scheduler to run buffering timers on. + An observable sequence of buffers. + or is null. + is less than TimeSpan.Zero. -or- is less than or equal to zero. + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create buffers as fast as it can. + Because all source sequence elements end up in one of the buffers, some buffers won't have a zero time span. This is a side-effect of the asynchrony introduced + by the scheduler, where the action to close the current buffer and to create a new buffer may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Time shifts the observable sequence by the specified relative time duration. + The relative time intervals between the values are preserved. + + The type of the elements in the source sequence. + Source sequence to delay values for. + Relative time by which to shift the observable sequence. If this value is equal to TimeSpan.Zero, the scheduler will dispatch observer callbacks as soon as possible. + Time-shifted sequence. + is null. + is less than TimeSpan.Zero. + + + This operator is less efficient than DelaySubscription because it records all notifications and time-delays those. This allows for immediate propagation of errors. + + + Observer callbacks for the resulting sequence will be run on the default scheduler. This effect is similar to using ObserveOn. + + + Exceptions signaled by the source sequence through an OnError callback are forwarded immediately to the result sequence. Any OnNext notifications that were in the queue at the point of the OnError callback will be dropped. + In order to delay error propagation, consider using the Observable.Materialize and Observable.Dematerialize operators, or use DelaySubscription. + + + + + + Time shifts the observable sequence by the specified relative time duration, using the specified scheduler to run timers. + The relative time intervals between the values are preserved. + + The type of the elements in the source sequence. + Source sequence to delay values for. + Relative time by which to shift the observable sequence. If this value is equal to TimeSpan.Zero, the scheduler will dispatch observer callbacks as soon as possible. + Scheduler to run the delay timers on. + Time-shifted sequence. + or is null. + is less than TimeSpan.Zero. + + + This operator is less efficient than DelaySubscription because it records all notifications and time-delays those. This allows for immediate propagation of errors. + + + Observer callbacks for the resulting sequence will be run on the specified scheduler. This effect is similar to using ObserveOn. + + + Exceptions signaled by the source sequence through an OnError callback are forwarded immediately to the result sequence. Any OnNext notifications that were in the queue at the point of the OnError callback will be dropped. + + + Exceptions signaled by the source sequence through an OnError callback are forwarded immediately to the result sequence. Any OnNext notifications that were in the queue at the point of the OnError callback will be dropped. + In order to delay error propagation, consider using the Observable.Materialize and Observable.Dematerialize operators, or use DelaySubscription. + + + + + + Time shifts the observable sequence to start propagating notifications at the specified absolute time. + The relative time intervals between the values are preserved. + + The type of the elements in the source sequence. + Source sequence to delay values for. + Absolute time used to shift the observable sequence; the relative time shift gets computed upon subscription. If this value is less than or equal to DateTimeOffset.UtcNow, the scheduler will dispatch observer callbacks as soon as possible. + Time-shifted sequence. + is null. + + + This operator is less efficient than DelaySubscription because it records all notifications and time-delays those. This allows for immediate propagation of errors. + + + Observer callbacks for the resulting sequence will be run on the default scheduler. This effect is similar to using ObserveOn. + + + Exceptions signaled by the source sequence through an OnError callback are forwarded immediately to the result sequence. Any OnNext notifications that were in the queue at the point of the OnError callback will be dropped. + In order to delay error propagation, consider using the Observable.Materialize and Observable.Dematerialize operators, or use DelaySubscription. + + + + + + Time shifts the observable sequence to start propagating notifications at the specified absolute time, using the specified scheduler to run timers. + The relative time intervals between the values are preserved. + + The type of the elements in the source sequence. + Source sequence to delay values for. + Absolute time used to shift the observable sequence; the relative time shift gets computed upon subscription. If this value is less than or equal to DateTimeOffset.UtcNow, the scheduler will dispatch observer callbacks as soon as possible. + Scheduler to run the delay timers on. + Time-shifted sequence. + or is null. + + + This operator is less efficient than DelaySubscription because it records all notifications and time-delays those. This allows for immediate propagation of errors. + + + Observer callbacks for the resulting sequence will be run on the specified scheduler. This effect is similar to using ObserveOn. + + + Exceptions signaled by the source sequence through an OnError callback are forwarded immediately to the result sequence. Any OnNext notifications that were in the queue at the point of the OnError callback will be dropped. + In order to delay error propagation, consider using the Observable.Materialize and Observable.Dematerialize operators, or use DelaySubscription. + + + + + + Time shifts the observable sequence based on a delay selector function for each element. + + The type of the elements in the source sequence. + The type of the elements in the delay sequences used to denote the delay duration of each element in the source sequence. + Source sequence to delay values for. + Selector function to retrieve a sequence indicating the delay for each given element. + Time-shifted sequence. + or is null. + + + + Time shifts the observable sequence based on a subscription delay and a delay selector function for each element. + + The type of the elements in the source sequence. + The type of the elements in the delay sequences used to denote the delay duration of each element in the source sequence. + Source sequence to delay values for. + Sequence indicating the delay for the subscription to the source. + Selector function to retrieve a sequence indicating the delay for each given element. + Time-shifted sequence. + or or is null. + + + + Time shifts the observable sequence by delaying the subscription with the specified relative time duration. + + The type of the elements in the source sequence. + Source sequence to delay subscription for. + Relative time shift of the subscription. + Time-shifted sequence. + is null. + is less than TimeSpan.Zero. + + + This operator is more efficient than Delay but postpones all side-effects of subscription and affects error propagation timing. + + + The side-effects of subscribing to the source sequence will be run on the default scheduler. Observer callbacks will not be affected. + + + + + + Time shifts the observable sequence by delaying the subscription with the specified relative time duration, using the specified scheduler to run timers. + + The type of the elements in the source sequence. + Source sequence to delay subscription for. + Relative time shift of the subscription. + Scheduler to run the subscription delay timer on. + Time-shifted sequence. + or is null. + is less than TimeSpan.Zero. + + + This operator is more efficient than Delay but postpones all side-effects of subscription and affects error propagation timing. + + + The side-effects of subscribing to the source sequence will be run on the specified scheduler. Observer callbacks will not be affected. + + + + + + Time shifts the observable sequence by delaying the subscription to the specified absolute time. + + The type of the elements in the source sequence. + Source sequence to delay subscription for. + Absolute time to perform the subscription at. + Time-shifted sequence. + is null. + + + This operator is more efficient than Delay but postpones all side-effects of subscription and affects error propagation timing. + + + The side-effects of subscribing to the source sequence will be run on the default scheduler. Observer callbacks will not be affected. + + + + + + Time shifts the observable sequence by delaying the subscription to the specified absolute time, using the specified scheduler to run timers. + + The type of the elements in the source sequence. + Source sequence to delay subscription for. + Absolute time to perform the subscription at. + Scheduler to run the subscription delay timer on. + Time-shifted sequence. + or is null. + + + This operator is more efficient than Delay but postpones all side-effects of subscription and affects error propagation timing. + + + The side-effects of subscribing to the source sequence will be run on the specified scheduler. Observer callbacks will not be affected. + + + + + + Generates an observable sequence by running a state-driven and temporal loop producing the sequence's elements. + + The type of the state used in the generator loop. + The type of the elements in the produced sequence. + Initial state. + Condition to terminate generation (upon returning false). + Iteration step function. + Selector function for results produced in the sequence. + Time selector function to control the speed of values being produced each iteration. + The generated sequence. + or or or is null. + + + + Generates an observable sequence by running a state-driven and temporal loop producing the sequence's elements, using the specified scheduler to run timers and to send out observer messages. + + The type of the state used in the generator loop. + The type of the elements in the produced sequence. + Initial state. + Condition to terminate generation (upon returning false). + Iteration step function. + Selector function for results produced in the sequence. + Time selector function to control the speed of values being produced each iteration. + Scheduler on which to run the generator loop. + The generated sequence. + or or or or is null. + + + + Generates an observable sequence by running a state-driven and temporal loop producing the sequence's elements. + + The type of the state used in the generator loop. + The type of the elements in the produced sequence. + Initial state. + Condition to terminate generation (upon returning false). + Iteration step function. + Selector function for results produced in the sequence. + Time selector function to control the speed of values being produced each iteration. + The generated sequence. + or or or is null. + + + + Generates an observable sequence by running a state-driven and temporal loop producing the sequence's elements, using the specified scheduler to run timers and to send out observer messages. + + The type of the state used in the generator loop. + The type of the elements in the produced sequence. + Initial state. + Condition to terminate generation (upon returning false). + Iteration step function. + Selector function for results produced in the sequence. + Time selector function to control the speed of values being produced each iteration. + Scheduler on which to run the generator loop. + The generated sequence. + or or or or is null. + + + + Returns an observable sequence that produces a value after each period. + + Period for producing the values in the resulting sequence. If this value is equal to TimeSpan.Zero, the timer will recur as fast as possible. + An observable sequence that produces a value after each period. + is less than TimeSpan.Zero. + + Intervals are measured between the start of subsequent notifications, not between the end of the previous and the start of the next notification. + If the observer takes longer than the interval period to handle the message, the subsequent notification will be delivered immediately after the + current one has been handled. In case you need to control the time between the end and the start of consecutive notifications, consider using the + + operator instead. + + + + + Returns an observable sequence that produces a value after each period, using the specified scheduler to run timers and to send out observer messages. + + Period for producing the values in the resulting sequence. If this value is equal to TimeSpan.Zero, the timer will recur as fast as possible. + Scheduler to run the timer on. + An observable sequence that produces a value after each period. + is less than TimeSpan.Zero. + is null. + + Intervals are measured between the start of subsequent notifications, not between the end of the previous and the start of the next notification. + If the observer takes longer than the interval period to handle the message, the subsequent notification will be delivered immediately after the + current one has been handled. In case you need to control the time between the end and the start of consecutive notifications, consider using the + + operator instead. + + + + + Samples the observable sequence at each interval. + Upon each sampling tick, the latest element (if any) in the source sequence during the last sampling interval is sent to the resulting sequence. + + The type of the elements in the source sequence. + Source sequence to sample. + Interval at which to sample. If this value is equal to TimeSpan.Zero, the scheduler will continuously sample the stream. + Sampled observable sequence. + is null. + is less than TimeSpan.Zero. + + Specifying a TimeSpan.Zero value for doesn't guarantee all source sequence elements will be preserved. This is a side-effect + of the asynchrony introduced by the scheduler, where the sampling action may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Samples the observable sequence at each interval, using the specified scheduler to run sampling timers. + Upon each sampling tick, the latest element (if any) in the source sequence during the last sampling interval is sent to the resulting sequence. + + The type of the elements in the source sequence. + Source sequence to sample. + Interval at which to sample. If this value is equal to TimeSpan.Zero, the scheduler will continuously sample the stream. + Scheduler to run the sampling timer on. + Sampled observable sequence. + or is null. + is less than TimeSpan.Zero. + + Specifying a TimeSpan.Zero value for doesn't guarantee all source sequence elements will be preserved. This is a side-effect + of the asynchrony introduced by the scheduler, where the sampling action may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Samples the source observable sequence using a sampler observable sequence producing sampling ticks. + Upon each sampling tick, the latest element (if any) in the source sequence during the last sampling interval is sent to the resulting sequence. + + The type of the elements in the source sequence. + The type of the elements in the sampling sequence. + Source sequence to sample. + Sampling tick sequence. + Sampled observable sequence. + or is null. + + + + Skips elements for the specified duration from the start of the observable source sequence. + + The type of the elements in the source sequence. + Source sequence to skip elements for. + Duration for skipping elements from the start of the sequence. + An observable sequence with the elements skipped during the specified duration from the start of the source sequence. + is null. + is less than TimeSpan.Zero. + + + Specifying a TimeSpan.Zero value for doesn't guarantee no elements will be dropped from the start of the source sequence. + This is a side-effect of the asynchrony introduced by the scheduler, where the action that causes callbacks from the source sequence to be forwarded + may not execute immediately, despite the TimeSpan.Zero due time. + + + Errors produced by the source sequence are always forwarded to the result sequence, even if the error occurs before the . + + + + + + Skips elements for the specified duration from the start of the observable source sequence, using the specified scheduler to run timers. + + The type of the elements in the source sequence. + Source sequence to skip elements for. + Duration for skipping elements from the start of the sequence. + Scheduler to run the timer on. + An observable sequence with the elements skipped during the specified duration from the start of the source sequence. + or is null. + is less than TimeSpan.Zero. + + + Specifying a TimeSpan.Zero value for doesn't guarantee no elements will be dropped from the start of the source sequence. + This is a side-effect of the asynchrony introduced by the scheduler, where the action that causes callbacks from the source sequence to be forwarded + may not execute immediately, despite the TimeSpan.Zero due time. + + + Errors produced by the source sequence are always forwarded to the result sequence, even if the error occurs before the . + + + + + + Skips elements for the specified duration from the end of the observable source sequence. + + The type of the elements in the source sequence. + Source sequence to skip elements for. + Duration for skipping elements from the end of the sequence. + An observable sequence with the elements skipped during the specified duration from the end of the source sequence. + is null. + is less than TimeSpan.Zero. + + This operator accumulates a queue with a length enough to store elements received during the initial window. + As more elements are received, elements older than the specified are taken from the queue and produced on the + result sequence. This causes elements to be delayed with . + + + + + Skips elements for the specified duration from the end of the observable source sequence, using the specified scheduler to run timers. + + The type of the elements in the source sequence. + Source sequence to skip elements for. + Duration for skipping elements from the end of the sequence. + Scheduler to run the timer on. + An observable sequence with the elements skipped during the specified duration from the end of the source sequence. + or is null. + is less than TimeSpan.Zero. + + This operator accumulates a queue with a length enough to store elements received during the initial window. + As more elements are received, elements older than the specified are taken from the queue and produced on the + result sequence. This causes elements to be delayed with . + + + + + Skips elements from the observable source sequence until the specified start time. + + The type of the elements in the source sequence. + Source sequence to skip elements for. + Time to start taking elements from the source sequence. If this value is less than or equal to DateTimeOffset.UtcNow, no elements will be skipped. + An observable sequence with the elements skipped until the specified start time. + is null. + + Errors produced by the source sequence are always forwarded to the result sequence, even if the error occurs before the . + + + + + Skips elements from the observable source sequence until the specified start time, using the specified scheduler to run timers. + + The type of the elements in the source sequence. + Source sequence to skip elements for. + Time to start taking elements from the source sequence. If this value is less than or equal to DateTimeOffset.UtcNow, no elements will be skipped. + Scheduler to run the timer on. + An observable sequence with the elements skipped until the specified start time. + or is null. + + Errors produced by the source sequence are always forwarded to the result sequence, even if the error occurs before the . + + + + + Takes elements for the specified duration from the start of the observable source sequence. + + The type of the elements in the source sequence. + Source sequence to take elements from. + Duration for taking elements from the start of the sequence. + An observable sequence with the elements taken during the specified duration from the start of the source sequence. + is null. + is less than TimeSpan.Zero. + + Specifying a TimeSpan.Zero value for doesn't guarantee an empty sequence will be returned. This is a side-effect + of the asynchrony introduced by the scheduler, where the action that stops forwarding callbacks from the source sequence may not execute + immediately, despite the TimeSpan.Zero due time. + + + + + Takes elements for the specified duration from the start of the observable source sequence, using the specified scheduler to run timers. + + The type of the elements in the source sequence. + Source sequence to take elements from. + Duration for taking elements from the start of the sequence. + Scheduler to run the timer on. + An observable sequence with the elements taken during the specified duration from the start of the source sequence. + or is null. + is less than TimeSpan.Zero. + + Specifying a TimeSpan.Zero value for doesn't guarantee an empty sequence will be returned. This is a side-effect + of the asynchrony introduced by the scheduler, where the action that stops forwarding callbacks from the source sequence may not execute + immediately, despite the TimeSpan.Zero due time. + + + + + Returns elements within the specified duration from the end of the observable source sequence. + + The type of the elements in the source sequence. + Source sequence to take elements from. + Duration for taking elements from the end of the sequence. + An observable sequence with the elements taken during the specified duration from the end of the source sequence. + is null. + is less than TimeSpan.Zero. + + This operator accumulates a buffer with a length enough to store elements for any window during the lifetime of + the source sequence. Upon completion of the source sequence, this buffer is drained on the result sequence. This causes the result elements + to be delayed with . + + + + + Returns elements within the specified duration from the end of the observable source sequence, using the specified scheduler to run timers. + + The type of the elements in the source sequence. + Source sequence to take elements from. + Duration for taking elements from the end of the sequence. + Scheduler to run the timer on. + An observable sequence with the elements taken during the specified duration from the end of the source sequence. + or is null. + is less than TimeSpan.Zero. + + This operator accumulates a buffer with a length enough to store elements for any window during the lifetime of + the source sequence. Upon completion of the source sequence, this buffer is drained on the result sequence. This causes the result elements + to be delayed with . + + + + + Returns elements within the specified duration from the end of the observable source sequence, using the specified schedulers to run timers and to drain the collected elements. + + The type of the elements in the source sequence. + Source sequence to take elements from. + Duration for taking elements from the end of the sequence. + Scheduler to run the timer on. + Scheduler to drain the collected elements. + An observable sequence with the elements taken during the specified duration from the end of the source sequence. + or or is null. + is less than TimeSpan.Zero. + + This operator accumulates a buffer with a length enough to store elements for any window during the lifetime of + the source sequence. Upon completion of the source sequence, this buffer is drained on the result sequence. This causes the result elements + to be delayed with . + + + + + Returns a list with the elements within the specified duration from the end of the observable source sequence. + + The type of the elements in the source sequence. + Source sequence to take elements from. + Duration for taking elements from the end of the sequence. + An observable sequence containing a single list with the elements taken during the specified duration from the end of the source sequence. + is null. + is less than TimeSpan.Zero. + + This operator accumulates a buffer with a length enough to store elements for any window during the lifetime of + the source sequence. Upon completion of the source sequence, this buffer is produced on the result sequence. + + + + + Returns a list with the elements within the specified duration from the end of the observable source sequence, using the specified scheduler to run timers. + + The type of the elements in the source sequence. + Source sequence to take elements from. + Duration for taking elements from the end of the sequence. + Scheduler to run the timer on. + An observable sequence containing a single list with the elements taken during the specified duration from the end of the source sequence. + or is null. + is less than TimeSpan.Zero. + + This operator accumulates a buffer with a length enough to store elements for any window during the lifetime of + the source sequence. Upon completion of the source sequence, this buffer is produced on the result sequence. + + + + + Takes elements for the specified duration until the specified end time. + + The type of the elements in the source sequence. + Source sequence to take elements from. + Time to stop taking elements from the source sequence. If this value is less than or equal to DateTimeOffset.UtcNow, the result stream will complete immediately. + An observable sequence with the elements taken until the specified end time. + is null. + + + + Takes elements for the specified duration until the specified end time, using the specified scheduler to run timers. + + The type of the elements in the source sequence. + Source sequence to take elements from. + Time to stop taking elements from the source sequence. If this value is less than or equal to DateTimeOffset.UtcNow, the result stream will complete immediately. + Scheduler to run the timer on. + An observable sequence with the elements taken until the specified end time. + or is null. + + + + Ignores elements from an observable sequence which are followed by another element within a specified relative time duration. + + The type of the elements in the source sequence. + Source sequence to throttle. + Throttling duration for each element. + The throttled sequence. + is null. + is less than TimeSpan.Zero. + + + This operator throttles the source sequence by holding on to each element for the duration specified in . If another + element is produced within this time window, the element is dropped and a new timer is started for the current element, repeating this whole + process. For streams that never have gaps larger than or equal to between elements, the resulting stream won't + produce any elements. In order to reduce the volume of a stream whilst guaranteeing the periodic production of elements, consider using the + Observable.Sample set of operators. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing throttling timers to be scheduled + that are due immediately. However, this doesn't guarantee all elements will be retained in the result sequence. This is a side-effect of the + asynchrony introduced by the scheduler, where the action to forward the current element may not execute immediately, despite the TimeSpan.Zero + due time. In such cases, the next element may arrive before the scheduler gets a chance to run the throttling action. + + + + + + Ignores elements from an observable sequence which are followed by another element within a specified relative time duration, using the specified scheduler to run throttling timers. + + The type of the elements in the source sequence. + Source sequence to throttle. + Throttling duration for each element. + Scheduler to run the throttle timers on. + The throttled sequence. + or is null. + is less than TimeSpan.Zero. + + + This operator throttles the source sequence by holding on to each element for the duration specified in . If another + element is produced within this time window, the element is dropped and a new timer is started for the current element, repeating this whole + process. For streams that never have gaps larger than or equal to between elements, the resulting stream won't + produce any elements. In order to reduce the volume of a stream whilst guaranteeing the periodic production of elements, consider using the + Observable.Sample set of operators. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing throttling timers to be scheduled + that are due immediately. However, this doesn't guarantee all elements will be retained in the result sequence. This is a side-effect of the + asynchrony introduced by the scheduler, where the action to forward the current element may not execute immediately, despite the TimeSpan.Zero + due time. In such cases, the next element may arrive before the scheduler gets a chance to run the throttling action. + + + + + + Ignores elements from an observable sequence which are followed by another value within a computed throttle duration. + + The type of the elements in the source sequence. + The type of the elements in the throttle sequences selected for each element in the source sequence. + Source sequence to throttle. + Selector function to retrieve a sequence indicating the throttle duration for each given element. + The throttled sequence. + or is null. + + This operator throttles the source sequence by holding on to each element for the duration denoted by . + If another element is produced within this time window, the element is dropped and a new timer is started for the current element, repeating this + whole process. For streams where the duration computed by applying the to each element overlaps with + the occurrence of the successor element, the resulting stream won't produce any elements. In order to reduce the volume of a stream whilst + guaranteeing the periodic production of elements, consider using the Observable.Sample set of operators. + + + + + Records the time interval between consecutive elements in an observable sequence. + + The type of the elements in the source sequence. + Source sequence to record time intervals for. + An observable sequence with time interval information on elements. + is null. + + + + Records the time interval between consecutive elements in an observable sequence, using the specified scheduler to compute time intervals. + + The type of the elements in the source sequence. + Source sequence to record time intervals for. + Scheduler used to compute time intervals. + An observable sequence with time interval information on elements. + or is null. + + + + Applies a timeout policy for each element in the observable sequence. + If the next element isn't received within the specified timeout duration starting from its predecessor, a TimeoutException is propagated to the observer. + + The type of the elements in the source sequence. + Source sequence to perform a timeout for. + Maximum duration between values before a timeout occurs. + The source sequence with a TimeoutException in case of a timeout. + is null. + is less than TimeSpan.Zero. + (Asynchronous) If no element is produced within from the previous element. + + + In case you only want to timeout on the first element, consider using the + operator applied to the source sequence and a delayed sequence. Alternatively, the general-purpose overload + of Timeout, can be used. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing timeout timers to be scheduled that are due + immediately. However, this doesn't guarantee a timeout will occur, even for the first element. This is a side-effect of the asynchrony introduced by the + scheduler, where the action to propagate a timeout may not execute immediately, despite the TimeSpan.Zero due time. In such cases, the next element may + arrive before the scheduler gets a chance to run the timeout action. + + + + + + Applies a timeout policy for each element in the observable sequence, using the specified scheduler to run timeout timers. + If the next element isn't received within the specified timeout duration starting from its predecessor, a TimeoutException is propagated to the observer. + + The type of the elements in the source sequence. + Source sequence to perform a timeout for. + Maximum duration between values before a timeout occurs. + Scheduler to run the timeout timers on. + The source sequence with a TimeoutException in case of a timeout. + or is null. + is less than TimeSpan.Zero. + (Asynchronous) If no element is produced within from the previous element. + + + In case you only want to timeout on the first element, consider using the + operator applied to the source sequence and a delayed sequence. Alternatively, the general-purpose overload + of Timeout, can be used. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing timeout timers to be scheduled that are due + immediately. However, this doesn't guarantee a timeout will occur, even for the first element. This is a side-effect of the asynchrony introduced by the + scheduler, where the action to propagate a timeout may not execute immediately, despite the TimeSpan.Zero due time. In such cases, the next element may + arrive before the scheduler gets a chance to run the timeout action. + + + + + + Applies a timeout policy for each element in the observable sequence. + If the next element isn't received within the specified timeout duration starting from its predecessor, the other observable sequence is used to produce future messages from that point on. + + The type of the elements in the source sequence and the other sequence used upon a timeout. + Source sequence to perform a timeout for. + Maximum duration between values before a timeout occurs. + Sequence to return in case of a timeout. + The source sequence switching to the other sequence in case of a timeout. + or is null. + is less than TimeSpan.Zero. + + + In case you only want to timeout on the first element, consider using the + operator applied to the source sequence and a delayed sequence. Alternatively, the general-purpose overload + of Timeout, can be used. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing timeout timers to be scheduled that are due + immediately. However, this doesn't guarantee a timeout will occur, even for the first element. This is a side-effect of the asynchrony introduced by the + scheduler, where the action to propagate a timeout may not execute immediately, despite the TimeSpan.Zero due time. In such cases, the next element may + arrive before the scheduler gets a chance to run the timeout action. + + + + + + Applies a timeout policy for each element in the observable sequence, using the specified scheduler to run timeout timers. + If the next element isn't received within the specified timeout duration starting from its predecessor, the other observable sequence is used to produce future messages from that point on. + + The type of the elements in the source sequence and the other sequence used upon a timeout. + Source sequence to perform a timeout for. + Maximum duration between values before a timeout occurs. + Sequence to return in case of a timeout. + Scheduler to run the timeout timers on. + The source sequence switching to the other sequence in case of a timeout. + or or is null. + is less than TimeSpan.Zero. + + + In case you only want to timeout on the first element, consider using the + operator applied to the source sequence and a delayed sequence. Alternatively, the general-purpose overload + of Timeout, can be used. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing timeout timers to be scheduled that are due + immediately. However, this doesn't guarantee a timeout will occur, even for the first element. This is a side-effect of the asynchrony introduced by the + scheduler, where the action to propagate a timeout may not execute immediately, despite the TimeSpan.Zero due time. In such cases, the next element may + arrive before the scheduler gets a chance to run the timeout action. + + + + + + Applies a timeout policy to the observable sequence based on an absolute time. + If the sequence doesn't terminate before the specified absolute due time, a TimeoutException is propagated to the observer. + + The type of the elements in the source sequence. + Source sequence to perform a timeout for. + Time when a timeout occurs. If this value is less than or equal to DateTimeOffset.UtcNow, the timeout occurs immediately. + The source sequence with a TimeoutException in case of a timeout. + is null. + (Asynchronous) If the sequence hasn't terminated before . + + In case you only want to timeout on the first element, consider using the + operator applied to the source sequence and a delayed sequence. Alternatively, the general-purpose overload + of Timeout, can be used. + + + + + Applies a timeout policy to the observable sequence based on an absolute time, using the specified scheduler to run timeout timers. + If the sequence doesn't terminate before the specified absolute due time, a TimeoutException is propagated to the observer. + + The type of the elements in the source sequence. + Source sequence to perform a timeout for. + Time when a timeout occurs. If this value is less than or equal to DateTimeOffset.UtcNow, the timeout occurs immediately. + Scheduler to run the timeout timers on. + The source sequence with a TimeoutException in case of a timeout. + or is null. + (Asynchronous) If the sequence hasn't terminated before . + + In case you only want to timeout on the first element, consider using the + operator applied to the source sequence and a delayed sequence. Alternatively, the general-purpose overload + of Timeout, can be used. + + + + + Applies a timeout policy to the observable sequence based on an absolute time. + If the sequence doesn't terminate before the specified absolute due time, the other observable sequence is used to produce future messages from that point on. + + The type of the elements in the source sequence and the other sequence used upon a timeout. + Source sequence to perform a timeout for. + Time when a timeout occurs. If this value is less than or equal to DateTimeOffset.UtcNow, the timeout occurs immediately. + Sequence to return in case of a timeout. + The source sequence switching to the other sequence in case of a timeout. + or is null. + + In case you only want to timeout on the first element, consider using the + operator applied to the source sequence and a delayed sequence. Alternatively, the general-purpose overload + of Timeout, can be used. + + + + + Applies a timeout policy to the observable sequence based on an absolute time, using the specified scheduler to run timeout timers. + If the sequence doesn't terminate before the specified absolute due time, the other observable sequence is used to produce future messages from that point on. + + The type of the elements in the source sequence and the other sequence used upon a timeout. + Source sequence to perform a timeout for. + Time when a timeout occurs. If this value is less than or equal to DateTimeOffset.UtcNow, the timeout occurs immediately. + Sequence to return in case of a timeout. + Scheduler to run the timeout timers on. + The source sequence switching to the other sequence in case of a timeout. + or or is null. + + In case you only want to timeout on the first element, consider using the + operator applied to the source sequence and a delayed sequence. Alternatively, the general-purpose overload + of Timeout, can be used. + + + + + Applies a timeout policy to the observable sequence based on a timeout duration computed for each element. + If the next element isn't received within the computed duration starting from its predecessor, a TimeoutException is propagated to the observer. + + The type of the elements in the source sequence. + The type of the elements in the timeout sequences used to indicate the timeout duration for each element in the source sequence. + Source sequence to perform a timeout for. + Selector to retrieve an observable sequence that represents the timeout between the current element and the next element. + The source sequence with a TimeoutException in case of a timeout. + or is null. + + + + Applies a timeout policy to the observable sequence based on a timeout duration computed for each element. + If the next element isn't received within the computed duration starting from its predecessor, the other observable sequence is used to produce future messages from that point on. + + The type of the elements in the source sequence and the other sequence used upon a timeout. + The type of the elements in the timeout sequences used to indicate the timeout duration for each element in the source sequence. + Source sequence to perform a timeout for. + Selector to retrieve an observable sequence that represents the timeout between the current element and the next element. + Sequence to return in case of a timeout. + The source sequence switching to the other sequence in case of a timeout. + or or is null. + + + + Applies a timeout policy to the observable sequence based on an initial timeout duration for the first element, and a timeout duration computed for each subsequent element. + If the next element isn't received within the computed duration starting from its predecessor, a TimeoutException is propagated to the observer. + + The type of the elements in the source sequence. + The type of the elements in the timeout sequences used to indicate the timeout duration for each element in the source sequence. + Source sequence to perform a timeout for. + Observable sequence that represents the timeout for the first element. + Selector to retrieve an observable sequence that represents the timeout between the current element and the next element. + The source sequence with a TimeoutException in case of a timeout. + or or is null. + + + + Applies a timeout policy to the observable sequence based on an initial timeout duration for the first element, and a timeout duration computed for each subsequent element. + If the next element isn't received within the computed duration starting from its predecessor, the other observable sequence is used to produce future messages from that point on. + + The type of the elements in the source sequence and the other sequence used upon a timeout. + The type of the elements in the timeout sequences used to indicate the timeout duration for each element in the source sequence. + Source sequence to perform a timeout for. + Observable sequence that represents the timeout for the first element. + Selector to retrieve an observable sequence that represents the timeout between the current element and the next element. + Sequence to return in case of a timeout. + The source sequence switching to the other sequence in case of a timeout. + or or or is null. + + + + Returns an observable sequence that produces a single value after the specified relative due time has elapsed. + + Relative time at which to produce the value. If this value is less than or equal to TimeSpan.Zero, the timer will fire as soon as possible. + An observable sequence that produces a value after the due time has elapsed. + + + + Returns an observable sequence that produces a single value at the specified absolute due time. + + Absolute time at which to produce the value. If this value is less than or equal to DateTimeOffset.UtcNow, the timer will fire as soon as possible. + An observable sequence that produces a value at due time. + + + + Returns an observable sequence that periodically produces a value after the specified initial relative due time has elapsed. + + Relative time at which to produce the first value. If this value is less than or equal to TimeSpan.Zero, the timer will fire as soon as possible. + Period to produce subsequent values. If this value is equal to TimeSpan.Zero, the timer will recur as fast as possible. + An observable sequence that produces a value after due time has elapsed and then after each period. + is less than TimeSpan.Zero. + + + + Returns an observable sequence that periodically produces a value starting at the specified initial absolute due time. + + Absolute time at which to produce the first value. If this value is less than or equal to DateTimeOffset.UtcNow, the timer will fire as soon as possible. + Period to produce subsequent values. If this value is equal to TimeSpan.Zero, the timer will recur as fast as possible. + An observable sequence that produces a value at due time and then after each period. + is less than TimeSpan.Zero. + + + + Returns an observable sequence that produces a single value after the specified relative due time has elapsed, using the specified scheduler to run the timer. + + Relative time at which to produce the value. If this value is less than or equal to TimeSpan.Zero, the timer will fire as soon as possible. + Scheduler to run the timer on. + An observable sequence that produces a value after the due time has elapsed. + is null. + + + + Returns an observable sequence that produces a single value at the specified absolute due time, using the specified scheduler to run the timer. + + Absolute time at which to produce the value. If this value is less than or equal to DateTimeOffset.UtcNow, the timer will fire as soon as possible. + Scheduler to run the timer on. + An observable sequence that produces a value at due time. + is null. + + + + Returns an observable sequence that periodically produces a value after the specified initial relative due time has elapsed, using the specified scheduler to run timers. + + Relative time at which to produce the first value. If this value is less than or equal to TimeSpan.Zero, the timer will fire as soon as possible. + Period to produce subsequent values. If this value is equal to TimeSpan.Zero, the timer will recur as fast as possible. + Scheduler to run timers on. + An observable sequence that produces a value after due time has elapsed and then each period. + is less than TimeSpan.Zero. + is null. + + + + Returns an observable sequence that periodically produces a value starting at the specified initial absolute due time, using the specified scheduler to run timers. + + Absolute time at which to produce the first value. If this value is less than or equal to DateTimeOffset.UtcNow, the timer will fire as soon as possible. + Period to produce subsequent values. If this value is equal to TimeSpan.Zero, the timer will recur as fast as possible. + Scheduler to run timers on. + An observable sequence that produces a value at due time and then after each period. + is less than TimeSpan.Zero. + is null. + + + + Timestamps each element in an observable sequence using the local system clock. + + The type of the elements in the source sequence. + Source sequence to timestamp elements for. + An observable sequence with timestamp information on elements. + is null. + + + + Timestamp each element in an observable sequence using the clock of the specified scheduler. + + The type of the elements in the source sequence. + Source sequence to timestamp elements for. + Scheduler used to compute timestamps. + An observable sequence with timestamp information on elements. + or is null. + + + + Projects each element of an observable sequence into consecutive non-overlapping windows which are produced based on timing information. + + The type of the elements in the source sequence, and in the windows in the result sequence. + Source sequence to produce windows over. + Length of each window. + The sequence of windows. + is null. + is less than TimeSpan.Zero. + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create windows as fast as it can. + Because all source sequence elements end up in one of the windows, some windows won't have a zero time span. This is a side-effect of the asynchrony introduced + by the scheduler, where the action to close the current window and to create a new window may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Projects each element of an observable sequence into consecutive non-overlapping windows which are produced based on timing information, using the specified scheduler to run timers. + + The type of the elements in the source sequence, and in the windows in the result sequence. + Source sequence to produce windows over. + Length of each window. + Scheduler to run windowing timers on. + An observable sequence of windows. + or is null. + is less than TimeSpan.Zero. + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create windows as fast as it can. + Because all source sequence elements end up in one of the windows, some windows won't have a zero time span. This is a side-effect of the asynchrony introduced + by the scheduler, where the action to close the current window and to create a new window may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Projects each element of an observable sequence into zero or more windows which are produced based on timing information. + + The type of the elements in the source sequence, and in the windows in the result sequence. + Source sequence to produce windows over. + Length of each window. + Interval between creation of consecutive windows. + An observable sequence of windows. + is null. + or is less than TimeSpan.Zero. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create windows with minimum duration + length. However, some windows won't have a zero time span. This is a side-effect of the asynchrony introduced by the scheduler, where the action to close the + current window may not execute immediately, despite the TimeSpan.Zero due time. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create windows as fast as it can. + However, this doesn't mean all windows will start at the beginning of the source sequence. This is a side-effect of the asynchrony introduced by the scheduler, + where the action to create a new window may not execute immediately, despite the TimeSpan.Zero due time. + + + + + + Projects each element of an observable sequence into zero or more windows which are produced based on timing information, using the specified scheduler to run timers. + + The type of the elements in the source sequence, and in the windows in the result sequence. + Source sequence to produce windows over. + Length of each window. + Interval between creation of consecutive windows. + Scheduler to run windowing timers on. + An observable sequence of windows. + or is null. + or is less than TimeSpan.Zero. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create windows with minimum duration + length. However, some windows won't have a zero time span. This is a side-effect of the asynchrony introduced by the scheduler, where the action to close the + current window may not execute immediately, despite the TimeSpan.Zero due time. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create windows as fast as it can. + However, this doesn't mean all windows will start at the beginning of the source sequence. This is a side-effect of the asynchrony introduced by the scheduler, + where the action to create a new window may not execute immediately, despite the TimeSpan.Zero due time. + + + + + + Projects each element of an observable sequence into a window that is completed when either it's full or a given amount of time has elapsed. + A useful real-world analogy of this overload is the behavior of a ferry leaving the dock when all seats are taken, or at the scheduled time of departure, whichever event occurs first. + + The type of the elements in the source sequence, and in the windows in the result sequence. + Source sequence to produce windows over. + Maximum time length of a window. + Maximum element count of a window. + An observable sequence of windows. + is null. + is less than TimeSpan.Zero. -or- is less than or equal to zero. + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create windows as fast as it can. + Because all source sequence elements end up in one of the windows, some windows won't have a zero time span. This is a side-effect of the asynchrony introduced + by the scheduler, where the action to close the current window and to create a new window may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Projects each element of an observable sequence into a window that is completed when either it's full or a given amount of time has elapsed, using the specified scheduler to run timers. + A useful real-world analogy of this overload is the behavior of a ferry leaving the dock when all seats are taken, or at the scheduled time of departure, whichever event occurs first. + + The type of the elements in the source sequence, and in the windows in the result sequence. + Source sequence to produce windows over. + Maximum time length of a window. + Maximum element count of a window. + Scheduler to run windowing timers on. + An observable sequence of windows. + or is null. + is less than TimeSpan.Zero. -or- is less than or equal to zero. + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create windows as fast as it can. + Because all source sequence elements end up in one of the windows, some windows won't have a zero time span. This is a side-effect of the asynchrony introduced + by the scheduler, where the action to close the current window and to create a new window may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Provides a set of static methods for writing in-memory queries over observable sequences. + + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + First observable source. + Second observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + First observable source. + Second observable source. + Third observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or is null. + + + + Merges two observable sequences into one observable sequence by combining each element from the first source with the latest element from the second source, if any. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + First observable source. + Second observable source. + An observable sequence containing the result of combining each element of the first source with the latest element from the second source, if any, as a tuple value. + or is null. + + + + Merges an observable sequence and an enumerable sequence into one observable sequence of tuple values. + + The type of the elements in the first observable source sequence. + The type of the elements in the second enumerable source sequence. + First observable source. + Second enumerable source. + An observable sequence containing the result of pairwise combining the elements of the first and second source as a tuple value. + or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + First observable source. + Second observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + First observable source. + Second observable source. + Third observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or is null. + + + + Subscribes to each observable sequence returned by the iteratorMethod in sequence and returns the observable sequence of values sent to the observer given to the iteratorMethod. + + The type of the elements in the produced sequence. + Iterator method that produces elements in the resulting sequence by calling the given observer. + An observable sequence obtained by running the iterator and returning the elements that were sent to the observer. + is null. + + + + Subscribes to each observable sequence returned by the iteratorMethod in sequence and produces a Unit value on the resulting sequence for each step of the iteration. + + Iterator method that drives the resulting observable sequence. + An observable sequence obtained by running the iterator and returning Unit values for each iteration step. + is null. + + + + Expands an observable sequence by recursively invoking selector, using the specified scheduler to enumerate the queue of obtained sequences. + + The type of the elements in the source sequence and each of the recursively expanded sources obtained by running the selector function. + Source sequence with the initial elements. + Selector function to invoke for each produced element, resulting in another sequence to which the selector will be invoked recursively again. + Scheduler on which to perform the expansion by enumerating the internal queue of obtained sequences. + An observable sequence containing all the elements produced by the recursive expansion. + or or is null. + + + + Expands an observable sequence by recursively invoking selector. + + The type of the elements in the source sequence and each of the recursively expanded sources obtained by running the selector function. + Source sequence with the initial elements. + Selector function to invoke for each produced element, resulting in another sequence to which the selector will be invoked recursively again. + An observable sequence containing all the elements produced by the recursive expansion. + or is null. + + + + Runs two observable sequences in parallel and combines their last elements. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable sequence. + Second observable sequence. + Result selector function to invoke with the last elements of both sequences. + An observable sequence with the result of calling the selector function with the last elements of both input sequences. + or or is null. + + + + Runs all specified observable sequences in parallel and collects their last elements. + + The type of the elements in the source sequences. + Observable sequence to collect the last elements for. + An observable sequence with an array collecting the last elements of all the input sequences. + is null. + + + + Runs all observable sequences in the enumerable sources sequence in parallel and collect their last elements. + + The type of the elements in the source sequences. + Observable sequence to collect the last elements for. + An observable sequence with an array collecting the last elements of all the input sequences. + is null. + + + + Returns an observable sequence that is the result of invoking the selector on the source sequence, without sharing subscriptions. + This operator allows for a fluent style of writing queries that use the same sequence multiple times. + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence that will be shared in the selector function. + Selector function which can use the source sequence as many times as needed, without sharing subscriptions to the source sequence. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + or is null. + + + + Comonadic bind operator. + + + + + Comonadic bind operator. + + + + + Immediately subscribes to source and retains the elements in the observable sequence. + + The type of the elements in the source sequence. + Source sequence. + Object that's both an observable sequence and a list which can be used to access the source sequence's elements. + is null. + + + + Provides a set of static methods for writing queries over observable sequences, allowing translation to a target query language. + + + + + Gets the local query provider which will retarget Qbservable-based queries to the corresponding Observable-based query for in-memory execution upon subscription. + + + + + Converts an in-memory observable sequence into an sequence with an expression tree representing the source sequence. + + The type of the elements in the source sequence. + Source sequence. + sequence representing the given observable source sequence. + is null. + + + + Returns the input typed as an . + This operator is used to separate the part of the query that's captured as an expression tree from the part that's executed locally. + + The type of the elements in the source sequence. + An sequence to convert to an sequence. + The original source object, but typed as an . + is null. + + + + Converts an enumerable sequence to an observable sequence. + + The type of the elements in the source sequence. + Enumerable sequence to convert to an observable sequence. + The observable sequence whose elements are pulled from the given enumerable sequence. + is null. + This operator requires the source's object (see ) to implement . + + + + Converts an enumerable sequence to an observable sequence, using the specified scheduler to run the enumeration loop. + + The type of the elements in the source sequence. + Enumerable sequence to convert to an observable sequence. + Scheduler to run the enumeration of the input sequence on. + The observable sequence whose elements are pulled from the given enumerable sequence. + or is null. + This operator requires the source's object (see ) to implement . + + + + Applies an accumulator function over an observable sequence, returning the result of the aggregation as a single element in the result sequence. + For aggregation behavior with incremental intermediate results, see . + + The type of the elements in the source sequence and the result of the aggregation. + An observable sequence to aggregate over. + An accumulator function to be invoked on each element. + An observable sequence containing a single element with the final accumulator value. + + or is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Applies an accumulator function over an observable sequence, returning the result of the aggregation as a single element in the result sequence. The specified seed value is used as the initial accumulator value. + For aggregation behavior with incremental intermediate results, see . + + The type of the elements in the source sequence. + The type of the result of the aggregation. + An observable sequence to aggregate over. + The initial accumulator value. + An accumulator function to be invoked on each element. + An observable sequence containing a single element with the final accumulator value. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Applies an accumulator function over an observable sequence, returning the result of the aggregation as a single element in the result sequence. The specified seed value is used as the initial accumulator value, + and the specified result selector function is used to select the result value. + + The type of the elements in the source sequence. + The type of the accumulator value. + The type of the resulting value. + An observable sequence to aggregate over. + The initial accumulator value. + An accumulator function to be invoked on each element. + A function to transform the final accumulator value into the result value. + An observable sequence containing a single element with the final accumulator value. + + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Determines whether all elements of an observable sequence satisfy a condition. + + The type of the elements in the source sequence. + An observable sequence whose elements to apply the predicate to. + A function to test each element for a condition. + An observable sequence containing a single element determining whether all elements in the source sequence pass the test in the specified predicate. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Propagates the observable sequence that reacts first. + + The type of the elements in the source sequences. + First observable sequence. + Second observable sequence. + An observable sequence that surfaces either of the given sequences, whichever reacted first. + + or is null. + + + + Propagates the observable sequence that reacts first. + + Query provider used to construct the data source. + The type of the elements in the source sequences. + Observable sources competing to react first. + An observable sequence that surfaces any of the given sequences, whichever reacted first. + + is null. + + + + Propagates the observable sequence that reacts first. + + Query provider used to construct the data source. + The type of the elements in the source sequences. + Observable sources competing to react first. + An observable sequence that surfaces any of the given sequences, whichever reacted first. + + is null. + + + + Determines whether an observable sequence contains any elements. + + The type of the elements in the source sequence. + An observable sequence to check for non-emptiness. + An observable sequence containing a single element determining whether the source sequence contains any elements. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Determines whether any element of an observable sequence satisfies a condition. + + The type of the elements in the source sequence. + An observable sequence whose elements to apply the predicate to. + A function to test each element for a condition. + An observable sequence containing a single element determining whether any elements in the source sequence pass the test in the specified predicate. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Append a value to an observable sequence. + + The type of the elements in the source sequence. + Source sequence to append the value to. + Value to append to the specified sequence. + The source sequence appended with the specified value. + + is null. + + + + Append a value to an observable sequence. + + The type of the elements in the source sequence. + Source sequence to append the value to. + Value to append to the specified sequence. + Scheduler to emit the append values on. + The source sequence appended with the specified value. + + is null. + + + + Automatically connect the upstream IConnectableObservable at most once when the + specified number of IObservers have subscribed to this IObservable. + + Query provider used to construct the data source. + The type of the elements in the source sequence. + Connectable observable sequence. + The number of observers required to subscribe before the connection to source happens, non-positive value will trigger an immediate subscription. + If not null, the connection's IDisposable is provided to it. + An observable sequence that connects to the source at most once when the given number of observers have subscribed to it. + + is null. + + + + Computes the average of an observable sequence of values. + + A sequence of values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values. + + is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values. + + A sequence of values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values. + + is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values. + + A sequence of values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values. + + is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values. + + A sequence of values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values. + + is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of nullable values. + + A sequence of nullable values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + + is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of nullable values. + + A sequence of nullable values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + + is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of nullable values. + + A sequence of nullable values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + + is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + (Asynchronous) The sum of the elements in the source sequence is larger than . + + + + Computes the average of an observable sequence of nullable values. + + A sequence of nullable values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + + is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of nullable values. + + A sequence of nullable values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + + is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values. + + A sequence of values to calculate the average of. + An observable sequence containing a single element with the average of the sequence of values. + + is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values. + + or is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values. + + or is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values. + + or is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values. + + or is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values. + + or is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + + or is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + + or is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + + or is null. + (Asynchronous) The source sequence is empty. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + + or is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the average of an observable sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values to calculate the average of. + A transform function to apply to each element. + An observable sequence containing a single element with the average of the sequence of values, or null if the source sequence is empty or contains only values that are null. + + or is null. + (Asynchronous) The source sequence is empty. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Projects each element of an observable sequence into consecutive non-overlapping buffers which are produced based on element count information. + + The type of the elements in the source sequence, and in the lists in the result sequence. + Source sequence to produce buffers over. + Length of each buffer. + An observable sequence of buffers. + + is null. + + is less than or equal to zero. + + + + Projects each element of an observable sequence into zero or more buffers which are produced based on element count information. + + The type of the elements in the source sequence, and in the lists in the result sequence. + Source sequence to produce buffers over. + Length of each buffer. + Number of elements to skip between creation of consecutive buffers. + An observable sequence of buffers. + + is null. + + or is less than or equal to zero. + + + + Projects each element of an observable sequence into consecutive non-overlapping buffers which are produced based on timing information. + + The type of the elements in the source sequence, and in the lists in the result sequence. + Source sequence to produce buffers over. + Length of each buffer. + An observable sequence of buffers. + + is null. + + is less than TimeSpan.Zero. + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create buffers as fast as it can. + Because all source sequence elements end up in one of the buffers, some buffers won't have a zero time span. This is a side-effect of the asynchrony introduced + by the scheduler, where the action to close the current buffer and to create a new buffer may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Projects each element of an observable sequence into a buffer that's sent out when either it's full or a given amount of time has elapsed. + A useful real-world analogy of this overload is the behavior of a ferry leaving the dock when all seats are taken, or at the scheduled time of departure, whichever event occurs first. + + The type of the elements in the source sequence, and in the lists in the result sequence. + Source sequence to produce buffers over. + Maximum time length of a window. + Maximum element count of a window. + An observable sequence of buffers. + + is null. + + is less than TimeSpan.Zero. -or- is less than or equal to zero. + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create buffers as fast as it can. + Because all source sequence elements end up in one of the buffers, some buffers won't have a zero time span. This is a side-effect of the asynchrony introduced + by the scheduler, where the action to close the current buffer and to create a new buffer may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Projects each element of an observable sequence into a buffer that's sent out when either it's full or a given amount of time has elapsed, using the specified scheduler to run timers. + A useful real-world analogy of this overload is the behavior of a ferry leaving the dock when all seats are taken, or at the scheduled time of departure, whichever event occurs first. + + The type of the elements in the source sequence, and in the lists in the result sequence. + Source sequence to produce buffers over. + Maximum time length of a buffer. + Maximum element count of a buffer. + Scheduler to run buffering timers on. + An observable sequence of buffers. + + or is null. + + is less than TimeSpan.Zero. -or- is less than or equal to zero. + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create buffers as fast as it can. + Because all source sequence elements end up in one of the buffers, some buffers won't have a zero time span. This is a side-effect of the asynchrony introduced + by the scheduler, where the action to close the current buffer and to create a new buffer may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Projects each element of an observable sequence into consecutive non-overlapping buffers which are produced based on timing information, using the specified scheduler to run timers. + + The type of the elements in the source sequence, and in the lists in the result sequence. + Source sequence to produce buffers over. + Length of each buffer. + Scheduler to run buffering timers on. + An observable sequence of buffers. + + or is null. + + is less than TimeSpan.Zero. + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create buffers as fast as it can. + Because all source sequence elements end up in one of the buffers, some buffers won't have a zero time span. This is a side-effect of the asynchrony introduced + by the scheduler, where the action to close the current buffer and to create a new buffer may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Projects each element of an observable sequence into zero or more buffers which are produced based on timing information. + + The type of the elements in the source sequence, and in the lists in the result sequence. + Source sequence to produce buffers over. + Length of each buffer. + Interval between creation of consecutive buffers. + An observable sequence of buffers. + + is null. + + or is less than TimeSpan.Zero. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create buffers with minimum duration + length. However, some buffers won't have a zero time span. This is a side-effect of the asynchrony introduced by the scheduler, where the action to close the + current buffer may not execute immediately, despite the TimeSpan.Zero due time. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create buffers as fast as it can. + However, this doesn't mean all buffers will start at the beginning of the source sequence. This is a side-effect of the asynchrony introduced by the scheduler, + where the action to create a new buffer may not execute immediately, despite the TimeSpan.Zero due time. + + + + + + Projects each element of an observable sequence into zero or more buffers which are produced based on timing information, using the specified scheduler to run timers. + + The type of the elements in the source sequence, and in the lists in the result sequence. + Source sequence to produce buffers over. + Length of each buffer. + Interval between creation of consecutive buffers. + Scheduler to run buffering timers on. + An observable sequence of buffers. + + or is null. + + or is less than TimeSpan.Zero. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create buffers with minimum duration + length. However, some buffers won't have a zero time span. This is a side-effect of the asynchrony introduced by the scheduler, where the action to close the + current buffer may not execute immediately, despite the TimeSpan.Zero due time. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create buffers as fast as it can. + However, this doesn't mean all buffers will start at the beginning of the source sequence. This is a side-effect of the asynchrony introduced by the scheduler, + where the action to create a new buffer may not execute immediately, despite the TimeSpan.Zero due time. + + + + + + Projects each element of an observable sequence into consecutive non-overlapping buffers. + + The type of the elements in the source sequence, and in the lists in the result sequence. + The type of the elements in the sequences indicating buffer boundary events. + Source sequence to produce buffers over. + Sequence of buffer boundary markers. The current buffer is closed and a new buffer is opened upon receiving a boundary marker. + An observable sequence of buffers. + + or is null. + + + + Projects each element of an observable sequence into consecutive non-overlapping buffers. + + The type of the elements in the source sequence, and in the lists in the result sequence. + The type of the elements in the sequences indicating buffer closing events. + Source sequence to produce buffers over. + A function invoked to define the boundaries of the produced buffers. A new buffer is started when the previous one is closed. + An observable sequence of buffers. + + or is null. + + + + Projects each element of an observable sequence into zero or more buffers. + + The type of the elements in the source sequence, and in the lists in the result sequence. + The type of the elements in the sequence indicating buffer opening events, also passed to the closing selector to obtain a sequence of buffer closing events. + The type of the elements in the sequences indicating buffer closing events. + Source sequence to produce buffers over. + Observable sequence whose elements denote the creation of new buffers. + A function invoked to define the closing of each produced buffer. + An observable sequence of buffers. + + or or is null. + + + + Uses to determine which source in to return, choosing an empty sequence if no match is found. + + Query provider used to construct the data source. + The type of the value returned by the selector function, used to look up the resulting source. + The type of the elements in the result sequence. + Selector function invoked to determine the source to lookup in the dictionary. + Dictionary of sources to select from based on the invocation result. + The observable sequence retrieved from the dictionary based on the invocation result, or an empty sequence if no match is found. + + or is null. + + + + Uses to determine which source in to return, choosing if no match is found. + + Query provider used to construct the data source. + The type of the value returned by the selector function, used to look up the resulting source. + The type of the elements in the result sequence. + Selector function invoked to determine the source to lookup in the dictionary. + Dictionary of sources to select from based on the invocation result. + Default source to select in case no matching source in is found. + The observable sequence retrieved from the dictionary based on the invocation result, or if no match is found. + + or or is null. + + + + Uses to determine which source in to return, choosing an empty sequence on the specified scheduler if no match is found. + + Query provider used to construct the data source. + The type of the value returned by the selector function, used to look up the resulting source. + The type of the elements in the result sequence. + Selector function invoked to determine the source to lookup in the dictionary. + Dictionary of sources to select from based on the invocation result. + Scheduler to generate an empty sequence on in case no matching source in is found. + The observable sequence retrieved from the dictionary based on the invocation result, or an empty sequence if no match is found. + + or or is null. + + + + Converts the elements of an observable sequence to the specified type. + + The type to convert the elements in the source sequence to. + The observable sequence that contains the elements to be converted. + An observable sequence that contains each element of the source sequence converted to the specified type. + + is null. + + + + Continues an observable sequence that is terminated by an exception with the next observable sequence. + + The type of the elements in the source sequence and handler sequence. + First observable sequence whose exception (if any) is caught. + Second observable sequence used to produce results when an error occurred in the first sequence. + An observable sequence containing the first sequence's elements, followed by the elements of the second sequence in case an exception occurred. + + or is null. + + + + Continues an observable sequence that is terminated by an exception with the next observable sequence. + + Query provider used to construct the data source. + The type of the elements in the source and handler sequences. + Observable sequences to catch exceptions for. + An observable sequence containing elements from consecutive source sequences until a source sequence terminates successfully. + + is null. + + + + Continues an observable sequence that is terminated by an exception with the next observable sequence. + + Query provider used to construct the data source. + The type of the elements in the source and handler sequences. + Observable sequences to catch exceptions for. + An observable sequence containing elements from consecutive source sequences until a source sequence terminates successfully. + + is null. + + + + Continues an observable sequence that is terminated by an exception of the specified type with the observable sequence produced by the handler. + + The type of the elements in the source sequence and sequences returned by the exception handler function. + The type of the exception to catch and handle. Needs to derive from . + Source sequence. + Exception handler function, producing another observable sequence. + An observable sequence containing the source sequence's elements, followed by the elements produced by the handler's resulting observable sequence in case an exception occurred. + + or is null. + + + + Produces an enumerable sequence of consecutive (possibly empty) chunks of the source sequence. + + The type of the elements in the source sequence. + Source observable sequence. + The enumerable sequence that returns consecutive (possibly empty) chunks upon each iteration. + + is null. + This operator requires the source's object (see ) to implement . + + + + Produces an enumerable sequence that returns elements collected/aggregated from the source sequence between consecutive iterations. + + The type of the elements in the source sequence. + The type of the elements produced by the merge operation during collection. + Source observable sequence. + Factory to create the initial collector object. + Merges a sequence element with the current collector. + Factory to replace the current collector by a new collector. + The enumerable sequence that returns collected/aggregated elements from the source sequence upon each iteration. + + or or or is null. + This operator requires the source's object (see ) to implement . + + + + Produces an enumerable sequence that returns elements collected/aggregated from the source sequence between consecutive iterations. + + The type of the elements in the source sequence. + The type of the elements produced by the merge operation during collection. + Source observable sequence. + Factory to create a new collector object. + Merges a sequence element with the current collector. + The enumerable sequence that returns collected/aggregated elements from the source sequence upon each iteration. + + or or is null. + This operator requires the source's object (see ) to implement . + + + + Merges the specified observable sequences into one observable sequence by emitting a list with the latest source elements whenever any of the observable sequences produces an element. + + Query provider used to construct the data source. + The type of the elements in the source sequences, and in the lists in the result sequence. + Observable sources. + An observable sequence containing lists of the latest elements of the sources. + + is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by emitting a list with the latest source elements whenever any of the observable sequences produces an element. + + Query provider used to construct the data source. + The type of the elements in the source sequences, and in the lists in the result sequence. + Observable sources. + An observable sequence containing lists of the latest elements of the sources. + + is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + Query provider used to construct the data source. + The type of the elements in the source sequences. + The type of the elements in the result sequence, returned by the selector function. + Observable sources. + Function to invoke whenever any of the sources produces an element. For efficiency, the input list is reused after the selector returns. Either aggregate or copy the values during the function call. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges two observable sequences into one observable sequence by using the selector function whenever one of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Function to invoke whenever either of the sources produces an element. + An observable sequence containing the result of combining elements of both sources using the specified result selector function. + + or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Fourteenth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the fifteenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Fourteenth observable source. + Fifteenth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or or or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the fifteenth source sequence. + The type of the elements in the sixteenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Fourteenth observable source. + Fifteenth observable source. + Sixteenth observable source. + Function to invoke whenever any of the sources produces an element. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or or or or or or or or or or is null. + If a non-empty source completes, its very last value will be used for creating subsequent combinations until all sources terminate. + + + + Concatenates the second observable sequence to the first observable sequence upon successful termination of the first. + + The type of the elements in the source sequences. + First observable sequence. + Second observable sequence. + An observable sequence that contains the elements of the first sequence, followed by those of the second the sequence. + + or is null. + + + + Concatenates all of the specified observable sequences, as long as the previous observable sequence terminated successfully. + + Query provider used to construct the data source. + The type of the elements in the source sequences. + Observable sequences to concatenate. + An observable sequence that contains the elements of each given sequence, in sequential order. + + is null. + + + + Concatenates all observable sequences in the given enumerable sequence, as long as the previous observable sequence terminated successfully. + + Query provider used to construct the data source. + The type of the elements in the source sequences. + Observable sequences to concatenate. + An observable sequence that contains the elements of each given sequence, in sequential order. + + is null. + + + + Concatenates all inner observable sequences, as long as the previous observable sequence terminated successfully. + + The type of the elements in the source sequences. + Observable sequence of inner observable sequences. + An observable sequence that contains the elements of each observed inner sequence, in sequential order. + + is null. + + + + Concatenates all task results, as long as the previous task terminated successfully. + + The type of the results produced by the tasks. + Observable sequence of tasks. + An observable sequence that contains the results of each task, in sequential order. + + is null. + If the tasks support cancellation, consider manual conversion of the tasks using , followed by a concatenation operation using . + + + + Determines whether an observable sequence contains a specified element by using the default equality comparer. + + The type of the elements in the source sequence. + An observable sequence in which to locate a value. + The value to locate in the source sequence. + An observable sequence containing a single element determining whether the source sequence contains an element that has the specified value. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Determines whether an observable sequence contains a specified element by using a specified System.Collections.Generic.IEqualityComparer{T}. + + The type of the elements in the source sequence. + An observable sequence in which to locate a value. + The value to locate in the source sequence. + An equality comparer to compare elements. + An observable sequence containing a single element determining whether the source sequence contains an element that has the specified value. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns an observable sequence containing an that represents the total number of elements in an observable sequence. + + The type of the elements in the source sequence. + An observable sequence that contains elements to be counted. + An observable sequence containing a single element with the number of elements in the input sequence. + + is null. + (Asynchronous) The number of elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns an observable sequence containing an that represents how many elements in the specified observable sequence satisfy a condition. + + The type of the elements in the source sequence. + An observable sequence that contains elements to be counted. + A function to test each element for a condition. + An observable sequence containing a single element with a number that represents how many elements in the input sequence satisfy the condition in the predicate function. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates an observable sequence from a specified Subscribe method implementation. + + Query provider used to construct the data source. + The type of the elements in the produced sequence. + Implementation of the resulting observable sequence's Subscribe method. + The observable sequence with the specified implementation for the Subscribe method. + + is null. + + Use of this operator is preferred over manual implementation of the interface. In case + you need a type implementing rather than an anonymous implementation, consider using + the abstract base class. + + + + + Creates an observable sequence from a specified Subscribe method implementation. + + Query provider used to construct the data source. + The type of the elements in the produced sequence. + Implementation of the resulting observable sequence's Subscribe method, returning an Action delegate that will be wrapped in an IDisposable. + The observable sequence with the specified implementation for the Subscribe method. + + is null. + + Use of this operator is preferred over manual implementation of the interface. In case + you need a type implementing rather than an anonymous implementation, consider using + the abstract base class. + + + + + Creates an observable sequence from a specified cancellable asynchronous Subscribe method. + The CancellationToken passed to the asynchronous Subscribe method is tied to the returned disposable subscription, allowing best-effort cancellation. + + Query provider used to construct the data source. + The type of the elements in the produced sequence. + Asynchronous method used to produce elements. + The observable sequence surfacing the elements produced by the asynchronous method. + + is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + When a subscription to the resulting sequence is disposed, the CancellationToken that was fed to the asynchronous subscribe function will be signaled. + + + + Creates an observable sequence from a specified asynchronous Subscribe method. + + Query provider used to construct the data source. + The type of the elements in the produced sequence. + Asynchronous method used to produce elements. + The observable sequence surfacing the elements produced by the asynchronous method. + + is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + + + + Creates an observable sequence from a specified cancellable asynchronous Subscribe method. + The CancellationToken passed to the asynchronous Subscribe method is tied to the returned disposable subscription, allowing best-effort cancellation. + + Query provider used to construct the data source. + The type of the elements in the produced sequence. + Asynchronous method used to implement the resulting sequence's Subscribe method. + The observable sequence with the specified implementation for the Subscribe method. + + is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + When a subscription to the resulting sequence is disposed, the CancellationToken that was fed to the asynchronous subscribe function will be signaled. + + + + Creates an observable sequence from a specified asynchronous Subscribe method. + + Query provider used to construct the data source. + The type of the elements in the produced sequence. + Asynchronous method used to implement the resulting sequence's Subscribe method. + The observable sequence with the specified implementation for the Subscribe method. + + is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + + + + Creates an observable sequence from a specified cancellable asynchronous Subscribe method. + The CancellationToken passed to the asynchronous Subscribe method is tied to the returned disposable subscription, allowing best-effort cancellation. + + Query provider used to construct the data source. + The type of the elements in the produced sequence. + Asynchronous method used to implement the resulting sequence's Subscribe method, returning an Action delegate that will be wrapped in an IDisposable. + The observable sequence with the specified implementation for the Subscribe method. + + is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + When a subscription to the resulting sequence is disposed, the CancellationToken that was fed to the asynchronous subscribe function will be signaled. + + + + Creates an observable sequence from a specified asynchronous Subscribe method. + + Query provider used to construct the data source. + The type of the elements in the produced sequence. + Asynchronous method used to implement the resulting sequence's Subscribe method, returning an Action delegate that will be wrapped in an IDisposable. + The observable sequence with the specified implementation for the Subscribe method. + + is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + + + + Returns the elements of the specified sequence or the type parameter's default value in a singleton sequence if the sequence is empty. + + The type of the elements in the source sequence (if any), whose default value will be taken if the sequence is empty. + The sequence to return a default value for if it is empty. + An observable sequence that contains the default value for the TSource type if the source is empty; otherwise, the elements of the source itself. + + is null. + + + + Returns the elements of the specified sequence or the specified value in a singleton sequence if the sequence is empty. + + The type of the elements in the source sequence (if any), and the specified default value which will be taken if the sequence is empty. + The sequence to return the specified value for if it is empty. + The value to return if the sequence is empty. + An observable sequence that contains the specified default value if the source is empty; otherwise, the elements of the source itself. + + is null. + + + + Returns an observable sequence that invokes the specified factory function whenever a new observer subscribes. + + Query provider used to construct the data source. + The type of the elements in the sequence returned by the factory function, and in the resulting sequence. + Observable factory function to invoke for each observer that subscribes to the resulting sequence. + An observable sequence whose observers trigger an invocation of the given observable factory function. + + is null. + + + + Returns an observable sequence that starts the specified asynchronous factory function whenever a new observer subscribes. + + Query provider used to construct the data source. + The type of the elements in the sequence returned by the factory function, and in the resulting sequence. + Asynchronous factory function to start for each observer that subscribes to the resulting sequence. + An observable sequence whose observers trigger the given asynchronous observable factory function to be started. + + is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + + + + Returns an observable sequence that starts the specified cancellable asynchronous factory function whenever a new observer subscribes. + The CancellationToken passed to the asynchronous factory function is tied to the returned disposable subscription, allowing best-effort cancellation. + + Query provider used to construct the data source. + The type of the elements in the sequence returned by the factory function, and in the resulting sequence. + Asynchronous factory function to start for each observer that subscribes to the resulting sequence. + An observable sequence whose observers trigger the given asynchronous observable factory function to be started. + + is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + When a subscription to the resulting sequence is disposed, the CancellationToken that was fed to the asynchronous observable factory function will be signaled. + + + + Time shifts the observable sequence to start propagating notifications at the specified absolute time. + The relative time intervals between the values are preserved. + + The type of the elements in the source sequence. + Source sequence to delay values for. + Absolute time used to shift the observable sequence; the relative time shift gets computed upon subscription. If this value is less than or equal to DateTimeOffset.UtcNow, the scheduler will dispatch observer callbacks as soon as possible. + Time-shifted sequence. + + is null. + + + This operator is less efficient than DelaySubscription because it records all notifications and time-delays those. This allows for immediate propagation of errors. + + + Observer callbacks for the resulting sequence will be run on the default scheduler. This effect is similar to using ObserveOn. + + + Exceptions signaled by the source sequence through an OnError callback are forwarded immediately to the result sequence. Any OnNext notifications that were in the queue at the point of the OnError callback will be dropped. + In order to delay error propagation, consider using the Observable.Materialize and Observable.Dematerialize operators, or use DelaySubscription. + + + + + + Time shifts the observable sequence to start propagating notifications at the specified absolute time, using the specified scheduler to run timers. + The relative time intervals between the values are preserved. + + The type of the elements in the source sequence. + Source sequence to delay values for. + Absolute time used to shift the observable sequence; the relative time shift gets computed upon subscription. If this value is less than or equal to DateTimeOffset.UtcNow, the scheduler will dispatch observer callbacks as soon as possible. + Scheduler to run the delay timers on. + Time-shifted sequence. + + or is null. + + + This operator is less efficient than DelaySubscription because it records all notifications and time-delays those. This allows for immediate propagation of errors. + + + Observer callbacks for the resulting sequence will be run on the specified scheduler. This effect is similar to using ObserveOn. + + + Exceptions signaled by the source sequence through an OnError callback are forwarded immediately to the result sequence. Any OnNext notifications that were in the queue at the point of the OnError callback will be dropped. + In order to delay error propagation, consider using the Observable.Materialize and Observable.Dematerialize operators, or use DelaySubscription. + + + + + + Time shifts the observable sequence by the specified relative time duration. + The relative time intervals between the values are preserved. + + The type of the elements in the source sequence. + Source sequence to delay values for. + Relative time by which to shift the observable sequence. If this value is equal to TimeSpan.Zero, the scheduler will dispatch observer callbacks as soon as possible. + Time-shifted sequence. + + is null. + + is less than TimeSpan.Zero. + + + This operator is less efficient than DelaySubscription because it records all notifications and time-delays those. This allows for immediate propagation of errors. + + + Observer callbacks for the resulting sequence will be run on the default scheduler. This effect is similar to using ObserveOn. + + + Exceptions signaled by the source sequence through an OnError callback are forwarded immediately to the result sequence. Any OnNext notifications that were in the queue at the point of the OnError callback will be dropped. + In order to delay error propagation, consider using the Observable.Materialize and Observable.Dematerialize operators, or use DelaySubscription. + + + + + + Time shifts the observable sequence by the specified relative time duration, using the specified scheduler to run timers. + The relative time intervals between the values are preserved. + + The type of the elements in the source sequence. + Source sequence to delay values for. + Relative time by which to shift the observable sequence. If this value is equal to TimeSpan.Zero, the scheduler will dispatch observer callbacks as soon as possible. + Scheduler to run the delay timers on. + Time-shifted sequence. + + or is null. + + is less than TimeSpan.Zero. + + + This operator is less efficient than DelaySubscription because it records all notifications and time-delays those. This allows for immediate propagation of errors. + + + Observer callbacks for the resulting sequence will be run on the specified scheduler. This effect is similar to using ObserveOn. + + + Exceptions signaled by the source sequence through an OnError callback are forwarded immediately to the result sequence. Any OnNext notifications that were in the queue at the point of the OnError callback will be dropped. + + + Exceptions signaled by the source sequence through an OnError callback are forwarded immediately to the result sequence. Any OnNext notifications that were in the queue at the point of the OnError callback will be dropped. + In order to delay error propagation, consider using the Observable.Materialize and Observable.Dematerialize operators, or use DelaySubscription. + + + + + + Time shifts the observable sequence based on a delay selector function for each element. + + The type of the elements in the source sequence. + The type of the elements in the delay sequences used to denote the delay duration of each element in the source sequence. + Source sequence to delay values for. + Selector function to retrieve a sequence indicating the delay for each given element. + Time-shifted sequence. + + or is null. + + + + Time shifts the observable sequence based on a subscription delay and a delay selector function for each element. + + The type of the elements in the source sequence. + The type of the elements in the delay sequences used to denote the delay duration of each element in the source sequence. + Source sequence to delay values for. + Sequence indicating the delay for the subscription to the source. + Selector function to retrieve a sequence indicating the delay for each given element. + Time-shifted sequence. + + or or is null. + + + + Time shifts the observable sequence by delaying the subscription to the specified absolute time. + + The type of the elements in the source sequence. + Source sequence to delay subscription for. + Absolute time to perform the subscription at. + Time-shifted sequence. + + is null. + + + This operator is more efficient than Delay but postpones all side-effects of subscription and affects error propagation timing. + + + The side-effects of subscribing to the source sequence will be run on the default scheduler. Observer callbacks will not be affected. + + + + + + Time shifts the observable sequence by delaying the subscription to the specified absolute time, using the specified scheduler to run timers. + + The type of the elements in the source sequence. + Source sequence to delay subscription for. + Absolute time to perform the subscription at. + Scheduler to run the subscription delay timer on. + Time-shifted sequence. + + or is null. + + + This operator is more efficient than Delay but postpones all side-effects of subscription and affects error propagation timing. + + + The side-effects of subscribing to the source sequence will be run on the specified scheduler. Observer callbacks will not be affected. + + + + + + Time shifts the observable sequence by delaying the subscription with the specified relative time duration. + + The type of the elements in the source sequence. + Source sequence to delay subscription for. + Relative time shift of the subscription. + Time-shifted sequence. + + is null. + + is less than TimeSpan.Zero. + + + This operator is more efficient than Delay but postpones all side-effects of subscription and affects error propagation timing. + + + The side-effects of subscribing to the source sequence will be run on the default scheduler. Observer callbacks will not be affected. + + + + + + Time shifts the observable sequence by delaying the subscription with the specified relative time duration, using the specified scheduler to run timers. + + The type of the elements in the source sequence. + Source sequence to delay subscription for. + Relative time shift of the subscription. + Scheduler to run the subscription delay timer on. + Time-shifted sequence. + + or is null. + + is less than TimeSpan.Zero. + + + This operator is more efficient than Delay but postpones all side-effects of subscription and affects error propagation timing. + + + The side-effects of subscribing to the source sequence will be run on the specified scheduler. Observer callbacks will not be affected. + + + + + + Dematerializes the explicit notification values of an observable sequence as implicit notifications. + + The type of the elements materialized in the source sequence notification objects. + An observable sequence containing explicit notification values which have to be turned into implicit notifications. + An observable sequence exhibiting the behavior corresponding to the source sequence's notification values. + + is null. + + + + Returns an observable sequence that contains only distinct elements. + + The type of the elements in the source sequence. + An observable sequence to retain distinct elements for. + An observable sequence only containing the distinct elements from the source sequence. + + is null. + Usage of this operator should be considered carefully due to the maintenance of an internal lookup structure which can grow large. + + + + Returns an observable sequence that contains only distinct elements according to the comparer. + + The type of the elements in the source sequence. + An observable sequence to retain distinct elements for. + Equality comparer for source elements. + An observable sequence only containing the distinct elements from the source sequence. + + or is null. + Usage of this operator should be considered carefully due to the maintenance of an internal lookup structure which can grow large. + + + + Returns an observable sequence that contains only distinct elements according to the keySelector. + + The type of the elements in the source sequence. + The type of the discriminator key computed for each element in the source sequence. + An observable sequence to retain distinct elements for. + A function to compute the comparison key for each element. + An observable sequence only containing the distinct elements, based on a computed key value, from the source sequence. + + or is null. + Usage of this operator should be considered carefully due to the maintenance of an internal lookup structure which can grow large. + + + + Returns an observable sequence that contains only distinct elements according to the keySelector and the comparer. + + The type of the elements in the source sequence. + The type of the discriminator key computed for each element in the source sequence. + An observable sequence to retain distinct elements for. + A function to compute the comparison key for each element. + Equality comparer for source elements. + An observable sequence only containing the distinct elements, based on a computed key value, from the source sequence. + + or or is null. + Usage of this operator should be considered carefully due to the maintenance of an internal lookup structure which can grow large. + + + + Returns an observable sequence that contains only distinct contiguous elements. + + The type of the elements in the source sequence. + An observable sequence to retain distinct contiguous elements for. + An observable sequence only containing the distinct contiguous elements from the source sequence. + + is null. + + + + Returns an observable sequence that contains only distinct contiguous elements according to the comparer. + + The type of the elements in the source sequence. + An observable sequence to retain distinct contiguous elements for. + Equality comparer for source elements. + An observable sequence only containing the distinct contiguous elements from the source sequence. + + or is null. + + + + Returns an observable sequence that contains only distinct contiguous elements according to the keySelector. + + The type of the elements in the source sequence. + The type of the discriminator key computed for each element in the source sequence. + An observable sequence to retain distinct contiguous elements for, based on a computed key value. + A function to compute the comparison key for each element. + An observable sequence only containing the distinct contiguous elements, based on a computed key value, from the source sequence. + + or is null. + + + + Returns an observable sequence that contains only distinct contiguous elements according to the keySelector and the comparer. + + The type of the elements in the source sequence. + The type of the discriminator key computed for each element in the source sequence. + An observable sequence to retain distinct contiguous elements for, based on a computed key value. + A function to compute the comparison key for each element. + Equality comparer for computed key values. + An observable sequence only containing the distinct contiguous elements, based on a computed key value, from the source sequence. + + or or is null. + + + + Invokes the observer's methods for each message in the source sequence. + This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + + The type of the elements in the source sequence. + Source sequence. + Observer whose methods to invoke as part of the source sequence's observation. + The source sequence with the side-effecting behavior applied. + + or is null. + + + + Invokes an action for each element in the observable sequence, and propagates all observer messages through the result sequence. + This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + + The type of the elements in the source sequence. + Source sequence. + Action to invoke for each element in the observable sequence. + The source sequence with the side-effecting behavior applied. + + or is null. + + + + Invokes an action for each element in the observable sequence and invokes an action upon graceful termination of the observable sequence. + This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + + The type of the elements in the source sequence. + Source sequence. + Action to invoke for each element in the observable sequence. + Action to invoke upon graceful termination of the observable sequence. + The source sequence with the side-effecting behavior applied. + + or or is null. + + + + Invokes an action for each element in the observable sequence and invokes an action upon exceptional termination of the observable sequence. + This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + + The type of the elements in the source sequence. + Source sequence. + Action to invoke for each element in the observable sequence. + Action to invoke upon exceptional termination of the observable sequence. + The source sequence with the side-effecting behavior applied. + + or or is null. + + + + Invokes an action for each element in the observable sequence and invokes an action upon graceful or exceptional termination of the observable sequence. + This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline. + + The type of the elements in the source sequence. + Source sequence. + Action to invoke for each element in the observable sequence. + Action to invoke upon exceptional termination of the observable sequence. + Action to invoke upon graceful termination of the observable sequence. + The source sequence with the side-effecting behavior applied. + + or or or is null. + + + + Repeats the given as long as the specified holds, where the is evaluated after each repeated completed. + + The type of the elements in the source sequence. + Source to repeat as long as the function evaluates to true. + Condition that will be evaluated upon the completion of an iteration through the , to determine whether repetition of the source is required. + The observable sequence obtained by concatenating the sequence as long as the holds. + + or is null. + + + + Returns the element at a specified index in a sequence. + + The type of the elements in the source sequence. + Observable sequence to return the element from. + The zero-based index of the element to retrieve. + An observable sequence that produces the element at the specified position in the source sequence. + + is null. + + is less than zero. + (Asynchronous) is greater than or equal to the number of elements in the source sequence. + + + + Returns the element at a specified index in a sequence or a default value if the index is out of range. + + The type of the elements in the source sequence. + Observable sequence to return the element from. + The zero-based index of the element to retrieve. + An observable sequence that produces the element at the specified position in the source sequence, or a default value if the index is outside the bounds of the source sequence. + + is null. + + is less than zero. + + + + Returns an empty observable sequence. + + Query provider used to construct the data source. + The type used for the type parameter of the resulting sequence. + An observable sequence with no elements. + + + + Returns an empty observable sequence, using the specified scheduler to send out the single OnCompleted message. + + Query provider used to construct the data source. + The type used for the type parameter of the resulting sequence. + Scheduler to send the termination call on. + An observable sequence with no elements. + + is null. + + + + Returns an empty observable sequence, using the specified scheduler to send out the single OnCompleted message. + + Query provider used to construct the data source. + The type used for the type parameter of the resulting sequence. + Scheduler to send the termination call on. + Object solely used to infer the type of the type parameter. This parameter is typically used when creating a sequence of anonymously typed elements. + An observable sequence with no elements. + + is null. + + + + Returns an empty observable sequence. + + Query provider used to construct the data source. + The type used for the type parameter of the resulting sequence. + Object solely used to infer the type of the type parameter. This parameter is typically used when creating a sequence of anonymously typed elements. + An observable sequence with no elements. + + + + Invokes a specified action after the source observable sequence terminates gracefully or exceptionally. + + The type of the elements in the source sequence. + Source sequence. + Action to invoke after the source observable sequence terminates. + Source sequence with the action-invoking termination behavior applied. + + or is null. + + + + Returns the first element of an observable sequence. + + The type of the elements in the source sequence. + Source observable sequence. + Sequence containing the first element in the observable sequence. + + is null. + (Asynchronous) The source sequence is empty. + + + + Returns the first element of an observable sequence that satisfies the condition in the predicate. + + The type of the elements in the source sequence. + Source observable sequence. + A predicate function to evaluate for elements in the source sequence. + Sequence containing the first element in the observable sequence that satisfies the condition in the predicate. + + or is null. + (Asynchronous) No element satisfies the condition in the predicate. -or- The source sequence is empty. + + + + Returns the first element of an observable sequence, or a default value if no such element exists. + + The type of the elements in the source sequence. + Source observable sequence. + Sequence containing the first element in the observable sequence, or a default value if no such element exists. + + is null. + + + + Returns the first element of an observable sequence that satisfies the condition in the predicate, or a default value if no such element exists. + + The type of the elements in the source sequence. + Source observable sequence. + A predicate function to evaluate for elements in the source sequence. + Sequence containing the first element in the observable sequence that satisfies the condition in the predicate, or a default value if no such element exists. + + or is null. + + + + Concatenates the observable sequences obtained by running the for each element in the given enumerable . + + Query provider used to construct the data source. + The type of the elements in the enumerable source sequence. + The type of the elements in the observable result sequence. + Enumerable source for which each element will be mapped onto an observable source that will be concatenated in the result sequence. + Function to select an observable source for each element in the . + The observable sequence obtained by concatenating the sources returned by for each element in the . + + or is null. + + + + Converts to asynchronous action into an observable sequence. Each subscription to the resulting sequence causes the action to be started. + + Query provider used to construct the data source. + Asynchronous action to convert. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + + is null. + + + + Converts to asynchronous action into an observable sequence. Each subscription to the resulting sequence causes the action to be started. + + Query provider used to construct the data source. + Asynchronous action to convert. + Scheduler on which to notify observers. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + + is null or is null. + + + + Converts to asynchronous action into an observable sequence. Each subscription to the resulting sequence causes the action to be started. + The CancellationToken passed to the asynchronous action is tied to the observable sequence's subscription that triggered the action's invocation and can be used for best-effort cancellation. + + Query provider used to construct the data source. + Asynchronous action to convert. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + When a subscription to the resulting sequence is disposed, the CancellationToken that was fed to the asynchronous function will be signaled. + + is null. + + + + Converts to asynchronous action into an observable sequence. Each subscription to the resulting sequence causes the action to be started. + The CancellationToken passed to the asynchronous action is tied to the observable sequence's subscription that triggered the action's invocation and can be used for best-effort cancellation. + + Query provider used to construct the data source. + Asynchronous action to convert. + Scheduler on which to notify observers. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + When a subscription to the resulting sequence is disposed, the CancellationToken that was fed to the asynchronous function will be signaled. + + is null or is null. + + + + Converts to asynchronous function into an observable sequence. Each subscription to the resulting sequence causes the function to be started. + + Query provider used to construct the data source. + The type of the result returned by the asynchronous function. + Asynchronous function to convert. + An observable sequence exposing the result of invoking the function, or an exception. + + is null. + + + + Converts to asynchronous function into an observable sequence. Each subscription to the resulting sequence causes the function to be started. + The CancellationToken passed to the asynchronous function is tied to the observable sequence's subscription that triggered the function's invocation and can be used for best-effort cancellation. + + Query provider used to construct the data source. + The type of the result returned by the asynchronous function. + Asynchronous function to convert. + An observable sequence exposing the result of invoking the function, or an exception. + + is null. + When a subscription to the resulting sequence is disposed, the CancellationToken that was fed to the asynchronous function will be signaled. + + + + Converts to asynchronous function into an observable sequence. Each subscription to the resulting sequence causes the function to be started. + + Query provider used to construct the data source. + The type of the result returned by the asynchronous function. + Asynchronous function to convert. + Scheduler on which to notify observers. + An observable sequence exposing the result of invoking the function, or an exception. + + is null or is null. + + + + Converts to asynchronous function into an observable sequence. Each subscription to the resulting sequence causes the function to be started. + The CancellationToken passed to the asynchronous function is tied to the observable sequence's subscription that triggered the function's invocation and can be used for best-effort cancellation. + + Query provider used to construct the data source. + The type of the result returned by the asynchronous function. + Asynchronous function to convert. + Scheduler on which to notify observers. + An observable sequence exposing the result of invoking the function, or an exception. + + is null or is null. + When a subscription to the resulting sequence is disposed, the CancellationToken that was fed to the asynchronous function will be signaled. + + + + Converts an Action-based .NET event to an observable sequence. Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events conforming to the standard .NET event pattern, use any of the FromEventPattern overloads instead. + + Query provider used to construct the data source. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains the event argument objects passed to the invocations of the underlying .NET event. + + or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEvent, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEvent, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEvent calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts an Action-based .NET event to an observable sequence. Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events conforming to the standard .NET event pattern, use any of the FromEventPattern overloads instead. + + Query provider used to construct the data source. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains the event argument objects passed to the invocations of the underlying .NET event. + + or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEvent calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEvent that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a .NET event to an observable sequence, using a supplied event delegate type. Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events conforming to the standard .NET event pattern, use any of the FromEventPattern overloads instead. + + Query provider used to construct the data source. + The delegate type of the event to be converted. + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains the event argument objects passed to the invocations of the underlying .NET event. + + or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEvent, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEvent, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEvent calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a .NET event to an observable sequence, using a supplied event delegate type. Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events conforming to the standard .NET event pattern, use any of the FromEventPattern overloads instead. + + Query provider used to construct the data source. + The delegate type of the event to be converted. + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains the event argument objects passed to the invocations of the underlying .NET event. + + or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEvent calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEvent that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a .NET event to an observable sequence, using a conversion function to obtain the event delegate. Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events conforming to the standard .NET event pattern, use any of the FromEventPattern overloads instead. + + Query provider used to construct the data source. + The delegate type of the event to be converted. + The type of the event data generated by the event. + A function used to convert the given event handler to a delegate compatible with the underlying .NET event. The resulting delegate is used in calls to the addHandler and removeHandler action parameters. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains the event argument objects passed to the invocations of the underlying .NET event. + + or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEvent, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEvent, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEvent calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a .NET event to an observable sequence, using a conversion function to obtain the event delegate. Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events conforming to the standard .NET event pattern, use any of the FromEventPattern overloads instead. + + Query provider used to construct the data source. + The delegate type of the event to be converted. + The type of the event data generated by the event. + A function used to convert the given event handler to a delegate compatible with the underlying .NET event. The resulting delegate is used in calls to the addHandler and removeHandler action parameters. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains the event argument objects passed to the invocations of the underlying .NET event. + + or or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEvent calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEvent that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a generic Action-based .NET event to an observable sequence. Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events conforming to the standard .NET event pattern, use any of the FromEventPattern overloads instead. + + Query provider used to construct the data source. + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains the event argument objects passed to the invocations of the underlying .NET event. + + or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEvent, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEvent, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEvent calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a generic Action-based .NET event to an observable sequence. Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events conforming to the standard .NET event pattern, use any of the FromEventPattern overloads instead. + + Query provider used to construct the data source. + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains the event argument objects passed to the invocations of the underlying .NET event. + + or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEvent calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEvent that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on , to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on , to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts an instance .NET event, conforming to the standard .NET event pattern with an parameter, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the target object type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + Object instance that exposes the event to convert. + Name of the event to convert. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts an instance .NET event, conforming to the standard .NET event pattern with an parameter, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the target object type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + Object instance that exposes the event to convert. + Name of the event to convert. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a static .NET event, conforming to the standard .NET event pattern with an parameter, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the specified type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + Type that exposes the static event to convert. + Name of the event to convert. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a static .NET event, conforming to the standard .NET event pattern with an parameter, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the specified type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + Type that exposes the static event to convert. + Name of the event to convert. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on a supplied event delegate type, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + The delegate type of the event to be converted. + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on a supplied event delegate type, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + The delegate type of the event to be converted. + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on , to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + The delegate type of the event to be converted. + The type of the event data generated by the event. + A function used to convert the given event handler to a delegate compatible with the underlying .NET event. The resulting delegate is used in calls to the addHandler and removeHandler action parameters. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on , to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + The delegate type of the event to be converted. + The type of the event data generated by the event. + A function used to convert the given event handler to a delegate compatible with the underlying .NET event. The resulting delegate is used in calls to the addHandler and removeHandler action parameters. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on a supplied event delegate type with a strongly typed sender parameter, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + The delegate type of the event to be converted. + The type of the sender that raises the event. + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on a supplied event delegate type with a strongly typed sender parameter, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + The delegate type of the event to be converted. + The type of the sender that raises the event. + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or or is null. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on , to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a .NET event, conforming to the standard .NET event pattern based on , to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts an instance .NET event, conforming to the standard .NET event pattern with strongly typed event arguments, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the target object type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + The type of the event data generated by the event. + Object instance that exposes the event to convert. + Name of the event to convert. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. -or- The event's second argument type is not assignable to TEventArgs. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts an instance .NET event, conforming to the standard .NET event pattern with strongly typed event arguments, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the target object type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + The type of the event data generated by the event. + Object instance that exposes the event to convert. + Name of the event to convert. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. -or- The event's second argument type is not assignable to TEventArgs. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a static .NET event, conforming to the standard .NET event pattern with strongly typed event arguments, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the specified type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + The type of the event data generated by the event. + Type that exposes the static event to convert. + Name of the event to convert. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. -or- The event's second argument type is not assignable to TEventArgs. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a static .NET event, conforming to the standard .NET event pattern with strongly typed event arguments, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the specified type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + The type of the event data generated by the event. + Type that exposes the static event to convert. + Name of the event to convert. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. -or- The event's second argument type is not assignable to TEventArgs. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts an instance .NET event, conforming to the standard .NET event pattern with a strongly typed sender and strongly typed event arguments, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the target object type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + The type of the sender that raises the event. + The type of the event data generated by the event. + Object instance that exposes the event to convert. + Name of the event to convert. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. -or- The event's first argument type is not assignable to TSender. -or- The event's second argument type is not assignable to TEventArgs. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts an instance .NET event, conforming to the standard .NET event pattern with a strongly typed sender and strongly typed event arguments, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the target object type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + The type of the sender that raises the event. + The type of the event data generated by the event. + Object instance that exposes the event to convert. + Name of the event to convert. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. -or- The event's first argument type is not assignable to TSender. -or- The event's second argument type is not assignable to TEventArgs. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Converts a static .NET event, conforming to the standard .NET event pattern with a strongly typed sender and strongly typed event arguments, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the specified type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + The type of the sender that raises the event. + The type of the event data generated by the event. + Type that exposes the static event to convert. + Name of the event to convert. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. -or- The event's first argument type is not assignable to TSender. -or- The event's second argument type is not assignable to TEventArgs. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + The current is captured during the call to FromEventPattern, and is used to post add and remove handler invocations. + This behavior ensures add and remove handler operations for thread-affine events are accessed from the same context, as required by some UI frameworks. + + + If no SynchronizationContext is present at the point of calling FromEventPattern, add and remove handler invocations are made synchronously on the thread + making the Subscribe or Dispose call, respectively. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions due to the free-threaded nature of Reactive Extensions. Doing so + makes the captured SynchronizationContext predictable. This best practice also reduces clutter of bridging code inside queries, making the query expressions + more concise and easier to understand. + + + + + + + Converts a static .NET event, conforming to the standard .NET event pattern with a strongly typed sender and strongly typed event arguments, to an observable sequence. + Each event invocation is surfaced through an OnNext message in the resulting sequence. + Reflection is used to discover the event based on the specified type and the specified event name. + For conversion of events that don't conform to the standard .NET event pattern, use any of the FromEvent overloads instead. + + Query provider used to construct the data source. + The type of the sender that raises the event. + The type of the event data generated by the event. + Type that exposes the static event to convert. + Name of the event to convert. + The scheduler to run the add and remove event handler logic on. + The observable sequence that contains data representations of invocations of the underlying .NET event. + + or or is null. + The event could not be found. -or- The event does not conform to the standard .NET event pattern. -or- The event's first argument type is not assignable to TSender. -or- The event's second argument type is not assignable to TEventArgs. + + + Add and remove handler invocations are made whenever the number of observers grows beyond zero. + As such, an event handler may be shared by multiple simultaneously active observers, using a subject for multicasting. + + + Add and remove handler invocations are run on the specified scheduler. This behavior allows add and remove handler operations for thread-affine events to be + accessed from the same context, as required by some UI frameworks. + + + It's recommended to lift FromEventPattern calls outside event stream query expressions. This best practice reduces clutter of bridging code inside queries, + making the query expressions more concise and easier to understand. This has additional benefits for overloads of FromEventPattern that omit the IScheduler + parameter. For more information, see the remarks section on those overloads. + + + + + + + Generates an observable sequence by running a state-driven loop producing the sequence's elements. + + Query provider used to construct the data source. + The type of the state used in the generator loop. + The type of the elements in the produced sequence. + Initial state. + Condition to terminate generation (upon returning false). + Iteration step function. + Selector function for results produced in the sequence. + The generated sequence. + + or or is null. + + + + Generates an observable sequence by running a state-driven loop producing the sequence's elements, using the specified scheduler to send out observer messages. + + Query provider used to construct the data source. + The type of the state used in the generator loop. + The type of the elements in the produced sequence. + Initial state. + Condition to terminate generation (upon returning false). + Iteration step function. + Selector function for results produced in the sequence. + Scheduler on which to run the generator loop. + The generated sequence. + + or or or is null. + + + + Generates an observable sequence by running a state-driven and temporal loop producing the sequence's elements. + + Query provider used to construct the data source. + The type of the state used in the generator loop. + The type of the elements in the produced sequence. + Initial state. + Condition to terminate generation (upon returning false). + Iteration step function. + Selector function for results produced in the sequence. + Time selector function to control the speed of values being produced each iteration. + The generated sequence. + + or or or is null. + + + + Generates an observable sequence by running a state-driven and temporal loop producing the sequence's elements. + + Query provider used to construct the data source. + The type of the state used in the generator loop. + The type of the elements in the produced sequence. + Initial state. + Condition to terminate generation (upon returning false). + Iteration step function. + Selector function for results produced in the sequence. + Time selector function to control the speed of values being produced each iteration. + The generated sequence. + + or or or is null. + + + + Generates an observable sequence by running a state-driven and temporal loop producing the sequence's elements, using the specified scheduler to run timers and to send out observer messages. + + Query provider used to construct the data source. + The type of the state used in the generator loop. + The type of the elements in the produced sequence. + Initial state. + Condition to terminate generation (upon returning false). + Iteration step function. + Selector function for results produced in the sequence. + Time selector function to control the speed of values being produced each iteration. + Scheduler on which to run the generator loop. + The generated sequence. + + or or or or is null. + + + + Generates an observable sequence by running a state-driven and temporal loop producing the sequence's elements, using the specified scheduler to run timers and to send out observer messages. + + Query provider used to construct the data source. + The type of the state used in the generator loop. + The type of the elements in the produced sequence. + Initial state. + Condition to terminate generation (upon returning false). + Iteration step function. + Selector function for results produced in the sequence. + Time selector function to control the speed of values being produced each iteration. + Scheduler on which to run the generator loop. + The generated sequence. + + or or or or is null. + + + + Groups the elements of an observable sequence according to a specified key selector function. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + An observable sequence whose elements to group. + A function to extract the key for each element. + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + + or is null. + + + + Groups the elements of an observable sequence with the specified initial capacity according to a specified key selector function. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + An observable sequence whose elements to group. + A function to extract the key for each element. + The initial number of elements that the underlying dictionary can contain. + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + + or is null. + + is less than 0. + + + + Groups the elements of an observable sequence with the specified initial capacity according to a specified key selector function and comparer. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + An observable sequence whose elements to group. + A function to extract the key for each element. + The initial number of elements that the underlying dictionary can contain. + An equality comparer to compare keys with. + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + + or or is null. + + is less than 0. + + + + Groups the elements of an observable sequence according to a specified key selector function and comparer. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + An observable sequence whose elements to group. + A function to extract the key for each element. + An equality comparer to compare keys with. + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + + or or is null. + + + + Groups the elements of an observable sequence and selects the resulting elements by using a specified function. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements within the groups computed for each element in the source sequence. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to map each source element to an element in an observable group. + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + + or or is null. + + + + Groups the elements of an observable sequence with the specified initial capacity and selects the resulting elements by using a specified function. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements within the groups computed for each element in the source sequence. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to map each source element to an element in an observable group. + The initial number of elements that the underlying dictionary can contain. + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + + or or is null. + + is less than 0. + + + + Groups the elements of an observable sequence with the specified initial capacity according to a specified key selector function and comparer and selects the resulting elements by using a specified function. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements within the groups computed for each element in the source sequence. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to map each source element to an element in an observable group. + The initial number of elements that the underlying dictionary can contain. + An equality comparer to compare keys with. + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + + or or or is null. + + is less than 0. + + + + Groups the elements of an observable sequence according to a specified key selector function and comparer and selects the resulting elements by using a specified function. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements within the groups computed for each element in the source sequence. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to map each source element to an element in an observable group. + An equality comparer to compare keys with. + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + + or or or is null. + + + + Groups the elements of an observable sequence according to a specified key selector function. + A duration selector function is used to control the lifetime of groups. When a group expires, it receives an OnCompleted notification. When a new element with the same + key value as a reclaimed group occurs, the group will be reborn with a new lifetime request. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements in the duration sequences obtained for each group to denote its lifetime. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to signal the expiration of a group. + + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + If a group's lifetime expires, a new group with the same key value can be created once an element with such a key value is encountered. + + + or or is null. + + + + Groups the elements of an observable sequence with the specified initial capacity according to a specified key selector function. + A duration selector function is used to control the lifetime of groups. When a group expires, it receives an OnCompleted notification. When a new element with the same + key value as a reclaimed group occurs, the group will be reborn with a new lifetime request. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements in the duration sequences obtained for each group to denote its lifetime. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to signal the expiration of a group. + The initial number of elements that the underlying dictionary can contain. + + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + If a group's lifetime expires, a new group with the same key value can be created once an element with such a key value is encountered. + + + or or is null. + + is less than 0. + + + + Groups the elements of an observable sequence with the specified initial capacity according to a specified key selector function and comparer. + A duration selector function is used to control the lifetime of groups. When a group expires, it receives an OnCompleted notification. When a new element with the same + key value as a reclaimed group occurs, the group will be reborn with a new lifetime request. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements in the duration sequences obtained for each group to denote its lifetime. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to signal the expiration of a group. + The initial number of elements that the underlying dictionary can contain. + An equality comparer to compare keys with. + + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + If a group's lifetime expires, a new group with the same key value can be created once an element with such a key value is encountered. + + + or or or is null. + + is less than 0. + + + + Groups the elements of an observable sequence according to a specified key selector function and comparer. + A duration selector function is used to control the lifetime of groups. When a group expires, it receives an OnCompleted notification. When a new element with the same + key value as a reclaimed group occurs, the group will be reborn with a new lifetime request. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements in the duration sequences obtained for each group to denote its lifetime. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to signal the expiration of a group. + An equality comparer to compare keys with. + + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + If a group's lifetime expires, a new group with the same key value can be created once an element with such a key value is encountered. + + + or or or is null. + + + + Groups the elements of an observable sequence according to a specified key selector function and selects the resulting elements by using a specified function. + A duration selector function is used to control the lifetime of groups. When a group expires, it receives an OnCompleted notification. When a new element with the same + key value as a reclaimed group occurs, the group will be reborn with a new lifetime request. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements within the groups computed for each element in the source sequence. + The type of the elements in the duration sequences obtained for each group to denote its lifetime. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to map each source element to an element in an observable group. + A function to signal the expiration of a group. + + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + If a group's lifetime expires, a new group with the same key value can be created once an element with such a key value is encountered. + + + or or or is null. + + + + Groups the elements of an observable sequence with the specified initial capacity according to a specified key selector function and selects the resulting elements by using a specified function. + A duration selector function is used to control the lifetime of groups. When a group expires, it receives an OnCompleted notification. When a new element with the same + key value as a reclaimed group occurs, the group will be reborn with a new lifetime request. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements within the groups computed for each element in the source sequence. + The type of the elements in the duration sequences obtained for each group to denote its lifetime. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to map each source element to an element in an observable group. + A function to signal the expiration of a group. + The initial number of elements that the underlying dictionary can contain. + + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + If a group's lifetime expires, a new group with the same key value can be created once an element with such a key value is encountered. + + + or or or is null. + + is less than 0. + + + + Groups the elements of an observable sequence with the specified initial capacity according to a specified key selector function and comparer and selects the resulting elements by using a specified function. + A duration selector function is used to control the lifetime of groups. When a group expires, it receives an OnCompleted notification. When a new element with the same + key value as a reclaimed group occurs, the group will be reborn with a new lifetime request. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements within the groups computed for each element in the source sequence. + The type of the elements in the duration sequences obtained for each group to denote its lifetime. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to map each source element to an element in an observable group. + A function to signal the expiration of a group. + The initial number of elements that the underlying dictionary can contain. + An equality comparer to compare keys with. + + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + If a group's lifetime expires, a new group with the same key value can be created once an element with such a key value is encountered. + + + or or or or is null. + + is less than 0. + + + + Groups the elements of an observable sequence according to a specified key selector function and comparer and selects the resulting elements by using a specified function. + A duration selector function is used to control the lifetime of groups. When a group expires, it receives an OnCompleted notification. When a new element with the same + key value as a reclaimed group occurs, the group will be reborn with a new lifetime request. + + The type of the elements in the source sequence. + The type of the grouping key computed for each element in the source sequence. + The type of the elements within the groups computed for each element in the source sequence. + The type of the elements in the duration sequences obtained for each group to denote its lifetime. + An observable sequence whose elements to group. + A function to extract the key for each element. + A function to map each source element to an element in an observable group. + A function to signal the expiration of a group. + An equality comparer to compare keys with. + + A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + If a group's lifetime expires, a new group with the same key value can be created once an element with such a key value is encountered. + + + or or or or is null. + + + + Correlates the elements of two sequences based on overlapping durations, and groups the results. + + The type of the elements in the left source sequence. + The type of the elements in the right source sequence. + The type of the elements in the duration sequence denoting the computed duration of each element in the left source sequence. + The type of the elements in the duration sequence denoting the computed duration of each element in the right source sequence. + The type of the elements in the result sequence, obtained by invoking the result selector function for source elements with overlapping duration. + The left observable sequence to join elements for. + The right observable sequence to join elements for. + A function to select the duration of each element of the left observable sequence, used to determine overlap. + A function to select the duration of each element of the right observable sequence, used to determine overlap. + A function invoked to compute a result element for any element of the left sequence with overlapping elements from the right observable sequence. + An observable sequence that contains result elements computed from source elements that have an overlapping duration. + + or or or or is null. + + + + If the specified evaluates true, select the sequence. Otherwise, return an empty sequence. + + Query provider used to construct the data source. + The type of the elements in the result sequence. + Condition evaluated to decide which sequence to return. + Sequence returned in case evaluates true. + + if evaluates true; an empty sequence otherwise. + + or is null. + + + + If the specified evaluates true, select the sequence. Otherwise, select the sequence. + + Query provider used to construct the data source. + The type of the elements in the result sequence. + Condition evaluated to decide which sequence to return. + Sequence returned in case evaluates true. + Sequence returned in case evaluates false. + + if evaluates true; otherwise. + + or or is null. + + + + If the specified evaluates true, select the sequence. Otherwise, return an empty sequence generated on the specified scheduler. + + Query provider used to construct the data source. + The type of the elements in the result sequence. + Condition evaluated to decide which sequence to return. + Sequence returned in case evaluates true. + Scheduler to generate an empty sequence on in case evaluates false. + + if evaluates true; an empty sequence otherwise. + + or or is null. + + + + Ignores all elements in an observable sequence leaving only the termination messages. + + The type of the elements in the source sequence. + Source sequence. + An empty observable sequence that signals termination, successful or exceptional, of the source sequence. + + is null. + + + + Returns an observable sequence that produces a value after each period. + + Query provider used to construct the data source. + Period for producing the values in the resulting sequence. If this value is equal to TimeSpan.Zero, the timer will recur as fast as possible. + An observable sequence that produces a value after each period. + + is less than TimeSpan.Zero. + + Intervals are measured between the start of subsequent notifications, not between the end of the previous and the start of the next notification. + If the observer takes longer than the interval period to handle the message, the subsequent notification will be delivered immediately after the + current one has been handled. In case you need to control the time between the end and the start of consecutive notifications, consider using the + + operator instead. + + + + + Returns an observable sequence that produces a value after each period, using the specified scheduler to run timers and to send out observer messages. + + Query provider used to construct the data source. + Period for producing the values in the resulting sequence. If this value is equal to TimeSpan.Zero, the timer will recur as fast as possible. + Scheduler to run the timer on. + An observable sequence that produces a value after each period. + + is less than TimeSpan.Zero. + + is null. + + Intervals are measured between the start of subsequent notifications, not between the end of the previous and the start of the next notification. + If the observer takes longer than the interval period to handle the message, the subsequent notification will be delivered immediately after the + current one has been handled. In case you need to control the time between the end and the start of consecutive notifications, consider using the + + operator instead. + + + + + Determines whether an observable sequence is empty. + + The type of the elements in the source sequence. + An observable sequence to check for emptiness. + An observable sequence containing a single element determining whether the source sequence is empty. + + is null. + + + + Correlates the elements of two sequences based on overlapping durations. + + The type of the elements in the left source sequence. + The type of the elements in the right source sequence. + The type of the elements in the duration sequence denoting the computed duration of each element in the left source sequence. + The type of the elements in the duration sequence denoting the computed duration of each element in the right source sequence. + The type of the elements in the result sequence, obtained by invoking the result selector function for source elements with overlapping duration. + The left observable sequence to join elements for. + The right observable sequence to join elements for. + A function to select the duration of each element of the left observable sequence, used to determine overlap. + A function to select the duration of each element of the right observable sequence, used to determine overlap. + A function invoked to compute a result element for any two overlapping elements of the left and right observable sequences. + An observable sequence that contains result elements computed from source elements that have an overlapping duration. + + or or or or is null. + + + + Returns the last element of an observable sequence. + + The type of the elements in the source sequence. + Source observable sequence. + Sequence containing the last element in the observable sequence. + + is null. + (Asynchronous) The source sequence is empty. + + + + Returns the last element of an observable sequence that satisfies the condition in the predicate. + + The type of the elements in the source sequence. + Source observable sequence. + A predicate function to evaluate for elements in the source sequence. + Sequence containing the last element in the observable sequence that satisfies the condition in the predicate. + + or is null. + (Asynchronous) No element satisfies the condition in the predicate. -or- The source sequence is empty. + + + + Returns the last element of an observable sequence, or a default value if no such element exists. + + The type of the elements in the source sequence. + Source observable sequence. + Sequence containing the last element in the observable sequence, or a default value if no such element exists. + + is null. + + + + Returns the last element of an observable sequence that satisfies the condition in the predicate, or a default value if no such element exists. + + The type of the elements in the source sequence. + Source observable sequence. + A predicate function to evaluate for elements in the source sequence. + Sequence containing the last element in the observable sequence that satisfies the condition in the predicate, or a default value if no such element exists. + + or is null. + + + + Returns an enumerable sequence whose enumeration returns the latest observed element in the source observable sequence. + Enumerators on the resulting sequence will never produce the same element repeatedly, and will block until the next element becomes available. + + The type of the elements in the source sequence. + Source observable sequence. + The enumerable sequence that returns the last sampled element upon each iteration and subsequently blocks until the next element in the observable source sequence becomes available. + This operator requires the source's object (see ) to implement . + + + + Returns an observable sequence containing an that represents the total number of elements in an observable sequence. + + The type of the elements in the source sequence. + An observable sequence that contains elements to be counted. + An observable sequence containing a single element with the number of elements in the input sequence. + + is null. + (Asynchronous) The number of elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns an observable sequence containing an that represents how many elements in the specified observable sequence satisfy a condition. + + The type of the elements in the source sequence. + An observable sequence that contains elements to be counted. + A function to test each element for a condition. + An observable sequence containing a single element with a number that represents how many elements in the input sequence satisfy the condition in the predicate function. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Materializes the implicit notifications of an observable sequence as explicit notification values. + + The type of the elements in the source sequence. + An observable sequence to get notification values for. + An observable sequence containing the materialized notification values from the source sequence. + + is null. + + + + Returns the maximum value in an observable sequence of values. + + A sequence of values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of values. + + A sequence of values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of values. + + A sequence of values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of values. + + A sequence of values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence of values. + + A sequence of values to determine the maximum value of. + An observable sequence containing a single element with the maximum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum element in an observable sequence. + + The type of the elements in the source sequence. + An observable sequence to determine the maximum element of. + An observable sequence containing a single element with the maximum element in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the maximum value in an observable sequence according to the specified comparer. + + The type of the elements in the source sequence. + An observable sequence to determine the maximum element of. + Comparer used to compare elements. + An observable sequence containing a single element with the maximum element in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the maximum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the maximum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum value. + + The type of the elements in the source sequence. + The type of the objects derived from the elements in the source sequence to determine the maximum of. + An observable sequence to determine the minimum element of. + A transform function to apply to each element. + An observable sequence containing a single element with the value that corresponds to the maximum element in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the maximum value according to the specified comparer. + + The type of the elements in the source sequence. + The type of the objects derived from the elements in the source sequence to determine the maximum of. + An observable sequence to determine the minimum element of. + A transform function to apply to each element. + Comparer used to compare elements. + An observable sequence containing a single element with the value that corresponds to the maximum element in the source sequence. + + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the elements in an observable sequence with the maximum key value. + + The type of the elements in the source sequence. + The type of the key computed for each element in the source sequence. + An observable sequence to get the maximum elements for. + Key selector function. + An observable sequence containing a list of zero or more elements that have a maximum key value. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the elements in an observable sequence with the maximum key value according to the specified comparer. + + The type of the elements in the source sequence. + The type of the key computed for each element in the source sequence. + An observable sequence to get the maximum elements for. + Key selector function. + Comparer used to compare key values. + An observable sequence containing a list of zero or more elements that have a maximum key value. + + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Merges elements from two observable sequences into a single observable sequence. + + The type of the elements in the source sequences. + First observable sequence. + Second observable sequence. + The observable sequence that merges the elements of the given sequences. + + or is null. + + + + Merges elements from two observable sequences into a single observable sequence, using the specified scheduler for enumeration of and subscription to the sources. + + The type of the elements in the source sequences. + First observable sequence. + Second observable sequence. + Scheduler used to introduce concurrency for making subscriptions to the given sequences. + The observable sequence that merges the elements of the given sequences. + + or or is null. + + + + Merges elements from all of the specified observable sequences into a single observable sequence, using the specified scheduler for enumeration of and subscription to the sources. + + Query provider used to construct the data source. + The type of the elements in the source sequences. + Observable sequences. + Scheduler to run the enumeration of the sequence of sources on. + The observable sequence that merges the elements of the observable sequences. + + or is null. + + + + Merges elements from all inner observable sequences into a single observable sequence. + + The type of the elements in the source sequences. + Observable sequence of inner observable sequences. + The observable sequence that merges the elements of the inner sequences. + + is null. + + + + Merges results from all source tasks into a single observable sequence. + + The type of the results produced by the source tasks. + Observable sequence of tasks. + The observable sequence that merges the results of the source tasks. + + is null. + If the tasks support cancellation, consider manual conversion of the tasks using , followed by a merge operation using . + + + + Merges elements from all of the specified observable sequences into a single observable sequence. + + Query provider used to construct the data source. + The type of the elements in the source sequences. + Observable sequences. + The observable sequence that merges the elements of the observable sequences. + + is null. + + + + Merges elements from all observable sequences in the given enumerable sequence into a single observable sequence. + + Query provider used to construct the data source. + The type of the elements in the source sequences. + Enumerable sequence of observable sequences. + The observable sequence that merges the elements of the observable sequences. + + is null. + + + + Merges elements from all inner observable sequences into a single observable sequence, limiting the number of concurrent subscriptions to inner sequences. + + The type of the elements in the source sequences. + Observable sequence of inner observable sequences. + Maximum number of inner observable sequences being subscribed to concurrently. + The observable sequence that merges the elements of the inner sequences. + + is null. + + is less than or equal to zero. + + + + Merges elements from all observable sequences in the given enumerable sequence into a single observable sequence, limiting the number of concurrent subscriptions to inner sequences. + + Query provider used to construct the data source. + The type of the elements in the source sequences. + Enumerable sequence of observable sequences. + Maximum number of observable sequences being subscribed to concurrently. + The observable sequence that merges the elements of the observable sequences. + + is null. + + is less than or equal to zero. + + + + Merges elements from all observable sequences in the given enumerable sequence into a single observable sequence, limiting the number of concurrent subscriptions to inner sequences, and using the specified scheduler for enumeration of and subscription to the sources. + + Query provider used to construct the data source. + The type of the elements in the source sequences. + Enumerable sequence of observable sequences. + Maximum number of observable sequences being subscribed to concurrently. + Scheduler to run the enumeration of the sequence of sources on. + The observable sequence that merges the elements of the observable sequences. + + or is null. + + is less than or equal to zero. + + + + Merges elements from all observable sequences in the given enumerable sequence into a single observable sequence, using the specified scheduler for enumeration of and subscription to the sources. + + Query provider used to construct the data source. + The type of the elements in the source sequences. + Enumerable sequence of observable sequences. + Scheduler to run the enumeration of the sequence of sources on. + The observable sequence that merges the elements of the observable sequences. + + or is null. + + + + Returns the minimum value in an observable sequence of values. + + A sequence of values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of values. + + A sequence of values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of values. + + A sequence of values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of values. + + A sequence of values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of nullable values. + + A sequence of nullable values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum value in an observable sequence of values. + + A sequence of values to determine the minimum value of. + An observable sequence containing a single element with the minimum value in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum element in an observable sequence. + + The type of the elements in the source sequence. + An observable sequence to determine the minimum element of. + An observable sequence containing a single element with the minimum element in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the minimum element in an observable sequence according to the specified comparer. + + The type of the elements in the source sequence. + An observable sequence to determine the minimum element of. + Comparer used to compare elements. + An observable sequence containing a single element with the minimum element in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum nullable value. + + The type of the elements in the source sequence. + A sequence of values to determine the minimum value of. + A transform function to apply to each element. + An observable sequence containing a single element with the value of type that corresponds to the minimum value in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum value. + + The type of the elements in the source sequence. + The type of the objects derived from the elements in the source sequence to determine the minimum of. + An observable sequence to determine the minimum element of. + A transform function to apply to each element. + An observable sequence containing a single element with the value that corresponds to the minimum element in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Invokes a transform function on each element of a sequence and returns the minimum value according to the specified comparer. + + The type of the elements in the source sequence. + The type of the objects derived from the elements in the source sequence to determine the minimum of. + An observable sequence to determine the minimum element of. + A transform function to apply to each element. + Comparer used to compare elements. + An observable sequence containing a single element with the value that corresponds to the minimum element in the source sequence. + + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the elements in an observable sequence with the minimum key value. + + The type of the elements in the source sequence. + The type of the key computed for each element in the source sequence. + An observable sequence to get the minimum elements for. + Key selector function. + An observable sequence containing a list of zero or more elements that have a minimum key value. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the elements in an observable sequence with the minimum key value according to the specified comparer. + + The type of the elements in the source sequence. + The type of the key computed for each element in the source sequence. + An observable sequence to get the minimum elements for. + Key selector function. + Comparer used to compare key values. + An observable sequence containing a list of zero or more elements that have a minimum key value. + + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns an enumerable sequence whose enumeration returns the most recently observed element in the source observable sequence, using the specified initial value in case no element has been sampled yet. + Enumerators on the resulting sequence never block and can produce the same element repeatedly. + + The type of the elements in the source sequence. + Source observable sequence. + Initial value that will be yielded by the enumerable sequence if no element has been sampled yet. + The enumerable sequence that returns the last sampled element upon each iteration. + + is null. + This operator requires the source's object (see ) to implement . + + + + Multicasts the source sequence notifications through an instantiated subject into all uses of the sequence within a selector function. Each + subscription to the resulting sequence causes a separate multicast invocation, exposing the sequence resulting from the selector function's + invocation. For specializations with fixed subject types, see Publish, PublishLast, and Replay. + + The type of the elements in the source sequence. + The type of the elements produced by the intermediate subject. + The type of the elements in the result sequence. + Source sequence which will be multicasted in the specified selector function. + Factory function to create an intermediate subject through which the source sequence's elements will be multicast to the selector function. + Selector function which can use the multicasted source sequence subject to the policies enforced by the created subject. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + + or or is null. + + + + Returns a non-terminating observable sequence, which can be used to denote an infinite duration (e.g. when using reactive joins). + + Query provider used to construct the data source. + The type used for the type parameter of the resulting sequence. + An observable sequence whose observers will never get called. + + + + Returns a non-terminating observable sequence, which can be used to denote an infinite duration (e.g. when using reactive joins). + + Query provider used to construct the data source. + The type used for the type parameter of the resulting sequence. + Object solely used to infer the type of the type parameter. This parameter is typically used when creating a sequence of anonymously typed elements. + An observable sequence whose observers will never get called. + + + + Returns an enumerable sequence whose enumeration blocks until the next element in the source observable sequence becomes available. + Enumerators on the resulting sequence will block until the next element becomes available. + + The type of the elements in the source sequence. + Source observable sequence. + The enumerable sequence that blocks upon each iteration until the next element in the observable source sequence becomes available. + + is null. + This operator requires the source's object (see ) to implement . + + + + Wraps the source sequence in order to run its observer callbacks on the specified synchronization context. + + The type of the elements in the source sequence. + Source sequence. + Synchronization context to notify observers on. + The source sequence whose observations happen on the specified synchronization context. + + or is null. + + This only invokes observer callbacks on a synchronization context. In case the subscription and/or unsubscription actions have side-effects + that require to be run on a synchronization context, use . + + + + + Wraps the source sequence in order to run its observer callbacks on the specified scheduler. + + The type of the elements in the source sequence. + Source sequence. + Scheduler to notify observers on. + The source sequence whose observations happen on the specified scheduler. + + or is null. + + This only invokes observer callbacks on a scheduler. In case the subscription and/or unsubscription actions have side-effects + that require to be run on a scheduler, use . + + + + + Filters the elements of an observable sequence based on the specified type. + + The type to filter the elements in the source sequence on. + The observable sequence that contains the elements to be filtered. + An observable sequence that contains elements from the input sequence of type TResult. + + is null. + + + + Concatenates the second observable sequence to the first observable sequence upon successful or exceptional termination of the first. + + The type of the elements in the source sequences. + First observable sequence whose exception (if any) is caught. + Second observable sequence used to produce results after the first sequence terminates. + An observable sequence that concatenates the first and second sequence, even if the first sequence terminates exceptionally. + + or is null. + + + + Concatenates all of the specified observable sequences, even if the previous observable sequence terminated exceptionally. + + Query provider used to construct the data source. + The type of the elements in the source sequences. + Observable sequences to concatenate. + An observable sequence that concatenates the source sequences, even if a sequence terminates exceptionally. + + is null. + + + + Concatenates all observable sequences in the given enumerable sequence, even if the previous observable sequence terminated exceptionally. + + Query provider used to construct the data source. + The type of the elements in the source sequences. + Observable sequences to concatenate. + An observable sequence that concatenates the source sequences, even if a sequence terminates exceptionally. + + is null. + + + + Prepend a value to an observable sequence. + + The type of the elements in the source sequence. + Source sequence to prepend the value to. + Value to prepend to the specified sequence. + The source sequence prepended with the specified value. + + is null. + + + + Prepend a value to an observable sequence. + + The type of the elements in the source sequence. + Source sequence to prepend the value to. + Value to prepend to the specified sequence. + Scheduler to emit the prepend values on. + The source sequence prepended with the specified value. + + is null. + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence. + This operator is a specialization of Multicast using a regular . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all notifications of the source from the time of the subscription on. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + + or is null. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence and starts with initialValue. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive immediately receive the initial value, followed by all notifications of the source from the time of the subscription on. + Initial value received by observers upon subscription. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + + or is null. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence containing only the last notification. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will only receive the last notification of the source. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + + or is null. + + + + + Generates an observable sequence of integral numbers within a specified range. + + Query provider used to construct the data source. + The value of the first integer in the sequence. + The number of sequential integers to generate. + An observable sequence that contains a range of sequential integral numbers. + + is less than zero. -or- + - 1 is larger than . + + + + Generates an observable sequence of integral numbers within a specified range, using the specified scheduler to send out observer messages. + + Query provider used to construct the data source. + The value of the first integer in the sequence. + The number of sequential integers to generate. + Scheduler to run the generator loop on. + An observable sequence that contains a range of sequential integral numbers. + + is less than zero. -or- + - 1 is larger than . + + is null. + + + + Returns an observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + + Query provider used to construct the data source. + The type of the elements in the source sequence. + Connectable observable sequence. + An observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + + is null. + + + + Returns an observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + + Query provider used to construct the data source. + The type of the elements in the source sequence. + Connectable observable sequence. + The time span that should be waited before possibly unsubscribing from the connectable observable. + An observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + + is null. + + + + Returns an observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + + Query provider used to construct the data source. + The type of the elements in the source sequence. + Connectable observable sequence. + The time span that should be waited before possibly unsubscribing from the connectable observable. + The scheduler to use for delayed unsubscription. + An observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + + is null. + + + + Returns an observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + + Query provider used to construct the data source. + The type of the elements in the source sequence. + Connectable observable sequence. + The minimum number of observers required to subscribe before establishing the connection to the source. + An observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + + is null. + is non-positive. + + + + Returns an observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + + Query provider used to construct the data source. + The type of the elements in the source sequence. + Connectable observable sequence. + The minimum number of observers required to subscribe before establishing the connection to the source. + The time span that should be waited before possibly unsubscribing from the connectable observable. + An observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + + is null. + is non-positive. + + + + Returns an observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + + Query provider used to construct the data source. + The type of the elements in the source sequence. + Connectable observable sequence. + The minimum number of observers required to subscribe before establishing the connection to the source. + The time span that should be waited before possibly unsubscribing from the connectable observable. + The scheduler to use for delayed unsubscription. + An observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. + + is null. + is non-positive. + + + + Generates an observable sequence that repeats the given element infinitely. + + Query provider used to construct the data source. + The type of the element that will be repeated in the produced sequence. + Element to repeat. + An observable sequence that repeats the given element infinitely. + + + + Generates an observable sequence that repeats the given element the specified number of times. + + Query provider used to construct the data source. + The type of the element that will be repeated in the produced sequence. + Element to repeat. + Number of times to repeat the element. + An observable sequence that repeats the given element the specified number of times. + + is less than zero. + + + + Generates an observable sequence that repeats the given element the specified number of times, using the specified scheduler to send out observer messages. + + Query provider used to construct the data source. + The type of the element that will be repeated in the produced sequence. + Element to repeat. + Number of times to repeat the element. + Scheduler to run the producer loop on. + An observable sequence that repeats the given element the specified number of times. + + is less than zero. + + is null. + + + + Generates an observable sequence that repeats the given element infinitely, using the specified scheduler to send out observer messages. + + Query provider used to construct the data source. + The type of the element that will be repeated in the produced sequence. + Element to repeat. + Scheduler to run the producer loop on. + An observable sequence that repeats the given element infinitely. + + is null. + + + + Repeats the observable sequence indefinitely. + + The type of the elements in the source sequence. + Observable sequence to repeat. + The observable sequence producing the elements of the given sequence repeatedly and sequentially. + + is null. + + + + Repeats the observable sequence a specified number of times. + + The type of the elements in the source sequence. + Observable sequence to repeat. + Number of times to repeat the sequence. + The observable sequence producing the elements of the given sequence repeatedly. + + is null. + + is less than zero. + + + + Repeatedly resubscribes to the source observable after a normal completion and when the observable + returned by a handler produces an arbitrary item. + + The type of the elements in the source sequence. + The arbitrary element type signaled by the handler observable. + Observable sequence to keep repeating when it successfully terminates. + The function that is called for each observer and takes an observable sequence objects. + It should return an observable of arbitrary items that should signal that arbitrary item in + response to receiving the completion signal from the source observable. If this observable signals + a terminal event, the sequence is terminated with that signal instead. + An observable sequence producing the elements of the given sequence repeatedly while each repetition terminates successfully. + is null. + is null. + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying all notifications. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all the notifications of the source. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + + or is null. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum element count for the replay buffer. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all the notifications of the source subject to the specified replay buffer trimming policy. + Maximum element count of the replay buffer. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + + or is null. + + is less than zero. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum element count for the replay buffer. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all the notifications of the source subject to the specified replay buffer trimming policy. + Maximum element count of the replay buffer. + Scheduler where connected observers within the selector function will be invoked on. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + + or or is null. + + is less than zero. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum time length and element count for the replay buffer. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all the notifications of the source subject to the specified replay buffer trimming policy. + Maximum element count of the replay buffer. + Maximum time length of the replay buffer. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + + or is null. + + is less than zero. + + is less than TimeSpan.Zero. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum time length and element count for the replay buffer. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all the notifications of the source subject to the specified replay buffer trimming policy. + Maximum element count of the replay buffer. + Maximum time length of the replay buffer. + Scheduler where connected observers within the selector function will be invoked on. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + + or or is null. + + is less than zero. + + is less than TimeSpan.Zero. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying all notifications. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all the notifications of the source. + Scheduler where connected observers within the selector function will be invoked on. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + + or or is null. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum time length for the replay buffer. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all the notifications of the source subject to the specified replay buffer trimming policy. + Maximum time length of the replay buffer. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + + or is null. + + is less than TimeSpan.Zero. + + + + + Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying notifications subject to a maximum time length for the replay buffer. + This operator is a specialization of Multicast using a . + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence whose elements will be multicasted through a single shared subscription. + Selector function which can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all the notifications of the source subject to the specified replay buffer trimming policy. + Maximum time length of the replay buffer. + Scheduler where connected observers within the selector function will be invoked on. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + + or or is null. + + is less than TimeSpan.Zero. + + + + + Repeats the source observable sequence until it successfully terminates. + + The type of the elements in the source sequence. + Observable sequence to repeat until it successfully terminates. + An observable sequence producing the elements of the given sequence repeatedly until it terminates successfully. + + is null. + + + + Repeats the source observable sequence the specified number of times or until it successfully terminates. + + The type of the elements in the source sequence. + Observable sequence to repeat until it successfully terminates. + Number of times to repeat the sequence. + An observable sequence producing the elements of the given sequence repeatedly until it terminates successfully. + + is null. + + is less than zero. + + + + Retries (resubscribes to) the source observable after a failure and when the observable + returned by a handler produces an arbitrary item. + + The type of the elements in the source sequence. + The arbitrary element type signaled by the handler observable. + Observable sequence to repeat until it successfully terminates. + The function that is called for each observer and takes an observable sequence of + errors. It should return an observable of arbitrary items that should signal that arbitrary item in + response to receiving the failure Exception from the source observable. If this observable signals + a terminal event, the sequence is terminated with that signal instead. + An observable sequence producing the elements of the given sequence repeatedly until it terminates successfully. + + is null. + + is null. + + + + Returns an observable sequence that contains a single element. + + Query provider used to construct the data source. + The type of the element that will be returned in the produced sequence. + Single element in the resulting observable sequence. + An observable sequence containing the single specified element. + + + + Returns an observable sequence that contains a single element, using the specified scheduler to send out observer messages. + + Query provider used to construct the data source. + The type of the element that will be returned in the produced sequence. + Single element in the resulting observable sequence. + Scheduler to send the single element on. + An observable sequence containing the single specified element. + + is null. + + + + Samples the observable sequence at each interval. + Upon each sampling tick, the latest element (if any) in the source sequence during the last sampling interval is sent to the resulting sequence. + + The type of the elements in the source sequence. + Source sequence to sample. + Interval at which to sample. If this value is equal to TimeSpan.Zero, the scheduler will continuously sample the stream. + Sampled observable sequence. + + is null. + + is less than TimeSpan.Zero. + + Specifying a TimeSpan.Zero value for doesn't guarantee all source sequence elements will be preserved. This is a side-effect + of the asynchrony introduced by the scheduler, where the sampling action may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Samples the observable sequence at each interval, using the specified scheduler to run sampling timers. + Upon each sampling tick, the latest element (if any) in the source sequence during the last sampling interval is sent to the resulting sequence. + + The type of the elements in the source sequence. + Source sequence to sample. + Interval at which to sample. If this value is equal to TimeSpan.Zero, the scheduler will continuously sample the stream. + Scheduler to run the sampling timer on. + Sampled observable sequence. + + or is null. + + is less than TimeSpan.Zero. + + Specifying a TimeSpan.Zero value for doesn't guarantee all source sequence elements will be preserved. This is a side-effect + of the asynchrony introduced by the scheduler, where the sampling action may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Samples the source observable sequence using a sampler observable sequence producing sampling ticks. + Upon each sampling tick, the latest element (if any) in the source sequence during the last sampling interval is sent to the resulting sequence. + + The type of the elements in the source sequence. + The type of the elements in the sampling sequence. + Source sequence to sample. + Sampling tick sequence. + Sampled observable sequence. + + or is null. + + + + Applies an accumulator function over an observable sequence and returns each intermediate result. + For aggregation behavior with no intermediate results, see . + + The type of the elements in the source sequence and the result of the aggregation. + An observable sequence to accumulate over. + An accumulator function to be invoked on each element. + An observable sequence containing the accumulated values. + + or is null. + + + + Applies an accumulator function over an observable sequence and returns each intermediate result. The specified seed value is used as the initial accumulator value. + For aggregation behavior with no intermediate results, see . + + The type of the elements in the source sequence. + The type of the result of the aggregation. + An observable sequence to accumulate over. + The initial accumulator value. + An accumulator function to be invoked on each element. + An observable sequence containing the accumulated values. + + or is null. + + + + Projects each element of an observable sequence into a new form. + + The type of the elements in the source sequence. + The type of the elements in the result sequence, obtained by running the selector function for each element in the source sequence. + A sequence of elements to invoke a transform function on. + A transform function to apply to each source element. + An observable sequence whose elements are the result of invoking the transform function on each element of source. + + or is null. + + + + Projects each element of an observable sequence into a new form by incorporating the element's index. + + The type of the elements in the source sequence. + The type of the elements in the result sequence, obtained by running the selector function for each element in the source sequence. + A sequence of elements to invoke a transform function on. + A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + An observable sequence whose elements are the result of invoking the transform function on each element of source. + + or is null. + + + + Projects each element of an observable sequence to an observable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected intermediate sequences. + The type of the elements in the result sequence, obtained by using the selector to combine source sequence elements with their corresponding intermediate sequence elements. + An observable sequence of elements to project. + A transform function to apply to each element. + A transform function to apply to each element of the intermediate sequence. + An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + + or or is null. + + + + Projects each element of an observable sequence to an observable sequence by incorporating the element's index, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected intermediate sequences. + The type of the elements in the result sequence, obtained by using the selector to combine source sequence elements with their corresponding intermediate sequence elements. + An observable sequence of elements to project. + A transform function to apply to each element; the second parameter of the function represents the index of the source element. + A transform function to apply to each element of the intermediate sequence; the second parameter of the function represents the index of the source element and the fourth parameter represents the index of the intermediate element. + An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + + or or is null. + + + + Projects each element of an observable sequence to an enumerable sequence, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected intermediate enumerable sequences. + The type of the elements in the result sequence, obtained by using the selector to combine source sequence elements with their corresponding intermediate sequence elements. + An observable sequence of elements to project. + A transform function to apply to each element. + A transform function to apply to each element of the intermediate sequence. + An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + + or or is null. + The projected sequences are enumerated synchronously within the OnNext call of the source sequence. In order to do a concurrent, non-blocking merge, change the selector to return an observable sequence obtained using the conversion. + + + + Projects each element of an observable sequence to an enumerable sequence by incorporating the element's index, invokes the result selector for the source element and each of the corresponding inner sequence's elements, and merges the results into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected intermediate enumerable sequences. + The type of the elements in the result sequence, obtained by using the selector to combine source sequence elements with their corresponding intermediate sequence elements. + An observable sequence of elements to project. + A transform function to apply to each element; the second parameter of the function represents the index of the source element. + A transform function to apply to each element of the intermediate sequence; the second parameter of the function represents the index of the source element and the fourth parameter represents the index of the intermediate element. + An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element. + + or or is null. + The projected sequences are enumerated synchronously within the OnNext call of the source sequence. In order to do a concurrent, non-blocking merge, change the selector to return an observable sequence obtained using the conversion. + + + + Projects each element of the source observable sequence to the other observable sequence and merges the resulting observable sequences into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the other sequence and the elements in the result sequence. + An observable sequence of elements to project. + An observable sequence to project each element from the source sequence onto. + An observable sequence whose elements are the result of projecting each source element onto the other sequence and merging all the resulting sequences together. + + or is null. + + + + Projects each notification of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected inner sequences and the elements in the merged result sequence. + An observable sequence of notifications to project. + A transform function to apply to each element. + A transform function to apply when an error occurs in the source sequence. + A transform function to apply when the end of the source sequence is reached. + An observable sequence whose elements are the result of invoking the one-to-many transform function corresponding to each notification in the input sequence. + + or or or is null. + + + + Projects each notification of an observable sequence to an observable sequence by incorporating the element's index and merges the resulting observable sequences into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected inner sequences and the elements in the merged result sequence. + An observable sequence of notifications to project. + A transform function to apply to each element; the second parameter of the function represents the index of the source element. + A transform function to apply when an error occurs in the source sequence. + A transform function to apply when the end of the source sequence is reached. + An observable sequence whose elements are the result of invoking the one-to-many transform function corresponding to each notification in the input sequence. + + or or or is null. + + + + Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected inner sequences and the elements in the merged result sequence. + An observable sequence of elements to project. + A transform function to apply to each element. + An observable sequence whose elements are the result of invoking the one-to-many transform function on each element of the input sequence. + + or is null. + + + + Projects each element of an observable sequence to an observable sequence by incorporating the element's index and merges the resulting observable sequences into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected inner sequences and the elements in the merged result sequence. + An observable sequence of elements to project. + A transform function to apply to each element; the second parameter of the function represents the index of the source element. + An observable sequence whose elements are the result of invoking the one-to-many transform function on each element of the input sequence. + + or is null. + + + + Projects each element of an observable sequence to a task and merges all of the task results into one observable sequence. + + The type of the elements in the source sequence. + The type of the result produced by the projected tasks and the elements in the merged result sequence. + An observable sequence of elements to project. + A transform function to apply to each element. + An observable sequence whose elements are the result of the tasks executed for each element of the input sequence. + This overload supports composition of observable sequences and tasks, without requiring manual conversion of the tasks to observable sequences using . + + or is null. + + + + Projects each element of an observable sequence to a task by incorporating the element's index and merges all of the task results into one observable sequence. + + The type of the elements in the source sequence. + The type of the result produced by the projected tasks and the elements in the merged result sequence. + An observable sequence of elements to project. + A transform function to apply to each element; the second parameter of the function represents the index of the source element. + An observable sequence whose elements are the result of the tasks executed for each element of the input sequence. + This overload supports composition of observable sequences and tasks, without requiring manual conversion of the tasks to observable sequences using . + + or is null. + + + + Projects each element of an observable sequence to a task with cancellation support and merges all of the task results into one observable sequence. + + The type of the elements in the source sequence. + The type of the result produced by the projected tasks and the elements in the merged result sequence. + An observable sequence of elements to project. + A transform function to apply to each element. + An observable sequence whose elements are the result of the tasks executed for each element of the input sequence. + This overload supports composition of observable sequences and tasks, without requiring manual conversion of the tasks to observable sequences using . + + or is null. + + + + Projects each element of an observable sequence to a task by incorporating the element's index with cancellation support and merges all of the task results into one observable sequence. + + The type of the elements in the source sequence. + The type of the result produced by the projected tasks and the elements in the merged result sequence. + An observable sequence of elements to project. + A transform function to apply to each element; the second parameter of the function represents the index of the source element. + An observable sequence whose elements are the result of the tasks executed for each element of the input sequence. + This overload supports composition of observable sequences and tasks, without requiring manual conversion of the tasks to observable sequences using . + + or is null. + + + + Projects each element of an observable sequence to an enumerable sequence and concatenates the resulting enumerable sequences into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected inner enumerable sequences and the elements in the merged result sequence. + An observable sequence of elements to project. + A transform function to apply to each element. + An observable sequence whose elements are the result of invoking the one-to-many transform function on each element of the input sequence. + + or is null. + The projected sequences are enumerated synchronously within the OnNext call of the source sequence. In order to do a concurrent, non-blocking merge, change the selector to return an observable sequence obtained using the conversion. + + + + Projects each element of an observable sequence to an enumerable sequence by incorporating the element's index and concatenates the resulting enumerable sequences into one observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the projected inner enumerable sequences and the elements in the merged result sequence. + An observable sequence of elements to project. + A transform function to apply to each element; the second parameter of the function represents the index of the source element. + An observable sequence whose elements are the result of invoking the one-to-many transform function on each element of the input sequence. + + or is null. + The projected sequences are enumerated synchronously within the OnNext call of the source sequence. In order to do a concurrent, non-blocking merge, change the selector to return an observable sequence obtained using the conversion. + + + + Projects each element of an observable sequence to a task, invokes the result selector for the source element and the task result, and merges the results into one observable sequence. + + The type of the elements in the source sequence. + The type of the results produced by the projected intermediate tasks. + The type of the elements in the result sequence, obtained by using the selector to combine source sequence elements with their corresponding intermediate task results. + An observable sequence of elements to project. + A transform function to apply to each element. + A transform function to apply to each element of the intermediate sequence. + An observable sequence whose elements are the result of obtaining a task for each element of the input sequence and then mapping the task's result and its corresponding source element to a result element. + + or or is null. + This overload supports using LINQ query comprehension syntax in C# and Visual Basic to compose observable sequences and tasks, without requiring manual conversion of the tasks to observable sequences using . + + + + Projects each element of an observable sequence to a task by incorporating the element's index, invokes the result selector for the source element and the task result, and merges the results into one observable sequence. + + The type of the elements in the source sequence. + The type of the results produced by the projected intermediate tasks. + The type of the elements in the result sequence, obtained by using the selector to combine source sequence elements with their corresponding intermediate task results. + An observable sequence of elements to project. + A transform function to apply to each element; the second parameter of the function represents the index of the source element. + A transform function to apply to each element of the intermediate sequence; the second parameter of the function represents the index of the source element. + An observable sequence whose elements are the result of obtaining a task for each element of the input sequence and then mapping the task's result and its corresponding source element to a result element. + + or or is null. + This overload supports using LINQ query comprehension syntax in C# and Visual Basic to compose observable sequences and tasks, without requiring manual conversion of the tasks to observable sequences using . + + + + Projects each element of an observable sequence to a task with cancellation support, invokes the result selector for the source element and the task result, and merges the results into one observable sequence. + + The type of the elements in the source sequence. + The type of the results produced by the projected intermediate tasks. + The type of the elements in the result sequence, obtained by using the selector to combine source sequence elements with their corresponding intermediate task results. + An observable sequence of elements to project. + A transform function to apply to each element. + A transform function to apply to each element of the intermediate sequence. + An observable sequence whose elements are the result of obtaining a task for each element of the input sequence and then mapping the task's result and its corresponding source element to a result element. + + or or is null. + This overload supports using LINQ query comprehension syntax in C# and Visual Basic to compose observable sequences and tasks, without requiring manual conversion of the tasks to observable sequences using . + + + + Projects each element of an observable sequence to a task by incorporating the element's index with cancellation support, invokes the result selector for the source element and the task result, and merges the results into one observable sequence. + + The type of the elements in the source sequence. + The type of the results produced by the projected intermediate tasks. + The type of the elements in the result sequence, obtained by using the selector to combine source sequence elements with their corresponding intermediate task results. + An observable sequence of elements to project. + A transform function to apply to each element; the second parameter of the function represents the index of the source element. + A transform function to apply to each element of the intermediate sequence; the second parameter of the function represents the index of the source element. + An observable sequence whose elements are the result of obtaining a task for each element of the input sequence and then mapping the task's result and its corresponding source element to a result element. + + or or is null. + This overload supports using LINQ query comprehension syntax in C# and Visual Basic to compose observable sequences and tasks, without requiring manual conversion of the tasks to observable sequences using . + + + + Determines whether two sequences are equal by comparing the elements pairwise. + + The type of the elements in the source sequence. + First observable sequence to compare. + Second observable sequence to compare. + An observable sequence that contains a single element which indicates whether both sequences are of equal length and their corresponding elements are equal according to the default equality comparer for their type. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Determines whether an observable and enumerable sequence are equal by comparing the elements pairwise. + + The type of the elements in the source sequence. + First observable sequence to compare. + Second observable sequence to compare. + An observable sequence that contains a single element which indicates whether both sequences are of equal length and their corresponding elements are equal according to the default equality comparer for their type. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Determines whether two sequences are equal by comparing the elements pairwise using a specified equality comparer. + + The type of the elements in the source sequence. + First observable sequence to compare. + Second observable sequence to compare. + Comparer used to compare elements of both sequences. + An observable sequence that contains a single element which indicates whether both sequences are of equal length and their corresponding elements are equal according to the specified equality comparer. + + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Determines whether an observable and enumerable sequence are equal by comparing the elements pairwise using a specified equality comparer. + + The type of the elements in the source sequence. + First observable sequence to compare. + Second observable sequence to compare. + Comparer used to compare elements of both sequences. + An observable sequence that contains a single element which indicates whether both sequences are of equal length and their corresponding elements are equal according to the specified equality comparer. + + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Returns the only element of an observable sequence, and reports an exception if there is not exactly one element in the observable sequence. + + The type of the elements in the source sequence. + Source observable sequence. + Sequence containing the single element in the observable sequence. + + is null. + (Asynchronous) The source sequence contains more than one element. -or- The source sequence is empty. + + + + Returns the only element of an observable sequence that satisfies the condition in the predicate, and reports an exception if there is not exactly one element in the observable sequence. + + The type of the elements in the source sequence. + Source observable sequence. + A predicate function to evaluate for elements in the source sequence. + Sequence containing the single element in the observable sequence that satisfies the condition in the predicate. + + or is null. + (Asynchronous) No element satisfies the condition in the predicate. -or- More than one element satisfies the condition in the predicate. -or- The source sequence is empty. + + + + Returns the only element of an observable sequence, or a default value if the observable sequence is empty; this method reports an exception if there is more than one element in the observable sequence. + + The type of the elements in the source sequence. + Source observable sequence. + Sequence containing the single element in the observable sequence, or a default value if no such element exists. + + is null. + (Asynchronous) The source sequence contains more than one element. + + + + Returns the only element of an observable sequence that matches the predicate, or a default value if no such element exists; this method reports an exception if there is more than one element in the observable sequence. + + The type of the elements in the source sequence. + Source observable sequence. + A predicate function to evaluate for elements in the source sequence. + Sequence containing the single element in the observable sequence that satisfies the condition in the predicate, or a default value if no such element exists. + + or is null. + (Asynchronous) The sequence contains more than one element that satisfies the condition in the predicate. + + + + Bypasses a specified number of elements in an observable sequence and then returns the remaining elements. + + The type of the elements in the source sequence. + The sequence to take elements from. + The number of elements to skip before returning the remaining elements. + An observable sequence that contains the elements that occur after the specified index in the input sequence. + + is null. + + is less than zero. + + + + Skips elements for the specified duration from the start of the observable source sequence. + + The type of the elements in the source sequence. + Source sequence to skip elements for. + Duration for skipping elements from the start of the sequence. + An observable sequence with the elements skipped during the specified duration from the start of the source sequence. + + is null. + + is less than TimeSpan.Zero. + + + Specifying a TimeSpan.Zero value for doesn't guarantee no elements will be dropped from the start of the source sequence. + This is a side-effect of the asynchrony introduced by the scheduler, where the action that causes callbacks from the source sequence to be forwarded + may not execute immediately, despite the TimeSpan.Zero due time. + + + Errors produced by the source sequence are always forwarded to the result sequence, even if the error occurs before the . + + + + + + Skips elements for the specified duration from the start of the observable source sequence, using the specified scheduler to run timers. + + The type of the elements in the source sequence. + Source sequence to skip elements for. + Duration for skipping elements from the start of the sequence. + Scheduler to run the timer on. + An observable sequence with the elements skipped during the specified duration from the start of the source sequence. + + or is null. + + is less than TimeSpan.Zero. + + + Specifying a TimeSpan.Zero value for doesn't guarantee no elements will be dropped from the start of the source sequence. + This is a side-effect of the asynchrony introduced by the scheduler, where the action that causes callbacks from the source sequence to be forwarded + may not execute immediately, despite the TimeSpan.Zero due time. + + + Errors produced by the source sequence are always forwarded to the result sequence, even if the error occurs before the . + + + + + + Bypasses a specified number of elements at the end of an observable sequence. + + The type of the elements in the source sequence. + Source sequence. + Number of elements to bypass at the end of the source sequence. + An observable sequence containing the source sequence elements except for the bypassed ones at the end. + + is null. + + is less than zero. + + This operator accumulates a queue with a length enough to store the first elements. As more elements are + received, elements are taken from the front of the queue and produced on the result sequence. This causes elements to be delayed. + + + + + Skips elements for the specified duration from the end of the observable source sequence. + + The type of the elements in the source sequence. + Source sequence to skip elements for. + Duration for skipping elements from the end of the sequence. + An observable sequence with the elements skipped during the specified duration from the end of the source sequence. + + is null. + + is less than TimeSpan.Zero. + + This operator accumulates a queue with a length enough to store elements received during the initial window. + As more elements are received, elements older than the specified are taken from the queue and produced on the + result sequence. This causes elements to be delayed with . + + + + + Skips elements for the specified duration from the end of the observable source sequence, using the specified scheduler to run timers. + + The type of the elements in the source sequence. + Source sequence to skip elements for. + Duration for skipping elements from the end of the sequence. + Scheduler to run the timer on. + An observable sequence with the elements skipped during the specified duration from the end of the source sequence. + + or is null. + + is less than TimeSpan.Zero. + + This operator accumulates a queue with a length enough to store elements received during the initial window. + As more elements are received, elements older than the specified are taken from the queue and produced on the + result sequence. This causes elements to be delayed with . + + + + + Skips elements from the observable source sequence until the specified start time. + + The type of the elements in the source sequence. + Source sequence to skip elements for. + Time to start taking elements from the source sequence. If this value is less than or equal to DateTimeOffset.UtcNow, no elements will be skipped. + An observable sequence with the elements skipped until the specified start time. + + is null. + + Errors produced by the source sequence are always forwarded to the result sequence, even if the error occurs before the . + + + + + Skips elements from the observable source sequence until the specified start time, using the specified scheduler to run timers. + + The type of the elements in the source sequence. + Source sequence to skip elements for. + Time to start taking elements from the source sequence. If this value is less than or equal to DateTimeOffset.UtcNow, no elements will be skipped. + Scheduler to run the timer on. + An observable sequence with the elements skipped until the specified start time. + + or is null. + + Errors produced by the source sequence are always forwarded to the result sequence, even if the error occurs before the . + + + + + Returns the elements from the source observable sequence only after the other observable sequence produces an element. + Starting from Rx.NET 4.0, this will subscribe to before subscribing to + so in case emits an element right away, elements from are not missed. + + The type of the elements in the source sequence. + The type of the elements in the other sequence that indicates the end of skip behavior. + Source sequence to propagate elements for. + Observable sequence that triggers propagation of elements of the source sequence. + An observable sequence containing the elements of the source sequence starting from the point the other sequence triggered propagation. + + or is null. + + + + Bypasses elements in an observable sequence as long as a specified condition is true and then returns the remaining elements. + + The type of the elements in the source sequence. + An observable sequence to return elements from. + A function to test each element for a condition. + An observable sequence that contains the elements from the input sequence starting at the first element in the linear series that does not pass the test specified by predicate. + + or is null. + + + + Bypasses elements in an observable sequence as long as a specified condition is true and then returns the remaining elements. + The element's index is used in the logic of the predicate function. + + The type of the elements in the source sequence. + An observable sequence to return elements from. + A function to test each element for a condition; the second parameter of the function represents the index of the source element. + An observable sequence that contains the elements from the input sequence starting at the first element in the linear series that does not pass the test specified by predicate. + + or is null. + + + + Invokes the action asynchronously, surfacing the result through an observable sequence. + + Query provider used to construct the data source. + Action to run asynchronously. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + + is null. + + + + The action is called immediately, not during the subscription of the resulting sequence. + + + Multiple subscriptions to the resulting sequence can observe the action's outcome. + + + + + + + Invokes the action asynchronously on the specified scheduler, surfacing the result through an observable sequence. + + Query provider used to construct the data source. + Action to run asynchronously. + Scheduler to run the action on. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + + or is null. + + + + The action is called immediately, not during the subscription of the resulting sequence. + + + Multiple subscriptions to the resulting sequence can observe the action's outcome. + + + + + + + Invokes the specified function asynchronously, surfacing the result through an observable sequence. + + Query provider used to construct the data source. + The type of the result returned by the function. + Function to run asynchronously. + An observable sequence exposing the function's result value, or an exception. + + is null. + + + + The function is called immediately, not during the subscription of the resulting sequence. + + + Multiple subscriptions to the resulting sequence can observe the function's result. + + + + + + + Invokes the specified function asynchronously on the specified scheduler, surfacing the result through an observable sequence + + Query provider used to construct the data source. + The type of the result returned by the function. + Function to run asynchronously. + Scheduler to run the function on. + An observable sequence exposing the function's result value, or an exception. + + or is null. + + + + The function is called immediately, not during the subscription of the resulting sequence. + + + Multiple subscriptions to the resulting sequence can observe the function's result. + + + + + + + Invokes the asynchronous action, surfacing the result through an observable sequence. + + Query provider used to construct the data source. + Asynchronous action to run. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + + is null. + + + + The action is started immediately, not during the subscription of the resulting sequence. + + + Multiple subscriptions to the resulting sequence can observe the action's outcome. + + + + + + + Invokes the asynchronous action, surfacing the result through an observable sequence. + + Query provider used to construct the data source. + Asynchronous action to run. + Scheduler on which to notify observers. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + + is null or is null. + + + + The action is started immediately, not during the subscription of the resulting sequence. + + + Multiple subscriptions to the resulting sequence can observe the action's outcome. + + + + + + + Invokes the asynchronous action, surfacing the result through an observable sequence. + The CancellationToken is shared by all subscriptions on the resulting observable sequence. See the remarks section for more information. + + Query provider used to construct the data source. + Asynchronous action to run. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + + is null. + + + + The action is started immediately, not during the subscription of the resulting sequence. + + + Multiple subscriptions to the resulting sequence can observe the action's outcome. + + + + If any subscription to the resulting sequence is disposed, the CancellationToken is set. The observer associated to the disposed + subscription won't see the TaskCanceledException, but other observers will. You can protect against this using the Catch operator. + Be careful when handing out the resulting sequence because of this behavior. The most common use is to have a single subscription + to the resulting sequence, which controls the CancellationToken state. Alternatively, you can control subscription behavior using + multicast operators. + + + + + + + + Invokes the asynchronous action, surfacing the result through an observable sequence. + The CancellationToken is shared by all subscriptions on the resulting observable sequence. See the remarks section for more information. + + Query provider used to construct the data source. + Asynchronous action to run. + Scheduler on which to notify observers. + An observable sequence exposing a Unit value upon completion of the action, or an exception. + + is null or is null. + + + + The action is started immediately, not during the subscription of the resulting sequence. + + + Multiple subscriptions to the resulting sequence can observe the action's outcome. + + + + If any subscription to the resulting sequence is disposed, the CancellationToken is set. The observer associated to the disposed + subscription won't see the TaskCanceledException, but other observers will. You can protect against this using the Catch operator. + Be careful when handing out the resulting sequence because of this behavior. The most common use is to have a single subscription + to the resulting sequence, which controls the CancellationToken state. Alternatively, you can control subscription behavior using + multicast operators. + + + + + + + + Invokes the asynchronous function, surfacing the result through an observable sequence. + + Query provider used to construct the data source. + The type of the result returned by the asynchronous function. + Asynchronous function to run. + An observable sequence exposing the function's result value, or an exception. + + is null. + + + + The function is started immediately, not during the subscription of the resulting sequence. + + + Multiple subscriptions to the resulting sequence can observe the function's result. + + + + + + + Invokes the asynchronous function, surfacing the result through an observable sequence. + The CancellationToken is shared by all subscriptions on the resulting observable sequence. See the remarks section for more information. + + Query provider used to construct the data source. + The type of the result returned by the asynchronous function. + Asynchronous function to run. + An observable sequence exposing the function's result value, or an exception. + + is null. + + + + The function is started immediately, not during the subscription of the resulting sequence. + + + Multiple subscriptions to the resulting sequence can observe the function's result. + + + + If any subscription to the resulting sequence is disposed, the CancellationToken is set. The observer associated to the disposed + subscription won't see the TaskCanceledException, but other observers will. You can protect against this using the Catch operator. + Be careful when handing out the resulting sequence because of this behavior. The most common use is to have a single subscription + to the resulting sequence, which controls the CancellationToken state. Alternatively, you can control subscription behavior using + multicast operators. + + + + + + + + Invokes the asynchronous function, surfacing the result through an observable sequence. + + Query provider used to construct the data source. + The type of the result returned by the asynchronous function. + Asynchronous function to run. + Scheduler on which to notify observers. + An observable sequence exposing the function's result value, or an exception. + + is null or is null. + + + + The function is started immediately, not during the subscription of the resulting sequence. + + + Multiple subscriptions to the resulting sequence can observe the function's result. + + + + + + + Invokes the asynchronous function, surfacing the result through an observable sequence. + The CancellationToken is shared by all subscriptions on the resulting observable sequence. See the remarks section for more information. + + Query provider used to construct the data source. + The type of the result returned by the asynchronous function. + Asynchronous function to run. + Scheduler on which to notify observers. + An observable sequence exposing the function's result value, or an exception. + + is null or is null. + + + + The function is started immediately, not during the subscription of the resulting sequence. + + + Multiple subscriptions to the resulting sequence can observe the function's result. + + + + If any subscription to the resulting sequence is disposed, the CancellationToken is set. The observer associated to the disposed + subscription won't see the TaskCanceledException, but other observers will. You can protect against this using the Catch operator. + Be careful when handing out the resulting sequence because of this behavior. The most common use is to have a single subscription + to the resulting sequence, which controls the CancellationToken state. Alternatively, you can control subscription behavior using + multicast operators. + + + + + + + + Prepends a sequence of values to an observable sequence. + + The type of the elements in the source sequence. + Source sequence to prepend values to. + Scheduler to emit the prepended values on. + Values to prepend to the specified sequence. + The source sequence prepended with the specified values. + + or or is null. + + + + Prepends a sequence of values to an observable sequence. + + The type of the elements in the source sequence. + Source sequence to prepend values to. + Scheduler to emit the prepended values on. + Values to prepend to the specified sequence. + The source sequence prepended with the specified values. + + or or is null. + + + + Prepends a sequence of values to an observable sequence. + + The type of the elements in the source sequence. + Source sequence to prepend values to. + Values to prepend to the specified sequence. + The source sequence prepended with the specified values. + + or is null. + + + + Prepends a sequence of values to an observable sequence. + + The type of the elements in the source sequence. + Source sequence to prepend values to. + Values to prepend to the specified sequence. + The source sequence prepended with the specified values. + + or is null. + + + + Wraps the source sequence in order to run its subscription and unsubscription logic on the specified synchronization context. This operation is not commonly used; + see the remarks section for more information on the distinction between SubscribeOn and ObserveOn. + + The type of the elements in the source sequence. + Source sequence. + Synchronization context to perform subscription and unsubscription actions on. + The source sequence whose subscriptions and unsubscriptions happen on the specified synchronization context. + + or is null. + + This only performs the side-effects of subscription and unsubscription on the specified synchronization context. In order to invoke observer + callbacks on a synchronization context, use . + + + + + Wraps the source sequence in order to run its subscription and unsubscription logic on the specified scheduler. This operation is not commonly used; + see the remarks section for more information on the distinction between SubscribeOn and ObserveOn. + + The type of the elements in the source sequence. + Source sequence. + Scheduler to perform subscription and unsubscription actions on. + The source sequence whose subscriptions and unsubscriptions happen on the specified scheduler. + + or is null. + + This only performs the side-effects of subscription and unsubscription on the specified scheduler. In order to invoke observer + callbacks on a scheduler, use . + + + + + Computes the sum of a sequence of values. + + A sequence of values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + + is null. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of values. + + A sequence of values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of values. + + A sequence of values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + + is null. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of values. + + A sequence of values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + + is null. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values. + + A sequence of nullable values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + + is null. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values. + + A sequence of nullable values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values. + + A sequence of nullable values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + + is null. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values. + + A sequence of nullable values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + + is null. + (Asynchronous) The sum of the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values. + + A sequence of nullable values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of values. + + A sequence of values to calculate the sum of. + An observable sequence containing a single element with the sum of the values in the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + + or is null. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + + or is null. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + + or is null. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + + or is null. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + + or is null. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Computes the sum of a sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence. + + The type of the elements in the source sequence. + A sequence of values that are used to calculate a sum. + A transform function to apply to each element. + An observable sequence containing a single element with the sum of the values in the source sequence. + + or is null. + (Asynchronous) The sum of the projected values for the elements in the source sequence is larger than . + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Transforms an observable sequence of observable sequences into an observable sequence + producing values only from the most recent observable sequence. + Each time a new inner observable sequence is received, unsubscribe from the + previous inner observable sequence. + + The type of the elements in the source sequences. + Observable sequence of inner observable sequences. + The observable sequence that at any point in time produces the elements of the most recent inner observable sequence that has been received. + + is null. + + + + Transforms an observable sequence of tasks into an observable sequence + producing values only from the most recent observable sequence. + Each time a new task is received, the previous task's result is ignored. + + The type of the results produced by the source tasks. + Observable sequence of tasks. + The observable sequence that at any point in time produces the result of the most recent task that has been received. + + is null. + If the tasks support cancellation, consider manual conversion of the tasks using , followed by a switch operation using . + + + + Synchronizes the observable sequence such that observer notifications cannot be delivered concurrently. + This overload is useful to "fix" an observable sequence that exhibits concurrent callbacks on individual observers, which is invalid behavior for the query processor. + + The type of the elements in the source sequence. + Source sequence. + The source sequence whose outgoing calls to observers are synchronized. + + is null. + + It's invalid behavior - according to the observer grammar - for a sequence to exhibit concurrent callbacks on a given observer. + This operator can be used to "fix" a source that doesn't conform to this rule. + + + + + Synchronizes the observable sequence such that observer notifications cannot be delivered concurrently, using the specified gate object. + This overload is useful when writing n-ary query operators, in order to prevent concurrent callbacks from different sources by synchronizing on a common gate object. + + The type of the elements in the source sequence. + Source sequence. + Gate object to synchronize each observer call on. + The source sequence whose outgoing calls to observers are synchronized on the given gate object. + + or is null. + + + + Returns a specified number of contiguous elements from the start of an observable sequence. + + The type of the elements in the source sequence. + The sequence to take elements from. + The number of elements to return. + An observable sequence that contains the specified number of elements from the start of the input sequence. + + is null. + + is less than zero. + + + + Returns a specified number of contiguous elements from the start of an observable sequence, using the specified scheduler for the edge case of Take(0). + + The type of the elements in the source sequence. + The sequence to take elements from. + The number of elements to return. + Scheduler used to produce an OnCompleted message in case count is set to 0. + An observable sequence that contains the specified number of elements from the start of the input sequence. + + or is null. + + is less than zero. + + + + Takes elements for the specified duration from the start of the observable source sequence. + + The type of the elements in the source sequence. + Source sequence to take elements from. + Duration for taking elements from the start of the sequence. + An observable sequence with the elements taken during the specified duration from the start of the source sequence. + + is null. + + is less than TimeSpan.Zero. + + Specifying a TimeSpan.Zero value for doesn't guarantee an empty sequence will be returned. This is a side-effect + of the asynchrony introduced by the scheduler, where the action that stops forwarding callbacks from the source sequence may not execute + immediately, despite the TimeSpan.Zero due time. + + + + + Takes elements for the specified duration from the start of the observable source sequence, using the specified scheduler to run timers. + + The type of the elements in the source sequence. + Source sequence to take elements from. + Duration for taking elements from the start of the sequence. + Scheduler to run the timer on. + An observable sequence with the elements taken during the specified duration from the start of the source sequence. + + or is null. + + is less than TimeSpan.Zero. + + Specifying a TimeSpan.Zero value for doesn't guarantee an empty sequence will be returned. This is a side-effect + of the asynchrony introduced by the scheduler, where the action that stops forwarding callbacks from the source sequence may not execute + immediately, despite the TimeSpan.Zero due time. + + + + + Returns a specified number of contiguous elements from the end of an observable sequence. + + The type of the elements in the source sequence. + Source sequence. + Number of elements to take from the end of the source sequence. + An observable sequence containing the specified number of elements from the end of the source sequence. + + is null. + + is less than zero. + + This operator accumulates a buffer with a length enough to store elements elements. Upon completion of + the source sequence, this buffer is drained on the result sequence. This causes the elements to be delayed. + + + + + Returns a specified number of contiguous elements from the end of an observable sequence, using the specified scheduler to drain the queue. + + The type of the elements in the source sequence. + Source sequence. + Number of elements to take from the end of the source sequence. + Scheduler used to drain the queue upon completion of the source sequence. + An observable sequence containing the specified number of elements from the end of the source sequence. + + or is null. + + is less than zero. + + This operator accumulates a buffer with a length enough to store elements elements. Upon completion of + the source sequence, this buffer is drained on the result sequence. This causes the elements to be delayed. + + + + + Returns elements within the specified duration from the end of the observable source sequence. + + The type of the elements in the source sequence. + Source sequence to take elements from. + Duration for taking elements from the end of the sequence. + An observable sequence with the elements taken during the specified duration from the end of the source sequence. + + is null. + + is less than TimeSpan.Zero. + + This operator accumulates a buffer with a length enough to store elements for any window during the lifetime of + the source sequence. Upon completion of the source sequence, this buffer is drained on the result sequence. This causes the result elements + to be delayed with . + + + + + Returns elements within the specified duration from the end of the observable source sequence, using the specified scheduler to run timers. + + The type of the elements in the source sequence. + Source sequence to take elements from. + Duration for taking elements from the end of the sequence. + Scheduler to run the timer on. + An observable sequence with the elements taken during the specified duration from the end of the source sequence. + + or is null. + + is less than TimeSpan.Zero. + + This operator accumulates a buffer with a length enough to store elements for any window during the lifetime of + the source sequence. Upon completion of the source sequence, this buffer is drained on the result sequence. This causes the result elements + to be delayed with . + + + + + Returns elements within the specified duration from the end of the observable source sequence, using the specified schedulers to run timers and to drain the collected elements. + + The type of the elements in the source sequence. + Source sequence to take elements from. + Duration for taking elements from the end of the sequence. + Scheduler to run the timer on. + Scheduler to drain the collected elements. + An observable sequence with the elements taken during the specified duration from the end of the source sequence. + + or or is null. + + is less than TimeSpan.Zero. + + This operator accumulates a buffer with a length enough to store elements for any window during the lifetime of + the source sequence. Upon completion of the source sequence, this buffer is drained on the result sequence. This causes the result elements + to be delayed with . + + + + + Returns a list with the specified number of contiguous elements from the end of an observable sequence. + + The type of the elements in the source sequence. + Source sequence. + Number of elements to take from the end of the source sequence. + An observable sequence containing a single list with the specified number of elements from the end of the source sequence. + + is null. + + is less than zero. + + This operator accumulates a buffer with a length enough to store elements. Upon completion of the + source sequence, this buffer is produced on the result sequence. + + + + + Returns a list with the elements within the specified duration from the end of the observable source sequence. + + The type of the elements in the source sequence. + Source sequence to take elements from. + Duration for taking elements from the end of the sequence. + An observable sequence containing a single list with the elements taken during the specified duration from the end of the source sequence. + + is null. + + is less than TimeSpan.Zero. + + This operator accumulates a buffer with a length enough to store elements for any window during the lifetime of + the source sequence. Upon completion of the source sequence, this buffer is produced on the result sequence. + + + + + Returns a list with the elements within the specified duration from the end of the observable source sequence, using the specified scheduler to run timers. + + The type of the elements in the source sequence. + Source sequence to take elements from. + Duration for taking elements from the end of the sequence. + Scheduler to run the timer on. + An observable sequence containing a single list with the elements taken during the specified duration from the end of the source sequence. + + or is null. + + is less than TimeSpan.Zero. + + This operator accumulates a buffer with a length enough to store elements for any window during the lifetime of + the source sequence. Upon completion of the source sequence, this buffer is produced on the result sequence. + + + + + Takes elements for the specified duration until the specified end time. + + The type of the elements in the source sequence. + Source sequence to take elements from. + Time to stop taking elements from the source sequence. If this value is less than or equal to DateTimeOffset.UtcNow, the result stream will complete immediately. + An observable sequence with the elements taken until the specified end time. + + is null. + + + + Takes elements for the specified duration until the specified end time, using the specified scheduler to run timers. + + The type of the elements in the source sequence. + Source sequence to take elements from. + Time to stop taking elements from the source sequence. If this value is less than or equal to DateTimeOffset.UtcNow, the result stream will complete immediately. + Scheduler to run the timer on. + An observable sequence with the elements taken until the specified end time. + + or is null. + + + + Returns the elements from the source observable sequence until the other observable sequence produces an element. + + The type of the elements in the source sequence. + The type of the elements in the other sequence that indicates the end of take behavior. + Source sequence to propagate elements for. + Observable sequence that terminates propagation of elements of the source sequence. + An observable sequence containing the elements of the source sequence up to the point the other sequence interrupted further propagation. + + or is null. + + + + Relays elements from the source observable sequence and calls the predicate after an + emission to check if the sequence should stop after that specific item. + + The type of the elements in the source and result sequences. + The source sequence to relay elements of. + Called after each upstream item has been emitted with + that upstream item and should return true to indicate the sequence should + complete. + The observable sequence with the source elements until the stop predicate returns true. + + The following sequence will stop after the value 5 has been encountered: + + Observable.Range(1, 10) + .TakeUntil(item => item == 5) + .Subscribe(Console.WriteLine); + + + If or is null. + + + + Returns elements from an observable sequence as long as a specified condition is true. + + The type of the elements in the source sequence. + A sequence to return elements from. + A function to test each element for a condition. + An observable sequence that contains the elements from the input sequence that occur before the element at which the test no longer passes. + + or is null. + + + + Returns elements from an observable sequence as long as a specified condition is true. + The element's index is used in the logic of the predicate function. + + The type of the elements in the source sequence. + A sequence to return elements from. + A function to test each element for a condition; the second parameter of the function represents the index of the source element. + An observable sequence that contains the elements from the input sequence that occur before the element at which the test no longer passes. + + or is null. + + + + Ignores elements from an observable sequence which are followed by another element within a specified relative time duration. + + The type of the elements in the source sequence. + Source sequence to throttle. + Throttling duration for each element. + The throttled sequence. + + is null. + + is less than TimeSpan.Zero. + + + This operator throttles the source sequence by holding on to each element for the duration specified in . If another + element is produced within this time window, the element is dropped and a new timer is started for the current element, repeating this whole + process. For streams that never have gaps larger than or equal to between elements, the resulting stream won't + produce any elements. In order to reduce the volume of a stream whilst guaranteeing the periodic production of elements, consider using the + Observable.Sample set of operators. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing throttling timers to be scheduled + that are due immediately. However, this doesn't guarantee all elements will be retained in the result sequence. This is a side-effect of the + asynchrony introduced by the scheduler, where the action to forward the current element may not execute immediately, despite the TimeSpan.Zero + due time. In such cases, the next element may arrive before the scheduler gets a chance to run the throttling action. + + + + + + Ignores elements from an observable sequence which are followed by another element within a specified relative time duration, using the specified scheduler to run throttling timers. + + The type of the elements in the source sequence. + Source sequence to throttle. + Throttling duration for each element. + Scheduler to run the throttle timers on. + The throttled sequence. + + or is null. + + is less than TimeSpan.Zero. + + + This operator throttles the source sequence by holding on to each element for the duration specified in . If another + element is produced within this time window, the element is dropped and a new timer is started for the current element, repeating this whole + process. For streams that never have gaps larger than or equal to between elements, the resulting stream won't + produce any elements. In order to reduce the volume of a stream whilst guaranteeing the periodic production of elements, consider using the + Observable.Sample set of operators. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing throttling timers to be scheduled + that are due immediately. However, this doesn't guarantee all elements will be retained in the result sequence. This is a side-effect of the + asynchrony introduced by the scheduler, where the action to forward the current element may not execute immediately, despite the TimeSpan.Zero + due time. In such cases, the next element may arrive before the scheduler gets a chance to run the throttling action. + + + + + + Ignores elements from an observable sequence which are followed by another value within a computed throttle duration. + + The type of the elements in the source sequence. + The type of the elements in the throttle sequences selected for each element in the source sequence. + Source sequence to throttle. + Selector function to retrieve a sequence indicating the throttle duration for each given element. + The throttled sequence. + + or is null. + + This operator throttles the source sequence by holding on to each element for the duration denoted by . + If another element is produced within this time window, the element is dropped and a new timer is started for the current element, repeating this + whole process. For streams where the duration computed by applying the to each element overlaps with + the occurrence of the successor element, the resulting stream won't produce any elements. In order to reduce the volume of a stream whilst + guaranteeing the periodic production of elements, consider using the Observable.Sample set of operators. + + + + + Returns an observable sequence that terminates with an exception. + + Query provider used to construct the data source. + The type used for the type parameter of the resulting sequence. + Exception object used for the sequence's termination. + The observable sequence that terminates exceptionally with the specified exception object. + + is null. + + + + Returns an observable sequence that terminates with an exception, using the specified scheduler to send out the single OnError message. + + Query provider used to construct the data source. + The type used for the type parameter of the resulting sequence. + Exception object used for the sequence's termination. + Scheduler to send the exceptional termination call on. + The observable sequence that terminates exceptionally with the specified exception object. + + or is null. + + + + Returns an observable sequence that terminates with an exception, using the specified scheduler to send out the single OnError message. + + Query provider used to construct the data source. + The type used for the type parameter of the resulting sequence. + Exception object used for the sequence's termination. + Scheduler to send the exceptional termination call on. + Object solely used to infer the type of the type parameter. This parameter is typically used when creating a sequence of anonymously typed elements. + The observable sequence that terminates exceptionally with the specified exception object. + + or is null. + + + + Returns an observable sequence that terminates with an exception. + + Query provider used to construct the data source. + The type used for the type parameter of the resulting sequence. + Exception object used for the sequence's termination. + Object solely used to infer the type of the type parameter. This parameter is typically used when creating a sequence of anonymously typed elements. + The observable sequence that terminates exceptionally with the specified exception object. + + is null. + + + + Records the time interval between consecutive elements in an observable sequence. + + The type of the elements in the source sequence. + Source sequence to record time intervals for. + An observable sequence with time interval information on elements. + + is null. + + + + Records the time interval between consecutive elements in an observable sequence, using the specified scheduler to compute time intervals. + + The type of the elements in the source sequence. + Source sequence to record time intervals for. + Scheduler used to compute time intervals. + An observable sequence with time interval information on elements. + + or is null. + + + + Applies a timeout policy to the observable sequence based on an absolute time. + If the sequence doesn't terminate before the specified absolute due time, a TimeoutException is propagated to the observer. + + The type of the elements in the source sequence. + Source sequence to perform a timeout for. + Time when a timeout occurs. If this value is less than or equal to DateTimeOffset.UtcNow, the timeout occurs immediately. + The source sequence with a TimeoutException in case of a timeout. + + is null. + (Asynchronous) If the sequence hasn't terminated before . + + In case you only want to timeout on the first element, consider using the + operator applied to the source sequence and a delayed sequence. Alternatively, the general-purpose overload + of Timeout, can be used. + + + + + Applies a timeout policy to the observable sequence based on an absolute time. + If the sequence doesn't terminate before the specified absolute due time, the other observable sequence is used to produce future messages from that point on. + + The type of the elements in the source sequence and the other sequence used upon a timeout. + Source sequence to perform a timeout for. + Time when a timeout occurs. If this value is less than or equal to DateTimeOffset.UtcNow, the timeout occurs immediately. + Sequence to return in case of a timeout. + The source sequence switching to the other sequence in case of a timeout. + + or is null. + + In case you only want to timeout on the first element, consider using the + operator applied to the source sequence and a delayed sequence. Alternatively, the general-purpose overload + of Timeout, can be used. + + + + + Applies a timeout policy to the observable sequence based on an absolute time, using the specified scheduler to run timeout timers. + If the sequence doesn't terminate before the specified absolute due time, the other observable sequence is used to produce future messages from that point on. + + The type of the elements in the source sequence and the other sequence used upon a timeout. + Source sequence to perform a timeout for. + Time when a timeout occurs. If this value is less than or equal to DateTimeOffset.UtcNow, the timeout occurs immediately. + Sequence to return in case of a timeout. + Scheduler to run the timeout timers on. + The source sequence switching to the other sequence in case of a timeout. + + or or is null. + + In case you only want to timeout on the first element, consider using the + operator applied to the source sequence and a delayed sequence. Alternatively, the general-purpose overload + of Timeout, can be used. + + + + + Applies a timeout policy to the observable sequence based on an absolute time, using the specified scheduler to run timeout timers. + If the sequence doesn't terminate before the specified absolute due time, a TimeoutException is propagated to the observer. + + The type of the elements in the source sequence. + Source sequence to perform a timeout for. + Time when a timeout occurs. If this value is less than or equal to DateTimeOffset.UtcNow, the timeout occurs immediately. + Scheduler to run the timeout timers on. + The source sequence with a TimeoutException in case of a timeout. + + or is null. + (Asynchronous) If the sequence hasn't terminated before . + + In case you only want to timeout on the first element, consider using the + operator applied to the source sequence and a delayed sequence. Alternatively, the general-purpose overload + of Timeout, can be used. + + + + + Applies a timeout policy for each element in the observable sequence. + If the next element isn't received within the specified timeout duration starting from its predecessor, a TimeoutException is propagated to the observer. + + The type of the elements in the source sequence. + Source sequence to perform a timeout for. + Maximum duration between values before a timeout occurs. + The source sequence with a TimeoutException in case of a timeout. + + is null. + + is less than TimeSpan.Zero. + (Asynchronous) If no element is produced within from the previous element. + + + In case you only want to timeout on the first element, consider using the + operator applied to the source sequence and a delayed sequence. Alternatively, the general-purpose overload + of Timeout, can be used. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing timeout timers to be scheduled that are due + immediately. However, this doesn't guarantee a timeout will occur, even for the first element. This is a side-effect of the asynchrony introduced by the + scheduler, where the action to propagate a timeout may not execute immediately, despite the TimeSpan.Zero due time. In such cases, the next element may + arrive before the scheduler gets a chance to run the timeout action. + + + + + + Applies a timeout policy for each element in the observable sequence. + If the next element isn't received within the specified timeout duration starting from its predecessor, the other observable sequence is used to produce future messages from that point on. + + The type of the elements in the source sequence and the other sequence used upon a timeout. + Source sequence to perform a timeout for. + Maximum duration between values before a timeout occurs. + Sequence to return in case of a timeout. + The source sequence switching to the other sequence in case of a timeout. + + or is null. + + is less than TimeSpan.Zero. + + + In case you only want to timeout on the first element, consider using the + operator applied to the source sequence and a delayed sequence. Alternatively, the general-purpose overload + of Timeout, can be used. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing timeout timers to be scheduled that are due + immediately. However, this doesn't guarantee a timeout will occur, even for the first element. This is a side-effect of the asynchrony introduced by the + scheduler, where the action to propagate a timeout may not execute immediately, despite the TimeSpan.Zero due time. In such cases, the next element may + arrive before the scheduler gets a chance to run the timeout action. + + + + + + Applies a timeout policy for each element in the observable sequence, using the specified scheduler to run timeout timers. + If the next element isn't received within the specified timeout duration starting from its predecessor, the other observable sequence is used to produce future messages from that point on. + + The type of the elements in the source sequence and the other sequence used upon a timeout. + Source sequence to perform a timeout for. + Maximum duration between values before a timeout occurs. + Sequence to return in case of a timeout. + Scheduler to run the timeout timers on. + The source sequence switching to the other sequence in case of a timeout. + + or or is null. + + is less than TimeSpan.Zero. + + + In case you only want to timeout on the first element, consider using the + operator applied to the source sequence and a delayed sequence. Alternatively, the general-purpose overload + of Timeout, can be used. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing timeout timers to be scheduled that are due + immediately. However, this doesn't guarantee a timeout will occur, even for the first element. This is a side-effect of the asynchrony introduced by the + scheduler, where the action to propagate a timeout may not execute immediately, despite the TimeSpan.Zero due time. In such cases, the next element may + arrive before the scheduler gets a chance to run the timeout action. + + + + + + Applies a timeout policy for each element in the observable sequence, using the specified scheduler to run timeout timers. + If the next element isn't received within the specified timeout duration starting from its predecessor, a TimeoutException is propagated to the observer. + + The type of the elements in the source sequence. + Source sequence to perform a timeout for. + Maximum duration between values before a timeout occurs. + Scheduler to run the timeout timers on. + The source sequence with a TimeoutException in case of a timeout. + + or is null. + + is less than TimeSpan.Zero. + (Asynchronous) If no element is produced within from the previous element. + + + In case you only want to timeout on the first element, consider using the + operator applied to the source sequence and a delayed sequence. Alternatively, the general-purpose overload + of Timeout, can be used. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing timeout timers to be scheduled that are due + immediately. However, this doesn't guarantee a timeout will occur, even for the first element. This is a side-effect of the asynchrony introduced by the + scheduler, where the action to propagate a timeout may not execute immediately, despite the TimeSpan.Zero due time. In such cases, the next element may + arrive before the scheduler gets a chance to run the timeout action. + + + + + + Applies a timeout policy to the observable sequence based on an initial timeout duration for the first element, and a timeout duration computed for each subsequent element. + If the next element isn't received within the computed duration starting from its predecessor, a TimeoutException is propagated to the observer. + + The type of the elements in the source sequence. + The type of the elements in the timeout sequences used to indicate the timeout duration for each element in the source sequence. + Source sequence to perform a timeout for. + Observable sequence that represents the timeout for the first element. + Selector to retrieve an observable sequence that represents the timeout between the current element and the next element. + The source sequence with a TimeoutException in case of a timeout. + + or or is null. + + + + Applies a timeout policy to the observable sequence based on an initial timeout duration for the first element, and a timeout duration computed for each subsequent element. + If the next element isn't received within the computed duration starting from its predecessor, the other observable sequence is used to produce future messages from that point on. + + The type of the elements in the source sequence and the other sequence used upon a timeout. + The type of the elements in the timeout sequences used to indicate the timeout duration for each element in the source sequence. + Source sequence to perform a timeout for. + Observable sequence that represents the timeout for the first element. + Selector to retrieve an observable sequence that represents the timeout between the current element and the next element. + Sequence to return in case of a timeout. + The source sequence switching to the other sequence in case of a timeout. + + or or or is null. + + + + Applies a timeout policy to the observable sequence based on a timeout duration computed for each element. + If the next element isn't received within the computed duration starting from its predecessor, a TimeoutException is propagated to the observer. + + The type of the elements in the source sequence. + The type of the elements in the timeout sequences used to indicate the timeout duration for each element in the source sequence. + Source sequence to perform a timeout for. + Selector to retrieve an observable sequence that represents the timeout between the current element and the next element. + The source sequence with a TimeoutException in case of a timeout. + + or is null. + + + + Applies a timeout policy to the observable sequence based on a timeout duration computed for each element. + If the next element isn't received within the computed duration starting from its predecessor, the other observable sequence is used to produce future messages from that point on. + + The type of the elements in the source sequence and the other sequence used upon a timeout. + The type of the elements in the timeout sequences used to indicate the timeout duration for each element in the source sequence. + Source sequence to perform a timeout for. + Selector to retrieve an observable sequence that represents the timeout between the current element and the next element. + Sequence to return in case of a timeout. + The source sequence switching to the other sequence in case of a timeout. + + or or is null. + + + + Returns an observable sequence that produces a single value at the specified absolute due time. + + Query provider used to construct the data source. + Absolute time at which to produce the value. If this value is less than or equal to DateTimeOffset.UtcNow, the timer will fire as soon as possible. + An observable sequence that produces a value at due time. + + + + Returns an observable sequence that periodically produces a value starting at the specified initial absolute due time. + + Query provider used to construct the data source. + Absolute time at which to produce the first value. If this value is less than or equal to DateTimeOffset.UtcNow, the timer will fire as soon as possible. + Period to produce subsequent values. If this value is equal to TimeSpan.Zero, the timer will recur as fast as possible. + An observable sequence that produces a value at due time and then after each period. + + is less than TimeSpan.Zero. + + + + Returns an observable sequence that periodically produces a value starting at the specified initial absolute due time, using the specified scheduler to run timers. + + Query provider used to construct the data source. + Absolute time at which to produce the first value. If this value is less than or equal to DateTimeOffset.UtcNow, the timer will fire as soon as possible. + Period to produce subsequent values. If this value is equal to TimeSpan.Zero, the timer will recur as fast as possible. + Scheduler to run timers on. + An observable sequence that produces a value at due time and then after each period. + + is less than TimeSpan.Zero. + + is null. + + + + Returns an observable sequence that produces a single value at the specified absolute due time, using the specified scheduler to run the timer. + + Query provider used to construct the data source. + Absolute time at which to produce the value. If this value is less than or equal to DateTimeOffset.UtcNow, the timer will fire as soon as possible. + Scheduler to run the timer on. + An observable sequence that produces a value at due time. + + is null. + + + + Returns an observable sequence that produces a single value after the specified relative due time has elapsed. + + Query provider used to construct the data source. + Relative time at which to produce the value. If this value is less than or equal to TimeSpan.Zero, the timer will fire as soon as possible. + An observable sequence that produces a value after the due time has elapsed. + + + + Returns an observable sequence that periodically produces a value after the specified initial relative due time has elapsed. + + Query provider used to construct the data source. + Relative time at which to produce the first value. If this value is less than or equal to TimeSpan.Zero, the timer will fire as soon as possible. + Period to produce subsequent values. If this value is equal to TimeSpan.Zero, the timer will recur as fast as possible. + An observable sequence that produces a value after due time has elapsed and then after each period. + + is less than TimeSpan.Zero. + + + + Returns an observable sequence that periodically produces a value after the specified initial relative due time has elapsed, using the specified scheduler to run timers. + + Query provider used to construct the data source. + Relative time at which to produce the first value. If this value is less than or equal to TimeSpan.Zero, the timer will fire as soon as possible. + Period to produce subsequent values. If this value is equal to TimeSpan.Zero, the timer will recur as fast as possible. + Scheduler to run timers on. + An observable sequence that produces a value after due time has elapsed and then each period. + + is less than TimeSpan.Zero. + + is null. + + + + Returns an observable sequence that produces a single value after the specified relative due time has elapsed, using the specified scheduler to run the timer. + + Query provider used to construct the data source. + Relative time at which to produce the value. If this value is less than or equal to TimeSpan.Zero, the timer will fire as soon as possible. + Scheduler to run the timer on. + An observable sequence that produces a value after the due time has elapsed. + + is null. + + + + Timestamps each element in an observable sequence using the local system clock. + + The type of the elements in the source sequence. + Source sequence to timestamp elements for. + An observable sequence with timestamp information on elements. + + is null. + + + + Timestamp each element in an observable sequence using the clock of the specified scheduler. + + The type of the elements in the source sequence. + Source sequence to timestamp elements for. + Scheduler used to compute timestamps. + An observable sequence with timestamp information on elements. + + or is null. + + + + Creates an array from an observable sequence. + + The type of the elements in the source sequence. + The source observable sequence to get an array of elements for. + An observable sequence containing a single element with an array containing all the elements of the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates a dictionary from an observable sequence according to a specified key selector function. + + The type of the elements in the source sequence. + The type of the dictionary key computed for each element in the source sequence. + An observable sequence to create a dictionary for. + A function to extract a key from each element. + An observable sequence containing a single element with a dictionary mapping unique key values onto the corresponding source sequence's element. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates a dictionary from an observable sequence according to a specified key selector function, and a comparer. + + The type of the elements in the source sequence. + The type of the dictionary key computed for each element in the source sequence. + An observable sequence to create a dictionary for. + A function to extract a key from each element. + An equality comparer to compare keys. + An observable sequence containing a single element with a dictionary mapping unique key values onto the corresponding source sequence's element. + + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates a dictionary from an observable sequence according to a specified key selector function, and an element selector function. + + The type of the elements in the source sequence. + The type of the dictionary key computed for each element in the source sequence. + The type of the dictionary value computed for each element in the source sequence. + An observable sequence to create a dictionary for. + A function to extract a key from each element. + A transform function to produce a result element value from each element. + An observable sequence containing a single element with a dictionary mapping unique key values onto the corresponding source sequence's element. + + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates a dictionary from an observable sequence according to a specified key selector function, a comparer, and an element selector function. + + The type of the elements in the source sequence. + The type of the dictionary key computed for each element in the source sequence. + The type of the dictionary value computed for each element in the source sequence. + An observable sequence to create a dictionary for. + A function to extract a key from each element. + A transform function to produce a result element value from each element. + An equality comparer to compare keys. + An observable sequence containing a single element with a dictionary mapping unique key values onto the corresponding source sequence's element. + + or or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Converts an observable sequence to an enumerable sequence. + + The type of the elements in the source sequence. + An observable sequence to convert to an enumerable sequence. + The enumerable sequence containing the elements in the observable sequence. + + is null. + This operator requires the source's object (see ) to implement . + + + + Creates a list from an observable sequence. + + The type of the elements in the source sequence. + The source observable sequence to get a list of elements for. + An observable sequence containing a single element with a list containing all the elements of the source sequence. + + is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates a lookup from an observable sequence according to a specified key selector function. + + The type of the elements in the source sequence. + The type of the lookup key computed for each element in the source sequence. + An observable sequence to create a lookup for. + A function to extract a key from each element. + An observable sequence containing a single element with a lookup mapping unique key values onto the corresponding source sequence's elements. + + or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates a lookup from an observable sequence according to a specified key selector function, and a comparer. + + The type of the elements in the source sequence. + The type of the lookup key computed for each element in the source sequence. + An observable sequence to create a lookup for. + A function to extract a key from each element. + An equality comparer to compare keys. + An observable sequence containing a single element with a lookup mapping unique key values onto the corresponding source sequence's elements. + + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates a lookup from an observable sequence according to a specified key selector function, and an element selector function. + + The type of the elements in the source sequence. + The type of the lookup key computed for each element in the source sequence. + The type of the lookup value computed for each element in the source sequence. + An observable sequence to create a lookup for. + A function to extract a key from each element. + A transform function to produce a result element value from each element. + An observable sequence containing a single element with a lookup mapping unique key values onto the corresponding source sequence's elements. + + or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Creates a lookup from an observable sequence according to a specified key selector function, a comparer, and an element selector function. + + The type of the elements in the source sequence. + The type of the lookup key computed for each element in the source sequence. + The type of the lookup value computed for each element in the source sequence. + An observable sequence to create a lookup for. + A function to extract a key from each element. + A transform function to produce a result element value from each element. + An equality comparer to compare keys. + An observable sequence containing a single element with a lookup mapping unique key values onto the corresponding source sequence's elements. + + or or or is null. + The return type of this operator differs from the corresponding operator on IEnumerable in order to retain asynchronous behavior. + + + + Converts an enumerable sequence to an observable sequence. + + Query provider used to construct the data source. + The type of the elements in the source sequence. + Enumerable sequence to convert to an observable sequence. + The observable sequence whose elements are pulled from the given enumerable sequence. + + is null. + + + + Converts an enumerable sequence to an observable sequence, using the specified scheduler to run the enumeration loop. + + Query provider used to construct the data source. + The type of the elements in the source sequence. + Enumerable sequence to convert to an observable sequence. + Scheduler to run the enumeration of the input sequence on. + The observable sequence whose elements are pulled from the given enumerable sequence. + + or is null. + + + + Constructs an observable sequence that depends on a resource object, whose lifetime is tied to the resulting observable sequence's lifetime. + + Query provider used to construct the data source. + The type of the elements in the produced sequence. + The type of the resource used during the generation of the resulting sequence. Needs to implement . + Factory function to obtain a resource object. + Factory function to obtain an observable sequence that depends on the obtained resource. + An observable sequence whose lifetime controls the lifetime of the dependent resource object. + + or is null. + + + + Constructs an observable sequence that depends on a resource object, whose lifetime is tied to the resulting observable sequence's lifetime. The resource is obtained and used through asynchronous methods. + The CancellationToken passed to the asynchronous methods is tied to the returned disposable subscription, allowing best-effort cancellation at any stage of the resource acquisition or usage. + + Query provider used to construct the data source. + The type of the elements in the produced sequence. + The type of the resource used during the generation of the resulting sequence. Needs to implement . + Asynchronous factory function to obtain a resource object. + Asynchronous factory function to obtain an observable sequence that depends on the obtained resource. + An observable sequence whose lifetime controls the lifetime of the dependent resource object. + + or is null. + This operator is especially useful in conjunction with the asynchronous programming features introduced in C# 5.0 and Visual Basic 11. + When a subscription to the resulting sequence is disposed, the CancellationToken that was fed to the asynchronous resource factory and observable factory functions will be signaled. + + + + Filters the elements of an observable sequence based on a predicate. + + The type of the elements in the source sequence. + An observable sequence whose elements to filter. + A function to test each source element for a condition. + An observable sequence that contains elements from the input sequence that satisfy the condition. + + or is null. + + + + Filters the elements of an observable sequence based on a predicate by incorporating the element's index. + + The type of the elements in the source sequence. + An observable sequence whose elements to filter. + A function to test each source element for a condition; the second parameter of the function represents the index of the source element. + An observable sequence that contains elements from the input sequence that satisfy the condition. + + or is null. + + + + Repeats the given as long as the specified holds, where the is evaluated before each repeated is subscribed to. + + Query provider used to construct the data source. + The type of the elements in the source sequence. + Source to repeat as long as the function evaluates to true. + Condition that will be evaluated before subscription to the , to determine whether repetition of the source is required. + The observable sequence obtained by concatenating the sequence as long as the holds. + + or is null. + + + + Projects each element of an observable sequence into consecutive non-overlapping windows which are produced based on element count information. + + The type of the elements in the source sequence, and in the windows in the result sequence. + Source sequence to produce windows over. + Length of each window. + An observable sequence of windows. + + is null. + + is less than or equal to zero. + + + + Projects each element of an observable sequence into zero or more windows which are produced based on element count information. + + The type of the elements in the source sequence, and in the windows in the result sequence. + Source sequence to produce windows over. + Length of each window. + Number of elements to skip between creation of consecutive windows. + An observable sequence of windows. + + is null. + + or is less than or equal to zero. + + + + Projects each element of an observable sequence into consecutive non-overlapping windows which are produced based on timing information. + + The type of the elements in the source sequence, and in the windows in the result sequence. + Source sequence to produce windows over. + Length of each window. + The sequence of windows. + + is null. + + is less than TimeSpan.Zero. + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create windows as fast as it can. + Because all source sequence elements end up in one of the windows, some windows won't have a zero time span. This is a side-effect of the asynchrony introduced + by the scheduler, where the action to close the current window and to create a new window may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Projects each element of an observable sequence into a window that is completed when either it's full or a given amount of time has elapsed. + A useful real-world analogy of this overload is the behavior of a ferry leaving the dock when all seats are taken, or at the scheduled time of departure, whichever event occurs first. + + The type of the elements in the source sequence, and in the windows in the result sequence. + Source sequence to produce windows over. + Maximum time length of a window. + Maximum element count of a window. + An observable sequence of windows. + + is null. + + is less than TimeSpan.Zero. -or- is less than or equal to zero. + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create windows as fast as it can. + Because all source sequence elements end up in one of the windows, some windows won't have a zero time span. This is a side-effect of the asynchrony introduced + by the scheduler, where the action to close the current window and to create a new window may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Projects each element of an observable sequence into a window that is completed when either it's full or a given amount of time has elapsed, using the specified scheduler to run timers. + A useful real-world analogy of this overload is the behavior of a ferry leaving the dock when all seats are taken, or at the scheduled time of departure, whichever event occurs first. + + The type of the elements in the source sequence, and in the windows in the result sequence. + Source sequence to produce windows over. + Maximum time length of a window. + Maximum element count of a window. + Scheduler to run windowing timers on. + An observable sequence of windows. + + or is null. + + is less than TimeSpan.Zero. -or- is less than or equal to zero. + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create windows as fast as it can. + Because all source sequence elements end up in one of the windows, some windows won't have a zero time span. This is a side-effect of the asynchrony introduced + by the scheduler, where the action to close the current window and to create a new window may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Projects each element of an observable sequence into consecutive non-overlapping windows which are produced based on timing information, using the specified scheduler to run timers. + + The type of the elements in the source sequence, and in the windows in the result sequence. + Source sequence to produce windows over. + Length of each window. + Scheduler to run windowing timers on. + An observable sequence of windows. + + or is null. + + is less than TimeSpan.Zero. + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create windows as fast as it can. + Because all source sequence elements end up in one of the windows, some windows won't have a zero time span. This is a side-effect of the asynchrony introduced + by the scheduler, where the action to close the current window and to create a new window may not execute immediately, despite the TimeSpan.Zero due time. + + + + + Projects each element of an observable sequence into zero or more windows which are produced based on timing information. + + The type of the elements in the source sequence, and in the windows in the result sequence. + Source sequence to produce windows over. + Length of each window. + Interval between creation of consecutive windows. + An observable sequence of windows. + + is null. + + or is less than TimeSpan.Zero. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create windows with minimum duration + length. However, some windows won't have a zero time span. This is a side-effect of the asynchrony introduced by the scheduler, where the action to close the + current window may not execute immediately, despite the TimeSpan.Zero due time. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create windows as fast as it can. + However, this doesn't mean all windows will start at the beginning of the source sequence. This is a side-effect of the asynchrony introduced by the scheduler, + where the action to create a new window may not execute immediately, despite the TimeSpan.Zero due time. + + + + + + Projects each element of an observable sequence into zero or more windows which are produced based on timing information, using the specified scheduler to run timers. + + The type of the elements in the source sequence, and in the windows in the result sequence. + Source sequence to produce windows over. + Length of each window. + Interval between creation of consecutive windows. + Scheduler to run windowing timers on. + An observable sequence of windows. + + or is null. + + or is less than TimeSpan.Zero. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create windows with minimum duration + length. However, some windows won't have a zero time span. This is a side-effect of the asynchrony introduced by the scheduler, where the action to close the + current window may not execute immediately, despite the TimeSpan.Zero due time. + + + Specifying a TimeSpan.Zero value for is not recommended but supported, causing the scheduler to create windows as fast as it can. + However, this doesn't mean all windows will start at the beginning of the source sequence. This is a side-effect of the asynchrony introduced by the scheduler, + where the action to create a new window may not execute immediately, despite the TimeSpan.Zero due time. + + + + + + Projects each element of an observable sequence into consecutive non-overlapping windows. + + The type of the elements in the source sequence, and in the windows in the result sequence. + The type of the elements in the sequences indicating window boundary events. + Source sequence to produce windows over. + Sequence of window boundary markers. The current window is closed and a new window is opened upon receiving a boundary marker. + An observable sequence of windows. + + or is null. + + + + Projects each element of an observable sequence into consecutive non-overlapping windows. + + The type of the elements in the source sequence, and in the windows in the result sequence. + The type of the elements in the sequences indicating window closing events. + Source sequence to produce windows over. + A function invoked to define the boundaries of the produced windows. A new window is started when the previous one is closed. + An observable sequence of windows. + + or is null. + + + + Projects each element of an observable sequence into zero or more windows. + + The type of the elements in the source sequence, and in the windows in the result sequence. + The type of the elements in the sequence indicating window opening events, also passed to the closing selector to obtain a sequence of window closing events. + The type of the elements in the sequences indicating window closing events. + Source sequence to produce windows over. + Observable sequence whose elements denote the creation of new windows. + A function invoked to define the closing of each produced window. + An observable sequence of windows. + + or or is null. + + + + Merges two observable sequences into one observable sequence by combining each element from the first source with the latest element from the second source, if any. + Starting from Rx.NET 4.0, this will subscribe to before subscribing to to have a latest element readily available + in case emits an element right away. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Function to invoke for each element from the first source combined with the latest element from the second source, if any. + An observable sequence containing the result of combining each element of the first source with the latest element from the second source, if any, using the specified result selector function. + + or or is null. + + + + Merges the specified observable sequences into one observable sequence by emitting a list with the elements of the observable sequences at corresponding indexes. + + Query provider used to construct the data source. + The type of the elements in the source sequences, and in the lists in the result sequence. + Observable sources. + An observable sequence containing lists of elements at corresponding indexes. + + is null. + + + + Merges the specified observable sequences into one observable sequence by emitting a list with the elements of the observable sequences at corresponding indexes. + + Query provider used to construct the data source. + The type of the elements in the source sequences, and in the lists in the result sequence. + Observable sources. + An observable sequence containing lists of elements at corresponding indexes. + + is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + Query provider used to construct the data source. + The type of the elements in the source sequences. + The type of the elements in the result sequence, returned by the selector function. + Observable sources. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or is null. + + + + Merges two observable sequences into one observable sequence by combining their elements in a pairwise fashion. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Function to invoke for each consecutive pair of elements from the first and second source. + An observable sequence containing the result of pairwise combining the elements of the first and second source using the specified result selector function. + + or or is null. + + + + Merges an observable sequence and an enumerable sequence into one observable sequence by using the selector function. + + The type of the elements in the first observable source sequence. + The type of the elements in the second enumerable source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second enumerable source. + Function to invoke for each consecutive pair of elements from the first and second source. + An observable sequence containing the result of pairwise combining the elements of the first and second source using the specified result selector function. + + or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Fourteenth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the fifteenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Fourteenth observable source. + Fifteenth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the fifteenth source sequence. + The type of the elements in the sixteenth source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Fourteenth observable source. + Fifteenth observable source. + Sixteenth observable source. + Function to invoke for each series of elements at corresponding indexes in the sources. + An observable sequence containing the result of combining elements of the sources using the specified result selector function. + + or or or or or or or or or or or or or or or or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Query provider used to construct the data source. + Action to convert to an asynchronous action. + Asynchronous action. + + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Query provider used to construct the data source. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + The type of the thirteenth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + The type of the thirteenth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + The type of the thirteenth argument passed to the action. + The type of the fourteenth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + The type of the thirteenth argument passed to the action. + The type of the fourteenth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + The type of the thirteenth argument passed to the action. + The type of the fourteenth argument passed to the action. + The type of the fifteenth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + The type of the thirteenth argument passed to the action. + The type of the fourteenth argument passed to the action. + The type of the fifteenth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + + or is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the default scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + The type of the thirteenth argument passed to the action. + The type of the fourteenth argument passed to the action. + The type of the fifteenth argument passed to the action. + The type of the sixteenth argument passed to the action. + Action to convert to an asynchronous action. + Asynchronous action. + + is null. + + + + Converts the function into an asynchronous action. Each invocation of the resulting asynchronous action causes an invocation of the original synchronous action on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the action. + The type of the second argument passed to the action. + The type of the third argument passed to the action. + The type of the fourth argument passed to the action. + The type of the fifth argument passed to the action. + The type of the sixth argument passed to the action. + The type of the seventh argument passed to the action. + The type of the eighth argument passed to the action. + The type of the ninth argument passed to the action. + The type of the tenth argument passed to the action. + The type of the eleventh argument passed to the action. + The type of the twelfth argument passed to the action. + The type of the thirteenth argument passed to the action. + The type of the fourteenth argument passed to the action. + The type of the fifteenth argument passed to the action. + The type of the sixteenth argument passed to the action. + Action to convert to an asynchronous action. + Scheduler to invoke the original action on. + Asynchronous action. + + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + Query provider used to construct the data source. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + Query provider used to construct the data source. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the thirteenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the thirteenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the thirteenth argument passed to the function. + The type of the fourteenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the thirteenth argument passed to the function. + The type of the fourteenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the thirteenth argument passed to the function. + The type of the fourteenth argument passed to the function. + The type of the fifteenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the thirteenth argument passed to the function. + The type of the fourteenth argument passed to the function. + The type of the fifteenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + + or is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the thirteenth argument passed to the function. + The type of the fourteenth argument passed to the function. + The type of the fifteenth argument passed to the function. + The type of the sixteenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Asynchronous function. + + is null. + + + + Converts the function into an asynchronous function. Each invocation of the resulting asynchronous function causes an invocation of the original synchronous function on the specified scheduler. + + Query provider used to construct the data source. + The type of the first argument passed to the function. + The type of the second argument passed to the function. + The type of the third argument passed to the function. + The type of the fourth argument passed to the function. + The type of the fifth argument passed to the function. + The type of the sixth argument passed to the function. + The type of the seventh argument passed to the function. + The type of the eighth argument passed to the function. + The type of the ninth argument passed to the function. + The type of the tenth argument passed to the function. + The type of the eleventh argument passed to the function. + The type of the twelfth argument passed to the function. + The type of the thirteenth argument passed to the function. + The type of the fourteenth argument passed to the function. + The type of the fifteenth argument passed to the function. + The type of the sixteenth argument passed to the function. + The type of the result returned by the function. + Function to convert to an asynchronous function. + Scheduler to invoke the original function on. + Asynchronous function. + + or is null. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The type of the eleventh argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The type of the eleventh argument passed to the begin delegate. + The type of the twelfth argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The type of the eleventh argument passed to the begin delegate. + The type of the twelfth argument passed to the begin delegate. + The type of the thirteenth argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The type of the eleventh argument passed to the begin delegate. + The type of the twelfth argument passed to the begin delegate. + The type of the thirteenth argument passed to the begin delegate. + The type of the fourteenth argument passed to the begin delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result (represented as a Unit value) as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The type of the eleventh argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The type of the eleventh argument passed to the begin delegate. + The type of the twelfth argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The type of the eleventh argument passed to the begin delegate. + The type of the twelfth argument passed to the begin delegate. + The type of the thirteenth argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Converts a Begin/End invoke function pair into an asynchronous function. + + Query provider used to construct the data source. + The type of the first argument passed to the begin delegate. + The type of the second argument passed to the begin delegate. + The type of the third argument passed to the begin delegate. + The type of the fourth argument passed to the begin delegate. + The type of the fifth argument passed to the begin delegate. + The type of the sixth argument passed to the begin delegate. + The type of the seventh argument passed to the begin delegate. + The type of the eighth argument passed to the begin delegate. + The type of the ninth argument passed to the begin delegate. + The type of the tenth argument passed to the begin delegate. + The type of the eleventh argument passed to the begin delegate. + The type of the twelfth argument passed to the begin delegate. + The type of the thirteenth argument passed to the begin delegate. + The type of the fourteenth argument passed to the begin delegate. + The type of the result returned by the end delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + Function that can be used to start the asynchronous operation and retrieve the result as an observable sequence. + + or is null. + Each invocation of the resulting function will cause the asynchronous operation to be started. Subscription to the resulting sequence has no observable side-effect, and each subscription will produce the asynchronous operation's result. + + + + Creates a pattern that matches when both observable sequences have an available element. + + The type of the elements in the left sequence. + The type of the elements in the right sequence. + Observable sequence to match with the right sequence. + Observable sequence to match with the left sequence. + Pattern object that matches when both observable sequences have an available element. + or is null. + + + + Matches when the observable sequence has an available element and projects the element by invoking the selector function. + + The type of the elements in the source sequence. + The type of the elements in the result sequence, returned by the selector function. + Observable sequence to apply the selector on. + Selector that will be invoked for elements in the source sequence. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + or is null. + + + + Joins together the results from several patterns. + + The type of the elements in the result sequence, obtained from the specified patterns. + Query provider used to construct the data source. + A series of plans created by use of the Then operator on patterns. + An observable sequence with the results from matching several patterns. + or is null. + + + + Joins together the results from several patterns. + + The type of the elements in the result sequence, obtained from the specified patterns. + Query provider used to construct the data source. + A series of plans created by use of the Then operator on patterns. + An observable sequence with the results form matching several patterns. + or is null. + + + + Try winning the race for the right of emission. + + If true, the contender is the left source. + True if the contender has won the race. + + + + If true, this observer won the race and now can emit + on a fast path. + + + + + Automatically connect the upstream IConnectableObservable once the + specified number of IObservers have subscribed to this IObservable. + + The upstream value type. + + + + The only instance for a TResult type: this source + is completely stateless and has a constant behavior. + + + + + No need for instantiating this more than once per TResult. + + + + + Contains the current active connection's state or null + if no connection is active at the moment. + Should be manipulated while holding the lock. + + + + + Contains the connection reference the downstream observer + has subscribed to. Its purpose is to + avoid subscribing, connecting and disconnecting + while holding a lock. + + + + + Holds an individual connection state: the observer count and + the connection's IDisposable. + + + + + Relays items to the downstream until the predicate returns true. + + The element type of the sequence + + + + Provides a set of static methods for writing queries over observable sequences, allowing translation to a target query language. + + + + + Subscribes to each observable sequence returned by the iteratorMethod in sequence and produces a Unit value on the resulting sequence for each step of the iteration. + + Query provider used to construct the data source. + Iterator method that drives the resulting observable sequence. + An observable sequence obtained by running the iterator and returning Unit values for each iteration step. + + is null. + + + + Subscribes to each observable sequence returned by the iteratorMethod in sequence and returns the observable sequence of values sent to the observer given to the iteratorMethod. + + Query provider used to construct the data source. + The type of the elements in the produced sequence. + Iterator method that produces elements in the resulting sequence by calling the given observer. + An observable sequence obtained by running the iterator and returning the elements that were sent to the observer. + + is null. + + + + Expands an observable sequence by recursively invoking selector. + + The type of the elements in the source sequence and each of the recursively expanded sources obtained by running the selector function. + Source sequence with the initial elements. + Selector function to invoke for each produced element, resulting in another sequence to which the selector will be invoked recursively again. + An observable sequence containing all the elements produced by the recursive expansion. + + or is null. + + + + Expands an observable sequence by recursively invoking selector, using the specified scheduler to enumerate the queue of obtained sequences. + + The type of the elements in the source sequence and each of the recursively expanded sources obtained by running the selector function. + Source sequence with the initial elements. + Selector function to invoke for each produced element, resulting in another sequence to which the selector will be invoked recursively again. + Scheduler on which to perform the expansion by enumerating the internal queue of obtained sequences. + An observable sequence containing all the elements produced by the recursive expansion. + + or or is null. + + + + Runs all specified observable sequences in parallel and collects their last elements. + + Query provider used to construct the data source. + The type of the elements in the source sequences. + Observable sequence to collect the last elements for. + An observable sequence with an array collecting the last elements of all the input sequences. + + is null. + + + + Runs all observable sequences in the enumerable sources sequence in parallel and collect their last elements. + + Query provider used to construct the data source. + The type of the elements in the source sequences. + Observable sequence to collect the last elements for. + An observable sequence with an array collecting the last elements of all the input sequences. + + is null. + + + + Runs two observable sequences in parallel and combines their last elements. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the result sequence, returned by the selector function. + First observable sequence. + Second observable sequence. + Result selector function to invoke with the last elements of both sequences. + An observable sequence with the result of calling the selector function with the last elements of both input sequences. + + or or is null. + + + + Returns an observable sequence that is the result of invoking the selector on the source sequence, without sharing subscriptions. + This operator allows for a fluent style of writing queries that use the same sequence multiple times. + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence that will be shared in the selector function. + Selector function which can use the source sequence as many times as needed, without sharing subscriptions to the source sequence. + An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. + + or is null. + + + + Comonadic bind operator. + + + + + Comonadic bind operator. + + + + + Merges two observable sequences into one observable sequence by combining each element from the first source with the latest element from the second source, if any. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + First observable source. + Second observable source. + An observable sequence containing the result of combining each element of the first source with the latest element from the second source, if any, as a tuple value. + or is null. + + + + Merges an observable sequence and an enumerable sequence into one observable sequence of tuple values. + + The type of the elements in the first observable source sequence. + The type of the elements in the second enumerable source sequence. + First observable source. + Second enumerable source. + An observable sequence containing the result of pairwise combining the elements of the first and second source as a tuple value. + or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + First observable source. + Second observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + First observable source. + Second observable source. + Third observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Fourteenth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the fifteenth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Fourteenth observable source. + Fifteenth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever any of the observable sequences produces an element. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the fifteenth source sequence. + The type of the elements in the sixteenth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Fourteenth observable source. + Fifteenth observable source. + Sixteenth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + First observable source. + Second observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + First observable source. + Second observable source. + Third observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Fourteenth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the fifteenth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Fourteenth observable source. + Fifteenth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or or or or or or or or is null. + + + + Merges the specified observable sequences into one observable sequence of tuple values whenever all of the observable sequences have produced an element at a corresponding index. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the fifteenth source sequence. + The type of the elements in the sixteenth source sequence. + First observable source. + Second observable source. + Third observable source. + Fourth observable source. + Fifth observable source. + Sixth observable source. + Seventh observable source. + Eighth observable source. + Ninth observable source. + Tenth observable source. + Eleventh observable source. + Twelfth observable source. + Thirteenth observable source. + Fourteenth observable source. + Fifteenth observable source. + Sixteenth observable source. + An observable sequence containing the result of combining elements of the sources using tuple values. + or or or or or or or or or or or or or or or is null. + + + + (Infrastructure) Implement query debugger services. + + + + + The System.Reactive.Linq namespace contains interfaces and classes that support expressing queries over observable sequences, using Language Integrated Query (LINQ). + Query operators are made available as extension methods for and defined on the Observable and Qbservable classes, respectively. + + + + + Provides a set of extension methods to expose observable sequences as Windows Runtime asynchronous actions and operations. + + + + + Creates a Windows Runtime asynchronous action that represents the completion of the observable sequence. + Upon cancellation of the asynchronous action, the subscription to the source sequence will be disposed. + + The type of the elements in the source sequence. + Source sequence to expose as an asynchronous action. + Windows Runtime asynchronous action object representing the completion of the observable sequence. + is null. + + + + Creates a Windows Runtime asynchronous action that represents the completion of the observable sequence, reporting incremental progress for each element produced by the sequence. + Upon cancellation of the asynchronous action, the subscription to the source sequence will be disposed. + + The type of the elements in the source sequence. + Source sequence to expose as an asynchronous action. + Windows Runtime asynchronous action object representing the completion of the observable sequence, reporting incremental progress for each source sequence element. + is null. + + + + Creates a Windows Runtime asynchronous action that represents the completion of the observable sequence, using a selector function to map the source sequence on a progress reporting sequence. + Upon cancellation of the asynchronous action, the subscription to the source sequence will be disposed. + + The type of the elements in the source sequence. + The type of the elements in the progress sequence. + Source sequence to expose as an asynchronous action and to compute a progress sequence that gets reported through the asynchronous action. + Selector function to map the source sequence on a progress reporting sequence. + Windows Runtime asynchronous action object representing the completion of the result sequence, reporting progress computed through the progress sequence. + or is null. + + + + Creates a Windows Runtime asynchronous operation that returns the last element of the observable sequence. + Upon cancellation of the asynchronous operation, the subscription to the source sequence will be disposed. + + The type of the elements in the source sequence. + Source sequence to expose as an asynchronous operation. + Windows Runtime asynchronous operation object that returns the last element of the observable sequence. + is null. + + + + Creates a Windows Runtime asynchronous operation that returns the last element of the observable sequence, reporting incremental progress for each element produced by the sequence. + Upon cancellation of the asynchronous operation, the subscription to the source sequence will be disposed. + + The type of the elements in the source sequence. + Source sequence to expose as an asynchronous operation. + Windows Runtime asynchronous operation object that returns the last element of the observable sequence, reporting incremental progress for each source sequence element. + is null. + + + + Creates a Windows Runtime asynchronous operation that returns the last element of the result sequence, reporting incremental progress for each element produced by the source sequence. + Upon cancellation of the asynchronous operation, the subscription to the source sequence will be disposed. + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + Source sequence to compute a result sequence that gets exposed as an asynchronous operation. + Selector function to map the source sequence on a result sequence. + Windows Runtime asynchronous operation object that returns the last element of the result sequence, reporting incremental progress for each source sequence element. + or is null. + + + + Creates a Windows Runtime asynchronous operation that returns the last element of the result sequence, using a selector function to map the source sequence on a progress reporting sequence. + Upon cancellation of the asynchronous operation, the subscription to the source sequence will be disposed. + + The type of the elements in the source sequence. + The type of the elements in the result sequence. + The type of the elements in the progress sequence. + Source sequence to compute a result sequence that gets exposed as an asynchronous operation and a progress sequence that gets reported through the asynchronous operation. + Selector function to map the source sequence on a result sequence. + Selector function to map the source sequence on a progress reporting sequence. + Windows Runtime asynchronous operation object that returns the last element of the result sequence, reporting progress computed through the progress sequence. + or or is null. + + + + Provides a set of extension methods for scheduling actions performed through observable sequences on UI dispatchers. + + + + + Wraps the source sequence in order to run its observer callbacks on the specified dispatcher. + + The type of the elements in the source sequence. + Source sequence. + Dispatcher whose associated message loop is used to notify observers on. + The source sequence whose observations happen on the specified dispatcher. + or is null. + + + + Wraps the source sequence in order to run its observer callbacks on the specified dispatcher. + + The type of the elements in the source sequence. + Source sequence. + Dispatcher whose associated message loop is used to notify observers on. + Priority to schedule work items at. + The source sequence whose observations happen on the specified dispatcher. + or is null. + + + + Wraps the source sequence in order to run its observer callbacks on the dispatcher associated with the specified object. + + The type of the elements in the source sequence. + Source sequence. + Object to get the dispatcher from. + The source sequence whose observations happen on the specified object's dispatcher. + or is null. + + + + Wraps the source sequence in order to run its observer callbacks on the dispatcher associated with the specified object. + + The type of the elements in the source sequence. + Source sequence. + Object to get the dispatcher from. + Priority to schedule work items at. + The source sequence whose observations happen on the specified object's dispatcher. + or is null. + + + + Wraps the source sequence in order to run its observer callbacks on the dispatcher associated with the current window. + + The type of the elements in the source sequence. + Source sequence. + The source sequence whose observations happen on the current window's dispatcher. + is null. + + + + Wraps the source sequence in order to run its observer callbacks on the dispatcher associated with the current window. + + The type of the elements in the source sequence. + Source sequence. + Priority to schedule work items at. + The source sequence whose observations happen on the current window's dispatcher. + is null. + + + + Wraps the source sequence in order to run its subscription and unsubscription logic on the specified dispatcher. + + The type of the elements in the source sequence. + Source sequence. + Dispatcher whose associated message loop is used to perform subscription and unsubscription actions on. + The source sequence whose subscriptions and unsubscriptions happen on the specified dispatcher. + or is null. + + Only the side-effects of subscribing to the source sequence and disposing subscriptions to the source sequence are run on the specified dispatcher. + In order to invoke observer callbacks on the specified dispatcher, e.g. to render results in a control, use . + + + + + Wraps the source sequence in order to run its subscription and unsubscription logic on the specified dispatcher. + + The type of the elements in the source sequence. + Source sequence. + Dispatcher whose associated message loop is used to perform subscription and unsubscription actions on. + Priority to schedule work items at. + The source sequence whose subscriptions and unsubscriptions happen on the specified dispatcher. + or is null. + + Only the side-effects of subscribing to the source sequence and disposing subscriptions to the source sequence are run on the specified dispatcher. + In order to invoke observer callbacks on the specified dispatcher, e.g. to render results in a control, use . + + + + + Wraps the source sequence in order to run its subscription and unsubscription logic on the dispatcher associated with the specified object. + + The type of the elements in the source sequence. + Source sequence. + Object to get the dispatcher from. + The source sequence whose subscriptions and unsubscriptions happen on the specified object's dispatcher. + or is null. + + Only the side-effects of subscribing to the source sequence and disposing subscriptions to the source sequence are run on the dispatcher associated with the specified object. + In order to invoke observer callbacks on the dispatcher associated with the specified object, e.g. to render results in a control, use . + + + + + Wraps the source sequence in order to run its subscription and unsubscription logic on the dispatcher associated with the specified object. + + The type of the elements in the source sequence. + Source sequence. + Object to get the dispatcher from. + Priority to schedule work items at. + The source sequence whose subscriptions and unsubscriptions happen on the specified object's dispatcher. + or is null. + + Only the side-effects of subscribing to the source sequence and disposing subscriptions to the source sequence are run on the dispatcher associated with the specified object. + In order to invoke observer callbacks on the dispatcher associated with the specified object, e.g. to render results in a control, use . + + + + + Wraps the source sequence in order to run its subscription and unsubscription logic on the dispatcher associated with the current window. + + The type of the elements in the source sequence. + Source sequence. + The source sequence whose subscriptions and unsubscriptions happen on the current window's dispatcher. + is null. + + Only the side-effects of subscribing to the source sequence and disposing subscriptions to the source sequence are run on the dispatcher associated with the current window. + In order to invoke observer callbacks on the dispatcher associated with the current window, e.g. to render results in a control, use . + + + + + Wraps the source sequence in order to run its subscription and unsubscription logic on the dispatcher associated with the current window. + + The type of the elements in the source sequence. + Source sequence. + Priority to schedule work items at. + The source sequence whose subscriptions and unsubscriptions happen on the current window's dispatcher. + is null. + + Only the side-effects of subscribing to the source sequence and disposing subscriptions to the source sequence are run on the dispatcher associated with the current window. + In order to invoke observer callbacks on the dispatcher associated with the current window, e.g. to render results in a control, use . + + + + + Provides a set of static methods for importing typed events from Windows Runtime APIs. + + + + + Converts a typed event, conforming to the standard event pattern, to an observable sequence. + + The type of the sender that raises the event. + The type of the event data generated by the event. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains data representations of invocations of the underlying typed event. + or is null. + + + + + Converts a typed event, conforming to the standard event pattern, to an observable sequence. + + The delegate type of the event to be converted. + The type of the sender that raises the event. + The type of the event data generated by the event. + A function used to convert the given event handler to a delegate compatible with the underlying typed event. The resulting delegate is used in calls to the addHandler and removeHandler action parameters. + Action that attaches the given event handler to the underlying .NET event. + Action that detaches the given event handler from the underlying .NET event. + The observable sequence that contains data representations of invocations of the underlying typed event. + or or is null. + + + + + Exposes an observable sequence as an object with a typed event. + + The type of the sender that raises the event. + The type of the event data generated by the event. + Observable source sequence. + The event source object. + is null. + + + + Projects each element of an observable sequence to a Windows Runtime asynchronous operation and merges all of the asynchronous operation results into one observable sequence. + + The type of the elements in the source sequence. + The type of the result produced by the projected asynchronous operations and the elements in the merged result sequence. + An observable sequence of elements to project. + A transform function to apply to each element. + An observable sequence whose elements are the result of the asynchronous operations executed for each element of the input sequence. + or is null. + This overload supports composition of observable sequences and Windows Runtime asynchronous operations, without requiring manual conversion of the asynchronous operations to observable sequences using . + + + + Projects each element of an observable sequence to a Windows Runtime asynchronous operation and merges all of the asynchronous operation results into one observable sequence. + + The type of the elements in the source sequence. + The type of the result produced by the projected asynchronous operations and the elements in the merged result sequence. + The type of the reported progress objects, which get ignored by this query operator. + An observable sequence of elements to project. + A transform function to apply to each element. + An observable sequence whose elements are the result of the asynchronous operations executed for each element of the input sequence. + or is null. + This overload supports composition of observable sequences and Windows Runtime asynchronous operations, without requiring manual conversion of the asynchronous operations to observable sequences using . + + + + Projects each element of an observable sequence to a Windows Runtime asynchronous operation, invokes the result selector for the source element and the asynchronous operation result, and merges the results into one observable sequence. + + The type of the elements in the source sequence. + The type of the results produced by the projected asynchronous operations. + The type of the elements in the result sequence, obtained by using the selector to combine source sequence elements with their corresponding intermediate asynchronous operation results. + An observable sequence of elements to project. + A transform function to apply to each element. + A transform function to apply to each element of the intermediate sequence. + An observable sequence whose elements are the result of obtaining an asynchronous operation for each element of the input sequence and then mapping the asynchronous operation's result and its corresponding source element to a result element. + or or is null. + This overload supports using LINQ query comprehension syntax in C# and Visual Basic to compose observable sequences and Windows Runtime asynchronous operations, without requiring manual conversion of the asynchronous operations to observable sequences using . + + + + Projects each element of an observable sequence to a Windows Runtime asynchronous operation, invokes the result selector for the source element and the asynchronous operation result, and merges the results into one observable sequence. + + The type of the elements in the source sequence. + The type of the results produced by the projected asynchronous operations. + The type of the reported progress objects, which get ignored by this query operator. + The type of the elements in the result sequence, obtained by using the selector to combine source sequence elements with their corresponding intermediate asynchronous operation results. + An observable sequence of elements to project. + A transform function to apply to each element. + A transform function to apply to each element of the intermediate sequence. + An observable sequence whose elements are the result of obtaining an asynchronous operation for each element of the input sequence and then mapping the asynchronous operation's result and its corresponding source element to a result element. + or or is null. + This overload supports using LINQ query comprehension syntax in C# and Visual Basic to compose observable sequences and Windows Runtime asynchronous operations, without requiring manual conversion of the asynchronous operations to observable sequences using . + + + + An ObserveOn operator implementation that uses lock-free + techniques to signal events to the downstream. + + The element type of the sequence. + + + + The current task representing a running drain operation. + + + + + Indicates the work-in-progress state of this operator, + zero means no work is currently being done. + + + + + If true, the upstream has issued OnCompleted. + + + + + If is true and this is non-null, the upstream + failed with an OnError. + + + + + Indicates a dispose has been requested. + + + + + Remove remaining elements from the queue upon + cancellation or failure. + + The queue to use. The argument ensures that the + _queue field is not re-read from memory unnecessarily + due to the memory barriers inside TryDequeue mandating it + despite the field is read-only. + + + + Submit the drain task via the appropriate scheduler if + there is no drain currently running (wip > 0). + + + + + The static action to be scheduled on a simple scheduler. + Avoids creating a delegate that captures this + whenever the signals have to be drained. + + + + + Emits at most one signal per run on a scheduler that doesn't like + long running tasks. + + The scheduler to use for scheduling the next signal emission if necessary. + The IDisposable of the recursively scheduled task or an empty disposable. + + + + Executes a drain step by checking the disposed state, + checking for the terminated state and for an + empty queue, issuing the appropriate signals to the + given downstream. + + The queue to use. The argument ensures that the + _queue field is not re-read from memory due to the memory barriers + inside TryDequeue mandating it despite the field is read-only. + In addition, the DrainStep is invoked from the DrainLongRunning's loop + so reading _queue inside this method would still incur the same barrier + overhead otherwise. + + + + Signals events on a ISchedulerLongRunning by blocking the emission thread while waiting + for them from the upstream. + + The element type of the sequence. + + + + This will run a suspending drain task, hogging the backing thread + until the sequence terminates or gets disposed. + + + + + The queue for holding the OnNext items, terminal signals have their own fields. + + + + + Protects the suspension and resumption of the long running drain task. + + + + + The work-in-progress counter. If it jumps from 0 to 1, the drain task is resumed, + if it reaches 0 again, the drain task is suspended. + + + + + Set to true if the upstream terminated. + + + + + Set to a non-null Exception if the upstream terminated with OnError. + + + + + Indicates the sequence has been disposed and the drain task should quit. + + + + + Makes sure the drain task is scheduled only once, when the first signal + from upstream arrives. + + + + + The disposable tracking the drain task. + + + + + Static reference to the Drain method, saves allocation. + + + + + Override this method to dispose additional resources. + The method is guaranteed to be called at most once. + + If true, the method was called from . + + + + Base class for implementation of query operators, providing a lightweight sink that can be disposed to mute the outgoing observer. + + Type of the resulting sequence's elements. + + Implementations of sinks are responsible to enforce the message grammar on the associated observer. Upon sending a terminal message, a pairing Dispose call should be made to trigger cancellation of related resources and to mute the outgoing observer. + + + + Holds onto a singleton IDisposable indicating a ready state. + + + + + This indicates the operation has been prepared and ready for + the next step. + + + + + Provides a mechanism for receiving push-based notifications and returning a response. + + + The type of the elements received by the observer. + This type parameter is contravariant. That is, you can use either the type you specified or any type that is less derived. For more information about covariance and contravariance, see Covariance and Contravariance in Generics. + + + The type of the result returned from the observer's notification handlers. + This type parameter is covariant. That is, you can use either the type you specified or any type that is more derived. For more information about covariance and contravariance, see Covariance and Contravariance in Generics. + + + + + Notifies the observer of a new element in the sequence. + + The new element in the sequence. + Result returned upon observation of a new element. + + + + Notifies the observer that an exception has occurred. + + The exception that occurred. + Result returned upon observation of an error. + + + + Notifies the observer of the end of the sequence. + + Result returned upon observation of the sequence completion. + + + + Abstract base class for join patterns. + + + + + Represents a join pattern over one observable sequence. + + The type of the elements in the first source sequence. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over two observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + + + + Creates a pattern that matches when all three observable sequences have an available element. + + The type of the elements in the third observable sequence. + Observable sequence to match with the two previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over three observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + + + + Creates a pattern that matches when all four observable sequences have an available element. + + The type of the elements in the fourth observable sequence. + Observable sequence to match with the three previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over four observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + + + + Creates a pattern that matches when all five observable sequences have an available element. + + The type of the elements in the fifth observable sequence. + Observable sequence to match with the four previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over five observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + + + + Creates a pattern that matches when all six observable sequences have an available element. + + The type of the elements in the sixth observable sequence. + Observable sequence to match with the five previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over six observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + + + + Creates a pattern that matches when all seven observable sequences have an available element. + + The type of the elements in the seventh observable sequence. + Observable sequence to match with the six previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over seven observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + + + + Creates a pattern that matches when all eight observable sequences have an available element. + + The type of the elements in the eighth observable sequence. + Observable sequence to match with the seven previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over eight observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + + + + Creates a pattern that matches when all nine observable sequences have an available element. + + The type of the elements in the ninth observable sequence. + Observable sequence to match with the eight previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over nine observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + + + + Creates a pattern that matches when all ten observable sequences have an available element. + + The type of the elements in the tenth observable sequence. + Observable sequence to match with the nine previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over ten observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + + + + Creates a pattern that matches when all eleven observable sequences have an available element. + + The type of the elements in the eleventh observable sequence. + Observable sequence to match with the ten previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over eleven observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + + + + Creates a pattern that matches when all twelve observable sequences have an available element. + + The type of the elements in the twelfth observable sequence. + Observable sequence to match with the eleven previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over twelve observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + + + + Creates a pattern that matches when all thirteen observable sequences have an available element. + + The type of the elements in the thirteenth observable sequence. + Observable sequence to match with the twelve previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over thirteen observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + + + + Creates a pattern that matches when all fourteen observable sequences have an available element. + + The type of the elements in the fourteenth observable sequence. + Observable sequence to match with the thirteen previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over fourteen observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + + + + Creates a pattern that matches when all fifteen observable sequences have an available element. + + The type of the elements in the fifteenth observable sequence. + Observable sequence to match with the fourteen previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over fifteen observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the fifteenth source sequence. + + + + Creates a pattern that matches when all sixteen observable sequences have an available element. + + The type of the elements in the sixteenth observable sequence. + Observable sequence to match with the fifteen previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over sixteen observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the fifteenth source sequence. + The type of the elements in the sixteenth source sequence. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents an execution plan for join patterns. + + The type of the results produced by the plan. + + + + Abstract base class for join patterns represented by an expression tree. + + + + + Creates a new join pattern object using the specified expression tree representation. + + Expression tree representing the join pattern. + + + + Gets the expression tree representing the join pattern. + + + + + Represents a join pattern over two observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + + + + Creates a pattern that matches when all three observable sequences have an available element. + + The type of the elements in the third observable sequence. + Observable sequence to match with the two previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over three observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + + + + Creates a pattern that matches when all four observable sequences have an available element. + + The type of the elements in the fourth observable sequence. + Observable sequence to match with the three previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over four observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + + + + Creates a pattern that matches when all five observable sequences have an available element. + + The type of the elements in the fifth observable sequence. + Observable sequence to match with the four previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over five observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + + + + Creates a pattern that matches when all six observable sequences have an available element. + + The type of the elements in the sixth observable sequence. + Observable sequence to match with the five previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over six observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + + + + Creates a pattern that matches when all seven observable sequences have an available element. + + The type of the elements in the seventh observable sequence. + Observable sequence to match with the six previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over seven observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + + + + Creates a pattern that matches when all eight observable sequences have an available element. + + The type of the elements in the eighth observable sequence. + Observable sequence to match with the seven previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over eight observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + + + + Creates a pattern that matches when all nine observable sequences have an available element. + + The type of the elements in the ninth observable sequence. + Observable sequence to match with the eight previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over nine observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + + + + Creates a pattern that matches when all ten observable sequences have an available element. + + The type of the elements in the tenth observable sequence. + Observable sequence to match with the nine previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over ten observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + + + + Creates a pattern that matches when all eleven observable sequences have an available element. + + The type of the elements in the eleventh observable sequence. + Observable sequence to match with the ten previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over eleven observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + + + + Creates a pattern that matches when all twelve observable sequences have an available element. + + The type of the elements in the twelfth observable sequence. + Observable sequence to match with the eleven previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over twelve observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + + + + Creates a pattern that matches when all thirteen observable sequences have an available element. + + The type of the elements in the thirteenth observable sequence. + Observable sequence to match with the twelve previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over thirteen observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + + + + Creates a pattern that matches when all fourteen observable sequences have an available element. + + The type of the elements in the fourteenth observable sequence. + Observable sequence to match with the thirteen previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over fourteen observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + + + + Creates a pattern that matches when all fifteen observable sequences have an available element. + + The type of the elements in the fifteenth observable sequence. + Observable sequence to match with the fourteen previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over fifteen observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the fifteenth source sequence. + + + + Creates a pattern that matches when all sixteen observable sequences have an available element. + + The type of the elements in the sixteenth observable sequence. + Observable sequence to match with the fifteen previous sequences. + Pattern object that matches when all observable sequences have an available element. + is null. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents a join pattern over sixteen observable sequences. + + The type of the elements in the first source sequence. + The type of the elements in the second source sequence. + The type of the elements in the third source sequence. + The type of the elements in the fourth source sequence. + The type of the elements in the fifth source sequence. + The type of the elements in the sixth source sequence. + The type of the elements in the seventh source sequence. + The type of the elements in the eighth source sequence. + The type of the elements in the ninth source sequence. + The type of the elements in the tenth source sequence. + The type of the elements in the eleventh source sequence. + The type of the elements in the twelfth source sequence. + The type of the elements in the thirteenth source sequence. + The type of the elements in the fourteenth source sequence. + The type of the elements in the fifteenth source sequence. + The type of the elements in the sixteenth source sequence. + + + + Matches when all observable sequences have an available element and projects the elements by invoking the selector function. + + The type of the elements in the result sequence, returned by the selector function. + Selector that will be invoked for elements in the source sequences. + Plan that produces the projected results, to be fed (with other plans) to the When operator. + is null. + + + + Represents an execution plan for join patterns represented by an expression tree. + + The type of the results produced by the plan. + + + + Gets the expression tree representing the join pattern execution plan. + + + + + The System.Reactive.Joins namespace contains classes used to express join patterns over observable sequences using fluent method syntax. + + + + + Represents an object that retains the elements of the observable sequence and signals the end of the sequence. + + The type of elements received from the source sequence. + + + + Constructs an object that retains the values of source and signals the end of the sequence. + + The observable sequence whose elements will be retained in the list. + is null. + + + + Returns the last value of the observable sequence. + + + + + Determines the index of a specific item in the ListObservable. + + The element to determine the index for. + The index of the specified item in the list; -1 if not found. + + + + Inserts an item to the ListObservable at the specified index. + + The index to insert the item at. + The item to insert in the list. + + + + Removes the ListObservable item at the specified index. + + The index of the item to remove. + + + + Gets or sets the element at the specified index. + + The index of the item to retrieve or set. + + + + Adds an item to the ListObservable. + + The item to add to the list. + + + + Removes all items from the ListObservable. + + + + + Determines whether the ListObservable contains a specific value. + + The item to search for in the list. + true if found; false otherwise. + + + + Copies the elements of the ListObservable to an System.Array, starting at a particular System.Array index. + + The array to copy elements to. + The start index in the array to start copying elements to. + + + + Gets the number of elements contained in the ListObservable. + + + + + Gets a value that indicates whether the ListObservable is read-only. + + + + + Removes the first occurrence of a specific object from the ListObservable. + + The item to remove from the list. + true if the item was found; false otherwise. + + + + Returns an enumerator that iterates through the collection. + + Enumerator over the list. + + + + Subscribes an observer to the ListObservable which will be notified upon completion. + + The observer to send completion or error messages to. + The disposable resource that can be used to unsubscribe. + is null. + + + + The System.Reactive namespace contains interfaces and classes used throughout the Reactive Extensions library. + + + + + The System.Reactive.Subjects namespace contains interfaces and classes to represent subjects, which are objects implementing both and . + Subjects are often used as sources of events, allowing one party to raise events and allowing another party to write queries over the event stream. Because of their ability to + have multiple registered observers, subjects are also used as a facility to provide multicast behavior for event streams in queries. + + + + + Represents the result of an asynchronous operation. + The last value before the OnCompleted notification, or the error received through OnError, is sent to all subscribed observers. + + The type of the elements processed by the subject. + + + + A pre-allocated empty array indicating the AsyncSubject has terminated. + + + + + A pre-allocated empty array indicating the AsyncSubject has been disposed. + + + + + Creates a subject that can only receive one value and that value is cached for all future observations. + + + + + Indicates whether the subject has observers subscribed to it. + + + + + Indicates whether the subject has been disposed. + + + + + Notifies all subscribed observers about the end of the sequence, also causing the last received value to be sent out (if any). + + + + + Notifies all subscribed observers about the exception. + + The exception to send to all observers. + is null. + + + + Sends a value to the subject. The last value received before successful termination will be sent to all subscribed and future observers. + + The value to store in the subject. + + + + Subscribes an observer to the subject. + + Observer to subscribe to the subject. + Disposable object that can be used to unsubscribe the observer from the subject. + is null. + + + + A disposable connecting the AsyncSubject and an IObserver. + + + + + Unsubscribe all observers and release resources. + + + + + Gets an awaitable object for the current AsyncSubject. + + Object that can be awaited. + + + + Specifies a callback action that will be invoked when the subject completes. + + Callback action that will be invoked when the subject completes. + is null. + + + + Gets whether the AsyncSubject has completed. + + + + + Gets the last element of the subject, potentially blocking until the subject completes successfully or exceptionally. + + The last element of the subject. Throws an InvalidOperationException if no element was received. + The source sequence is empty. + + + + Represents a value that changes over time. + Observers can subscribe to the subject to receive the last (or initial) value and all subsequent notifications. + + The type of the elements processed by the subject. + + + + Initializes a new instance of the class which creates a subject that caches its last value and starts with the specified value. + + Initial value sent to observers when no other value has been received by the subject yet. + + + + Indicates whether the subject has observers subscribed to it. + + + + + Indicates whether the subject has been disposed. + + + + + Gets the current value or throws an exception. + + The initial value passed to the constructor until is called; after which, the last value passed to . + + is frozen after is called. + After is called, always throws the specified exception. + An exception is always thrown after is called. + + Reading is a thread-safe operation, though there's a potential race condition when or are being invoked concurrently. + In some cases, it may be necessary for a caller to use external synchronization to avoid race conditions. + + + Dispose was called. + + + + Tries to get the current value or throws an exception. + + The initial value passed to the constructor until is called; after which, the last value passed to . + true if a value is available; false if the subject was disposed. + + The value returned from is frozen after is called. + After is called, always throws the specified exception. + + Calling is a thread-safe operation, though there's a potential race condition when or are being invoked concurrently. + In some cases, it may be necessary for a caller to use external synchronization to avoid race conditions. + + + + + + Notifies all subscribed observers about the end of the sequence. + + + + + Notifies all subscribed observers about the exception. + + The exception to send to all observers. + is null. + + + + Notifies all subscribed observers about the arrival of the specified element in the sequence. + + The value to send to all observers. + + + + Subscribes an observer to the subject. + + Observer to subscribe to the subject. + Disposable object that can be used to unsubscribe the observer from the subject. + is null. + + + + Unsubscribe all observers and release resources. + + + + + Represents an observable wrapper that can be connected and disconnected from its underlying observable sequence. + + The type of the elements in the source sequence. + The type of the elements in the resulting sequence, after transformation through the subject. + + + + Creates an observable that can be connected and disconnected from its source. + + Underlying observable source sequence that can be connected and disconnected from the wrapper. + Subject exposed by the connectable observable, receiving data from the underlying source sequence upon connection. + + + + Connects the observable wrapper to its source. All subscribed observers will receive values from the underlying observable sequence as long as the connection is established. + + Disposable object used to disconnect the observable wrapper from its source, causing subscribed observer to stop receiving values from the underlying observable sequence. + + + + Subscribes an observer to the observable sequence. No values from the underlying observable source will be received unless a connection was established through the Connect method. + + Observer that will receive values from the underlying observable source when the current ConnectableObservable instance is connected through a call to Connect. + Disposable used to unsubscribe from the observable sequence. + + + + Represents an observable wrapper that can be connected and disconnected from its underlying observable sequence. + + + The type of the elements in the sequence. + This type parameter is covariant. That is, you can use either the type you specified or any type that is more derived. For more information about covariance and contravariance, see Covariance and Contravariance in Generics. + + + + + Connects the observable wrapper to its source. All subscribed observers will receive values from the underlying observable sequence as long as the connection is established. + + Disposable used to disconnect the observable wrapper from its source, causing subscribed observer to stop receiving values from the underlying observable sequence. + + + + Represents an object that is both an observable sequence as well as an observer. + + The type of the elements processed by the subject. + + + + Represents an object that is both an observable sequence as well as an observer. + + + The type of the elements received by the subject. + This type parameter is contravariant. That is, you can use either the type you specified or any type that is less derived. For more information about covariance and contravariance, see Covariance and Contravariance in Generics. + + + The type of the elements produced by the subject. + This type parameter is covariant. That is, you can use either the type you specified or any type that is more derived. For more information about covariance and contravariance, see Covariance and Contravariance in Generics. + + + + + Represents an object that is both an observable sequence as well as an observer. + Each notification is broadcasted to all subscribed and future observers, subject to buffer trimming policies. + + The type of the elements processed by the subject. + + + + Underlying optimized implementation of the replay subject. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified scheduler. + + Scheduler the observers are invoked on. + is null. + + + + Initializes a new instance of the class with the specified buffer size. + + Maximum element count of the replay buffer. + is less than zero. + + + + Initializes a new instance of the class with the specified buffer size and scheduler. + + Maximum element count of the replay buffer. + Scheduler the observers are invoked on. + is null. + is less than zero. + + + + Initializes a new instance of the class with the specified window. + + Maximum time length of the replay buffer. + is less than . + + + + Initializes a new instance of the class with the specified window and scheduler. + + Maximum time length of the replay buffer. + Scheduler the observers are invoked on. + is null. + is less than . + + + + Initializes a new instance of the class with the specified buffer size and window. + + Maximum element count of the replay buffer. + Maximum time length of the replay buffer. + is less than zero. -or- is less than . + + + + Initializes a new instance of the class with the specified buffer size, window and scheduler. + + Maximum element count of the replay buffer. + Maximum time length of the replay buffer. + Scheduler the observers are invoked on. + is less than zero. -or- is less than . + is null. + + + + Indicates whether the subject has observers subscribed to it. + + + + + Indicates whether the subject has been disposed. + + + + + Notifies all subscribed and future observers about the arrival of the specified element in the sequence. + + The value to send to all observers. + + + + Notifies all subscribed and future observers about the specified exception. + + The exception to send to all observers. + is null. + + + + Notifies all subscribed and future observers about the end of the sequence. + + + + + Subscribes an observer to the subject. + + Observer to subscribe to the subject. + Disposable object that can be used to unsubscribe the observer from the subject. + is null. + + + + Releases all resources used by the current instance of the class and unsubscribe all observers. + + + + + Original implementation of the ReplaySubject with time based operations (Scheduling, Stopwatch, buffer-by-time). + + + + + Specialized scheduled observer similar to a scheduled observer for the immediate scheduler. + + Type of the elements processed by the observer. + + + + Gate to control ownership transfer and protect data structures. + + + + + Observer to forward notifications to. + + + + + Queue to enqueue OnNext notifications into. + + + + + Standby queue to swap out for _queue when transferring ownership. This allows to reuse + queues in case of busy subjects where the initial replay doesn't suffice to catch up. + + + + + Exception passed to an OnError notification, if any. + + + + + Indicates whether an OnCompleted notification was received. + + + + + Indicates whether the observer is busy, i.e. some thread is actively draining the + notifications that were queued up. + + + + + Indicates whether a failure occurred when the owner was draining the queue. This will + prevent future work to be processed. + + + + + Creates a new scheduled observer that proxies to the specified observer. + + Observer to forward notifications to. + + + + Disposes the observer. + + + + + Notifies the observer of pending work. This will either cause the current owner to + process the newly enqueued notifications, or it will cause the calling thread to + become the owner and start processing the notification queue. + + + + + Notifies the observer of pending work. This will either cause the current owner to + process the newly enqueued notifications, or it will cause the calling thread to + become the owner and start processing the notification queue. + + The number of enqueued notifications to process (ignored). + + + + Enqueues an OnCompleted notification. + + + + + Enqueues an OnError notification. + + Error of the notification. + + + + Enqueues an OnNext notification. + + Value of the notification. + + + + Terminates the observer upon receiving terminal notifications, thus preventing + future notifications to go out. + + Observer to send terminal notifications to. + + + + Represents an object that is both an observable sequence as well as an observer. + Each notification is broadcasted to all subscribed observers. + + The type of the elements processed by the subject. + + + + Creates a subject. + + + + + Indicates whether the subject has observers subscribed to it. + + + + + Indicates whether the subject has been disposed. + + + + + Notifies all subscribed observers about the end of the sequence. + + + + + Notifies all subscribed observers about the specified exception. + + The exception to send to all currently subscribed observers. + is null. + + + + Notifies all subscribed observers about the arrival of the specified element in the sequence. + + The value to send to all currently subscribed observers. + + + + Subscribes an observer to the subject. + + Observer to subscribe to the subject. + Disposable object that can be used to unsubscribe the observer from the subject. + is null. + + + + Releases all resources used by the current instance of the class and unsubscribes all observers. + + + + + Provides a set of static methods for creating subjects. + + + + + Creates a subject from the specified observer and observable. + + The type of the elements received by the observer. + The type of the elements produced by the observable sequence. + The observer used to send messages to the subject. + The observable used to subscribe to messages sent from the subject. + Subject implemented using the given observer and observable. + or is null. + + + + Creates a subject from the specified observer and observable. + + The type of the elements received by the observer and produced by the observable sequence. + The observer used to send messages to the subject. + The observable used to subscribe to messages sent from the subject. + Subject implemented using the given observer and observable. + or is null. + + + + Synchronizes the messages sent to the subject. + + The type of the elements received by the subject. + The type of the elements produced by the subject. + The subject to synchronize. + Subject whose messages are synchronized. + is null. + + + + Synchronizes the messages sent to the subject. + + The type of the elements received and produced by the subject. + The subject to synchronize. + Subject whose messages are synchronized. + is null. + + + + Synchronizes the messages sent to the subject and notifies observers on the specified scheduler. + + The type of the elements received by the subject. + The type of the elements produced by the subject. + The subject to synchronize. + Scheduler to notify observers on. + Subject whose messages are synchronized and whose observers are notified on the given scheduler. + or is null. + + + + Synchronizes the messages sent to the subject and notifies observers on the specified scheduler. + + The type of the elements received and produced by the subject. + The subject to synchronize. + Scheduler to notify observers on. + Subject whose messages are synchronized and whose observers are notified on the given scheduler. + or is null. + + + + Base class for objects that are both an observable sequence as well as an observer. + + The type of the elements processed by the subject. + + + + Indicates whether the subject has observers subscribed to it. + + + + + Indicates whether the subject has been disposed. + + + + + Releases all resources used by the current instance of the subject and unsubscribes all observers. + + + + + Notifies all subscribed observers about the end of the sequence. + + + + + Notifies all subscribed observers about the specified exception. + + The exception to send to all currently subscribed observers. + is null. + + + + Notifies all subscribed observers about the arrival of the specified element in the sequence. + + The value to send to all currently subscribed observers. + + + + Subscribes an observer to the subject. + + Observer to subscribe to the subject. + Disposable object that can be used to unsubscribe the observer from the subject. + is null. + + + + Indicates the type of a notification. + + + + + Represents an OnNext notification. + + + + + Represents an OnError notification. + + + + + Represents an OnCompleted notification. + + + + + Represents a notification to an observer. + + The type of the elements received by the observer. + + + + Default constructor used by derived types. + + + + + Returns the value of an OnNext notification or throws an exception. + + + + + Returns a value that indicates whether the notification has a value. + + + + + Returns the exception of an OnError notification or returns null. + + + + + Gets the kind of notification that is represented. + + + + + Represents an OnNext notification to an observer. + + + + + Constructs a notification of a new value. + + + + + Returns the value of an OnNext notification. + + + + + Returns null. + + + + + Returns true. + + + + + Returns . + + + + + Returns the hash code for this instance. + + + + + Indicates whether this instance and a specified object are equal. + + + + + Returns a string representation of this instance. + + + + + Invokes the observer's method corresponding to the notification. + + Observer to invoke the notification on. + + + + Invokes the observer's method corresponding to the notification and returns the produced result. + + Observer to invoke the notification on. + Result produced by the observation. + + + + Invokes the delegate corresponding to the notification. + + Delegate to invoke for an OnNext notification. + Delegate to invoke for an OnError notification. + Delegate to invoke for an OnCompleted notification. + + + + Invokes the delegate corresponding to the notification and returns the produced result. + + Delegate to invoke for an OnNext notification. + Delegate to invoke for an OnError notification. + Delegate to invoke for an OnCompleted notification. + Result produced by the observation. + + + + Represents an OnError notification to an observer. + + + + + Constructs a notification of an exception. + + + + + Throws the exception. + + + + + Returns the exception. + + + + + Returns false. + + + + + Returns . + + + + + Returns the hash code for this instance. + + + + + Indicates whether this instance and other are equal. + + + + + Returns a string representation of this instance. + + + + + Invokes the observer's method corresponding to the notification. + + Observer to invoke the notification on. + + + + Invokes the observer's method corresponding to the notification and returns the produced result. + + Observer to invoke the notification on. + Result produced by the observation. + + + + Invokes the delegate corresponding to the notification. + + Delegate to invoke for an OnNext notification. + Delegate to invoke for an OnError notification. + Delegate to invoke for an OnCompleted notification. + + + + Invokes the delegate corresponding to the notification and returns the produced result. + + Delegate to invoke for an OnNext notification. + Delegate to invoke for an OnError notification. + Delegate to invoke for an OnCompleted notification. + Result produced by the observation. + + + + Represents an OnCompleted notification to an observer. + + + + + Complete notifications are stateless thus only one instance + can ever exist per type. + + + + + Constructs a notification of the end of a sequence. + + + + + Throws an . + + + + + Returns null. + + + + + Returns false. + + + + + Returns . + + + + + Returns the hash code for this instance. + + + + + Indicates whether this instance and other are equal. + + + + + Returns a string representation of this instance. + + + + + Invokes the observer's method corresponding to the notification. + + Observer to invoke the notification on. + + + + Invokes the observer's method corresponding to the notification and returns the produced result. + + Observer to invoke the notification on. + Result produced by the observation. + + + + Invokes the delegate corresponding to the notification. + + Delegate to invoke for an OnNext notification. + Delegate to invoke for an OnError notification. + Delegate to invoke for an OnCompleted notification. + + + + Invokes the delegate corresponding to the notification and returns the produced result. + + Delegate to invoke for an OnNext notification. + Delegate to invoke for an OnError notification. + Delegate to invoke for an OnCompleted notification. + Result produced by the observation. + + + + Determines whether the current object has the same observer message payload as a specified value. + + An object to compare to the current object. + true if both objects have the same observer message payload; otherwise, false. + + Equality of objects is based on the equality of the observer message payload they represent, including the notification Kind and the Value or Exception (if any). + This means two objects can be equal even though they don't represent the same observer method call, but have the same Kind and have equal parameters passed to the observer method. + In case one wants to determine whether two objects represent the same observer method call, use Object.ReferenceEquals identity equality instead. + + + + + Determines whether the two specified objects have the same observer message payload. + + The first to compare, or null. + The second to compare, or null. + true if the first value has the same observer message payload as the second value; otherwise, false. + + Equality of objects is based on the equality of the observer message payload they represent, including the notification Kind and the Value or Exception (if any). + This means two objects can be equal even though they don't represent the same observer method call, but have the same Kind and have equal parameters passed to the observer method. + In case one wants to determine whether two objects represent the same observer method call, use Object.ReferenceEquals identity equality instead. + + + + + Determines whether the two specified objects have a different observer message payload. + + The first to compare, or null. + The second to compare, or null. + true if the first value has a different observer message payload as the second value; otherwise, false. + + Equality of objects is based on the equality of the observer message payload they represent, including the notification Kind and the Value or Exception (if any). + This means two objects can be equal even though they don't represent the same observer method call, but have the same Kind and have equal parameters passed to the observer method. + In case one wants to determine whether two objects represent a different observer method call, use Object.ReferenceEquals identity equality instead. + + + + + Determines whether the specified System.Object is equal to the current . + + The System.Object to compare with the current . + true if the specified System.Object is equal to the current ; otherwise, false. + + Equality of objects is based on the equality of the observer message payload they represent, including the notification Kind and the Value or Exception (if any). + This means two objects can be equal even though they don't represent the same observer method call, but have the same Kind and have equal parameters passed to the observer method. + In case one wants to determine whether two objects represent the same observer method call, use Object.ReferenceEquals identity equality instead. + + + + + Invokes the observer's method corresponding to the notification. + + Observer to invoke the notification on. + + + + Invokes the observer's method corresponding to the notification and returns the produced result. + + The type of the result returned from the observer's notification handlers. + Observer to invoke the notification on. + Result produced by the observation. + + + + Invokes the delegate corresponding to the notification. + + Delegate to invoke for an OnNext notification. + Delegate to invoke for an OnError notification. + Delegate to invoke for an OnCompleted notification. + + + + Invokes the delegate corresponding to the notification and returns the produced result. + + The type of the result returned from the notification handler delegates. + Delegate to invoke for an OnNext notification. + Delegate to invoke for an OnError notification. + Delegate to invoke for an OnCompleted notification. + Result produced by the observation. + + + + Returns an observable sequence with a single notification, using the immediate scheduler. + + The observable sequence that surfaces the behavior of the notification upon subscription. + + + + Returns an observable sequence with a single notification. + + Scheduler to send out the notification calls on. + The observable sequence that surfaces the behavior of the notification upon subscription. + + + + Provides a set of static methods for constructing notifications. + + + + + Creates an object that represents an OnNext notification to an observer. + + The type of the elements received by the observer. Upon dematerialization of the notifications into an observable sequence, this type is used as the element type for the sequence. + The value contained in the notification. + The OnNext notification containing the value. + + + + Creates an object that represents an OnError notification to an observer. + + The type of the elements received by the observer. Upon dematerialization of the notifications into an observable sequence, this type is used as the element type for the sequence. + The exception contained in the notification. + The OnError notification containing the exception. + is null. + + + + Creates an object that represents an OnCompleted notification to an observer. + + The type of the elements received by the observer. Upon dematerialization of the notifications into an observable sequence, this type is used as the element type for the sequence. + The OnCompleted notification. + + + + Abstract base class for implementations of the interface. + + + If you don't need a named type to create an observable sequence (i.e. you rather need + an instance rather than a reusable type), use the Observable.Create method to create + an observable sequence with specified subscription behavior. + + The type of the elements in the sequence. + + + + Subscribes the given observer to the observable sequence. + + Observer that will receive notifications from the observable sequence. + Disposable object representing an observer's subscription to the observable sequence. + is null. + + + + Implement this method with the core subscription logic for the observable sequence. + + Observer to send notifications to. + Disposable object representing an observer's subscription to the observable sequence. + + + + Provides a set of static methods for creating observers. + + + + + Creates an observer from a notification callback. + + The type of the elements received by the observer. + Action that handles a notification. + The observer object that invokes the specified handler using a notification corresponding to each message it receives. + is null. + + + + Creates a notification callback from an observer. + + The type of the elements received by the observer. + Observer object. + The action that forwards its input notification to the underlying observer. + is null. + + + + Creates an observer from the specified OnNext action. + + The type of the elements received by the observer. + Observer's OnNext action implementation. + The observer object implemented using the given actions. + is null. + + + + Creates an observer from the specified OnNext and OnError actions. + + The type of the elements received by the observer. + Observer's OnNext action implementation. + Observer's OnError action implementation. + The observer object implemented using the given actions. + or is null. + + + + Creates an observer from the specified OnNext and OnCompleted actions. + + The type of the elements received by the observer. + Observer's OnNext action implementation. + Observer's OnCompleted action implementation. + The observer object implemented using the given actions. + or is null. + + + + Creates an observer from the specified OnNext, OnError, and OnCompleted actions. + + The type of the elements received by the observer. + Observer's OnNext action implementation. + Observer's OnError action implementation. + Observer's OnCompleted action implementation. + The observer object implemented using the given actions. + or or is null. + + + + Hides the identity of an observer. + + The type of the elements received by the source observer. + An observer whose identity to hide. + An observer that hides the identity of the specified observer. + is null. + + + + Checks access to the observer for grammar violations. This includes checking for multiple OnError or OnCompleted calls, as well as reentrancy in any of the observer methods. + If a violation is detected, an InvalidOperationException is thrown from the offending observer method call. + + The type of the elements received by the source observer. + The observer whose callback invocations should be checked for grammar violations. + An observer that checks callbacks invocations against the observer grammar and, if the checks pass, forwards those to the specified observer. + is null. + + + + Synchronizes access to the observer such that its callback methods cannot be called concurrently from multiple threads. This overload is useful when coordinating access to an observer. + Notice reentrant observer callbacks on the same thread are still possible. + + The type of the elements received by the source observer. + The observer whose callbacks should be synchronized. + An observer that delivers callbacks to the specified observer in a synchronized manner. + is null. + + Because a Monitor is used to perform the synchronization, there's no protection against reentrancy from the same thread. + Hence, overlapped observer callbacks are still possible, which is invalid behavior according to the observer grammar. In order to protect against this behavior as + well, use the overload, passing true for the second parameter. + + + + + Synchronizes access to the observer such that its callback methods cannot be called concurrently. This overload is useful when coordinating access to an observer. + The parameter configures the type of lock used for synchronization. + + The type of the elements received by the source observer. + The observer whose callbacks should be synchronized. + If set to true, reentrant observer callbacks will be queued up and get delivered to the observer in a sequential manner. + An observer that delivers callbacks to the specified observer in a synchronized manner. + is null. + + When the parameter is set to false, behavior is identical to the overload which uses + a Monitor for synchronization. When the parameter is set to true, an + is used to queue up callbacks to the specified observer if a reentrant call is made. + + + + + Synchronizes access to the observer such that its callback methods cannot be called concurrently by multiple threads, using the specified gate object for use by a Monitor-based lock. + This overload is useful when coordinating multiple observers that access shared state by synchronizing on a common gate object. + Notice reentrant observer callbacks on the same thread are still possible. + + The type of the elements received by the source observer. + The observer whose callbacks should be synchronized. + Gate object to synchronize each observer call on. + An observer that delivers callbacks to the specified observer in a synchronized manner. + or is null. + + Because a Monitor is used to perform the synchronization, there's no protection against reentrancy from the same thread. + Hence, overlapped observer callbacks are still possible, which is invalid behavior according to the observer grammar. In order to protect against this behavior as + well, use the overload. + + + + + Synchronizes access to the observer such that its callback methods cannot be called concurrently, using the specified asynchronous lock to protect against concurrent and reentrant access. + This overload is useful when coordinating multiple observers that access shared state by synchronizing on a common asynchronous lock. + + The type of the elements received by the source observer. + The observer whose callbacks should be synchronized. + Gate object to synchronize each observer call on. + An observer that delivers callbacks to the specified observer in a synchronized manner. + or is null. + + + + Schedules the invocation of observer methods on the given scheduler. + + The type of the elements received by the source observer. + The observer to schedule messages for. + Scheduler to schedule observer messages on. + Observer whose messages are scheduled on the given scheduler. + or is null. + + + + Schedules the invocation of observer methods on the given synchronization context. + + The type of the elements received by the source observer. + The observer to schedule messages for. + Synchronization context to schedule observer messages on. + Observer whose messages are scheduled on the given synchronization context. + or is null. + + + + Converts an observer to a progress object. + + The type of the progress objects received by the source observer. + The observer to convert. + Progress object whose Report messages correspond to the observer's OnNext messages. + is null. + + + + Converts an observer to a progress object, using the specified scheduler to invoke the progress reporting method. + + The type of the progress objects received by the source observer. + The observer to convert. + Scheduler to report progress on. + Progress object whose Report messages correspond to the observer's OnNext messages. + or is null. + + + + Converts a progress object to an observer. + + The type of the progress objects received by the progress reporter. + The progress object to convert. + Observer whose OnNext messages correspond to the progress object's Report messages. + is null. + + + + Abstract base class for implementations of the interface. + + This base class enforces the grammar of observers where and are terminal messages. + The type of the elements in the sequence. + + + + Creates a new observer in a non-stopped state. + + + + + Notifies the observer of a new element in the sequence. + + Next element in the sequence. + + + + Implement this method to react to the receival of a new element in the sequence. + + Next element in the sequence. + This method only gets called when the observer hasn't stopped yet. + + + + Notifies the observer that an exception has occurred. + + The error that has occurred. + is null. + + + + Implement this method to react to the occurrence of an exception. + + The error that has occurred. + This method only gets called when the observer hasn't stopped yet, and causes the observer to stop. + + + + Notifies the observer of the end of the sequence. + + + + + Implement this method to react to the end of the sequence. + + This method only gets called when the observer hasn't stopped yet, and causes the observer to stop. + + + + Disposes the observer, causing it to transition to the stopped state. + + + + + Core implementation of . + + true if the Dispose call was triggered by the method; false if it was triggered by the finalizer. + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to Using the Scheduler.{0} property is no longer supported due to refactoring of the API surface and elimination of platform-specific dependencies. Please include System.Reactive.PlatformServices for your target platform and use the {0}Scheduler type instead. If you're building a Windows Store app, notice some schedulers are no longer supported. Consider using Scheduler.Default instead.. + + + + + Looks up a localized string similar to OnCompleted notification doesn't have a value.. + + + + + Looks up a localized string similar to Disposable has already been assigned.. + + + + + Looks up a localized string similar to Disposables collection can not contain null values.. + + + + + Looks up a localized string similar to Failed to start monitoring system clock changes.. + + + + + Looks up a localized string similar to Heap is empty.. + + + + + Looks up a localized string similar to Observer has already terminated.. + + + + + Looks up a localized string similar to Reentrancy has been detected.. + + + + + Looks up a localized string similar to This scheduler operation has already been awaited.. + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to {0} cannot be called when the scheduler is already running. Try using Sleep instead.. + + + + + Looks up a localized string similar to Could not find event '{0}' on object of type '{1}'.. + + + + + Looks up a localized string similar to Could not find event '{0}' on type '{1}'.. + + + + + Looks up a localized string similar to Add method should take 1 parameter.. + + + + + Looks up a localized string similar to The second parameter of the event delegate must be assignable to '{0}'.. + + + + + Looks up a localized string similar to Event is missing the add method.. + + + + + Looks up a localized string similar to Event is missing the remove method.. + + + + + Looks up a localized string similar to The event delegate must have a void return type.. + + + + + Looks up a localized string similar to The event delegate must have exactly two parameters.. + + + + + Looks up a localized string similar to Remove method should take 1 parameter.. + + + + + Looks up a localized string similar to The first parameter of the event delegate must be assignable to '{0}'.. + + + + + Looks up a localized string similar to Remove method of a WinRT event should take an EventRegistrationToken.. + + + + + Looks up a localized string similar to Sequence contains more than one element.. + + + + + Looks up a localized string similar to Sequence contains more than one matching element.. + + + + + Looks up a localized string similar to Sequence contains no elements.. + + + + + Looks up a localized string similar to Sequence contains no matching element.. + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to The WinRT thread pool doesn't support creating periodic timers with a period below 1 millisecond.. + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to Expected Qbservable.ToQueryable.. + + + + + Looks up a localized string similar to Invalid expression tree type.. + + + + + Looks up a localized string similar to There is no method '{0}' on type '{1}' that matches the specified arguments.. + + + + + Extension of the interface compatible with async method return types. + + + This class implements a "task-like" type that can be used as the return type of an asynchronous + method in C# 7.0 and beyond. For example: + + async ITaskObservable<int> RxAsync() + { + var res = await Observable.Return(21).Delay(TimeSpan.FromSeconds(1)); + return res * 2; + } + + + The type of the elements in the sequence. + + + + Gets an awaiter that can be used to await the eventual completion of the observable sequence. + + An awaiter that can be used to await the eventual completion of the observable sequence. + + + + Interface representing an awaiter for an . + + The type of the elements in the sequence. + + + + Gets a Boolean indicating whether the observable sequence has completed. + + + + + Gets the result produced by the observable sequence. + + The result produced by the observable sequence. + + + + The System.Reactive.Threading.Tasks namespace contains helpers for the conversion between tasks and observable sequences. + + + + + Provides a set of static methods for converting tasks to observable sequences. + + + + + Returns an observable sequence that signals when the task completes. + + Task to convert to an observable sequence. + An observable sequence that produces a unit value when the task completes, or propagates the exception produced by the task. + is null. + If the specified task object supports cancellation, consider using instead. + + + + Returns an observable sequence that signals when the task completes. + + Task to convert to an observable sequence. + Scheduler on which to notify observers about completion, cancellation or failure. + An observable sequence that produces a unit value when the task completes, or propagates the exception produced by the task. + is null or is null. + If the specified task object supports cancellation, consider using instead. + + + + Returns an observable sequence that propagates the result of the task. + + The type of the result produced by the task. + Task to convert to an observable sequence. + An observable sequence that produces the task's result, or propagates the exception produced by the task. + is null. + If the specified task object supports cancellation, consider using instead. + + + + Returns an observable sequence that propagates the result of the task. + + The type of the result produced by the task. + Task to convert to an observable sequence. + Scheduler on which to notify observers about completion, cancellation or failure. + An observable sequence that produces the task's result, or propagates the exception produced by the task. + is null or is null. + If the specified task object supports cancellation, consider using instead. + + + + Returns a task that will receive the last value or the exception produced by the observable sequence. + + The type of the elements in the source sequence. + Observable sequence to convert to a task. + A task that will receive the last element or the exception produced by the observable sequence. + is null. + + + + Returns a task that will receive the last value or the exception produced by the observable sequence. + + The type of the elements in the source sequence. + Observable sequence to convert to a task. + The scheduler used for overriding where the task completion signals will be issued. + A task that will receive the last element or the exception produced by the observable sequence. + or is null. + + + + Returns a task that will receive the last value or the exception produced by the observable sequence. + + The type of the elements in the source sequence. + Observable sequence to convert to a task. + The state to use as the underlying task's AsyncState. + A task that will receive the last element or the exception produced by the observable sequence. + is null. + + + + Returns a task that will receive the last value or the exception produced by the observable sequence. + + The type of the elements in the source sequence. + Observable sequence to convert to a task. + The state to use as the underlying task's AsyncState. + The scheduler used for overriding where the task completion signals will be issued. + A task that will receive the last element or the exception produced by the observable sequence. + or is null. + + + + Returns a task that will receive the last value or the exception produced by the observable sequence. + + The type of the elements in the source sequence. + Observable sequence to convert to a task. + Cancellation token that can be used to cancel the task, causing unsubscription from the observable sequence. + A task that will receive the last element or the exception produced by the observable sequence. + is null. + + + + Returns a task that will receive the last value or the exception produced by the observable sequence. + + The type of the elements in the source sequence. + Observable sequence to convert to a task. + Cancellation token that can be used to cancel the task, causing unsubscription from the observable sequence. + The scheduler used for overriding where the task completion signals will be issued. + A task that will receive the last element or the exception produced by the observable sequence. + or is null. + + + + Returns a task that will receive the last value or the exception produced by the observable sequence. + + The type of the elements in the source sequence. + Observable sequence to convert to a task. + Cancellation token that can be used to cancel the task, causing unsubscription from the observable sequence. + The state to use as the underlying task's . + A task that will receive the last element or the exception produced by the observable sequence. + is null. + + + + Returns a task that will receive the last value or the exception produced by the observable sequence. + + The type of the elements in the source sequence. + Observable sequence to convert to a task. + Cancellation token that can be used to cancel the task, causing unsubscription from the observable sequence. + The state to use as the underlying task's . + The scheduler used for overriding where the task completion signals will be issued. + A task that will receive the last element or the exception produced by the observable sequence. + or is null. + + + + Represents a value associated with time interval information. + The time interval can represent the time it took to produce the value, the interval relative to a previous value, the value's delivery time relative to a base, etc. + + The type of the value being annotated with time interval information. + + + + Constructs a time interval value. + + The value to be annotated with a time interval. + Time interval associated with the value. + + + + Gets the value. + + + + + Gets the interval. + + + + + Deconstructs the time interval value into a value and a time interval. + + The value. + Time interval associated with the value. + + + + Determines whether the current value has the same and as a specified value. + + An object to compare to the current value. + true if both values have the same and ; otherwise, false. + + + + Determines whether the two specified values have the same and . + + The first value to compare. + The second value to compare. + true if the first value has the same and as the second value; otherwise, false. + + + + Determines whether the two specified values don't have the same and . + + The first value to compare. + The second value to compare. + true if the first value has a different or as the second value; otherwise, false. + + + + Determines whether the specified System.Object is equal to the current . + + The System.Object to compare with the current . + true if the specified System.Object is equal to the current ; otherwise, false. + + + + Returns the hash code for the current value. + + A hash code for the current value. + + + + Returns a string representation of the current value. + + String representation of the current value. + + + + Represents value with a timestamp on it. + The timestamp typically represents the time the value was received, using an IScheduler's clock to obtain the current time. + + The type of the value being timestamped. + + + + Constructs a timestamped value. + + The value to be annotated with a timestamp. + Timestamp associated with the value. + + + + Gets the value. + + + + + Gets the timestamp. + + + + + Deconstructs the timestamped value into a value and a timestamp. + + The value. + Timestamp associated with the value. + + + + Determines whether the current value has the same and as a specified value. + + An object to compare to the current value. + true if both values have the same and ; otherwise, false. + + + + Determines whether the two specified values have the same and . + + The first value to compare. + The second value to compare. + true if the first value has the same and as the second value; otherwise, false. + + + + Determines whether the two specified values don't have the same and . + + The first value to compare. + The second value to compare. + true if the first value has a different or as the second value; otherwise, false. + + + + Determines whether the specified System.Object is equal to the current . + + The System.Object to compare with the current . + true if the specified System.Object is equal to the current ; otherwise, false. + + + + Returns the hash code for the current value. + + A hash code for the current value. + + + + Returns a string representation of the current value. + + String representation of the current value. + + + + A helper class with a factory method for creating instances. + + + + + Creates an instance of a . This is syntactic sugar that uses type inference + to avoid specifying a type in a constructor call, which is very useful when using anonymous types. + + The value to be annotated with a timestamp. + Timestamp associated with the value. + Creates a new timestamped value. + + + + Represents a type with a single value. This type is often used to denote the successful completion of a void-returning method (C#) or a Sub procedure (Visual Basic). + + + + + Determines whether the specified value is equal to the current . Because has a single value, this always returns true. + + An object to compare to the current value. + Because has a single value, this always returns true. + + + + Determines whether the specified System.Object is equal to the current . + + The System.Object to compare with the current . + true if the specified System.Object is a value; otherwise, false. + + + + Returns the hash code for the current value. + + A hash code for the current value. + + + + Returns a string representation of the current value. + + String representation of the current value. + + + + Determines whether the two specified values are equal. Because has a single value, this always returns true. + + The first value to compare. + The second value to compare. + Because has a single value, this always returns true. + + + + Determines whether the two specified values are not equal. Because has a single value, this always returns false. + + The first value to compare. + The second value to compare. + Because has a single value, this always returns false. + + + + Gets the single value. + + + + + Provides conversions from Windows Runtime asynchronous actions and operations to observable sequences. + + + + + Converts a Windows Runtime asynchronous action to an observable sequence. + Each observer subscribed to the resulting observable sequence will be notified about the action's successful or exceptional completion. + + Asynchronous action to convert. + An observable sequence that produces a unit value when the asynchronous action completes, or propagates the exception produced by the asynchronous action. + is null. + + + + Converts a Windows Runtime asynchronous action to an observable sequence, ignoring its progress notifications. + Each observer subscribed to the resulting observable sequence will be notified about the action's successful or exceptional completion. + + The type of the reported progress objects, which get ignored by this conversion. + Asynchronous action to convert. + An observable sequence that produces a unit value when the asynchronous action completes, or propagates the exception produced by the asynchronous action. + is null. + + + + Converts a Windows Runtime asynchronous action to an observable sequence, reporting its progress through the supplied progress object. + Each observer subscribed to the resulting observable sequence will be notified about the action's successful or exceptional completion. + + The type of the reported progress objects. + Asynchronous action to convert. + Progress object to receive progress notifications on. + An observable sequence that produces a unit value when the asynchronous action completes, or propagates the exception produced by the asynchronous action. + or is null. + + + + Converts a Windows Runtime asynchronous action to an observable sequence reporting its progress. + Each observer subscribed to the resulting observable sequence will be notified about the action's successful or exceptional completion. + + The type of the reported progress objects. + Asynchronous action to convert. + An observable sequence that produces progress values from the asynchronous action and notifies observers about the action's completion. + is null. + + + + Converts a Windows Runtime asynchronous operation to an observable sequence reporting its result. + Each observer subscribed to the resulting observable sequence will be notified about the operation's single result and its successful exceptional completion. + + The type of the asynchronous operation's result. + Asynchronous operation to convert. + An observable sequence that notifies observers about the asynchronous operation's result value and completion. + is null. + + + + Converts a Windows Runtime asynchronous operation to an observable sequence reporting its result but ignoring its progress notifications. + Each observer subscribed to the resulting observable sequence will be notified about the operations's single result and its successful or exceptional completion. + + The type of the asynchronous operation's result. + The type of the reported progress objects, which get ignored by this conversion. + Asynchronous action to convert. + An observable sequence that notifies observers about the asynchronous operation's result value and completion. + is null. + + + + Converts a Windows Runtime asynchronous operation to an observable sequence reporting its result and reporting its progress through the supplied progress object. + Each observer subscribed to the resulting observable sequence will be notified about the operations's single result and its successful or exceptional completion. + + The type of the asynchronous operation's result. + The type of the reported progress objects. + Asynchronous action to convert. + Progress object to receive progress notifications on. + An observable sequence that notifies observers about the asynchronous operation's result value and completion. + or is null. + + + + Converts a Windows Runtime asynchronous operation to an observable sequence reporting its progress but ignoring its result value. + Each observer subscribed to the resulting observable sequence will be notified about the action's successful or exceptional completion. + + The type of the asynchronous operation's result, which gets ignored by this conversion. + The type of the reported progress objects. + Asynchronous action to convert. + An observable sequence that produces progress values from the asynchronous operation and notifies observers about the operations's completion. + is null. + + + + Converts a Windows Runtime asynchronous operation to an observable sequence by retrieving the operation's results whenever progress is reported and when the operation completes. + Each observer subscribed to the resulting observable sequence will be notified about the action's successful or exceptional completion. + + The type of the asynchronous operation's result. + The type of the reported progress objects, which are used internally in the conversion but aren't exposed. + Asynchronous operation to convert. + An observable sequence that notifies observers about the asynchronous operation's (incremental) result value(s) and completion. + This conversion can be used with Windows Runtime APIs that support incremental retrieval of results during an asynchronous operation's execution. + is null. + + + + Converts a Windows Runtime asynchronous operation to an observable sequence by retrieving the operation's results whenever progress is reported and when the operation completes. The operation's progress is reported through the supplied progress object. + Each observer subscribed to the resulting observable sequence will be notified about the action's successful or exceptional completion. + + The type of the asynchronous operation's result. + The type of the reported progress objects. + Asynchronous operation to convert. + Progress object to receive progress notifications on. + An observable sequence that notifies observers about the asynchronous operation's (incremental) result value(s) and completion. + This conversion can be used with Windows Runtime APIs that support incremental retrieval of results during an asynchronous operation's execution. + or is null. + + + + Represents a data stream signaling its elements by means of an event. + + Sender type. + Event arguments type. + + + + Event signaling the next element in the data stream. + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to The current thread has no Dispatcher associated with it.. + + + + + Looks up a localized string similar to No current Window object found to obtain a CoreDispatcher from.. + + + + Specifies that null is allowed as an input even if the corresponding type disallows it. + + + Specifies that null is disallowed as an input even if the corresponding type allows it. + + + Specifies that an output may be null even if the corresponding type disallows it. + + + Specifies that an output will not be null even if the corresponding type allows it. Specifies that an input argument was not null when the call returns. + + + Specifies that when a method returns , the parameter may be null even if the corresponding type disallows it. + + + Initializes the attribute with the specified return value condition. + + The return value condition. If the method returns this value, the associated parameter may be null. + + + + Gets the return value condition. + + + Specifies that when a method returns , the parameter will not be null even if the corresponding type allows it. + + + Initializes the attribute with the specified return value condition. + + The return value condition. If the method returns this value, the associated parameter will not be null. + + + + Gets the return value condition. + + + Specifies that the output will be non-null if the named parameter is non-null. + + + Initializes the attribute with the associated parameter name. + + The associated parameter name. The output will be non-null if the argument to the parameter specified is non-null. + + + + Gets the associated parameter name. + + + Applied to a method that will never return under any circumstance. + + + Specifies that the method will not return if the associated Boolean parameter is passed the specified value. + + + Initializes the attribute with the specified parameter value. + + The condition parameter value. Code after the method will be considered unreachable by diagnostics if the argument to + the associated parameter matches this value. + + + + Gets the condition parameter value. + + + Specifies that the method or property will ensure that the listed field and property members have not-null values. + + + Initializes the attribute with a field or property member. + + The field or property member that is promised to be not-null. + + + + Initializes the attribute with the list of field and property members. + + The list of field and property members that are promised to be not-null. + + + + Gets field or property member names. + + + Specifies that the method or property will ensure that the listed field and property members have not-null values when returning with the specified return value condition. + + + Initializes the attribute with the specified return value condition and a field or property member. + + The return value condition. If the method returns this value, the associated parameter will not be null. + + + The field or property member that is promised to be not-null. + + + + Initializes the attribute with the specified return value condition and list of field and property members. + + The return value condition. If the method returns this value, the associated parameter will not be null. + + + The list of field and property members that are promised to be not-null. + + + + Gets the return value condition. + + + Gets field or property member names. + + + + Provides a set of static methods for subscribing delegates to observables. + + + + + Subscribes to the observable sequence without specifying any handlers. + This method can be used to evaluate the observable sequence for its side-effects only. + + The type of the elements in the source sequence. + Observable sequence to subscribe to. + object used to unsubscribe from the observable sequence. + is null. + + + + Subscribes an element handler to an observable sequence. + + The type of the elements in the source sequence. + Observable sequence to subscribe to. + Action to invoke for each element in the observable sequence. + object used to unsubscribe from the observable sequence. + or is null. + + + + Subscribes an element handler and an exception handler to an observable sequence. + + The type of the elements in the source sequence. + Observable sequence to subscribe to. + Action to invoke for each element in the observable sequence. + Action to invoke upon exceptional termination of the observable sequence. + object used to unsubscribe from the observable sequence. + or or is null. + + + + Subscribes an element handler and a completion handler to an observable sequence. + + The type of the elements in the source sequence. + Observable sequence to subscribe to. + Action to invoke for each element in the observable sequence. + Action to invoke upon graceful termination of the observable sequence. + object used to unsubscribe from the observable sequence. + or or is null. + + + + Subscribes an element handler, an exception handler, and a completion handler to an observable sequence. + + The type of the elements in the source sequence. + Observable sequence to subscribe to. + Action to invoke for each element in the observable sequence. + Action to invoke upon exceptional termination of the observable sequence. + Action to invoke upon graceful termination of the observable sequence. + object used to unsubscribe from the observable sequence. + or or or is null. + + + + Subscribes an observer to an observable sequence, using a to support unsubscription. + + The type of the elements in the source sequence. + Observable sequence to subscribe to. + Observer to subscribe to the sequence. + CancellationToken that can be signaled to unsubscribe from the source sequence. + or is null. + + + + Subscribes to the observable sequence without specifying any handlers, using a to support unsubscription. + This method can be used to evaluate the observable sequence for its side-effects only. + + The type of the elements in the source sequence. + Observable sequence to subscribe to. + CancellationToken that can be signaled to unsubscribe from the source sequence. + is null. + + + + Subscribes an element handler to an observable sequence, using a to support unsubscription. + + The type of the elements in the source sequence. + Observable sequence to subscribe to. + Action to invoke for each element in the observable sequence. + CancellationToken that can be signaled to unsubscribe from the source sequence. + or is null. + + + + Subscribes an element handler and an exception handler to an observable sequence, using a to support unsubscription. + + The type of the elements in the source sequence. + Observable sequence to subscribe to. + Action to invoke for each element in the observable sequence. + Action to invoke upon exceptional termination of the observable sequence. + CancellationToken that can be signaled to unsubscribe from the source sequence. + or or is null. + + + + Subscribes an element handler and a completion handler to an observable sequence, using a to support unsubscription. + + The type of the elements in the source sequence. + Observable sequence to subscribe to. + Action to invoke for each element in the observable sequence. + Action to invoke upon graceful termination of the observable sequence. + CancellationToken that can be signaled to unsubscribe from the source sequence. + or or is null. + + + + Subscribes an element handler, an exception handler, and a completion handler to an observable sequence, using a to support unsubscription. + + The type of the elements in the source sequence. + Observable sequence to subscribe to. + Action to invoke for each element in the observable sequence. + Action to invoke upon exceptional termination of the observable sequence. + Action to invoke upon graceful termination of the observable sequence. + CancellationToken that can be signaled to unsubscribe from the source sequence. + or or or is null. + + + + Subscribes to the specified source, re-routing synchronous exceptions during invocation of the method to the observer's channel. + This method is typically used when writing query operators. + + The type of the elements in the source sequence. + Observable sequence to subscribe to. + Observer that will be passed to the observable sequence, and that will be used for exception propagation. + object used to unsubscribe from the observable sequence. + or is null. + + + + Represents a builder for asynchronous methods that return a task-like . + + The type of the elements in the sequence. + + + + The compiler-generated asynchronous state machine representing the execution flow of the asynchronous + method whose return type is a task-like . + + + + + The underlying observable sequence representing the result produced by the asynchronous method. + + + + + Creates an instance of the struct. + + A new instance of the struct. + + + + Begins running the builder with the associated state machine. + + The type of the state machine. + The state machine instance, passed by reference. + is null. + + + + Associates the builder with the specified state machine. + + The state machine instance to associate with the builder. + is null. + The state machine was previously set. + + + + Marks the observable as successfully completed. + + The result to use to complete the observable sequence. + The observable has already completed. + + + + Marks the observable as failed and binds the specified exception to the observable sequence. + + The exception to bind to the observable sequence. + is null. + The observable has already completed. + + + + Gets the observable sequence for this builder. + + + + + Schedules the state machine to proceed to the next action when the specified awaiter completes. + + The type of the awaiter. + The type of the state machine. + The awaiter. + The state machine. + + + + Schedules the state machine to proceed to the next action when the specified awaiter completes. + + The type of the awaiter. + The type of the state machine. + The awaiter. + The state machine. + + + + Rethrows an exception that was thrown from an awaiter's OnCompleted methods. + + The exception to rethrow. + + + + Implementation of the IObservable<T> interface compatible with async method return types. + + + This class implements a "task-like" type that can be used as the return type of an asynchronous + method in C# 7.0 and beyond. For example: + + async Observable<int> RxAsync() + { + var res = await Observable.Return(21).Delay(TimeSpan.FromSeconds(1)); + return res * 2; + } + + + + + + The underlying observable sequence to subscribe to in case the asynchronous method did not + finish synchronously. + + + + + The result returned by the asynchronous method in case the method finished synchronously. + + + + + The exception thrown by the asynchronous method in case the method finished synchronously. + + + + + Creates a new for an asynchronous method that has not finished yet. + + + + + Creates a new for an asynchronous method that synchronously returned + the specified value. + + The result returned by the asynchronous method. + + + + Creates a new for an asynchronous method that synchronously threw + the specified . + + The exception thrown by the asynchronous method. + + + + Marks the observable as successfully completed. + + The result to use to complete the observable sequence. + The observable has already completed. + + + + Marks the observable as failed and binds the specified exception to the observable sequence. + + The exception to bind to the observable sequence. + is null. + The observable has already completed. + + + + Subscribes the given observer to the observable sequence. + + Observer that will receive notifications from the observable sequence. + Disposable object representing an observer's subscription to the observable sequence. + is null. + + + + Gets an awaiter that can be used to await the eventual completion of the observable sequence. + + An awaiter that can be used to await the eventual completion of the observable sequence. + + + + Gets a Boolean indicating whether the observable sequence has completed. + + + + + Gets the result produced by the observable sequence. + + The result produced by the observable sequence. + + + + Attaches the specified to the observable sequence. + + The continuation to attach. + + + diff --git a/Game/Assets/Supabase/System.Reactive.5.0.0/lib/uap10.0.16299/System.Reactive.xml.meta b/Game/Assets/Supabase/System.Reactive.5.0.0/lib/uap10.0.16299/System.Reactive.xml.meta new file mode 100644 index 0000000..bc5caa8 --- /dev/null +++ b/Game/Assets/Supabase/System.Reactive.5.0.0/lib/uap10.0.16299/System.Reactive.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: f8861c25300b1624ba5a16e3c4e83d3e +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1.meta b/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1.meta new file mode 100644 index 0000000..78a4302 --- /dev/null +++ b/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9b78b8e1c21163a47be820085d99e064 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/.signature.p7s b/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/.signature.p7s new file mode 100644 index 0000000000000000000000000000000000000000..97878390b799439a60e4c0542aaeb0a3b825b1a3 GIT binary patch literal 18702 zcmeHvc|26@-@h4S-}jxdmED;cdm`D_LYA~J_I((GP%$Hvlr2j|mS~qHl7wUrNhPu* zYem`D7X8i$ce;D-?(g&bp6~s9UoZaQI@fZpbDisYf8L+>=W_rAeQI(liAcT3MLGxt zG?SqB86fB_LLsCG27r#7$}Un5;zSCALdZw}$3GfEGOb`1mQGkdH;lImf|?pBgHVuB zk^^KAG6(=6gOZVx0WV4Gq5WJ{T!OIf&ZYpu+*@BZ$lcf!ZSQN~@1m<~s-?uCE0*!(ec5O$~sbgAPzYAP~U!9~%xj6j<6Q z{=23@fC&A#0N{%uB|sQR00M*>N`OE}^61%~3~PoRER32hwOjUO&b{5c?cB*5b5G{s z%3{`bv`b;#*V&SgXw{NJu@lkJy&2TB;T*xSakrx12ALm3oRC;xNJT0Hw7l+9y_P-c z{#kIw4Bejr?-Up;e6_;q_>B30?Xoqe`~%(AEQMu{&=&LZ)3b5%^+znC;8|@WUet~HM-izgPoeiw zPmwm+_gM%`AC)=M&#PdwMnC1e>fk{5-;OvYbXy&w6S*K3)L7U(Y{gM~oR_|!IN^%r zorN#8~SJ(6IuVs(RCazeQtbr z>8BX}KKtp)y)LDm6|>U<9<&M+?4gQBuOILVo@Umu3-8_Ldgq zT*X4i>OC7O;K0cL=?sskmuGBlDH>Av?DDoOM&I{tNb#&J;=NAaFb#%9m?*HYZO9lW080VVRg;8Vuzj{syroCl4+*oN^p*V914e>lII7)K|#xtoi(o3{&* z3Hb!enDlIa%OY|0fkeJHx_w6pv>pzQcZ+IRed~P^iI5{qmu$*;5*qM1BYA>!( zY+JdA+oMNjGpsJrr?g*4XI*}OQVO1Qo7W(UvY&Q-(AbW%@#h+4a}G_M-K* zh(u3QL&gD%1Mqm_galy0z!5+tQz=s+Qf_@Htf$=H9mn&}eNlhE?;he5;4nQv2T&rX zCKB<;ubw1O7$5;+lKhs)S&AsNt^<3*o`UBmusVxhUpuU_t=1cm} zZdrQ4$)Dc(U!pr80Ibp-wGVVQB6ntm+SwYVj*5y0T;n^$E3Lv^I|-mWkJH$Ft=Y*? zn}7Q2q(nd5La|_Ap*_K$!L-;r_pHs}VG+CuW6p%S?^y?W7Q?(wTdkm31y=It#WWq0 zgWuu`c_`@P**@RTFEM>|M&!0geZzK%EO9Yz6<;x^s!aUlhoVe_X{@?g!LF|P7q1?K zAAIFoNE=&zZK;mgHKT1;^DeDimZ?!kT2ac~$RdSk5$K96_Bd~+zIO7v{e15~;T%1R z#+^00?-ayzyr=71fWV)eM>y=HUoCRxsx zpuLwC-Sv)D6#7)1Vf>kA{u2ZblzI?KAm>!rkb01ytc6ruC1EXM}FmrPB!gxC(_yJyGGinw#V>bsZ#t-8R>Pi@_4+e|IfjZiH zJ?Vc@|6AJm{HPVAg}QIwHvPbm&!Lw^1?^y+svC60#3^ zJ8kaiiM?=UgLJ9sW_6!8jcw`Y3hx~j&nS2m+;B87$yT=GR8eAIf!((i6He|o(}Zv< z!@Bo-onqul<-!i6gh)WDfU_{}!bq*G9YSw-rrTOn%Pd_dWtUxCYb2lQ-i<(bKRQA% zZZV35jUO5X%fjf zi+lD+4y7I~U8kLO;7V0*qBFnbJAbG@(=EOy#=FgZcU9-&*da$4`&j_^W{OG?wkj(A ziJ}I6hddv^8<5XLWg;SF|DcIKQ9VCbG*TML#1;fu^+Cq6`aFwXBj}cBIcK&dMLvvc>xzcX#6& zGpz-z#syDj3XN|&F3iQEk=TM$!A(G4x2m>3<6FM}a&F4?rlM;~t~F;pORfAdQ@p0bFsn*5qAl=*xLZ{LibW$+gakd)t@%P>PSkb@Q~zPNDLvHLs&%dBotT!b-Gv4J&2YJUvJ zo^t`<=8+t0c9~x*IDKVc(WbQAI+rt8^eA~(#c>AF zXLhr-VRAh+PngJTImZ9nnA(@EUn1dg(C%HIYS-oF4-ACY-K|@gx+-n_rF`*k$JCkX z8ds>i{*e$AcQsF>uFBB++wtc$jReV>o;vNL!;qY~!hDsd+-1o4UTE?yRG|TRSelqc z@=LF}+s0N01jF09zomAGAD+m29BCZCf5FpiY%gO-^AXJi(+)AI3Nh_yI=o50iEsZm zpPpeBI|+{=G%J`ZYK4tm@nQdKuP$!st4dk+(NbEJGDQl2ad~45Zv%oL zMF|k3zz`>C80#;Yz~(S$CINy5I5#4YRHO)+jRFM(q-OaP>IISa_XXC-Wnt8J3#o%*{K# znNFP2JR}EHke582cmm*~fq)#`KVdYWjDO_>fDuj@0Yaj1|LMq_a(sbL<2&4quZP34 zi~M(-%;9c9=?%MXi_hQvrs)8Omx6MLqD;WU%gKk-ic-Z}WkMbK_*=`hbTWIJAE$5y zaX23w#O=%qqN^8&0Ls>;E9}aHfgbT!A zJ-~SVy4=6ffXGVa72x~ayqwH&XfGe4%1@6`Lo`0kD0aG(DIz;YJ)=ikOoigZN{*>lN_L(^UbrUy%3E zupq=7#NpsND#6!Vejfsyq7DWNNBiSkF<7@?FlE8t&k2t4_6!0&SOsEVQWn|uE^rHP zw*W9}1MRt%)c~sEZq9BFtNtfkiDIw@>c{|UaF&rfG)k&+VSaJ<;7C=J{V7`#!~VLyVSg>8 zh6=y0w_7ufzYb;l<7bjdPuo71?ecJpu`>R`!W4AkNE4ukG#zF=pM zR6FOKSCh|V2-8!ORAX9AZ0>`k-l*rdGAu|M7AW1%mD%>bK~0~qTRyOzsrU=~Ou40d znCO}BtPfuV;Pd~SHL*FZf*kN#_W~ibFf?GBbtv-yuph7jEZC{sywEOAvMz4UfFK|M zP>_>J(vw2DVXUzu&$%OSojL1K(-!9bLXT4_gi8hxWfxxaAw4lJ7#VP%y7_@8g_xlu z8{oHkjX2UDZu{N9Pi}g;8RpC#kH#pF0Tk^i6kI=@#8t1+U}>p>Gvzxjy5!_$n!wraF51Mq;KqkOkqRR)eusm035c zcJh_HP#WtjIHNscYAjBM8%~lXko(TuOHC~O&`Lm0D~;|+NtLiU1A2{0Ab`Qwz$=8T@P)ps zsn%lCsb^_i>3{MX|I-gQ(F0Wg5Z@in@8AWBcVKx9yaG34^Z(SKhymNaqpZMR8kD~g zHZI?vzTaX`dJOguH$HpZVzvO1r|NqP8B697d0{&VGR57v$&uAiy!_EC@iLhY4tECH z)M+f^mh5?sk6)n}d>wk&YnRfCc=ERzM}v5qoAY?8x{~5&rzSj?@{*NhLaVpmJEB~7 zBKPCR{HU`}&NO(9JxeW75#U!&ubI1WZSKTCZTnH*dUEk%_2F>3Z8ag3YR1ddr6~Px zk9WM7FS=+raPmC&{KNMs)|dSaVLkB^D-RN^uz_=}*IHJn<`WewlTNzV_0AOuQB9%P%D-OS^_U_`H}@5*8Ah(uVXV%FXFtD5OLl zsmoGa_ca4SKH|68SA>xNGK}mDt~{uM*#d`v1Dn~45g@z{OJIzYV?9RdDB~C8q>Vap+aM3r3G+0ck)o zQ#^Bfr0Awb-|z3gZi}U{VBmRG4E#kHoN`t8;A4V;2$}=#)%83^QWnMy!Xk|Xp&xj$=gN_4Oy^i% z@1EJLM*PXetFdgOyTtQG56xx2vUEJ*3rO_wqdA=6mgK2iXAb$!ETuf4`pO%x+cfy@ z4C&{VIN6ufo+hXdFN+f!jp7{ily?c%_Pz8zm8x2jn)2>Cc_~#>thtp&oa_LXq z^b7CuyFXmy6u40~q(V~lB>G%4q~}tDQaOX!&Gw;lq;}NCnJe49Sdm}UQ+5qhoj=tx ztjt=`J^Z|8Ow#5~lC=fwSi^-6!lY*+B%Xb{eI1PlvC|O5PSiSfz8J~B-$J3D1rde` zX&Cf|;`mE}*G!v4BGw0CR|#8UEM^{kwX^P#G{7U%kqN{Q+tQdeg8 z3pa1lzsYM+Km)t20x@f3cRLC3)5nHOR2_SGb!I@%0z^FUV<&TPoa zQ>e-!6!Vz;rn*6?P=M2i4+=BMN%(D2U&~W(K$M>6i|)EeWj-Zt6=8jNEJ9C1Flyv= z@$+p(A-l}2gU*^E$c@jDYS%tdCH+uJGNU3?SBx2%EQr3i4u1{cO4R_HweWuz(Cs1u zssKzGQ2Z${f%B6FqZKlNt0=eXcCBJ4F*+fyAdT|_tI?|v#!ehTl$d1uV=@orW;h4K zDS_({3PP#};08#nmqAG7UqegqrmOiqKiw7BvC$T~5pV(9qTSHHo1hc+Z^Nm=4{(~x z0=b?M(Zb`+&TqQ|aU)29B!q7hocBQ5_+Qdd3_UGacT2aA4O5U z%HGd7$8WIW)bjd;$B>!0KZ${4ZcFpUch`*DOi>|G>uv_gyaDz}CuC-s6Dzf%V zyl4?m^7{zNcYR|xJ8!#O%V4@jE$iOVWj)qQBUP_SDgp~rS+T4l{S8b~0wn4+hOG52 zye<6Xm*Z>??mMkEggQWAs4I;Yr0E5@!o&=B_gDRWQ9b1=-o`XvCGEWy1o*}Eex z7cXQo;)4RnWgSyeFKPQAxqH}cFH>OT9}R!psfOZU6n3iddP6g#Qr7+4!-J7&M_T^l zOYSHuuQZK&LI*}1%9Xmv_QE6bB}gH?mQ|_unj4D^6C{QsKJK%|vfQRSmb2jb_*C8G zD6GAFwy)bLl{9JTroYDLPAddl$~JKL4C{*$S~gou?7ZCj0ES#BTq<&W1NvOyX1a=wllEkXA`^$L5W`zrs!y5lJWfz5%1FbHAMEy?Lg@P24 z7EEk}K?sWbz|9XO2K#9l95Fa=C!8}D?d3!ir)a4*f>?i2f`2Ez0rHz}070y|)5Od` zw2zyNx4+Bxu$gQCO4iNW(dmecyC25;Ul5S#ZI$MaRX=DX@6zA1C+_o;zSPq?0Tfit z6ZLa~7p|}!`$q-jzY2w}3CL$O&W=}4R$+?B<>CSfT};p7F5X9z`%&`@8NV>~B4 zz|kBvw_Ac%{Q~MkPh-Wz|DnTF6GdB--Q$!iX}fi+qT>{bw9Z^fmcgp zhRs^!$%mk(55v4F$I=NFf;AOzw&pG}5-DkhX8jlvdZ>oYjw>IZv-Jw;MA$+KCP^Pt z3MWudwU?RZ-Ms&ZqC@!T1Q`dM17+xoxpDGK1jeNO3I#qaj+&QM&6Jkyeqdxnd`V`5 z5w6!NQuO0)njOM12j`?qhEzor(^mkIrFNLwA-%2GjDw zhYdwAbi!B9%GdYoE61-qtBTDcun7FK0imZWm^I=m_YPB9=9bRZwbh&|5oR33CKUl8$S!k zw{1TQ#O?oR)|Slpvie+t+0MjLt-MoFedZ<6l=lvu?En8KAm`S|3O*XA^FN)In=IV< zxkb#wZMu^GW2n~$s_B))lMzs3=XbCamdTusF6=O6in_s`ms7=GO=WW4^z??kc169D zMO&#ivn`dN1{CH_tEVczOz+s2#Fj;o9C;>KndKUa8!zm8ugQ9cA#LpY-uVff4&qJg zXj--6U@AJ)q2wqeM$#w~ou&)!d1p{!C%P`)6 z`W++ZPQZYUBXH3R6J8c#?#>XU(a}S*>CY)H3mUziGxAhC*#lh4u`-=Zp^Ll8++1bPd&)wyq`COvGAY1_92CrXZ{9%t6NQr!@*H8feiDUCt@co8DM}WZm4+uiIfI$>{8xy%gk*=h;nV{RKxJPB zTWkBuE6Hf|=<)E6xHzVC{O1NjLZU}X;qaW{AIA-5_s*&0?bYT{9w{-k@mipqh*mSXL#>SV|*jsw0R_;paa|Od1W` z?KU(Cv90|$gg1nFu|Xm`I!Ra&+$8`|Md<~D+&!p4tzBBR?-%WwtQhmXTwm&TR)mv+ zW|FD#43PEZ#%u|8U;dSg%XhU{T*$1KWwcKOe<@de_2HY3wAgbjXD%=y$Kj}Sm|JX= z?X?(b8>>Sobp1_p7CW8L^Z#wx?=LWb!vC?Un^7f!@W22772p5>wEtQtdpf(A+R`bx z+PPTTn$ii|+d5dy2}+BqAVnbO(0Iy;ye=crEGZE_&=VBc{gaFLr_ zaa1dhK?OBwgIEL^B-_luuqL$?NYI5xU5j5ZKh^d1DCidyX*i{zh~{=f5S@OW_=oNG zerM-ZSqu_jVWOj$(*FntiH~iH#pSqhF9jxv{MLK z^mOYUfnfb@tXEv^o7K5)4s?LsSELs3vsOe)fC_RerpvJz*?p9x`Y*J4wy9>3^3Q;cU6SqV) z31yKu@u$3fGb1)|yf#ein*i@)TO;Y@=#>;D_Y3WTC9{T(Q0c#cYPXe&*a}sG$)s(f z4=u#WTMYNsR_fR^CV%MvhNXggPUBLW{#NF;Q6flzR;W^91b}CG-AcRAdsePz+2D&v zrhnr7ZOfQBeJnbR1qY_(`~$Ty+OnkH&ui6TP!H6iU6ILzHl~h}Dz+kTvPv{&Vgg1o;+F%-by$IMV!G){i$JFf;#0F` zzwq<(=D}9t=p}fALUp<-n65hY^EuJ7*gvClN2j1wZn;*$cm)}J#H3W7knBD?C5LL4 zL~v_)Wn^Ii7RJ7*5O5WK( zVaD<7w_&%ijj_ry-wxy1>C+lwm|$J{DEiP~nRHshdl+6D6G?7u&-4T4U#k;g%Se&> z$zlQ8eDieXf&P-)(yo2r!>*0{@z)9M2Rt;20Y9xeHzdDFsszPH_Oj+(fs&WST zUvwoSDJ&|dEJ~-Mp`xoS8^6JT&`o@gFP7t0V&Q!|4brFq3+Xgv#~C(+piU^}*kJMN zyGt@>OHC-soac$p99%(bn_4iG+5(%Fhrlyy{-}9Xo1e?Q%FCNN`;;UlY|Y=KI?uhU zG_Qv8*>bz(c;<`VCd>jGiyO#=ZS!hai9T~{k~;ByWIpmaRBZ?x&R z;OP_#`?NH8Ow{X6lP8`wfi~@PqSdGA)ipo;+>Gz#2H;E@EONBbfJvox?_sw!yiM8W z+rXO-=mx>iuSDGOHj(>gEpEQLzt*N8uF}o`3pd_3?)Zer{eHp?)e^`cz#)Nu?RSnH zt-*T&4Eo9lIT(~&bOfYP))-bvzHlyEi#X0y)zRU76awD~?7AG5e+r<$) zdT_>nb!N^Lw(^?5U9rci)0^h)59Jyt%(3yg)E9$^?yns*ypQ396F`mC@nKi|wR_>g zZAMHvyK z7F#%*MpKd`9cg2TDG?dnXE;(}GeXUXT2C{-6o#R0)HPYaYgb~1v8a!pjY@i5GN(k0 zIL1IFo4@;(DjgBB+9_{b%Us*zD6Fm7|#7S`c#7`^}GFK`IKwU`>&$ z-ABc^vKR2b{lkAy{7B!Zn}P@cFd_*6fc_8XDiV@PBD4yEN-CPPa`GzwFs=L_L|^OZ zI&DfM`I&>0xA<}gWuqP!nEV(fwQN8MN)gd>`bA;aV!9|`C9 z=Z91JMJ3}Pw^*Q2@&^kPvBcC;4sk#V8azDW1cyj&l|F`aj-Z&W>)cN)p$r;5^VcIZ zeW8JkQ%)`TyX%^GlhzTYC5=FHYX)sU123`A*W#!Z z8lq}5qvcH{qjjrWjyUy(rg5K8U(+HyMOY}$w`|N5(KyK!8lfL&;Y9Z zbYh)ql2^v8tuHOR*Xn(n;`{F;AfHkhU1pP3?Bx0?=2W7dVh!ITbS)dIVNu@Rx?ac| za)x?>r%a2}0BmAfzsz0IEld4`;njx>8_mm^SrAHF8dK&T)VYXh*4g(o**{p4bShT% zM|0qi2NGR%{~~}sTsd#6m*SyYCB6R)Pc{AR^Z!D}{dzkDd~&~Q$!G%=jcd)+aR-Le zU>8o610+T6=u;ZVa7&V4afr*~sOi$2<8_dTy@AjUtcKBIkwl%j4;f+Sn<^aE-XC>m z308bu$3FJM7-Y$U&G)den>bKml|Tl7hI7P`Q0Jdaay)B%6J*Mh$Mj!Q$%;+idK69X z#BokX_l_YLRwyaC;z}^*GQg0)rQkOjzAHLL;Srp#S=ZP@AbZSdhDD9{tV8>VDe~-# zQ0Ivouq-c2nx8^5gbVPgTsPotvd99+dGD2aV#|&PsAQ)VaI5#F)sqAVGJ(R5)jNP8 zn;vmPEP3$htY{{*(H0+Yj=^ICce8Il<$ze0MOVhl+gNH2L&N3f z-6XEuCAD|p>1xu+e)B)Q+3Q|x?tB_}7`xYNI$OZZgQE)zA*)%&*PGwNfY|OWbeHSh zB>Jp9t-1DOaTw?1zU5@|bN&$Tj;>kcFA#RQf)87Ap2;B;!-a!DV!<|J04IWpJD+lk zm%Cr)a`BqE`wO}s=8N})QKaQ!*Dic|R%qVt;2cAfd+s1wolWf(&Kshl4$%qS9{s^f@tEzh?q0qt7qWG)1Rkdz7lzz zsypT0!P6YJ1EACa5~}wUR@H0l?jY6;c=?(^$AfJy?gsB$udIMP($3Rdk5}Fse?P{B z#TCrQKH4RWuCKk+D(^KDxjhOr=h#ad@QM{Co2c%Rd?el~->aVq%Hf|mp< z$O6uJhf-(JIX93=df0HIE(84yJ&82g$RD>1b28Zi6AfdWLk@_o;Vzi}#xeAxvbR*b z_9cr1IGi1O6*dd675vPYG6v!2P`SV}h2alX*ai`J4+CV$B||E1=-$0Kp7odm|-)En;_L@4VcVG!~imhUUPN~K1*=g$Vt7?_b^1r~!I zG0*cAH%`ey%a7aCYmJZ7bf(UqcZi7FH3PVH^@laGx-P$n_hqNH`SnNj{oXHS%G?FW z3P@_&!tJCCf9$~Ye5SGrJYV|jdt~-y@G4ua9rx;JNjx#7l{#mpFd;A=!gpP8w;56f zP>a3GFHqBT+v}8xtr!~>RHGPybO#-e<*w|9HJC+1<*%(ZkakjykziGKR7S(7NTp1_ z0>~gll7>u@cdZNUDN9FqtkQ6a5&0fL;2B~t51YCTE%kQ}zM=U0-~L@kbjn9NeQNLu|$Gd#& zYM2kl;LA4L9~MQmawK^9(A2CFb0VA86_PNc;<>Yh8Sqc50JmoOhQ@(f8?0ZPLA@Di z)g<9*lQ`MDRANAFODF1x&!X95R#mpn>xx3KAt}h7CS|nWoE(9ex+N$K!j|{_LOU%! z0H*`&*L`9J`!*F7Q!-stb+^2VJ&-S!`*V9vyD1ozYP!UpE3(K4x@_KzKztsJu}!s^ z7SdJ}-uyRsf==|GQINi8X#LuMP-Zev=;=$a{QT~V-dW%_jq}`n7S;N5z<*mBLC*XT`YA_}GFCRn&3UQl7EXapLwhG?(3Zq_`EAKA{yDF;f3PPt0NM zpsxmZmZ5V?SRi;{CakbR0e&_H$P*~0_Gl$yh`l6PRxttk&^NADf~3K8An_)?CiZuY z(K1RKI>Bes=qnY0?Xz{l1t?cllOey3-8u5zP8n=UbzYb-n9Sh9*~kGwoG23>smQ>? zdY|U-&r=DUqJ1h*FEu*&I?j2kT*RA~e*9s$db1-CE(>C@Q@}h-9N0Z4%>pXImdFc~ zow`7eYVZRsF5&u>Ix;1q;tjYD`k^bX{Gat3yWo$GfUyat$vyE##XsF~PIpmh`Eh@E zCDyD_=MmtL)-~defxcS7M9z+Rt@=lBblXhJM>{#5!e;J_EEdNN=1fi5vGcBb#B)YI zJxMKy3?tP@EgqQt`MLtQ4Tm|u3$8oRPp|l2>fWT`1_HFT&L%(CN#9WQXq#9ZhGSQ~ z8%sVP{;-Ppr%mte=v*(QO;$xu)>Up&>*jilQLpu>?%&4XBipwdb{$W{D^-CtbgyQ z6C8Cu+)HVE6~uf|BRI&T2fwkp54@su4tC6_uTyf~LAQ zbNnivU&QWIB$6$ag_5uhii%2P^$_%xP00-i8QLq(84tIKl`q@=3y3FMfC2gQwC5e7 zy?>jDC&*^mCV}7&8|~rX=?n<`caqXHbs(%nn@)+JwAz{t?)LAJ#3LA<40!Hz7cFE5 z^gE+)IqySlrbDXXCpP{KuPR?ghD`3UWYFx@E@{O8Cb3BJWcG>@)z*kin}H-Y!GW2A zkz`1lBWbcCqRVxbY-Q_Jvr1H=Tx$-4uLz{3Q+WBaF7BXCcj{vyEVHII0*P5!msFR@ zFN5E>(i`31B*|11wNTTOp)O0N)0mVGidF;7@_Nc~SCL3N+13Iri7+YV(Wac%tcOG$ zfEThZ(K2mXWER_cF{S2OzQPieQb!V!AkvvkwGs;O1L68EQ{o&$sL3{%0zY6*Rb*#5 zX|d&YZBBC44qX(2gm4pWxLw415cRgxMiVH5e@uMn4I)|g5~IC5aZ^^L~?3l2(M&WqY?$X`)_;C3~{dl^crOw z2RNHp{Q?lPTdoM^T$b)k{Mp^GNA%q)Y)Q5rB4f^7!iZwXo(l(s7 zTdOwP%TP$kD(3;_%iL+1h33r7hmxGgOoe_cj)MZnvlU)J$e6|f?|xD1jM@Z2>o${+ zQEZcXk#%YC(b!N5kB0U*`e@#nYC#-e# zeAzCxFNcWD3kO6nKy|Y@N~W&5-)-ZQ=Ivp4uQ8vbTqdt*;KM${u-&`&bjOtwZ?Y5k zD4SB?@?dTN5vLCwZbQ0;XyGL-LcOUwI>Zg4bDD{f`E=3VoKXl0lS!u(Ghl0#e!TBl z|1a{-LJ4q|i6{WpP&2f0C5hq3Gby9o@YmY?sM0iss=}_nY4K$UF!EV z;GJ4)w5ri$*NAA{%N{LB+Z9*fSA~&^_5Mp~?&7dZE6IzlHmys8)ONk-fY3n4=g=54 zDVB*37&hA)dw{FsABvbY4MUJ*gyC6*d=3{v+kFqb_c2-Q)tyq?li-IS3ZIB!nq?a(FFX@#=|eGew@)O_Jvlx(eQ(3c9rA z!eo;6Fy&({x4EYcqZfW9CZxj*8knQ{a)_|ZG@b`ZgnWuzsP|~V{vUdeDD$Jn7T_RNKV7k{Umlmo*u!c zDZru_>DeWFl+OoHYVP~h(s)Az!d!IVqg^NY9>?j!2mJk|ANXbd;4k`Te&6T(wFNHK z;kvFq;#{Yx`Foj0FMBVamWjY|?ko3rOs=_Sl_~X2UX>`_(j^}CY|9U6$IpsKcl^oe z|MJ-?40hGMtE6%$kvy2Ba$uRC4hq6fhfj*UX1mstr@G*#>081m>$i|poj35$9UOL z4{rs&sij3OM2aKpKmKL{bbdC}js61tcOZxEpL$|ZI=n&iFMvb!FaJk9aWi#twzRjS zbMbI#lwgsQmX>8?ZI+OfY-C}SW0R4UZeoyUY-C|$Vq#}!l46vWVXkA@KL+|Q^#A}s z^j~!7-#GvE;ruJPI-4q67&@7nh?qKCn%kK=3ESJbn0mPUXO{n7PJFqnLNs4XiZ&NX zoD-+nP6AGNFiuO=$U5wzBi4*e+A3yglM^d?{9rgzZA==Y=hEZP~Y z>Z0;*o+2KdFSnI@Z#U}er|q+$id;a__jYc;7(w21I0}Ts9SHyf)N;E$RCf)|eqs(t zfToxp@Q?@Ywx&l-p>_g!#R2{l#o3GYi+j4}=0wiGy8A7&R%(#o0)iC~qG*H%>m0A{ zQ{H%m;#z0E0=0rRGA}VaA?6lam^C}Ay5a4|8BE8C;iIhO)(Lk|VqJ2_VL zB*|g)2~rK*7ht{x9aXO%*M@qaSQgys&%vn?LlLZ3wspHt0VlTDHY2QaHY{7kr$?-4 zE{*S$W+Vehcp}3Ej{5WzFOe9`2dY;82Rog6$XuRc*@7HuYYNKK8wDlJ;IIpJ!~+hM z3ZP1fUg2|xptb{jQ_hAdN19TtURK1RDVtKYU$hU(QZhj@c=VTljC98V@f*%d=keQ~ zK;TB@lK5fUyAw9Y(x-8$r9Wfda5#Xq#>bTS>w)yTzH1ag|5V6aLGzmFIJ12S>M?972@qi zuRjW%OBKB0I7s(4^-#c4D>{q{HRg^BiZx|pWDn02|#Y?k%=mI0#Yjvw9?@?HGj4`II z9^HV3iSyj7I(F#oSl-0oQ%WB)m)QVik((%Pba#3e=xvRvy_DuYC z$~jXSz7&{xK$MclT=EiSJi&F zd5k`;eT3a0zM8y+!OB>CJiKiD@zNS}mGi^mKQ0a&G)+oftduYwDW5l&=x$amYYoAR zq6|6e;MLVQMbdgp-Goze-zq=SXdwacyvhu4c9v)k#7z9u{hgnXNB?}QP3OxrRZ&sd ztX~^qCOr%qo54L8O2#4OPcg}95ljT}daY(sA$=nh^6u?$*NaXmigzQ-od{=v_92J_ zAxb^_s=lk)YTnZx1G6=>B%$HERe}nD^;sopq{p7tJ&@ne>$VpA!wrkoR`i2=!^Ep$ zK7K%6MJ$^NT;AID6D?)al|GCyJ1foEDp)Q78+vM+mQ8xs@rjfgRU`bYi&_CtsSr`C- z^&c_XSQ^pWnYysBG1C7(YQP@0HrG1R&YNrqJ?3P;fJMri^+zP#E?S!vhkRtrmbvxE zFIEvCq)jA$03{|b^e+qeEBp(h!SjLiqbSEK;ADjnJJ+`D-2rLR-d}J1XLk6+2)zh| zlxAkcYsqWHA{gR7Q>JIdC2?YUF}u4x-Vdfu@xI^-m}y8O&GxnU`epWl+l7E zk{cIOvQclABu-PF)8iWC=zM>FexA`^Uu%2#>q%}kzn-({akct1A{m59NDvJf4+IG$ zV~pYsKn0yY1Tc_D2!IlZu^)hnNYOYNkfib;;B8nz7h)vt2YPDXO}7G*$y^@m2Xrpy z!*uD;?>36#R;87W7+6&<%n4{M6JVz+KqHa+kA_K&OjJ{R0*#+Bkm%F205fu^3{V$! zNTSIZ@z%Kt#|` zUniTA#SW$f1G%rLc-B}QR>GVlfTE=ZLSrT+y#D~96=UiPoofc`3n1smDBfwU5_0^X*d4&sZTu2widuiJ*-y*07RF#vEFGm97Nbx=@ z{18K5_B~(0-&v%8>KIz`ZV&OU60;{~G}vY*J7BkCLc?dg3cED_*%>H?9W)gkM3{~+ zGj);xp7^Idh7IhjF>%bNNCg_XHEzI|zOr+f=$`Zta+%W@o)j)WD)doNr$177^%)lC z>Sj~4>fgjHQnuDK>DHjNYvA5}NZyr`L9u6Y?rj)AELgkoC8}tcFMgmM+e{wi8#Eby z?G@K$_J?SgL4zeNS zSXtDAF+ajWX36RxJFek7qt#d&*XlFaI$h$bY2O%pe18AYv)`w{6Y%Ows>#_r>F?2G z$euOBW)2ObWB2FZL&=t5moN*ZU3u)EcPu`u162Ks&OQ!EgW@K*f(aPy`B76)ZPqV(e~NqPjVGKO$`%zCYJ{FzNbCp@}`tkOB0P z%iGe$=E57$w*v4t+slH~>3QF<-Hz9w)UdZ+!j!Rg?TMa3rM$A|t|=nrg3A^0{R@E- z{D^tr2$$m9JSr;cnMO|v-o3e*JvwzFi)l7ygz4`aK}1T0A{3gu{xjHke-XQ$a#=`L z=)#}w8Ry~trZ9NvrgK|YQe%~UMg)VB2aEH4h&4e#w=%lU69=1h<8nbtBE373uxd&N z6?R(<4`{5x3JSz1Bgu@~iBl~VZ3%hnh$z8Nuv3ic+`e7mHN5^^+oN7{7CSxdO+s}Z zinbYjFM1Z`t&}?g1axbVP`}Z7QrV8XwbJ z%l$Lz@HF*eT{Hi%2JR)tQs^nI%9MB6=;^-~rTI+xKtG|C&Q~2A>aS$Z%;|-}vV@DT z9X0j7^b61>QPp(wo9EmqmF`ZFdaOp*p&xwq)6Bac0KeBm^+LXP9A3*Wda2rX1iBYs zH(;IH5r)0;^DR!X3(Yo{UEd4ndTX_myR4=N((6v`sn4lRm8s+VE4CCN4Zh-lRNb<; z2!C-=P~$Az#k|k@cnZ7Y*Lp&A&zdhJEHpY?UBz%~0JU|bR7=9@Pxx}=u9;i##pS`M z(J5#sJmpwZtklMVaF1-L-ZcLKh8jLO-KTA}MvppxA z{AI@~K#s+nZ95IK6R_)Q&Z+r>zBL23FFzCUGWeIxNy1T1I`sD~`Kc}M0(JeglYly> z!O1|&)~+Bo{YPqlw~qD}zQdlwK)>Ur-;B%b!5lCdOm^#^X8DKr1#*~WA``-rK`+La@J(9Tw z;?K*s7Rv3=nmwx`rUKHvT#b6vDtL1NNX23r>xt&1w1~6iiI_CGBYyJ$DW8|gNqj@Y zfvna^r@rX*W7;u#edZGzEH5|36DjN7`|5933RhC_%%rgH8UQZ#dyE&#BFADYJGkp7PG&H*w8s4vo|BnA+F5rf&AuhNA7oP`f ziOtF_^B>&f|M#m%2wzpf0eL-FmKXrQLg@e3DVx~XTzi3QBuh8m^+-atxJHlr3C|}x zMiKHSI|T1(@JJ&kGiOT3l`ve`vIonC7$~<)*g}U(+ulKykT~mQ{^sONNz}vmy94+j z5Z%GPWN(nS0wTDWB5DGJ35iIFaGSybme?D}6*393*wG|{!9y*0>j84mmxTgQ9Q*=% z`iGTyP_Wm@7Z3e`vegKOWx@&|>@A4KM=J3@^GFJM3lZcd z-KqZQ+dmz-vTY)Osda7epVR$qzrL9n#%at;T=*nj)`|AjH=RdEd&k}V-s^cJWc|pD zHk-BQw}@tBGd4$)=;6d1y}s+nZIF3CTyy^Gr>BjllIlwkv!E)7NI;1PZAbstrYoIiG5-`sC{tV8fShl1@6XSgl zc?wK-qlRP#!flA*tQ=LN``|cKgcvOS1>A6%V=5sqX8Q^egQgrh;e$*#d_;N#UO}q| z#N-#Ki!ke2H=y#j#D87zzkCWI)hd04R9QYK!iUsF|t7zfIc^) zrG3i0D(WGkNEizEVMa0Vj7$y}qey>d28Y&sgqU(Td-1cuR~f})Op(!qWziz*mqV5X z0CA9vK|^>VmYbvXYP+k621Ylw2kquQtas_}DKI)y$z-WipbT!JLeg0L- zBQ+RblJ3YcVBd_Yf)zkv`h)zgcrbvSJ~{0NShvYWdXVq{jU8lSB$2ZNA=_5sU4f`P zcH(`3D7Nf~WPpuM1QcU52i(&7>hLc?R{ARNKS68+GccS3GI%4VfZIV*(QZ)_N83rs%2s^`$|y zf1y*Lzj=RFDX#ga6hTNMd`-_b{fc-_exv=NLO>9L)6EZ#Q}okH`b8or1tq|U2~q+( z(Swa0BnAs`L!kOF>Am+InBWEpRY1=XtO7IJLWU942vGinZxJa3vTFbr(6mJ;1VXie z7JxOOskHGjTEKt{fTD5WK+}SPkqewbl?q`%Oc3M%)d-9Mm+jLHnur}H0Ak#Mm>e7v z;i&D`0fqzg6M%-xam0)mlEFngXoL=e;Q#^6#0!(-h#fK@hl_Gl4HyE$0V1A`79hhF zIc7u-{_lI;gXfb3~DMj0am9IoUz(AXUoBbHI+Q24tm+L+zm) ztw^VA2U~JE@u;V82R>aK?r5hq2V1&1-UB*_QiF>e`f@f-K#PbVrH^k@B31%S*|Sn6 zO1hkpl2ssN>FNoe`m0?b9p>lt5wwOcP$L@z zEtj`^f&K)(90Wl~UcwBlgj|pj80b@~pXcML-}!fFYR2I9DZK%6Fd)V%(F7?^TRNAwAhO=eLc^alqmd-f9(4!cn!P- zWD3NLD0%udI{J|D9b*{Ojdr9?F(Nu}oY994mrhsT5MlEV5x5;b8us0N3DAs=83Au1 zBvOW>Pk=p5x%|BYZ@Uavj+X*YF0a5-Ab!q+xAoTO$w;BRx$~b1OrE`w7|A@o@6BV> z`8}rrXLxy50wZ-HfGwY21uf5q_Qelsa3DDws33`cDG=&0X$6RgE*>=!gr-1{ zsnnd3I5Uy3m^vE`9;p7>8xRDM1ZO#kz2Xlt@;gmQNEwNQ7o$<;`sX;%q$r3&SQG@s z8VbUa2m}OBjUnhLqzwTr5k-`AgPMRoDa6R)2mne-fshO!qF7WEQWVl+QpYF?^^}AJ zvcm<|dNU7iOGUu+$jBiC8xV%Yl)&zYi{d&)gP;;H3o8vpS(T9}BPTONx8o5WNxBnB zhG?k!00DEX6N$Rb_M_*UIcC#W?p7uADube?us}{r)y8;w#yvMatA4N>k^{DwjVLji!>agi00H2Fl)tLy(iIsL6+FR%dpT^CB{N7QiJ%m4ISo0I(WE{P zKlmkm94G=?VqLA%685LV&9d1kXA*rzmDGX-Ja8vY{7UzxBYefyz6h7gqlgOl3*AQJ zhV`44W4qK>5^D-!0NHmg61ac^)*XR<^^rt)3!VW^YH&$jyakO{5F`i?yHX(F5)pMN zMmD)vK1#N zb~c2?midh&L7EAE`PB@^EZZ}_$u7d)Azn!X^#s2>(dPvh_mIXvV+T1sg}s|ZxC=8H7MpO{l5E=uaxbAEr znV`-;b^gl(GvJoXbd%-dRi-|Jl0WuLexsfD!s%as;d<0gRInwaB0*LtbWlk|1jq-h zVn6~5sd3x1&Rnz|5977*}Fhl!YNGc6|D(lSRk{RZ0H$45lXDR0(Jw8C|O6t&>Z6 zN)Zco8IMl9QMg*c**PmTw#0SFfz#OqA?o3m_7Hg$*Q+OINNEq7kwamt_TY=f=R?dX|sm``gwdJ___S$#~W505&Pv^I&AL-+C z=$ALYh8R-|mnOTZT~n2+O{6ZL>72&`^~;*x`KMi1#Y{=MOHvah?%UO7l5$REHhiWQ zn&&8bR1*vz*~w#SCu~V4t}?kQq!in+$zIQ}0?(`l8gpVnhT`y4bxc8XS>KQQ2V(3? zPiA}#o*5sZ0BqECDv=NcVrNC%a%o!NBrL8ffA&uaLK8}jw1fl_Bt_a7!9122mZy1j z1!hwXaOc6Zw$tunAJ|IFo9H=$Dy_()XfOLmAzsVUa>f>p1}b83v{7h3X?gQerLUxn zLec|8AC1U0>s&S%+^Bl#^07?qKNQnjYYP)eW`?v_seEjIrwWkQ>ZgB@*h4$RHrLK@ z<+dCNGwalrs^L~>FI0~-kMfSOW>3l2volLdOO=p6J4%^2BF!Y3HF8MuFoUxVz(zsb znYKn9ppCgbu)t&#v6Yw7pe_}?cDoQmP-4IelRq6&5{`f3aT(hGT`FAq#lsDN)ddr3 zNr1X;eZBug3SksXU%Oaqx=?wy&5@Xt7>1vZst(Yu$bF89Mv5~>QLL!(7TmJQ#pOB8 z5o@z;zie~<9DgVitH*0``Mg1|vX;O}8|#D9NZItfuiTA;Ic;uen@5HN{YGtgOT378`z2Ys zWAR8p+CbO(k$G1Bi#8VD(cX4`AkaOW zAHNRg#hpcKvE^xaDrj#po{W`A9h-ii4$WhL|;AxVIrzUR2`oJ_Zw7dg>{+WoNQw8&PG-kTVq@o+$435kUN>fUUfm)5}M1= zHQ}yEn!tcA5I`4*$GMZcvpp(nsrz-UGbE}fZFCn0a&h~r(2(U&G~~C&*hJekY4zTd zRk#U%eTt*fN4{n8#RbsQKX=>Kgkt*m#HjsgP1M=BNSy3y^Qd`W^lJ%Qegzyafw5xU z-M`FHGwi9S^KyV*q*A&oLfX>~k3nj^%C$A+cRAQjyyzyk04dphw6{CsZH2GFLnD3k z9&B@s_e!I(=~@&9bTM1bnvc(yhSHszse8y;rgE!-D0NA>9S)aQK9(58)khen)x-fi z}>P3GtR%=kV_H`7h-kG;*Ij(c|^-ontSoVCME$(~q zLeZa=!zQz{;P=T*pYFMZZR)%x+4Zj5$D(gX*=5fl&1?6KZtd=ol)o5u^tsHuji!<^ z8%@Aw&^KXr5mhp*EI!+L8pdr4CMC(S`mTpUt;6QUzE<|BZCUrLeg^(BMIo8xBBHgl zE>Ddb3cdW^Z-=tU9V^$hcN9`%z4H#_-kCP}(l+6A_n?0z($KtxR6{`I2{Dd<{V!s~ zp4c&@2w>;a0_kT=-d3DIXUb_-lmbH{$AwV;iR&OzA?xgRan@Gye~#OJI8}_44ks6! zn=U`1Y3CslvxD;>o~a*bA7&nqya~^${hox{;-!&%c|*L3JnZ%>Lc^PPk!6KxOEa?% zXY4Kr%+Uiriju)Nxzl@{-GK9M?2jH5`^{|bP?8AXQI86PRKKMPkrexVTzvH1K}<4+ z`QKMG;DW);N2H3K7cnJyta$hlT`$lD1ZbP5DYb%u&=>CnM1X#DI#Y*y2CG}981!raOpg}1dIuQ}3709RjLXFM(_Byk&i zh6Rg`Rt&3`bUI7X>rc0F7MPxP|4yyv4d(ZDT^>*bh0mXpMv=E%r(iVn@b+-$b+n9G zbj`;w(1*pbMB^s*-mHJs{7tpzjluWF^S&-t1>gKr<+*$IVjaITaZAlGHTjzAp5RN| z{1zt{+peW-UVWZQnGNT;KAw}x>FZ{%`55>KuhK}~8NQx1i&M>4+hzSUI!g9}qV^Mb zH+*j+cdqCcn+)Q~ZDevrfm3^cO|I=a_o{n1;hBZA%z0BnIV~qPRn4jh$f(Jx1#{U| zMgDBh--D^9!_jf?B)QYvTZl0uUnXIvaU>x}s!yIyehI@XT84k)pnQsjp{(80W76gQw`F-9Tf4<(W^C>onH(AUmjk~~IdSr?R|XmGQ6O|sXAc^@I|IoFW2I(r%@6DAZ6)(=?547#m&1IHZO$FQ&#T` z>D{bVmjBp!WQ&&msEB?0>OpHjmjA8Oz(^`OU9*Y@JuR;u+1!y;#z@8ViauY-!(RS| zl)m1yx+>4-f#$#^hAoS{pY{jtKoY~~0<4(d-?+SEo(@SLo@!RBGP{Kj&eK_T9R4rA z$UGloZqCz)Cwy{j_TF+xs#aHT4Re2nmR6%yKnpDP+j+{+Q@|VihSoCnWgIWl{W|rX z7%J1-+|Tj#uk|28P&-g|Zhn zR{gat$Qe9R3I+tjybej-xz*v>6_u>h+e_OUNn*?b&!VRa&H^R~Uq}lq3G(tXg%Q1q zG)Pou1wsql7}=gI2-$$VuyzuGATd6>+`yx_8psOhS9 z@R*)%YJ|T|p+k$@dd&9hD$>ZbUQCyxi)wN#J!4D0Y+j8xWfT5xwWs)-F27Dj+Wf45 zuu9xl!0(yXWxdx`>Ge-VxdvJO-A@BUVyWx}je?b%kzZw#hiL?w?52jqXju@Rd5TV=j=DDNv>&@$HA0>z&;(3 zO4h7qHT|ZmTHDHkCfvtZNi(3Ww&}##sq>tVHQ)PkO z$M$K@M3^?NJTI4EUsXQp-^zTo0O#Fo`jWjXZE+vcx3})_Fq(6Ah=dblXYmg^;()io zhR)Xc4o|mbXMK@an~6GOYz|E~`7I>Jjhvr%b(L1dC$}HJlj%8E)Mpv^Z%O`@p0*FY$%K)0 zN^>8VDQ#YeidPIwL^{{ zdWGHjRWgMSwlOxpc6K)RUQa#V__%D;9H%&fQe0C@xJ%Bjz$1^%S1iZ4KaHK6L{9yZ z;A4+`%3(o`GZoy!-o%cK!P4s*2=2N2YW&{!Z-n%p{h;=y7gbb}Z|cx;5^-LMIVQf0 zN?a^Pl=JBrYKrRrsEl|n@kJ-_{3XtJYx@lagZ)@P74^iCqM|t`#h>9Y&ob#IQDm`g zh9*6vF7&5j5z{;Yv+l&q4R~63&CTukE9NYwt#in#0I8K%qwWX^8Ih23{gl!5;($lC z=U_B;=1_lz$hMcaZXDa}?qp6?8XY1*S9`Cn^>zHQ_{<5jaYy|@Ry~C}bDG~%DS8nP zsGU+)*=CgGdT#KQd|SM!L>N3dz0XIT)cnjX-C0@fch2=^v#ptKm%FKjaH-vMWg-xJ z)U|ztIWEU}QI@QVJC4Elfmhn`E8Kr+Uv}$3t^NYvTSa+!bRgVKJ|J>7VK7c^mH}FxSzyCo|F5`72k1T~&qAe*k!U z6&-IEZ9q3xjkKt>#AmUmGTZ}f^rs?fHbtCea++=s1I^daZGYH2=Rd4G>ewu;prtsg zugTabFp;;6^Sf|4c4RUfRR40cS_`fmZHcf04@4-{HXBV$X&aWrz(VGcVNz~YbCcby zW3GE#J(#s5bUbwBh{~Y-pa{#Vq86^&x~iH0zOJa`LKl-u1MC7cgp0>Jsjpuf;r!6x)?45O~}{Y^}e+8ZNf^ zQ<~r%IXwjuGkP9#Fi!a#ZtUVW^vJ453zb#ziF+j1}dCVHY z8oHDHBE0lc&R$)pQCKCPi1Ar{S0*yoeM*qP)`;C^p>wO2wnN5T|CFWI`(Z(1uwc?w z8@J75LmTh^8?V~Qv58GsyJB6MVO^dlm4#a*AGE`kT>!SMs)}?g(^Edj)qLE2>yb*F+_7OpyGTOiclv>A;LS@BhJN=VC>46 znKi|1Y;%hS7TdkNxuiotYxwheYKej%uf6Hg5|_(!tjLfd_g&_GyE@G1^2w;Op^uK;PZetLf6FKJ>9v-1`FK@S^n$X5%i#l8J4ZxtgS{ynxSR z>I5(euPWN(9r?stXJF07UsTu+`9_SmrgQ(iu)MgwB0#`rG8&|Mh~ z>SYoqlSZ0CD%!)WkEJC<4F;wYGMWH$9;{BTzlzc|0%kge{Bl*>eee(C`3ao|<(yl$ znbZ6bRW#{M&-hBGk~bXUuUi<*{XGA1YsW7hIwYA*#Vg4-A$G>EIuSGR-D!qNxD?qf zv79moq|SJE9uB?ByYGAk)*QJu8dRRKDIXi5c<7*vt4eu&QNK@ymQrTghecJ#x~iSh z>*S+qQ4IJ)5mh5u=OCX1vhE=s_X3qghP_!uM_VZ=XF_bP>ulkXs}}ZF*Cl6})%vK? zTT?#W);{Utm<`AHYxQ`50&Pv`^Ycs%6PP&Yi%c)BD|Y1K^YR!5w&$I^;HT6|#xL~E zvM5PfsUPBN9@`coX>$oceLoH))2B@`&vX>1FWez<zmL2@j3q!&GP;qG;3(B+5fe(|7&Oe*UtX0o&EpJ&Tf+^%k_D59d46>fXIE@+5cC2^M4UqEk*IB=XHtz zDq#U(0T@EzUPMBr{4f}pSq2zVSQI~qc)0>fI{z?(ybzdXGD~nw&w-$h+{$oBd3kmF z9{+5$&Gj@ntG2g~E?b|s&#R7^^c2U#@$nS4gLEKv7A~YO3{l6#E?#NY_tJ;WCXJz`Z? zf`kNuixYcag1C|Y?uNU`*jTy(7nn{E-3OKX8xoN$(%|bmOPw6wEQK-_Nja;RL$dLV z>3ip(0prX1=|gfg)o(Zha(#NHU?CUC@edK570j2^=NI-Cg+$jkqV;>;|HY;Jjeok= zC4^a-*lX5xol$=s+_)o<#3H8g;C=@Aj6jdbC=t;|jl~S(k)BAN;r~pk8c-U%hwHCJ z^~K;SL-uVY1F6-$d6Dlg{iw?~AN2S$^mJ^PCxV|8q)6JdevH|IWmB_Jf&4cT;lcA` zVnOF>{9cXKrF_T*akSrYT*EN&Yyro4>BIDqHnGEJ-l6ijVu{bTC=>Op@JdqCn?)b^ zutNZT6a@U?R7}EBD5hQt72zd0D_aD$;r{8J-?KinO8SB)k!FCb?1&ZUq$Fg(_exk-I)cIGGLVcBeTMSR zyX%bHU;8w16tAMY_1gPiYqvX~>=tA2H(f;8)kzZ$i89O=v;?lhB54 zekr&6NGn1+F&hb7HJjj>2J||=vS@$Ob5rbD&bYdwgz#JNe;}W1-Sd2$d9!qari-EM zDS%(ZbpBxp5qU?FE|tytcxCnrR<=Q~gH7J`2jSwDN=_G7QTk^Qsxf=c5{41-w;Gx; z-`yd_EN8N(&^wtH%AX`I8>6je z5E7z3-w1$gur_Z1bo1^l|3FZ=}jp;39AtU1Fx(Kg^>J< zgUj_`XfM~4g9eC>fia~$9;)5;z!a-C4&W`WfrC|%QiJ{1Z3C+!L*u`^;$03_?AwM` zj@KBX7sa_iBK!pWol#Hy zVAZChGr;qDPQ54B>^?Xom}z%~^xz&PnJIT|^#IMQ(axZBZj1kEWmOEMunn*T)ct|o zE-Kym#Ajd}|7m5<1&SdY1Czl+V)c4{s~ho(#p-G0;_bpDN-(4Lrwar^(EBIDFGuQ= zi2i}oVzR0t?}lDm)$PWCffcyM9{u|=a8P9#s(07*t7Vmcw@cLhV}f8nE^}Fx3S^;6 zj^oQ`w@63~gvAYr%T)AL4S+8cu%ZbtVn!1LHtVu*;RXL7SQRRUNWZD2Mk?B|;|}Np z!MCLku)`1=82e_jKYIV*fN-D{3t*;;7GDR{|0<3aQoP0zlq84(_lPkiunU;R%yg%_ z$GRg)hn4w7gB;aI82EtYCj=D|*v5y?q`F;A6pU;KgMy%7cO1|MLtwI34Ho>s<>f0R z(EVcnKS%xl_fhYEkMP7;1jwgBD2}i7Il=)goX#;5{l79fOh~(_Zvw-%UUiyh665w~ z;U=fGFI)SE*-Ixx{C|;v&se@ct8|C^!79)TrK~qeym<*$gL>a;> zK)byT>Io0j;HY_Sj~~_TlJ6-{_tf~S^Zv|7tbS7VaL8?Lck>ePSVwLFTk+>wY%=1+ z%IYzs){E?_xYvh0mTL9=w2q|bBuyBKibD0Of|H4gf3*%IMm~)refH?=Uf=<-L?0@2 zgi?MLne>wY$@KEU$~YMd#h=$_=3|V-Oil%9Bf`o5K9nmGMb0$UrHz>kH-UZjX^fdC zLCPW;$YtHz?KFVg#bZtwi={~+0;=WdIsIQ3&tM$Tx`HtQ6Eaf7dVTkZm?uNVjt~GM7`>tzuRJ@t`)QmS5>{mpS4;vAUykYJ z_&%(Vm1i(++3j(oTQ#pw5O?3X6y#=YL^p66P5ABf=4B&}HOCh;l9!-f;5k z$gtfyh;JW@#L&Y`OEKWvF9sTogk4?59AYgO3(tv~1`hGO3t~z{?~BAvI248k;^o=% zkQ8#(V>q)j4{msz4w}pPzVolEvGjVhR}1LYYum}U*SVi*E4{FZY0Asx3KHs1!di{i z0~e-%0hU`Ff(Z*@O#*qBbIHm>6=aIoL3^YZuwBUxnhFJZ)XZg5D{GMMn}IUq51}qA zg8;7yq>51yL9xyb2yrx~#WfD_rRgElkxQI~sx=6!&4+NLgir|+r!a;X9tI)n|A(Sp zo((7fP|`;#_P5mj`v<_i(uTJTYD&Vyu12cHS5(10!_Lz)=$4X1LZUQ@>4E6+NW#r7 zF%)*T$EBATUcpRujm8aLNVe~06c2fW=9*((^99b$E^P*CJXJVnX>2w{DxX|9qto(R5+}L|s)M=7mpu`xy8|)g>iFYogRCjm(>r{JnY>E{| z?-Os~^DfoYS-Q6(c?h^7EsL^cV1W%MXbWU_nSawnhtSumTTDu+vrLe|lwqFLDBm4b zDC%FTs=ZCI|C4|)kJVYbn*75rV26~~1B|!ik`@8Wy9ILax_QLQ2nGYwle))ex|5{) zxXOk=8Ui6t#yPkM%x2n%k*V=YrSBZuDUSlNn%)m%_%Ae$8fo`?zeyN!TF>5Xi#%8u zeNs~Q!A@|xL{4{wP)`$A7MLrm)r5fp=(KO2R}-X3xSxp6LMR>_6=H!dfmtA>i@FHf zR!_qWw$Pi*X*f723eu2$c=%mTUp&r~shvCE<|DXZD#-U%mF(|V(&v{H%;%-*7u7s< z6d-#m=V<^*Xs3~jXPBK=veus&=XH4pr4`&q?G~a_kFKAOG#%pGz6zc`2Rt|?3xF{w zv8(mwLjOKa2t_|xt1jNpz(P3og?`iTgHMKh+xMk0tE@KiZGsDEa1uM{^Wa7i_{rGc zZw@^I(NzjYk^ybWMe@qS7i&jU|CNOq((eRf8A-Z!B1q#K8fK||KX z{v<)I(%<7%g7xt?!Z2&FPlm9E0^E>_qA)TLJ|Z(AB)99!71*Xjcrlj9IXboT175bR z-K&Y%=H=}GaFY{%*Kr7V&nUDGJAth`~U?ASyxNFA=PMmlr{B zVHMVxp@0v8=&{W|>FR>hm48P^ix5r&qYaY*1|!)|&_K}P{-X=}oqiV@D&Z_5pwHWT zO%fZ}p8fK8a&h_jsON zO7bs>jC0sl`#s6muw`dr>}zW2K+YiZ187~l`d4I>Qc6Ydq~v5R~vkDAM=CNKB(8#NbV z2``pBWV)pPB5m;=Hn*NRD~0})Xb+|-RhNNpsnH}=pkx0P+hAEsbXrR z<=0xJC>6Kt#u`o{tw!}F1kIf;e@&+9rG9Kmh4`#B`*piMIIl%Hwu}J z6ot;U`O;OkLXBjTXP|L|K+2M!!ZgssEU?-{Ti$+;HfRxcbk?8M-%gCF?RXi1+w(Cm zQ}W5my7q9hrafyz>RZ0PhzEpZi?Dvn*D?7Z3TG#`FPq22U&E}`07^<}irhSADB)SV zxYdrS?fvl`!gA+9`Kh0AVeA!#8`wF1Y7cU8$fpf6=nvT`Ifcu+!)15~fGFyB3E3lN z+D=%&4cZOu=D8a{Pyj!wRR3I|6b>tqMxu_np|&wseKn+Db|`;TC2d^4@l~8XtTCdx zVPOsZ>+a=uFWyZx_i}ZyX`pDJXOv}xK+LwDO=fz!ROA(Y>ge`h8g+kd3#^wT6w@TZ z=>HGCauI-=6j$I{hz35;bl7gf2*L@1Pn-YYk{GuCngdni1^to@Ldh0l?omeFXA1@S z=wL$rArE2LUdFSL3E)oU5&Xg7)*>FPJ_R=egXBqnT8Yq6n-2h*avFg)QQDC6Gl7Yz$BYE!bS8Gon zm7?=dR}X#pcZ>xwF%Rrzpq8 zjh&U+nogtZh&H_S5cN`>vS|YLk8a!i4GJDPLU?gE|X(-`Z3tTDbMK9jL5I~*Za91YPf%1%({o( zJ@Mh`9h|2LO&*1*O%+-v#nqhfnBqk_WF=xXxG{P3SXx8YST|>Dy2)=%T2*b{4i!(qT3&n#@E)l&o@JA8)249L$aMZlOUGhwIerFzQ$=W^jO4?1vJK92 z$bmG+ZLA0>G*Uiet~{0ZHVemTTA<<{7`7EcRZTZ=@S0EQn?Mq1eG`oQPk(q@Bs9m{wmzP!S7OapkC`10Z9o0y){)Kd zK`NJ^fk#EF%KR%W^}GVz4q$0UC0o%ze;t7LDMw!|uQDm`tAvjf9Wf+hY1SllYu@J{ zO5qP{1qW?pGhllp30#*VfB9v|VI)aa(PM&y^=oGE!c$v88~;!5xTHtlr}^xc<@~rg zLh5?K%ke4Or<>npO^lW{S?W4(JDX9(!9(EzcRK4HI}h`YP7S3ag{Kk6=hWfkioLEW zOwW`?8|8*0R8&m5{aHWMf4a29S6tmB2HLn68Fk2R6+5tFm!BNo=gSEWl?DlytDhZP zwq%=&UWUA#6?M|C+q)?UYu!9RH#sDYKBe?yPg6AJj2fwjQW6BkY|}#gwc2)#oEiRv zvVfRHu?9ZxN(I<5sBTA$8Zsn^sc`~}6}~o@0@3sz15@@=fGB2=mC*C~g^lkje}Y`3 z`KRDANI4v*(Q-O5e`4wYGtuZFDi)elV4Cb4lg6Bwelb9`ofK|?9fu^qtaGSP7J~J>zjIf(kdGaX(=dAReo24aF2ze-`QW%dgg8SFRTnlaJ`XH-R$*F7N`-~}!Jr=QiW_Mw zaGVwV&_6P-8)I9#daO^fjNzH7?kIF#s&WlFka0wAs7tmik8QY%w4eH@LBepksXTFK zA+UM)*&|L(drM^$5t?U~TPpj{>raNP>ewxS;j$Xx=`>%Zh^0JBCg?@9FBSuQiN@X7lYFQcM^ z=ygT=%rk1>@{Z2qnU_U4?}KwKPRY4ys_FFJ5G`xI^Q(Hl#p}`b+`fT$8k^$Ecw!>- zCIS<^G67QdfiICTS2cxoUXZh*Pu=FIe>02827yN>MH7#e)9uvg$s@_JK%DKM_FG*_ zG4Oj+{Pdm#`gE2GrfyNDnl%II@ND3+e2eWS_^q40pWz7Zo6Aua^{``%$j8vkg`oJA zawx!)d8JWbv%sI3=e@E?LkmT7$6MAPntN_GYg3ApWjLyS5>)8N-v9W)cg8t;;l?*x z7^?kW^i`!;I8dW;w8_3kBGT%CIOC)Wz#<;tn~JF^oTGi@Af%ex8haxCV9aEC{}1}y zij&@x)BS+A&11@#jlO9aNXfrnz$C{;(8)(uW3u^PXFkRO>^w-_+`2d4|IAZmACf(s z?149(w7_V7&QTj-*=257HUe;p&f+WmTbU;_=zwJRM%#oiOE_oL)w0Z)Z*u z)=!Zyd~MDrDIYlQS)nf-ZNzNVYq>79Wl63sv;vW=vt$Avh?XzIZoTnwC1QQDh)^p6 z7RlGh51L#m{;Vq};$_XGxd0y)&td4t;vLOO$8t?f($h3(75IF^l%DSClf-_TkuA`P zmA#Yw%xOi7OGHK4ZMuO)MUzOp(v&jB$weV0l5480HXvJ{h^xewN+KuQf|Ubwby$xr z5&?Uo&{Nh7eSGe@937_)0)u&w*k9M!z?;}@$YV@B$0iFYOUpE}r-cG!z2-;Z8XEI7 zRy4;2b_k=4&|^3;d-3rDm*jR1x(=2jL?Q=l$9@rGKzGo7pyjCVD!i{CFiya*qtr$D zXASPDc}eIAfDG{ImHw?r3v5d%sK^LRf#)7cGzmEkm(5)iNb1RtUWe zEzRpJQykd{`ZP~BxuXf}8xg|hkz3_2#&YhMGN_8egrM6hj|0yQ>|mNTY#$8D`ne*( zA6q}gGU{YyRR>?y!xp0&<0SX8Qrig2y&aR>jmRC+$=c`+ zW`p}4j@ElkkadH_UQS=`fd#VJB1E4#iXQPh%$6(_+YM*!_u{EV42C9v2;|o(t^&?2 zC|$KrtG@E#WJ`1v?D6-5Ta5=rv+8Bq2VwpD0x%KXS0VDRT*WY8L@};~p^1JdPd*zI zFkj8fd6Xo0{zlhHtm_<~I}fv&Ele6c)p+#pY!x7kQ47(wL|`dx@8W7h=Z3VlO|m1=d<$?wTb4&LD*eU1V<*owShpW4XgFC0y`|)y2u980Mmk`0H$PlPX0pK5 zH1e7EY~vhtaR91E#~%s%psr!47Oz%k#bi9W_@R`-c@)k^&a&u7?ijD~@T>D(=JJp! zV;5f*RI^TTn&0L#JyVEs;8;=g&-N$s63U!)gRq;SY>hivPt7ECqA&zqPwM`Xi-Uu> zV*i4yqu(YQJbc35fipsHkFkn}tfPk~gIQWnb3r#(b*ykl82MIVU7NL+8^y>jO{!hy z#c}lGD{e*|B8Vf#pPzgy1s*Q{_<}0NA1^tFSaIhN6K0DaNyYIGZAh6^M)AF4bolOj zSJ%RbEbC--JCy!3kQ;iNjy1Q`PU!m^@ZoyQA@N&Z#wIajztBp1?9m0=B#MsKWoA*^ zUUW{4ySaFx3D8)5~@XH*E z*R0sSAOlM1^4d-(z$2a8rfkwyjcR?44tWCGO0_xC+gN8;j($zHu~_=x;RSLKp{cpC zvmH7o063O-^E7$>$WCZC-3WU-`joVLb04F=c@N)MKFz#FV`n|z(-FYmS<}xEnVWh) zOB7=?2<7xnwU!7is-2l=7dAAG_fVzrMDC1T!8`CNXZM`=XF*&dzEXhDY}BbhZb@~9 z@%+^lMfuvH*M9%iP1H~$P@#7W{Y3)8kdy%NL41VsUV_Nu>M{UK?d>fsG(WP$F?V$mU)nlWB;Mtn=CVI*_@VEOyR$P+5x z@Dp1E8?8u`?AO2@QNpH0)#jhk<{#cZLM!$4(Hp}1Nq{YjfpuJ+!2)(p2R4gYGC%20 zh11M~181fqSrZvHDV@jXO|7!iJdq-yUdEK9#1YO4)`(=?3j0ax;mzVXbJZ}x!IHFz zs>@L+o@W6kCkNMA?!X03y1U>3W+9G^viqY|UJr5nL?wZhtB0V$RkF5UZ`Q*-v~)yJ z6Z9XpD*LVh{7!nA@(1!iQ#0Xs>ZBE00W@j#l#j&V=0V-0% zbbB@71h+OE6e+JvGmBgfbvsE+h*M8et6k=9+pj$ff76r=2=t^fAG26_`H$bu+`3Ai zEyqxlD!<^v$2qb2*E#W7CAG~?!a1SV_oovd15e@p6;zrRO{;q<&bf4ZmYsdKFcX@@jiqcI2pUCLYbE zV7p3dZpWkoH-!1KtaSlQNRn;-0#gbWesg!?scG8lTZcCzTcOn=gI;EeX1jKmd4VTM8=HsAL7 zX4K0RT}-t3iHjX(cn$7wUyK$M(FZ)q?_@;wt`%P&@>hTu&dZILPS_h$cX!7<3yw-q z78F(E+SzMRIy)K;BD}$*1qI@#Z@`f?(FF5y4dsF2(8FL1PkfzUDl5q)b|`M(%@0OiI6^GVWr1}0(x3q@d#pd$;b8X{_r3MXKik0 zXb*MFw!e$qW?h@wYaIKlpl6dKD;kkuJg2HJsaq-B8)cU{GaHZMBU-ccgQXJE;mSbX z&)KlYHkXor?XlEYlWqzgmJ3sKB7yXck$N`Ug$%a5wx{oI|NQt^)GDL2-8Q~e4w(3Qz4&`2SXzx;SgNaMm1tomxcQh&z1u`Ac?NnG>+{|V zj|OOwHL%@E(?;fryb?=<>g&sm8RY6`(tJ$E_CCCt4BMyGdn!5n@edwsnFyj=TkbK* zIoNW^66l?!Pke6*cx~>+2U*UB+{e>>+S!{e-*N@B;5yciCg%rP1J8o0%*ep*m0_4} z$lFe{oPT>C(;-Hsg`&VK8QN`2?Swy%aMrNch@6U~G$v%wo=vlsyyV=y16p$>ZmTrd zCy3&FdJc`r>Abj#!Fy3sues^k{o$B$dow5+t}?8Y)FR;OI88oXm9T!yYTNYqPjFQ%bI4{ZUJAd8RiEguJ3FD4(^R(&!v9i@QwOm`haz+tM{M&ot$-iw=WyP2+fVniZPlozR9@(&bGPy^SI!h0P!#t)Rtc zDIA$Dp)xs~gv2AbmW8PONNO;EqWyYek(y#9%Z-u$g~A)}*%g9Z@bpLSh+)0v~^_ovLG&7-%@f$_`n$?ui8lCeL- z1NiU$+%2Rp`FDRVkLIiFyFcf!I<(&nIx@yBic&Sk4O(NbC4m;q7cV56&wLEPN)rt= zP~aK?NDzeYp6)xAU22&@+4;hBx=ka6$I|NtH+B3JuydX$~)FTh^{`{COIw^Wcb~mp;Pi7 z=)w&J=#99L9bGgq4f@WEa;7;5_Tf|HH$_6<0kf|dr`5U9GwvrlF$IqTa2$d|DBm() zEOF4)YjUgfBxD5>#+e+1#ZDF*1Re-N(Y13|03-e8I+Abm1HT>-X!KS(HtGS zj$I`h)F&LzxadoehX@IGA{`e5k>dozkuJ@8REI^4{qmQ=N#+5IjaFnyy$3;Lg&*O% znmVopchagY7NPk%a)#+7zG;OP+;|(hQ_s`oK-GoneaxRCx6AO6iYE|M6tuh5oedt9 z`|w-$Ugf-Cxz(MH^(&C}g&^y%`G6D66N@3k|D*Xu?xiO)2W3sdX6CxiDy>f{w>Wh& zyERRUn-%_9_gCOu{cXA{--nv>Ub6*fi$sP3#=fStL;NX9mO6WZtvFP zr~f9vIZX^920taO{Um^_nk*{Rjw%yZ=?KPC+NH}?a7hOND}D}m%eIZmP*l58zA>j zz?PzT7J9FNf%nA$y+_pBv7<(wLp6|xfU5V)fk^}ZuFes3qh)6Z{a!{BWF=s*1sU^o zOd{`9K}!Sy%2D**!dm+Ba*^~lqTG_W*nrT3No;4rl=(Z;ZBKxxKq&c*(~vF-&_JI0 zvid3uE}4?{YUpJkUE_7rl^fA z=^;dgFuNP@;K1WSR}%?9PC->afdooQg`5bCBhZ8}^DIw-;UMYpb;EHX>0S9D!l3Fi zqSS%ckO4x(1PA}FkVQ!U6Fu*7K&A3cCZ|EucSmuAf@VfADv=4gJAj+~6R2M{h_89C z+oJ{p>-z+Mkn`Sq+tlz|?v+Un58C5>iKeOxKMzF${cQ{)`yJkR?u*Hr`#U-po}_ql z+n$w3*<%z!EBGCqBmL)J_TSMthJf2{SSHVHJ31sGQYBDx6bpa#W(YW(zUz`(*(hLzEu0T&{m{Qpg&PO`~y*f{#w8k^uRXPGMmS88G%4) zJ*2p`z^^WjR2YY!&+R*~xmU5aT?1QjeE%kq8+d$Y% zK|!ww8cwVOs%>)6vw4VaXeizrDPgBn8cytk#N2g_e`{g4_PJjEG_EKIGP&!*|Jp(w zT$AYq%-!&=CZc3y^j5*YelSL-h&@P}-0Y&IC}F!8C}@Gj?@jIJ_p>Bxkx)##+gl|P zv-$nRXR^<5n?@F;yi4{S-L3%&%o7*}A;{aq+P8my-Szo1nFUq~YLSS`zGb|>IG{eX zx{8D<7~cHv`9}g#ISvOk>QzkUwPK|&mk!vSXDxmF*mggqeq>kGy~*wIj1$qv8y>cc z0v@%E3E)ap+0L%K{)*lUIGu>F*|Z1AsPn0o7Qn@ADOMmmZ#xY`5|SA+jvyxKZvX}P zm;}~xpCU9guM3y$Xu|5g-j(+Kjw)O-T3;a#9j#LzvKNmzZ~_hY9})Y!#}*9MO*cOF z_4X^v$;{9408*%K8WIq@l@Wp<6!-u(OwRa$2&kTPu3^-P{o7r&XAFM~tA4>(5_}U| zGcjEkg7BezkgsN-R2EJ;oUKiS8%o09-!iyTHZgpw^PaFh*p+5p?%*Q~!U=tcmcRSI zWT+YSgg{hDV3LRRsr`LHIO>HlJUP05R#WOxF{7sdGG(O@l1BPyCaWz`gUm_kUa3WI zxSY8BJ_1Rtgu<+vLw41CgJp5-c9}m;re9&lafrH;u~I<}#U z-dCmigy7p2L8l4dEo44k*kweoAlf5p>dZm@qbAq=A2qp9d6C-( zkg;OeN~}bRT+?%c>L40tprI|7Y>vRTH|Il8QHXg|8>B3c3xnH3Ld<~OhA^w5#LEf5 zgzy4(At6~9NNDqELL``zMD+?{ek%z020)MqN)g5O!@(KA8N}^!2`AHsgo?-6pWvyn zwRhxK`;PVhHh?Jv9siN9$JEOWD+Mi8-A^KoNnZ*#rY8S;63|;Yk!-3K><)Dv5YU{} zg^uWmu#Bkrz8bvEX6)+GD35)a$n-|Bc5^;wn^A`4Ls3WpxTaIfYw%g0Lv*#-EVEv* z+mKKXjv=4G{rc(nXE3EvDNq@4x8$c`X39u~JLBTZbBfGF)TJp?UXlAqdBujJ9v7d* zxy_;41acGAbzzxU2V2g7`Yr7`@i^Ll@m%F)SX`fed*Zk z{GoVy)DX13;7^Rz0=_3F3Sq7UfBOz=4c#!XIjBP?dY(8F1pUf_{HtsjAsG#pQ*osS z+8N|t^x;A3QL{PZoLeLO&4qB~pj-9UX}>#iXrdStzL7LU0R^-lEKS7upUtQssMSJC z0T8y_>ye>aP-%S_nc-@$xyUqKXyWf(_gk?j?-iA=+QqUs-z7PLt7yWYZu6g<`@ODF zMxgpA?L49a$58KjBjC@zv?x!$c4Pp<6N-{IHmV~CKZw=hK40cn;Q&_#eX>8qSePB{ z{vd>Q+38$v#jH6}SRsClFp?f_Wgu#j!AgwfMc_pHhC))wbYelzxckT_1ZsU?Y(6BR z0e9KpK3F7hb)eFyTAJMdkY&M=+x0*Sy0R#|0Or#UPFh5X?Kh1CYSF+goMmjtqeB531SCRd zxJt(_9PJyTnnwE=*JA6>4a4f-rl%h7zjof2F`ocEe9QG#rRUZm62vKaUcrD9YlJmJ zNB@(4KOmt5UVU$uqAp!XkXLU!J-Pu*Iw+MEu3B_*KE*P&Nlgj~)+49@ZT(Z#6e#8* z*Ul}iP`;f#!kln1Zu`tH8Iai<`?nCT8q6^B8C%iC@4LBkhKT)4WFNCTX{o8UQycd1dEBtd+z_YjyCes-M2pv11R$lv`yA*_N`Wlb7m%Uq zKaR0MJW+|UK~jyx?JvI}$kR6zyunhd^{XWEdpz1rlnLMgf@(zFW)LlV^sD4xW_~e= z6*F@X0Q;}LbYHjPudldZA$;NP35MfD)Z=S6N6B^r$oz=l#0_C#1mi`GN8)1D<58$$ ze+%@3a7O}+r9{L+x>J2)!V0r>jzdT>+?C=&e92~21gQkfx9Tb7+bs;grjgnl1K3M6 z3h3E0Zf1*I*rukp1N$H65*@cv4>4hluyepzQ87_;F;HQzfjL%48`WDPLkyk2AV*e` zXG4goRPq62h{_U0;(2jK1|*^7QZV;Lw0U7TWH|s#siVQ(CHClvT-t009Clye01uyM%8WWnxAdASDf|cCF;uPG8 z_0?WFtAKJ`ZU|xbuMqECk6qbQc~Dl1;+*V{P_W-blk8-|DBV?RbdrfbKGbiA(in9f z3nv=FCo3%{lxJU!8s?v;R&)pnIRW$>jH7yp$kOg)+iK8Qt0R73d=eAP9n+M~5w z6{}q>imEzHvK}3?l5$O==5#9-q{$JhGLoe8GF0H zu(yGg2ddUUHiG}Ke(BdbCnaZS<&dB707X3n{vRDVVMVXF8mgX4)WyX-B&y5S7%4TTa~1qEtOptg zCWkSH(C@zIxs>XD%1CrGGu*%z@lJ2?$FpTD{9~QQf|<7S{f& za{7D{SHztDF<|mOP8R%8XtnE~jo?(lLmz33Zp8?N&8+@jq^R3}uFeppF}jB@T8WmZ z!)1-5Q6dmEjF+u%Z5s5-5)6SYG&k4jWMK&hL))9ZC9ylo=ye5iRvuHgjGS4snrt2` zA*h6mmXcI}aPN~Qu9}XM2K_TChoe_~#D4HkAE_-@furj}wYn3wwyhsO2^wg#${}9g zpD>!Ob^hIUiqbF5*4!bV(WOmJg12*`PwU@}r(hG*{^?&zI^B}Kxk9M;1MtpM7ixPQ zEqi-Q&B72RB)^zKb;5abx{`53oc>*!aWQMj=2?1aVt6*A3jQeJ8mWNi*)(3L z{ZMgru@!n*@#(XY7%|bkG@aE#rbN9t0{7c zG8G8TAl~1PQQ{=T$^19fZ-}_*+dib)qWwE$Lo7rP z11S~ZjF1=a`%7OBZJ5&bvS%_ohR*F35xz5Wo&q0JI@%)JQN@ResgH$d2P_{=@GlkfJQbM(e z8h<-JZd)IBGRKG3samFmEZg-bNJ458{q5CY*Rsugpl?fx_pzJGgNc6C;c=2Is9ijM zZ`C#WGJI?^J+ZORa9nXkQFyeZXi@t3^Ldy{>em|2u-zHKBsgVT9}%04t8+`aj-Bb{ zXN&r&>p6XrtWRUVY0hey!QAu^a8GJe&4cd0-aCwvVSD7>5 z;mk^X2KRG_W8@0Ir0se)&9J{5)0W%=@1r!SO4BP>B)Et;$HMJ6&Mzm@yYs@Rtn7|% z>7V&=;=e(s*#;j=wtJe0Veex84)LM6&8zVqJ!n3IsRrOqA*VAjrF2pjH%r4Qp&3t2 z5=lt2W}bqx!iPxqk>Z-c3zBv;da0<^Q43#X#ooAkw|nW52478f=UctV^#&w8cL(2e z93Q%IoVdtmk6_O12fY^@Aazw*rqt<+8}G z$ff|uvDp5br=Cm!Z_N}tOCrtG{%=^98qMm^yz&qhMEWK{JZ-o_=^4bQ;WD_p=jmUg zD~KMgT`^NaFPh8;v=rV%qq@Pjs>nFsoaO~yF8K2jX4vko>#kzP3JN<4z!*CzZb)HY zQq%r>-d+F%v|*Yx&kPAx>-V-_2*i6!CKL-m%@>j~89axcPWVoA)Ag|I|6=c+Vq|UG zfK9h;+qP}3wr$(CZQH#Xt8Lr1jn%f@J^g;)KgeWel9@l5t+)27QcrDFo;#_!j`OO- zeT4^_Uo4Yp@nHUClRT|rZB$8VKb_;pD??VAiYbU|^<5q7MC;IZtOPgnn=ZP-m454q z>x!<(Gx;#K^K>$V^FB@H0k)I2!F1b&RW4@bASdmWRnKmXy3eFq-a43HP((EHEC@X^_?)ay?b=DkAiP7sDKu8 z1ZrZ&r*l_ks(b}G=K49tipOGYYM$PTp8dqq+Jjb2S3f=NnwDMgEoCrKYu&}P9Nz0p zraIV;Z`Xi&iNK}ZKu_cSi`z}5zO+4LHGPUnexl6V=;rE6om*1->uZ*@j>dJ&KsTod z!-L$=*qq*8{wX%0`p?~!jaEuQpK8XnYU2Er`QWB1`xZS_g=~^RO4`!;$Jow&my_=e?wVIN z_7(2?W3wwB+$6l@lqklQ?17ArDcEitt;LoaY}z~RE)&_DMSRklHC@L=9k!;|M{Y~E zVZ8Tv-Qu}b%dea51Tsta6IE1OtAEK4@!wLr;-|gw*sD9?FNr*=tZigujVp8Qs~F59 z+@YzD2|b+}xw(XV6;Ro-J>o%HfT!#1lsZK#laUXl%trJ$g@nEjBo(3Q+H za+!$y_LfHXQh&1==eaP$hd3<%T?@vc=OtOd$m)C_+Yi?Ga7ZK7b19{pNbI;Vet0{> zK8FW$A-nJL8C@2`qtn7wY(aqL-+Zh(S+$=wm>yQp84^#aIb%y}lET)sIfPydpPK6& zLEq#Ih+6o_WNC6t)+*+Lu~g_fiJ;EJ@3{WT_p9nfom+EMue(xOi)wP4E84RGM?2u1+{!OdI?U40KgtwH>uU!IcaE(l<#+)C|la`cPEUD?bn zxQ*4ynb}$kFJBkUzI$z`;K_S7Ncp%aMJHiDIiICLfabdVUI;x*h#5zs zguph+t)2C;p75*MSAq>Q7%M_IZJ4(b$6uM#ESN2%tbOzm{ROciPa##A7Z*36Bq_+7 z=hD_!xjH9TS0_fsUpm>+liE33=5J-y_T-i@kud%{wwW*YClL}Tb80D~Kpr;A0%sv} z8L53IFfWGfoVwC=lzi|#d48`?zI@mCjDhAqyHBU^Eorzoyqi|c|>qx@+uF9IiAqGH32&Ud8vEk#XN zVuK}W^VK0rYILnR<>q&pi97H0E_V90Z?a?c!Zl=eI$Z~<>>KB~&Yw*!xfAm(zIPMe zY|B<$0f*==oi!#Ijr}Q6bNCBbmo}G&B^K23MOL}|(r1U9Y!G~D_i>y!YZXAU={6S~ zT3Y2-b@$Wjy5(NZ@4~s?C#FfPZ@%DEWLG%kZi;?tcHOEknNkzD+Gp@O6Y#2sTWt!| z1LMY`d8*}b>|8{0&6O8D2j#+1(HM?JT}*eXa#n|(`5qhXSIb%s@*}%iqiX02SuhX`vMn`(@qi-!J3bli!(A_;aR8Mjs zR9mtR+T;zsoak7`qZGWy@!t-g}{Y&)*E`t;&{Hq@GA>~zavD}8lOG@cKk_XEU4 z?~9ce2JbID>^KBGUkVt3S$&fA@p&Zf51NoN(9o~2xT7BKKa#8_a=)qQnu?sCD32d~ zN5i$yXQ1U<+k~MY(0nd3(a$;A3cIUwe7O#5eWD%Q<05+iBT6oRS2ye4NB+JW_i$!u zL~=>-!_4Sn=oLM3yC!BsQkkZ;dfwhI>?;D@*fhq@dv3p{S34KY3=xs_M%~XfX_k-r zmDk1@cTJPVZ8muyr-k{Q$p{Mj+eJAF=nHa8#V8q8<^+MGt8^+iW&P` z@--zBd^Vm@x7`^cS&B{7%7JRnx_d?X%SDyCu;M&^5b{`&3fYyB?C+|kXN#GOBr`Xg zWxt0n5jAgt+TdH|fQtE%qOS@1t_Wq#OvkagIg5iX3*v5RFMgw7lWyI3@|q2eJ#7yc zG2vnA^H&2ntQx3!vYIF0L$*6&Pnm_6N$z6s1N^+MyWvluMDrl?k8H@{xWnid<+nl&>gudS?5T*Wqx4LMs?YGO`$4o3#30}AYM z!Oy3Y=@z^41lcK2=*%VmV=wIsQ1 zwOZWvi%M=ar$K6oW`F0`t6R&xUC~F@w*@dp{+p00ZK{+u(#Iv8iKPE55L&fuGg(sf{JyTTSS z$%f(#4b2c(grBjGap6la{AQA1HZ)eDVi6z)HNY8`7v3HYVP*LWlx5#q-oPbISPQA% zLMGrj#E%SZk`T%NPSKz}rwv6>?wmyJAn7=(Ez@$g!xwzu`PQ*Z8C}ltoNB3VXjdM; zCP+qIcXj!=lMGy8T%M)3fF(&D>teHWI&ar?(~qolTpg8TqI}emOR79(=>7eI_UX_V zDJ6KmZY#6IzfQTRv>WAUYo9awU2gfc+M9m62mK1Jw=zWQ-A+Jz>-1w)1=+N-y2tBNx z)m7qZtvN1PmT#rS&KcJ1F*1H-1U|tEqB~YEAfP%RiqY*0=}I)6Od}H8^?FyEP#M~agg-4upLkQUVU$;=icUv z(*EfMmcj$3^?IUm-BHm^Y_mjs)Z5UT6~>$Ui<6jmkFE_WzVgS_K-A3F?Trvf<9-|> z0D_^zJ+XH+g&$HBJ&7zAzuvJ9kBdGgFHgT?h6CLy?vnZPgy@$uuITeF;Ll|BOFYd+8WQyj)(%5`fKSi(NaxjyF$!nD2rWe+Amha!Arb-5;OYkT>%-Wbt zU;0yX-xRP}jnG43rFgoeM>Z}q-A8@r3)IrCZIaIRr8ZwK>nz4!Oskr?(jxuE``+98(drmrYY(cfcHug1yjJkHc7`@{TO=mBc5=C?1ISI= z)0^74d9UQb!stcE%Z%#B3Y4AgV%E2sE4`pOVE)4Gh|K1knV*Ttu72N>U3%p^n0|Y< zF>Mo^*HaYOz$%7La@_O71B8A0e_E^jKQ~MB?|S8b*DJIByI%R<^~(RQSN?as^1thq z|7X`L|DW@%{}+ezzx`H)c!q!bt^f90|LwQ_+i(51-}-OA_5ZhiD?7f5{77e*$KC(E zLivAjIR7```oAd@i16@a|9l9f?O8$5@<{)D7C}TI2n13{vI0#41w?8J@j5^%Lr}yH zBK_x8`Ne}eg0eDq0eKqrUcVjog4OBU*K6LHu9;^a=!~t5oSz4619ya*I2r*EfcVY* zAvC}*{a8|Ri7z!uSl{G_Sjqt4dbNi*0$sI-Pop2GjT47GRn$NU!xc7wDo>P-qRSK3 zzc0V({Xt=EOOjMxMqx&guy+pUk1hlP2gujpdB_G7*v&%(@6RP-JlLp#h9K{W>V%XA zY1maKf>nm{``rYPgRYbmpltX1(?gGpPPi?%i>Me(`9x@ofph>+{smOaJB`Ap{6GS1 zKM8DC8IV~5;9gv1taWk7(~p=ad;H)YL!c0w&6VlH+a1{jUS1LWLyRRt5EbsMgOFh zkxt2|I`8WT{`6c^eOT%TrztDlDskCdiC-K-@U1Tw2JgR@z`3gj*Hwx4 zvtgun;Yfk?a7qB-g0t-1vBKOOUhu+#5MW}53%KDjMrnd!j`rk(2U0jDhYT=-)$#Xp z8Mq-4QEvbfg4*{~gD?opkuD6@5JqSq903NR1#n#riQDvn`r!BFNYeQSA$Fbc*?_N% zU3?hP1oZ{5F{Ely!V?0N@X??zd2|A4i3bPfpx$bgIovdmtXT~(<$*+zX!2^&D1v~I zD&yn9>!5wq5#>RjN!3X!v0=6!3`7NxDKNt8oPu-oG4dY_P-h=CBx=EHW%1n~f1V&E zAXNt0qeO!MK|ZC*14sAm^IZ^OfI7Z$obU12Ch021}BCz4>Kl|^#| zrXWd!Fp|rY^xY900m12Gh_7VB98bV%zd#MB#;`Y^^aL^@Ao=g2j|2ZiUG09NuE#wB zf6mWu^@^N**~J)>$)8do1uoIYkG}OjoFO0y!05^M4`2CdCj!S1ut5khVM65Ls&!#v z`w3ygo)D;j%{ngv2L5osgxWKRhsuLb4w1_H13IP(fco0AD+FM1M9J^TdI0U&<75V^ zA!zQ~!^{To82R%CSNDPo$<<=?W9DNCdDsJ0(@1M_z+w6Ws`+5)()Am_!eKl7uR&LP zoRYoTe{72NAR)o-2ZwXN0SDZIy?XEf77p7!0)m4t4%Z$7PM8G;&HuPioP!@O#~veA zSeOzS!jIS-P%-l*m|SXFiPo6hp*IKT9(y2Nmwr(P|q@#%h zpLk-0#9g1eY+z|T20rPS3~3wYi%2gQEAUMKpd61AWDeOFEooa5NlVJ#r$p~)5`6Np z5h+JAi7TqHEz(z!^ooBV%K21GbestnP>*r9|5%A^)G>s*HQ7?iM6A&elZUUgE>Kk8 zUtq=nI(-Muh4i`ylFmUlGy#4bM0$N7D&gKkKnbU4OeT?9Lyf?{zPa0c=?ZoKaVYn% z(yk)bcOa{31W6-djlNIYlJK%9X(Pkjzem23C-O+cO?>5CjqWgcRB@JH-X-ly{P85v zXM1WK4u?ta)#n%k@m2cz91?qKZVm;tm_T-7(OW%V4QvcGoTvRI^TOAD7)m@I_RND^ zY>?p_=u;}t%fm^4(HZUQg2$XR;P*9I3|8;nLQ(qS=<2GSdO$0f^qwOLSn)5I#%=aM zQl6V(P@b2C^apW#*$V(*eUx4JmrZv(;b_p_3`0?;^aO(NkwBaT>2Cj_zET7dePXnQ z_caDDVc|DN4IIEE@DFuL={$=6C=^ZtA`JjFROQmV<(<`_0i^#Cbj86OGrD{I{Oc=g z#OR)9a+!l8A32BKMg=e}b;AKS5Vo649O)h@YS< zd2I`Wzl}fwG&*9`PtY|O&LKVQxtKF*G`~0d`4e>YEkys=P1eh@ za5pzt;R0wr&)BR*ioM~oy=OT*oA4+07ZF6jRFBXHC8dM{R8Z`X1PP>z4}2vs%kViE zPz2vfbixSORkH=^#G>LF8FobOIxqsQY*i;C8TGU`O#e|RKo+PVbD-nl9BK)P3W5;f zOg{<*l~RX*x};28l0i*Ozc^h)QP4jc=0~AmCJaGQDN-rc&vS@oSBOiD{V0_6e-uh( z>;I-u8V~j9_qj0tQ7F>VjIiJjZ!7f5mA%Tj5vs7!;MrjV2z)e8xA^JxVJT zN*-~ZisUKG&?YZ;$6NZ`Y4?=;{(P+%&CrEfYwCcG7A6+EHjG_>%1%5!&0?+rY3+x;I}W7C)I>5<>cG1Mmu9 zG<)&f9biIM{9`|O>kbQjTp;;!K++{37d-$H&a58+&k1C2b1Kir1F3%(2$;O>yMI$h zB0MqY;Gupuym6<`d*ofDuZNPI1>VNUVZR93I^AXDJm59BUQci>u<_9`vI}8%{rL&D z|M3C%snN&Q-0Je@#wAV=E4Ro!7-C@qrFrBCWFZ3Fi7R>0F2t|2TNwfJb&y;QYY>40 zSh|&|7LQTFp_YEqaE<`%39whz{8}&XKSkF=B{1>51B{X=b!PXXplkq|!I4Yiy+Kuq z644r5&hM9(x)uhY1KZV6q5@^G88kpE%D38s(>GP(5bTtq?-JS6_S5ozT=D4mB z8H0;ZxO)oiQt_AE`p{(Y7j#fPQ`Oo~K+X(=BH?!0-x~t$q}r@#2n|C{(V;PrLt6S{ zaP6KT>v?fnnXqn-G>tfi+`P4q;Z;J|Jl}fp@($KNOmgSD=b?vuZ^r=%0ss}0E73$| zp1in6P2@MED3P#}IMY8xS4iO^Cxq4fV2U8Vo`qAOKqpl5+Fn0&IrPti3}TnobD zr|7znDl*4i;Mc9Ry}?wYc{aRS^)6dOld;iASS;wVHO2kd0)Ny+gG5OuC~8bZMf9a1 zLehI2oJs0Du)xNF`UZwJXr?boyueV0WP<2XHZPRPLnTE97C&kk48Wg>#RVa3y!bcp zNF-fkPWchP?i1Rq9zviMm&85o|gM<*Z5CSvEKDIJC2moBUVPrZd%)} zD08Xt%+SOjWAgpedjD^SV@;`B878bOo}-4`%;iM)V_uf@7l+pQfL8-StA@+|RwpPB z>JF-8MX*;Vzq%+>XcPZNa?iwX^>2&b@(WP(plY4gFU<|N6;c(lw#uw{vCEf({snaz zGs!(br3%HkbVY;6xwPLn0Z=s&zsub2Ua$<-hC4srm|-rJl2bIYAcR8XDm%{*xU7~B zs;S|vZ4{5U8?42>#QmXB*QkUnWwTDR)rdA7XOjk7h!vsT#9mq zt!rZC7~Q_r;xWi+)#9zxS}Za*Oz>*|iMk>j|3qEW)5T4mU1dz{*Nz;V)HgZ0IfKxx z;9LT!F{_PQgX>UnLIIf%JNuB!V%d3IP> zzC@2hV&09p+RZ>$Z}M8Sx(-GX3TtXNNR3p5d$Zb5cC>XbyzGfNp0{Tmhl79UhFTaxRw6ftPaA$^7$+H{#u<;I! zduY!Qdq(=u46@1--|4KVQuBFq8QAWSiz1FqcruI7l=fM7Bkg!SA0=c5*V7=nep{xq zIJ=oDX(q0Iy-u)WmdEv}nXJ~h@3NDVHHx0MOuRMqD~;QmdUxSpc_|%9WRgurH|2ej zyMCkbu`QeuYU;zk!uRzgIMeV|n(=Izani-rJ={}VCsW~7Z+>9(3R?f_pCT>pT$fWx zc`$%4Z^q9)akuq3FA=7`(mLVd>q;nLYhdtOI>x2CE12Q(csq^C;(<4oUE*&aY~{3H zgXm68%hES1H*$MhjEB0;CFG`71J#i83%P428HUS$3icwoB= zcN&5sqV+w$q^(<-*5Z2-`V>}0aU-LMnGSR?^Tbb6h3$l$dcvW^&zFnREnsWmqw;w5 zhgVS5ikA?cpPEb;WU*3p@Fq@aEmylJ^CU+`{#KGtP!3*&9i2<5x83E7dbvEMpM3ch ztL7dY6}O`B`MA(}LoQQo@6%AI{vU-h0&S>IqZq$={i9H5EzJTnH;SHq6iVO!s!)jj zj|$}~HjW3?=4_igTZahMuEMAWUS@^f8Pk-hlyuN-1+hK{ZR|k(%mQ=^yxD2`&vwFf zEw_rmwp-s9TA{4dAH9-voHl0z*;WJVSJSu{TE+%jp3U7BJ==%VJAT*9)Z)?9?_BH; zt=3d!Ddm2rC<|icsl3b7+b-2pSB{5iOe#iSH|b+i*V2JW!x(ntSk`sXt344-avOR> zimWAW6E|Mlc-2l;=C(njMdqO-QOgK&r{N|)Piw5g!ed zuk;o_-M3nP9BS22KE0y`^>ddxkDH`QMpKj2g&928i@LHJlGut>z3ye(y%-sbq8(XC z?IJrH=k;9Vj59auqPy*a0dzf2r|9(VGavO|Ta9NaoKkX&C(zOTEHUspcox=X$#(o} zN9!MvO(yFDQf^{R^N*(Nm|oUU6Yj<+nl;y_9G8=Q`M05ivFDV`lXkFvIOyd(E<%PT z=;mB?VFXYeYRs+mma9_$GiFaib zm(DH&Qm=GBYhA<)UXQ`w3-OkYAdj22Z125~7|WHX+`Uc%PZ~=nh!gvtvgp5f%?~Ee zM2rs9Y%Ugtf4*@!);^Y5sjal!#OE$grV$lw`dePIYDgw;=1sFVF6X#DH0V29X^g)O z?vvTu-esjJBBy%h+_{a4y=$bbgXro&RR|{}dG_>!LEH#2c7gp)qC=lp<;mkwoDX-S znDM%sv;&x_;+mAn3=HQL4!axlph){KsM$xDod{;@wd2aAWGp-tJab)rUYMv^L@ti< z$%T9(JEM3Ocu902JS(od5UvjP2lcS`av`p?TCMg>FYiSR%1qKjK(8)LVeMTPXev=m&xK=$LeXQ3ujL*GaeTdGPq59r>zF0?C@tKN2~mn z5uHElXDLnGOVTWMoW_K^8)1jLym{H#o&irVfcW&hVV6QqVDu551^klKf~JE}FM3pr?M}noU(t zuX^_m=w4-S{&Dh}$b9~Gu(Kalem-?YbNXdjtlEjWw#2X=&_BL|-$@fXK+8+RaY-V& z9h;899XVX#@oQ{F*|W!HTzcsUPIp%~bN0fxf76r8SySZA0yk7f_idmfN2i80awX2X zT`^JZnJIbi!#(t2xH$H&$eoL$XlL%51lOnj$fwhQI5|F7o*I+yS}%*;l$RP0^D|tl z4o?A9D|3y=vQwg@V5TlEhD)=d@R<9vh|akad$TpAv;^Y|hegizl^k+dY1h`K3h!~P z*>(~CK~kfp-YOc2m8Wl;4kr)Um&NPI4E0yCoL3)~(if%;u}78f3q$UdI`h?ANiQYe zl7%4HkVFv8gVK7=A=R+ox`T(7xsAhcXntG34?|gL)!vL}5T>)4&%XNGzfQ&G^)zJR z%{qj#L(P&fY_9y<0Op^j>(`0&55FZwgOFtW z#Fnn%rRb}n+f8foJe&^9lyjKaBq^PORzPPSkvZlZtkCrMKfW}O6e%I1d(d!hvLfyd zfTf;Yj%C>rOVn|6AF73o+SfZn(AmlVru7hHuk&4|CJSjcasIkim-a7CdU_Ia{3ts` zwrkp1eEr;xxq4zxFQsoX+xzsCMM^ z+iY5`PiO3GO?!GRzM7ISSQqu+PK?BLVvZ8E43ke-|KdA9ihz*$-3&U<=7*XmKN0*J z6(sn@$6F{EB;nADTnRLkLSz)=KMn;#twH2rU!U_o4uuzuP=6#Iq9@GHw^J?ot=9!? zu9fxcgRTLcoNf)rrIuTcVCF8-=X|H?k7YnVHj(#!k*X>SO7VLCIWA9s0t?VxiMYE{ z)<3bbx44T;g%k1H1;<|W5a8V8?%P>v2g(I?7&;peOA6DafF0KnrdJd{e*Vag9Tae> z%!;NA(zAVQ({oF?BFut;A#8;Xz2E#Fjti4=0%ju$Bsy2e)BbqB z5Av_lQsKRB&pl>ZR_ky8dZA{=-ln z+oZg)J?Oo7ji?+eCu&c~K%9$ceX4dekI&F+e$iC~shD-9xk2;3uhJ;2 zF!5v-pk;Oa6%mIST5F7Mea}^WU1(5P>zJ0QR^)0{339uXy{PrMrHdrQ?fWw|aVJ?0 zFJoz4i_2^)vP7C0z4Te-l@uh(WX$;^gxWg&jGyuB^<@cAjojM>p{{MlVZ|x zH%|L2B$hdg&P|rrRi?py-{=Yz{GOsp<~ecIAnbC9UdP>?BCB=lPC{k{w583F^Xjys zIPIRd4Yf;c(_ofJ7);xIhd;F?U)wg82ig9~p)tCzy&PwWTyIOtjuFR{uGGY(eL9QZ zU{zxxJ)ZOefJNS${!!2XpacR;|E-X?$CWE zOd1}QilQzj$yTe}j=q8|TV(@Rfkn9M?Tg2m#3FU+2o&@lISZ$utJDtuH(pm`O2Xf) z`>WVH?enlXub6r^?eZI?o|UAY1iqS^g&?q=Lg}-=<4^3^u`&0KlyNQfu}&x344T{T zt!Cjy&j&8}*K!zb>u*WG+=OfCW*&Y!r6DpK=xmMInOP^VX13~`Yd6xR!PRm@I@{tc z3wc8o6iWsI+tT-OWf!7#A#6f@KCQ54|8kRG3AS9z#)lZx5tKOouV(q7M zN13d#%|?McHrv+q-|01+1`g__2YG|sv`;!4XoYfMJwXbmZ8ta2SFpcEq3ZAt22Ni6 zY&e9xUkVt$1cCz0v8}8wZW_>vR59N0`7*z+ey{&2awl?_bp)3@H*4x_!B^7YbOQOJ zYLWcwZ$4Jq{K}YHG%%fOTaqWqae-mNRb*7VBaS39^Qz)L zZ0M&JveOl}I;PytGrH}R6$ciBVB?}z>2>Q`cq7?l&^q*R16fllC*7i6NuB?z1`_#A zO?%==Q_IWL>%^rUYvd(+IqaeF0RA+Od@**BFP&TLE!Br;NRtn8H_X z$r0VI^v_BPdm?U;(vH{?g3}gS^NNS7Q|8LIYTbcLWCTvt!4=9~rZ6Vc@=Q|Wa}$a- z=KJL4rTS^sdxFYFyk?}e>wL-#xg}kD$n^YbxcDoE`*W_cT!ARw=b_PmAqu1Kxz29! zQ~$6o!0u8m13OhlQ)bZyePF?PE0$;``(5bu7t|5n>Cx~$DYUr&Nl(( z!XF~`CAnXps=B_&)$Kfc^+`$hq3_IL-Wjh3%LwP*0|Ih_9Z};UcV~-Ee`;*dgQHh` zb>ewErdZ@{OL_iQdDO?hj!XwRpV)K!Izjh@%o#jO8*mk;6&SsU8ppAyhncm#j8|ye*###UPnRONt ztxtT2Qtl()pW4i0vEBf#5jq#XbiKIv%n)YiDpust4Uayvt;1>HyrD!5;}RK`AivwuofM;GRq<)y9ZY3%xf z^qhhrG={egU?l!mk!>V9?pJE^FNYytS>79f_(UKO%Gt%o>}V`=DyiH|iYYu@U~8c_ z2o^{{)O@(lYfU5}?3m1aM9 z2N6*k_3&&g(uO)-J#2NnDeAeBo-Ko0M(4OYf?8r!7r%tT;Ay2d4fH+eUT4RUPJd%M z)zlBDo!hN4va!4VlCG^T9iAX$n^%5mvX_%;a}n^8-AgE+OIg9E@1o-=Z2sCT%I?e> zvUp6T^^`i&6b)7#Vlj0+r0H@!cf82@c~{h(YIkxj_thWg_m2khZf$KOH@CAeMc{ku zQjSvvx_Q?;G&^C72@{IH^UtJSZg@#*NvUo*P3zHeOk7%a$yXl2X2 zWf}WweM#3qMoA+xx8|94>H=sy_EuvXY-lpZd6=FZe&YC}xA% z<@Z>X-7!&B;}`uJYZMIlsHB6^F203~`Z|_6E7qvz9iPk5w|)McRm=ZowMZ4(V6VoC z+EfYSYN1oVUTXb3k^E{G9<1IxA;}S5snW8fClAKoa#R`R-E3ZZUAwI2<_^_<_wjjs z9G<=kYdKmhcB%4aaeOn>bu`LyotoP^z#rv*ns(qs)X8%G8v}KF$ixnRwK`eu+1Hx& zw`h$Jj*HtBUpwP|V|=)JvC_H9sGfcqNpJKQp9EBEy0>BjnbWDO*2{t8Mn;Dzt0j>E zJ4%YDblTQ3WI8O)it1LH-~tfYOkTU`7*a)W_GkOWh6KKoNVBwANI5fahoar~Q>Rml z{)v!XmJv;{7W)huep-7AgvOi?(^OPL{*geum4W+twvEthSD${W>nOyrjomP{7T>wE zyLV#)%^-tO`^&S)H@v(QFbK*|ycGiA|2*l+`tz!zi7CCUi8BiuBfXM`le38pouZ4a zvxSWbov@vay@j=jqmqfEtA&w?6P=2!lYyxT-M{?gUw-m0KhgS^pZv>D{^ckC@{|8r zezK0IBF`D;%PC6?03a^_0Pz3qQ2uAK)eBr*NowIHmn4`>w3dLCMNpEXfH=@uq+A&~ zoRCuh1W8(`DWNPJ7nM@AmavS#@LIi=`Ux)3P*fqILQUbDm%Kpzs_X0fxqIfFcjuYj z*v!mz=HeoEEh7gKBz6Ye7ytm&x7!C;A3xaLA*sKIn)9Zp(oF#KBC)5e2OhGu3_o`i zaaQrQ6NHaBWZ2NLjfapHuIP55l?5*C2o*<6YOjv5JuxvbA^BH0I{+XAW@k-aZBN#< zu)ctjh&;d|0TFqDjB#(|GI2W99GS%5Vd$nB`S`0k)Ls{v%pmw7KQ9A#f=Hmh*fct| z3DS9RHWb)&e@Ot|1b0D)96n-rPbnMm<|2r|Zxwv(+Yu&EghsFEb<#3LuJF~R3-3X_ z(c;IC$aGHpuSW#yv2)^n2D6Yf95NtvGx=lgUlgR(y!8S^*pT7@!|dBs0OG$5HYKRX zmcNwdNHh9TDbrnqLjc$OzNJ{-Uys@G?;x-*0|0{4(e>QgX>p4;^4Va>vx$Hc4Z5(d z()M6l$us~83+gdKAzyK90|D^+RFhBQ3`8)*m6K0G3haXO(1SA&X2QS+W{ES<$#t+d z6$jaYu3)>r^ANBZAdvK(2;y%TL-FNaPU(yHe75k*WECYU#F4~7(Gy6RQ0>LtX~UvP zEBrz2#i+`}DhY~lc3mJKYyOCIMdxoIxIifM5Lwz3E|b5^jLUAgBA#C&KRh$GmOQc?13Cc*=>;k`>II1NBOg5h(mGDG7#Q<>^n!2{7?qh@OB%lBeXOkrd_S#?jraF9o5-p6G zSm3?;j+u9J@!3e!@U8r|dzvbW`$+V8SJA=)NkTOL`TLLqWEn~yqf!MBco{eVdCryG zlD`m7c<~@SQ(_UPFjvSPp%2TFe@<6&kyOM6s3h>!m`fgnjf6`+Of?X$u@^)g8;GrP zN{~;%j`-}Lwi&R+;1Y&Q|576Q7Mv_z7{fmF5u`VWH7cK6a5`5XO@X>MQ?yY-#EY1x z>3+;{mQ5ER87HD?2zL+Vg%LPH@qI(*fmAo1qW;FCb5yFJ5QR#jAQI&%O~{23M_d33 zgJvkqKP-3)4`}oD97($=*p?=QOmQ?`2%EAoNeGF9D>xg*O^le?5p0O$c7*Fsh>>LpwP=X-ZP`?Er%>S6B$- z38FS2Gam4jH%)X#V1T%(BNke2N~8oC=oJuPDpFcDYB*$ubxHgwU2ruA9qf~P>7ao% z+wfJf^ZnCMD@GpW#Rh7h%+D`%?r_X>nD@agW7~N2G<39tfThp#?c}h>5PqUh0ZAf; z-he-y&$fj)?3sg7hLGB%jE{vfhUgTql@!##TP2P_J*S&~5E?#ml^67!+sQ`b0xza8 z$`^;j!QTbyOw38ZCBuRG; zcqp9y1A9U}0W(Ms?{GKxhoAU-E6->w=?nQ@F%<-T`i+PXOZ>q8JxHfJVa}{_nV1HU zEPR@6+esG{2>=jb5`8iqRB-VSN(PaW@@CFXOzxs1N-|yCK zvef8eeeD7isp0()|5-T0XmWTuklZp3U9#Iy-(+b+T_*5(6D~zHcN7}(p6wUMBM*TB z!f>1nFa*rilO6nDDJJG5A{rS4t)rJyv9UOY@AkT~l>Uq;wsp|c|IAN&Bj+|j-Gdw{)r~-+&OvGolXb7TR|ymmrIWl zuaO^!en*w*9`&5UE)reVVmGyB%i|Neqm8`2C4SaQ?+q;%C;q+@=gq0ihG<-Q zw(Sr`?x|IFX3~|aoEj%g%3j@>)_}-U;+GSEOPG63oq%==u$y7TMQ;*G#l}Vt)bv}y2lE6f7GyVwjRJ)Nu6Hgks6Xm553hZ)7AXvxx z7xbLk`J(}W%?EWBWcb^X2aU*`vFW$s|MD+<0NiAh?|+>YLtI4Qvqk;1-%3+tCCtl3 zmb(9YtK>2JybA^drsMD18Td4z%QeNznIVQl1qh3$#eqFsGEe~mlx%YfM7 z=WYMYcsuq(i~V_udA6FT%1q&nZa;iKo=xr;HYyV3E8X$2-J*19;yf({n6@N0ZEar* zFa7rPs8FRk^_aS*{G;H?-TE@b9~_ZR`6+iEGL3kf7k0_YXSvOfhfcVNy9F@pWkU;w ze?h<77%O+-MCt8F=LQMu2(`IeLv6rAH1&8h=n^~;4wpBAew1n%YF$8BQ)=M{xF1sA-sI0K;*#Mvy%SD~GmED;G>FIdgdkpTG( zryoNfX@!(>Cz>z~Kkaj;l_0nli@(^DL<8*s{o!hJPCZ?lYvCBlHx!5!U8LX3m!`5y zkixoe6nJ>44gm}hUt$>+r=-zu=oN=ZL4er@Ai=1&s60WDFF9|)5MXA8Af6ieh7cca z^1jy#W;f8im-sCvytLnd9$68zHV-n`9tYkqu|CL9@+FT!{CEJ5PW%Ow9EuU_^0f~1 z$CUKyBJ&uA7%A?;gN;D%(EvD31R}I+ix&@|mLl@v7{cgq@u_e@S$ji3oF=3!n4mz^Zw#=E{k0^NP_O zjDBgr;b^|z{-{{lg(9xp_8^Y94dlCD>o>y*-zo;SDl|nv2tlAfWr!6CcMF^t42y^4 ze7x%KQPkzqA8<%)_*s$y(hUe>3C2e}O^G@ka;**&&2hVF1G;&=;|K1%dLVmK`nX3# zz@Uv5VT_Rs_y)%ir0!PhOj2FYin8@S`q@(B#}e(2h#*uM4ck^vu+p>AMb(PLg>wKa zr~8a2J{%daB-iP?2!g#ob?^%0lx}7wgdsON7>d}4`@42ejwd?T#sD5Vc938=*cn{B zCCnMSjCC2oiGVGnJ~z2^-02zFTyo7o33)K zuE*h5f?U6MQBZxfjFMlHe~a={iNU~29^l1ZqYy8PkoQVxPN`LZ^f!OncjVDH1(ML6}9fbN;|@9>^ABz5DyzY_yf(; z=E7ET^|T0W32vJGncqGynOd%s`e30Xm|%6kc|J#dxpbF>o>QfxM*3`E2IcXf6XIsH zQ-%#ciRCRQH*>xbo1!yi>L$AcdcPxwzfykW)neW*&uScSM>N;m%WtzrQ}tA86-hlc z{*Wg^qsjMay?Ds1wrvrnoU1larlKd#`M~Zr%_FgFUs|T8LKrAmvr+yIUz3nl}?cLyLNgEbjd$n59&6rfnG zk$TLC4%}XSB?~P272%&v)QU{qrWKXhF1|Z{?6x#Y(`BJ$N1CzTJ^<1BCjliDSq~F9 z1Mq2!>5Q#|g+?wPHM=&$V0%RM$OUow};0dD+vvQ!-&?taQ zEhfOdE0{jFBL*V{gccaJJ0vHcf5su}dt_TC{zw5WgAEZeqi+qP|2ow9A)<|$jJY}>YNTU}q$oxbVx;NJYF-)LvecCrTV z-fKPY^K*(jghkU9p<}dZ`D|6`+}^Iv)XMzF-jQr(_rh7>G?gxi{M*GqX~5x@ho;}= zHEOgz4eSfb^P;17)9m%d=3*~?(hB>tU}?D#dGU0pYglXCd^5k(!8ON4mjC4=9MyMj zRDpF0wV}1&I6%Pf{r$LgBl(eagSNFB@) z?WF=oo0Tuvo7O$OtTWxHoo(}Kp=dd$U3aA4DT&e}tYYPeA8O`nl~nu2ieK1gH}BXQvGwgjs(bL}j!B&6eJ;lcA znWojQ`r`f2GS>64eP2{pTLslP*Y)iL%SMZKT4d5qSWor*W91c$W;`#m%jRCtE2M_ z?!uWvHoVleXwAc%I0?3epU$$1A5Lv-^oO*(IErk^xAphOivV(|Mp1)Q9pmpL=uO_0 zxN_U4iGQBm))|%axfx{|Y}lw1gOZ#6K+2pyRC^7h{91mB+dV^_LdbNCwF90X!XCHs zT0Hr_(n`)4Q@pb25KhzmReIvR0=Np|R*Tb+F8#Oxya7xKIA3wxRE%flX#)MaK#=Vq z?#IpDZ-eSfC3Zbi)hLx<>v--h=2hQZ@U#s@CkMh*FN(OVl)m6*xu>Ncy@cg@SIzs_ zBL}35xaQfm1i%=0E60?k^(WI5=_biKUCVY)4}%fvS!y9yDs>!+KBfJgRNCF|YJ06t zNi3$hBc=QeaJUs_PtKJ(qes7HX2urz`LRFR$lTMV&M@*ECp%mZ*$YHNIh_RnuG;G=C(e1qM8Ab8vB46gHy--Qk|U>A7NWn^$;qH@GG z^mEl3s-!mRI*Gbt%Gul27VTuM^`aamS$+IgW|KM!#jp}~bjETGTn26xEu+UV@}k${ z{=Ut!C2~A(*9SC(HPwi}^1Dzed)S`3Nf_s?u-uHekiV|MzsbjB#=a+KTk_Z7y4Woj zGz;)IdSC39G(%ogbl_cv+m%xz$@;iFr2HuN7#^LMWKEQkAM#}2r(t$1SUy*mEzOBD z%gF9@OK}>u4;n>e3ES&F;M97M9|6nh?i~Ih)wv7!U`%3L7UDIVk4&lQV{5p%9>v~l zWjpoRixuW89vf1}-=5SiTfIWk7fgG_Q7s;q=G_wr29hT{JplGQiw=F{Vel6@E3E_| zo@T+Y@&IyELG)7!32Yb>RrR#)fsqQ`#lh)-fqUMx5P~T+T(zz+$ z4cyYmzBg_3g9NEYhJ0md{_?_5rTSCnY5HM9^Rznrxx4z38Bb56qvlX2*>Ue`)~CCh z#<;9?8!9M4Q`33fz2qeOu05s;HJ0yIZqc_I2IxwMhJ=^Xkc&F)Y$p7bEjYC-x)g z=zO_P->Zpm_z%N$C!qtbS2_n3%a%#%u<%^TmC`a%k-#asC_7_Q9p!HQT7^ebloQg( z%h&f#N@eOCdOckgE+;u&zz@UjaW0LyMg^P=$6aG1Vo`f6a(B}X4@hmD_g($SwoHpt z;Th$X?nRyko%{9cz0=2}%uOD^rCw>JE$tbG*m8rx!$-NZhHL0YY+F~aueJ(nQc1^A zS&>+JBXyhjvhljSD=C?RT|(883)uF-W1C;czFlZX5=kF_Ocz#S(p9zR@J;7JTKcA# z@&*pLBH6}1;*@B|=Bxk)rowd?sBNR<=0XGMrCErD``mU)>K8nK=EZF zn<}KP?P&3LZ0Y8k9iGslvkfn%992hVB4M(Of25DBsh%ODIEs<_jA^O6agdtcuPFqy zE4hw}hPua-QsJ?{g!-3R4E+b1HAPt^Z>2$1-2;=T7`-*)@lN-jcIHlY~!FsJ83 zXgc?a?`QZsdzhXti)!frno?Tohpm8rf2#!KURETdZ|r9>8*a|?NOV4Ta_0-9z1Z$7 z5W7C(QO`7m6Vt=B!0&Dpi2*n_GzX|$_eL#>IwzKoXU@0UjgjE%cu@p+LpIIDA>|(B z^w_-iG@BKa@+`hxe??JdZ)K3cCpLH-3eFP)CJAQu28oZUze2u)}#XuEXue;k}f0(g79!>jY1;po3A#L2>*Ps4cWD^vPCx+qT=Y=gy>f;AlgB zDm5*8C+pggn6s&9l$YD)vTU62#Y*dOrkk$9K~B%k^=lls_=)l(W9c4QsL*Y_GlAL? zid6^CS1_zeQqcE3xuj3{qeaKP%HhxZ4#NfPICY*tT-LZZ-P~Zh7UcJTJ6=E4ilzf_!7Iodi%{i^7&hQ zV|;MD-?V&qLcPk+by_);GK$e4`gJw=B?e@Z=D6oG2Po5h6i7&eV1Md!QHyjbrOvvy z$=X3ii`z8*E&XIkd>Jw@O7zI|fATn*s*3a3j-z#GK3U@GzZv#KAEWVjmeW-CMg_R25sXMI$4QhwB8HoL3Z!2F`+wiwE>%W4)C`D2q>yZ&JN_+Ff4+x!4@O`Y3*-{;pC{iHAC zl&c9c7~h)j0N#N|qoC5|ocqOD*|#*N%BdxvGR^l~K-#2ysz(2M z?<(qXwb5r#3Pg^_KQ20iRju~#NX~4Xp;ok6oHfN|EIaODKWBy?=mwHGMtDk%2 z;@!ci_42?{oIL$XIe&f0dB>q?Hx}mFsj!RX@Hnd^^H0J8TW7o5cy3&~=$1%#NBXt_ zY+UZl=*?|5*Od50vh4mVCncgq(V-DmbU%y?I2)P}drT--_|&MZhK?w7CB0 z*t^A8r{Z$DqKDt%2jkbDmH|DTx8_X61h!(}VJHb@SotMiX&c~^0csN|nu2QBWrl}g> zVX0PPd7RxOuC5jf#hyIkqD$bq_{JuEb!H1Y>oc**<+xI?+H@Y#tm>a<{>IPqHsOus zqKk^URc~+h%dazya^K$0dRHtroItU=NMAYO_jEFkcszlTj^N%bUNFi&m@?4vf@1YJ zY`sBvBw!leNc`A5AR--v^@D%_n-yGLUD_X*lMC87Jn~y-{){Q9o>JhBpYr>0R98!P zl|3xT$O$Gg=sXRRffD3Cye&0~_(iQMlWS#+EWET2XUV%WGfW2e&pNHl>*PC0>iOKU zka5+3Jt=u`Q`)(DFIpr%txEFU48I?1 z%`BrbA*T*U_FK`>!)vIyIXX?EmT;{!>OIVCW(Ubm(&cd>;}(Ljc9(pATKYYA#$g@@&n#Jcq}i18x;wFlw>!({ zW^XmfT;a}0)5W@59=ZJe{PKC;i;=*U_4PO&su3QU_8gMIX~ar^WP`YDR*~P0ZTz%h z`IcUIq>mW3`$Y8c9cy@+bBIvafx0K(Y;ROLIP_aOeG-{a8Zfc@WAjkU9%F zUAU<9Q|De}0kvj270TqJcQrAE&V?yXH_@o#{e_ak1X9iGOZ9zuSTbE|#{{3Z{crho zE-y@vG(>zXBM#B4+-DoV`L_Q<((++}zO}8bwjH1MRr@gy8GHj3Tl5`zgI8rn1wTiV z{~>4K@s7A@C&eU24-2XSR~5`n%QT{n8?_?|FR%M?q|LhbLA)y(Moh<7bX%p>WV24# zt6L#cc||jh?F~uM=E+6=!YC`qp`Q9iw2jx#tDJ<-Z?9#{ff+v=tGdbu-K)(|hm4oIw>T?daQ<|} zXs_AeZ{z3mVVPGY%DP2L>GKySa_O6H{{^1B|2|RQR(saXaH`ld@(})b)U?aYDIH}W zf{21WOm}k&KD~$Qu>q5n$NYz#2LI##X2$o?YPz@#AM=ShNunnfa_Zgo$yOR<^K@bt z<#tDZ-nqjLJ~#DN#X3W?`R63K!#tTt>fZ@e_E9d1cDKgkY-kNz)kC^!Ys7aL^G4ux z=5=Lxt9on0rt#O>gzzRX{_*#pW=G*4_s4a?{3btSD@*e+Z|drW_oV|@^{p2yMHHqZ zwY4Q>#5j%^MHh9fIb(e~9>~usXBM*8H>@qfShX;^xRm@B>XgvcEt@peZVVygBQMQ3c(tyg)w-=TFhm=zOGhec#Y-dYN+Cg9dxojEj$ z^4xaP*mjE%hOux-m;QY(+yc-C@1)ND72po$PhR1TfHxFskuPy}F={e{Q{eHB%e&HHpu@4jbWbnr02<=q9`u7{0`gj3abmnH_*X*?lVytTBM#X9FgUoeY)C(s+9^TksQ0IcEG}#5hB0h zSy3J1#Rz8Eep#I5UZvb|t?)hGD~9b8W?_k>CE6F4NvB=katLJpIIF69JzyQjzQl3q zC%fV(=G1fzKx|e1+1qSq4u$hw#kvYp;}$7OvVKaOOZN%JdmG%JN~ zdOphKxuU(-X16Y#{F{5W&i9DncUDl}GOVsN71P7vHp)i<>*sC)s9^1Jm}XduF?%*J zwqvGWN$-wwt8;Vgyy5?)`*h|gJ4egAxDED59=7XQ~3iZAk&_>r$hr$VfH5#&OVdVAj{6>f)(>n+b3|_H3uGIY$k8cBR8EsZ3#}W(tbXre0S&uZ5i|Y+! zAn*P7j}h*b^lfC!Ur?+m>~X024PC^lD={DApogJ=Jvp!)@M{^N)Jzo}U#XG2>P zLq`)vI)?vUdiMVTbz~d<1M293pcY{Y6iISG>K3yjA{12;gpx>*ki>(4s{9)0paWx! zKvC-hA)X^6afh}=Rq6t|sNZimA&2g}Ykz+Hb{@7)wmTR*xEnee8X7v7xshS8v?0O) z0FXX?f8cs;HH^k|)xLGd1N55$yp{xVj0)#$N$Tb(coK+DpiX8AUM#0cV5#15wx^1O4Zx z(!un|CEkXS%Gs3>^i!dB+sP*T+l_ua$FG6pzX-Mr)&jxDo-Aj>It^vy00ck_?SKVd z@kfie727pOl7NE69|OyYT-za1DKVH=wOES1e?*LcR0&WR0;1WiuS{OAK8*RpT}z=> zb@-IWsfU^6q+il}bNL(2;>J)VJct1}>+t0~l~4hO^4_P4q(ndD$KnlY;C}CT)yo&z zA8vjUX#KuE_XuX{5^^B~ZawN<t_ikV(HV|yXm{{%(?+;9^f(Z6k;K#v|e#{5a9>XBk zmJOX{_Ew;MmrS*Tn+WF%Ne-Bz2x!L)NST5qz@|ZH{Gh=QmIMh7V`2U!q=7K4Le*sp z_1;%iItx?9 zgToL3Fb4l4gvEzI6ohc460C^@D~j+x#s3S*p#l;aK0-K{Ea=k<%0ZWp-46NUzW|F1 ze(z5mp3E9S#=n zR}X`PIEg6BP>5YX_|;2;c?dj-h|AFNyYe)Mh4B=_iNpx>*otQt0(@h#Kr%!zf`Mw! zml#B$NfvZwfMNuX>iAtj(WD4+Lst7kNtw)ILgX8?!JLB+6Fb*cU`zRrROo<}3yi{5 zB?;Dp;2FVFna*-iczD%Gf|(-I1Bll({l0#7U$gBg2L_m>sRFfPc&mR7(=XE#KzbMf!yZ4f7**1(lQhu-owU~S0103$qu z7Z|w^wqMc={L7#m>KOdGygxe(UFs_xbU8;SpFd)@ah`YdDH}KEkpe;Cy&u6_gMbX` zKxhmr04(V*K_9V8ytkY9GvWtt7(C{?oZvIc4p5lxbi+R$tmOilvLF!CdT>xDM_n64@e`; zruG5%vgu&M1Ar7b!%=RlsAY~xWmYw&q&)wdS5)Jg7&rVkFRIo)CIzne^Zf-(<>OBBYu#l@G4?A%V6W=j9L9^6`stB zimx@Eb}zz{?Y-GZsciOW_{l#nd)=Y|&VrqMAHs5pW`WVY2Va}V6VhAIF&IQ^6Z@Zk zY3$mgDE3Msesk%)5(kkytvI2#C#<`{!fQHWTzbggTwEdmFY%P`O@JF1faXRjBC0+o|&H^tHa`xl;`4SiA2IntjV**YtfMq|Q z>$Kpc^L^{Cps7<+MGf(SdYeR8dYcZlDwLn+5Bs8qkUP5jL;$>pK61Oa&dJkj1TBh# zN7s3cxdy4jhCC7+_COd$=nV&t1f)_DPVaB8E^Y^BOcVz{!W{B5SbeF}hmQX{{|IKE z0o0q2Ul7FW-zwg%wFv~L5CIA!2oYu}0S&Dli2;Ks0f#TrA$V_dgf*foBrmgwf-9sD zgp130NaRiVzqU&gHhGeu)=Ln?-WHsjgQ2j=KnOh^eq3~J-;WzFeur1It!q9v9IHE( z@jjdX_|rg%KnWb{=1bwhD#jEc!ZS1b*;-mJ`P7p`kCO#eAsMdPKo)XWrQ!SY4e?lH zJdDuPzxz+hj8)n7YKo^fi}aSt-wz#5ik<`4^uv?dn1Q6xF>UdmE!JYFTP|*BI!^zZ zicqMa!TcmQuzYAtpu_|o+$#st;w>zp@upb$y{?|x4@HgCYA^;+MP0C`WsVHPuMOfE z-M&>sQKZ^!y;E6vH@(*rrS-i#v39L;B_9q%T?G#7=~NX3Ah5syewG#jRGx=(70d<= zRO-6Gg0THMP87sZicw$VV5~v~^c8~u5HaAeONp_;!^1IZ2=(srt279}1Adhidhe13uDe3%$1l2cF=mATn63fHuqO6{ z-hv&hA^?^!f7T0=44eybZH;8@51|*`=En}%BG-umJdKKt+i91hz|*A#=E)I)=K679 zXMyJM(t?z&DdH+7ONp1Wa7E4+Ia`;rR8*%R53msiO#N$dGpa|*zOv3>DWl23(S)0B zc5W{u&Y5;JAo)A(%3tqN6d6d1nuYHulh{uBcdal1OE2mAZOnS2Kr^Wpj7xWMyMy&T z(qZ= z#h3d4zg7L_qSvJ|bw^{xgXX}f{$&r^tHv*|~&O9Cip9m*1_`^wy5i2xt3iDUgPF!j^8r%CLH-_mI23|y?kV6k+FA~H?s z9x0SGjcn*QS>O%ia1uZ&j6}IO)Q^;Jxj*QKB&r%*FhVP^wL4QCCZiOkJ)MjZvLI15 zuz!rgwqG~6%Ibc=Lg`}x(I8TBoGso(E_2myc!^H5B!aS}J-Ll8BAJXsPfAAvR4 zpMb?hC8dgk&<&)YED<6cN5FVgO3frVSONzUqTCtzpOBlflpIROL!EJ;;OWs zWW2Q25p-XZ{N;lrD~7pZ!zKUl5VrkpJ-Ks@ke%u1K6-1Mq@qCqG9z3nd}cfxDmUrAQ+PchQv1>v?+w85e6x(9=B|Z<5PpGoHEurH|{7|$RI#gi4>&$Bf1XfJ4}@jQxvo^*juB*8#} zza@^-#V;u{JFemPYE>0^E=H102_=T513Hy2X94oLI?X%H-fC?8yCL5%lpcuMbi<_{ z(OM5?o8J;6qr{XCo$gP~$9Qmu4VhjIaz3*fX2kN#^z!dI^+l^qrq4&|rf``dv~Q)B z>gtr(_$H);uMb2Ye>RXyX_<4V@&Ob`CnJvN9G8* zpHi>3vdw^a%0{&yi2{(ugusO~vCQR7Z%>d z9>SI`Ku8xazzvp&eocIidpmX^i54X1v#}|c$mEl`jdY}cnq(!D!10S(44~NC5Xj$> z3^>8WF}MaE)JYYv)!~{tS7QrGAX;E>wL^>`1y>kETM>@B zApv&3_;${UKt@l|dz@{teHi36n@E@hyg^^YL6chHY*vn$j&(3iP{2Lw7i?GK@EYn= z+vPfjE_5Il3}=CZ(_-<+Ykx$n>`SG2RH^4TBx%!kG1}<~+Uk40an#dYdR#7Z73xwW zoz)}jciObubru9yL3W4Q&^>9gTHTkXg^E63U(MiJ<*aX9h}h}Qb}v}3m2TY!9;Ml` zbg^<)`N(_;zfG_|f#Y$#yk9S8*&N+@Np3)s%2x&ITaVwuu`3ACy;x-zUp`G!`ZSJF zQIGVU475JP;mkBzi?yLQ5Q1_HXgaTWs0BKH0m|r6srYc)IKb-EPL| zAH{uen*4eCaQ0Hy*6lA$OtqWn>>=w~Pr13#TqATV%QHF(Iy}YCp6FzCoHod} z{o7(;+-zljeOk{dxYNkKd@Q~uz9ZhOVL#@w;N$kD3rDoEO%8oUVi&lw$R%r=j?iRrOpGa#XqC0UwO)Z{Man13`q)1+5p{rVwGY;wH??0B&zd_OH>PaD&HsQ$!hV}4=ubU7hdoHVwhh3~VmQ6e=4 z&Wv)6)|_*6)#i1a3-LWEAw3M>WF)F0J4Mf6?uHRSPw_5`Kc zs?w$P*cf)dm)Gdt_b?^7%V3zEwVyyH70hU(C>BTfH$S!v8MnzzEQe8e*FT5_1^DM6 zR7&V|i3EWmNx+{BaJy}ao*$a!v0S_MflZPn@bbBP8`Gw7U3rG-Y-}}Nwqs1Lo#dx$ zOV?*+UT0%ebq?oe;vuaIKnha)Nt@d93j>O?}==jKRBPA54 zy1Ra^f=apmU286V0onN|mqf-_1|GNS&x1vS(CC}ijc)x)oMObEEaaVRNnd7`lFlFP zovxQ`4Q+RtkH;rd8J7#`>nMJ{R_a<$QnJGSo&ALKKBj6)@U+&>*ZW?}s^Q+h5)Z5y zfnJ%yZf|it+jDzO_QNsd8>PqRTlUo%_#f_aw=!ERM{LG;XmAZR|6*)ckKSW^%TrI4 z8oE3al$VE6IEA-kB6TcG>^v7UM#kYbI)r>K0FpAyx35W$kNv{E)=)exz7y9z;ISiQ z4xA_5a#@+(m}njF&g^})rV6NhlEz~ouc8Bzv?jmQhmW?{W4cUGcCkFI#gjJ(_9vh- z4yyI$T=yuK>Fy5CP+|CzkTkUvE~{u6U|8B?Ky^|#aNtyZ;v=jJt9=E zLQ1E#fo)88w$aLeTvsUCMKxc&&>p1fbh@$Hbvvd>Uiy>WK~@N=C2RKkLO^Z{%}#)Q zFJr)-;?1TBC^4!8;+bPTHg)=gS479CkQ1&-lxJ6A1E3QGS1GoUG;hwl?r2#snzT7;X!#S(sj1GI>pEw{`46YDk+`wANz zT)6D62VR&R3M?SFOB1Ue-#PUc_0E36`oWRv#*@kt`$j6AAgJ`0Xuq1dNb|q8x(kT$ z-_1WJ+M3=a2sP13lL#gZ%E5~wicII*vi|<-nDdliT|np#?gW8R9T%7g{ehqw3V~a= z?FC9OzUDsU-P6?+ZRolA(p}EFEOYK{j*59`#|26=1!w5YDo__|4vT~}_;FBlBr~tB zvsd-=XNF;)Y&AXuZ9_aJ*7}M#6SS-|S{!$X>PZGAirsw!}D7j&LLLkjtef zXtrpQ3cfOcQ8_#7Nk!q!J9%|(hgZ(8R}5vrFZFL_Dzz%7xH7Lh6)Wjj>FFSqoD_Yl z8BWf73!QU5=&`G2VzgCHZmOJh&PMO5RjW7bHqX=8*U8r-axF`;bRU*454H$}DYFx= zjE_m~UsF0n#J7${FA$}j)FZOg6aw$}*8jTEg08)P`Y!lTk+-yK|69R}fsL8rwd{4K zn6~MDJ3hGhKAM=+!lI7M${k_i#rqwo&A5@m6XG49lf+hcBM4?ZGO;o8BmthqD_54m z-!swthu&8oPuUq)hxUb+;aJuo#Hbe{W2B|MjltH*(r#3kCs(p`m);B+eN4OIHx@4Kt)dhZc#7j z)YPA`$q+hpHL+MIzGP%mo!sp(+vK-?;qu|DiO_}%ql<}$RPkc5Sgbv#)rZCVv4dns zF%lQEsv7?IY@RcfG6iW?=As0$GrJh6cWnW51XTJjdF+~=M<6fGG}C=58Ne~Pe?$o- z^BamG*^dI_EUd5JmjNI7Y`nmdEXGJj!_*UR!qO?nDwn<_9uznZcZHiT3?41uNVvX{ ze-aA3!Oz#MTA`-kiqoE^<~~{J)M~N{AJpC6$)#ly32yB^azCahuKnuJ7T*t1ShBsh zN*RqtbN8Ll`Qb6PIuEZ#H)`|p6VCNVEQ&s|9OAZ==_T3I876hobQf0~C6=o;3ia18 z$mFqWkB}@AvANEYsEtV_r@tb{50aluCsYJOye7kl54dQ8R`V%|@UM<^Q@pla`0~`wG0=B5^9#PNh7nRIpAc7Qe#eH$ zQ%u`ACk<{;U)XJND*4GRm_&Wn9WX*VJS;7_@DEadka+}6dWTX?AP8wLL$kkU9Zc)Vid#^_$oB()%C&Vnqi)07$=91+5w^X zdcB~-u(n;Dc-(e`V<%Uh?p`zU9qH<5Yq)-%4y*2{A&(vaqo%csomtE&z6u4?@mZRO zt#d10U7Z>$mJKA}0Nppsczfi$0#Wh3*tM~tm1QipTs~#l(&sUez-E&2ktPouE`SvV z73sq6=IPt72}!wYU<{F4FDmGJwI?-I7Zw&aC506NPoc0TY>Ry1CGOq6h+Hrr5_5(S zeX!Qc6!0OW#BcYVPUh&%VfG7|$p~+y^A7xeS-rmb@LlZ?fvk;(Yk~C~X_Rm(Xj%_r zy8JD4Wyxe=1KxRdWxDOz!uv8_Jz0H3830q&rdA42Jh`3dCv4!(Fe`nHiu1{FJaZnX ze(i#1$l^{osuroELs;P>3!n3oICvnsWNgobb%xM#o*M>2&=fJGOAD zoKE?L_lri$ec(Ih2x?)Q>90tmSC_>W#3ATPjY;!|*mQUa zweMRUxyi^hK3<7>y0G!_Jk*Z6Y|e4zia{2KtC}MS7Nt)*SRn(DG8i$#)?Na?S9+xdzU6@Z;wrp*8z0QW~%YKQ@ z_Mac2pSwzP+KoHPo;a)63-$r!7g<6h~VR&|PosA67?|~s%b$NQ9PX)V= za$#mJGw1tU_2^dR3u@mz8P}Uu76O{b(QgXaum+l`sl?X)J40fvfsY>4I8>??yR;b)>!}FpaKc#`uD7 zUnlo2!rV#H_)P59S)3K7<1fqo^#ffqavlN;3(8;VB(3I=GH{zpma=?}J-lKY4jRu{ zbCeK49ZAfw(-XC*)SF z-E;nwi+FiBp?K^~^MHPgoV{=4CbPl$nH+Sr++W!&2e?S^iaI!W9;|$Y$$N~%-t+(^ zK(oP}&#Txd5WV~?WB*iJzNfh#sBeqsQo47Nk@4LHP9*j_tW47`a6bQ3KDKw6W*9lv zm27-hCU5J{hU&RvUWXV@1b;`nBT~`5_93Dd(skiDtm{vsA??yX^>+#NTWieoBYgw2 z^BjV+^IXbr*}pY+&Q-j`?NB=)mm=w^)zGry>OdbE9D_xQw0;rTD){gL2c zEq~i8OgjUYv(_+u-(C2QExM%ut(-%$o1*vXKhE>v7IeBkY`DJ0o3I{n2@DysRKCKI0Qu6GchA3#3Y&YK4L1X%Qn zzq@_F9gHjpWJLRLb4}DzQd7(@9@e|NS5iTg>{~UOj$DVqboZ zf={`;b;v{i7N!qJo9UwL!xk&H9jZ<3qmI-0CqUd^ueLmzwCbxQf4z0`0&o`Q(r)S;t3tQ_ zGSA7_ijD1oC}E}A6n*P(_ue*aRlhwt&(;TP?OF6C;rc##H7q#$e`|hxTCwj!O*Dhw z$Izn8U(`*S&!JFWc3hk7DC+j=$tSg%bcD7cb8E$|*x%KkJ*C?9!zz$;@(DEN#bP9< z{Yg9U7W|xxj16`d?ApRn$a11u(n`8ql@o(*ig(p6`xj-e<9=EIW@Y7#m4q`v>|qNcxR`K?(xCBak%1L0rzG88uz6KTr6`{;h8Y9zc2%pQk|8n`Yj zie622J(jk2q0(__BOtSI$(RL6%G&RF*BwoU{x16!k*&>3(=*s}7hGSud2QSJKeNP! z!cDHZE`y;Bsf{E(iOQZGq8?2-XeZO~uCgQTC||=}kGE20 zM#Xw-YjN<;*{|1sSJ9M53~5=`j*ayG=D_U^IhxCt<~)y##4W9Q9zF6X zR4A>GVO+N!ECRl-7~}7ZZfvzNd%PRjy;C&-ya-ErNWYoR$8G6##pG#f2H^Yh{*2kV) zP~+#kmfd-23rj29|LB51P_fvLDtqOj;){y3lJN0!t5tM>q?*=Dd(v0bxV2Fom)FoS zc9oeMymHzB?^fMd;qUamC0C9Kxh4ZWyLQ4^7XNKh(?2Z-7QQs(a&9kBupDEAMnK=Z z+quBbjaDX}ULF@SbTv(GMd8=1HCs&;LrzSi$iyH=VMku$L4zz*gad!NTs+OOcols; zHvpX%E{6@!sr+R#&fTohob@cQ7A0vnw?m@od@+_iy>?!ThB|BB}Rr=q$4jd1=y7^VE*aQ<&N|2Lff8_xd?XS4r?^MAwne;UqjqH9V@m?Wl&SD^v?f?-Omyh92n=8X-cltmQ)8VL$W z3a`ur1TKD0d?=Dk91kMqwJ9Xr6itkeZyaE_MkgacGn1yVM9{*7uqYx!U81sSh)>}H8=hwM@yjn zs#jBW+oXCLdwvSFzF*&lB@6`RK z0bzqQDn$EGB@uUM4i*2LjM4C*+<%{j$H>5kVD`5IR z^5L|n@Q`(7z$V_4dn>@cALD=Abyv{w$lHogNi^j^*%1IUpxjAtDu|HBunZ`15}=-m zWF*$$>@lSJ^O*qE5uL$-LXqlH{D(nsL~a?0Z-N+5`}V95B=Q4007}i{@e<4aCPWXg z?h-o8n>Zp+hg$?P8{l&O#l{A0+rxk~5wb=+WP~#^L5R*%jju)r@*pz!WM5SQngG8t zAq)g)#<_r=-~Ecc8vcg>+Iuw|98R=5R*z~xSpXC4Xbsbbpa@FD*__#kcm|BrQI8vr zC6Qo!F!q7y!q9-t9ckh3%vmDD34Sz_Y;0PT6^=G~K5U7A%OD@?5s(#*m%bCTL;&0e z#Ca_35s48Xx}^av1T1~H$~EuxTRFKH=0bF;(}`v5^BM%Iy8K;H*Ga{85zvaB{uPMz z3BiDhJWPjEAYtr#x0MMpftEVdzz<&wm~x~^E0X>PZt55Mg~@^J^HZ5@H^CmxL?^F4@xv~4v-U(c zA@+v%y;GH?PXA_l@!ar_34)OLmT!;U0pR!Kmm)aRA21)zo^0F}R7Wi7>b{kAj}ufDkauKf?er15PCXI0CLQKlN`=fB{pmnE_U?ngJ=`1f)BfkoGM= zKjJQKFrElDzX2p?FpxR~IS^v7bs!!*rEbW0%-T?l? z5c0&p!Pz2s$58qdgcwo4n;bX=2y_N_tqUL+;3AQ&NLAoZsP?3@b@c~c5_tW=i#HNL zGDN9$AULVvz=QoFh}gjSTG5B8^TF8X8u>BuIeGL8EB=0cqG?5*j$^e#ayME1V<h(ME2B)$UQ^6TfsHugNPv#xvbCyFALqEPzO?eVy^)~B8G%?YLrinGwN{E z$X6Q3Dw8{33)IMZTgbPd6`Kx2V@dIMa&7QL&;5doz&Nl4CJ6t10FRf zMWmlqZVix@9NM>fpdD#MH!Ypo3IrN7WJ4gf<)xC+arNlD6aqmzEqHQYAnDmkq3#C| z-Ts)p``t$`%cR>cu>4IH8Va;~|Db1_rd;IbsM7H1y}LtM!Soi1(Xhn+B-;K#BYZ?K z`Ctl~SkhC%_W^oA#QruXQ2(F^QXRm0_bu+D;naLbz&Z^)vcljH$o$?up&EdDQ0Hb5 zia>XDVR<^MOaX|s`k^0^&QFMbcCyZ71lZkwqC)iyYC`04R6JtkMz-u}bZw`+;u0{s z#mJI}NkI7#j7W%4w19$)3;9(5%d!I`uc&VFDZQq#sKQm1iu6h{@`wk9-ZBIU#ym7? zK;a95jduwB5xv-`#4?1gr(R=+o{dedj$$JbTtBdp$!VUkat{7N!U&{Humn(bvn}+o z71Xm5;q6?4_KNLH${i0CE?2G5MgTdyI#wrpTG;A~2=I_D#=Dj{et;C)pC}$?FJH^D zk8K;Qu6~MMcb^lF$EFY5qmrF8KmDj;Ug9j(ZGI3L>4%X=LvVLne6V zP6W}Us6S~x?LKTFDEaVht2I9js|-dQq|U1K2u7%lHBHvQp*_bl3@%A@5hm7*Y&d}m zP8LT`cqEz7JPXjRygVctD*~)Yd6*bV$9N`0RWiCkNdUzJ)NLG;v{4?2!9KecuxK@Y1!4ZFRiOTwjbeP}wPxR%M!o1t~cJFJ?Y%R+FP? zeZd&n-i{cEaA|HZW&SH^?|8_;vB8uP8!JOL5`Y@Twc$g)T)xHPUGe&=U=%r-w9r~< ztiss!If|Qget=!xC#5Zgm)94~9R1Dn;FtzT?3UrDtGxWl;qtgBmWLcvD#yjgw9bF- z!@>Wjux((H`8}z^cEwe!Nb;$W-`oP-magm5=>KZ(Ex@u`+O}ajr8}fin){|3k?t-* zx;t(_T3P`C=@gJgIz>uE8YGnN5b16N{)JoJTlfB+{lxdZ&;K5Wc%ZJeX6BkTYv!DD z&TH1S&gfZt@-$Q>nM*I2=|P`GRHmnj=zI2@Z{4f|KFYkhG=7QD@hRHvrf!Ax)KSW| zo9#_hY8EIa$L(`W3h0)TqvF6>BSLQac4LygK-oh1hJ-nWIYvL~MwRWc8_(|E6%ivW^BV}&R}GcX~)7}AU86)a*!b;us{&!ci03f zC}5iQ^X{y`-!+(ON)Wm-dsP}cJXLdVi7-w|vi$1;B1Sg7nI6ieP}1QmH5 zIu`X21vyLj{%gq_m=ComXx0$18s8W&qpGx(J%gtyOT#p(s0uL>8GEKAMbJVFop^+! zfcqS6;-VZDd_w$sf--6gdU9tTF<_I{0T-$+=MCwE4iGw)=r%T|?sK&JGeROlp-46D zhS+b%%V>g`-ymCRM+rB)2c5P;sgCj>ztvTl?=DC3d4NK37HZH)=wm#u#qqrQI>)y5 zZ7epozQGtmtnHp4ThG$IW)Jj|fz~x5Zhs5bEzV~*Hx{LeSZ=mUI&@Mv;VwUr@%N#* zyMfFSgS5=lSzwNL8Mil-Ion75JorQ;uhsE_(uEjI^^P7oBB*qX0~4_W%78?7TYnao zugH=5k=UZm1^+Qn#0H(%3&vSJDkFal!pO`AHbx<24e}Ewgq%-SMdP z+4RO~hg*=bcGQ`M63(dVIG7aj2j0HeHjmRf7U4BsBS#pcx-YOfW+2*P(374#4w|XF zS!CE6Pxw|VY71!&ELM-C_4sWIyh5&C%2qMfVc~i;b>QKLZxgaMWRzx4N zUDcI4OIN7a3}I>8r|l>gR|n0sSj~=4rJ&-Hck{dB$BipyUr>f-8x?4C(1<_949xT^ zRF2CtixdH|1;GUzuh0~R;^Adds7PYprAHULP@dMqMN=b^pbDcWktTvN^%_mMtFs|w z?zNe_<|rDHK5JEyGh0%4k5)r(ae>Qx`J-n#-@y#7?C^4?3IkDG^cCH$m<;_aThu-W zslgSr7ObGhye|i&kltyqFg-^Rmod+O-mT`u6I3XVf?;Zr5XjF2=@?Fd(6OaJ=vYApaXC*`TwUJ^+)FN)RR$XR&yRDT z+q4wBnflh$N;!>`2=i`x&188oXR)HA7SH6IG(T{h^idpa;Jw?diICRCJJ0{Z7<(Fq zyGCAsc%IOa!SHFwTy}9#3hZI%$oxUrHs|OVoeG-Ff^gh&v1@Uw;&b}KynG^Z;R*rgi$R|U&hWOJxy%PxNgA$4t~YcLlhn*!su5kZBk`cMpwwnhy4<`e zf4pC-Cqq*ljbL5C zRF|Y9{Mk|AMLW*>YIrr~9bSlJ=IEKbG`Y@`y-i8(t5vPl4^s__LtFkwDW+lfiQ{mx zUs|P{24oK`=g0Kp+K&oSANcwMvTkkV;%)>`Zgo)u@yyCk|SboA*}emtR+(B*{E|4 zrt?2D`Y>c_QcK#C&{G0_;|9`Cbi3cpNW_X z{|5g0xu;A`pW{Wepxs^Z*P7F|ak5mK9l|26=pU7j`;LTGocSMGod+`1#MHps7C~hA zQgCbhlCQ*^PxNdagh0%xwP*LHURAulTYYi+-r|A(KKHf)iRnO8Wx(l%22->gZ?pYe zeXZHX&QN0V1P)qlca`dq!mFtJZgPgGTuh&wc>0I3jk~s*5;kn^7hSIKlsNfaRcEfQ z&r5JlU`OSsB}_gLcbGdu?z`Dkz{RRj!xi?q@u=wh$59d>{*GY|E5YGRDG*GdN}v^oX`N|ILF(zMyDH*t_vm?vHx_r@nX>YV zUYucG&$fN#L|U%yrKit_oPskHR->3_?4k(P;~bkxC{22+?x3?7B0gS6N!>|PpUE9* z+Kb6X3}M%W4P1u})f(JN&LaCKdZ+W2Y0oFpqziJIL{mOQ5Ln+P?{{_|-u+Bl}a7yn{6tqShG%2`27xZsAR)xn5+!1`Xp;sLHy8NsO4vgogAX59(|y$C=Mr zx8-P-RS%fZb%~7TP4wmjM&{3oLhSH7yw_=tn@o^h(1(?>)lU&w7~zK<=)Y2C)K_95q-ya^T!pnbtYw@&By(aM-S zamz??`2aF?cYx;oP8s8`3o4v-z>PGURAYK81_i;Bcv6jf2x}cuechY%pv27R^Nsv zSFu1x;ajCA_dq2K1IXM_jAK1w0^Y@c?~gekU8hP0QTl}g;lcqPQl z*E&cZv#+VB(ToB}><4Lhm%hEY!%rHsxHeMDRX_XGw zjhsEBhZ|{T;_rWHS@Rk_je^~I06SBp4Z6)|yvd0Xu6Q_7<58I-a>Z;1k}TXdb3^q` zg{#hU`ut7YTQMNl7~nk^Ob$Y{4bzROt9N6ETCbYtSw+~n=ia=hOL{TbE5PCGeoQsk zWnqTTS7^;Az%L>f8M8AuIDJDZKMgC!Y>d$X9E2pcgXAWN zXY`;93PZ+VI+KyFZ^wMZZ6al3$iKs|;Os!>nC87)nA-mNNTnw3t55wU3Y#&W*eQ3( zm(S*_R&EKeukR}NtFt`G-y5$fcyj*mzNwY|D?Z|s6n@XAZVo4nLX2kW>*qvOPayiZ zPR9KSCwV2I2btneSYT!Cx4GrsIs5GSI}g66rR^({_dJT%l^%&c>IsmZiO<8gA{%dz z&s0>Foyy}mD>Uj+j^ADM9&hi~Z3*=MY_7d|JHFaoXV{y}aWV0N(eHFCc#o2q+iLPd z4=S?;0bG84ev|S&htU%b)otl@?R9IM(d~T~4cOq%Lh}6ii6JcW3&B>~QHBwhpLue@0=jynV&p!Erslc#` zwq_Lqk&-*I6s>7p+mPf0BCZ{YO)4eNc_i32r^lSg=|#vvMOh6@cM`SOaAD6O$~N!Xvoy^rGbst5{lG_X9Z zFoBR&`NecS=JdU#T>^Ssd1ummkMEGBekN-W)D&siA~E$jOx~i9DX< z=Bpc9TH8BEP)O@I5z#*ie`Lvks*uNwTAdbGc33;EYClX?C1shY4LP{uXP5<%5YIVz z|Kw3v_g2dArQF7txJL^HBwOg2b)9&g{+j~teKIo};R*`5-OV0$=k2;2oor5V`ix&2RnJBkuQ+gI=F$kW<&URo=OG+L3B&jF5#w?RKH<*fE@S`u3qStHP&XI&ni9>nNOQh)i?0Ogea7w92<5 z(@KS0i=W}+1hI;(EM&RLne$7YOwPc?MvL5?2xGUmdDjqXrgv7WOXU1PZdsG~;6wfH zd}N!A25WOPnD8czwHeaYZU2zRmWG*`9Hj%V=k4_5Fsxa1a_c!;`zEu(Zq{+vgHCV~ zUGf9l6f?Sfp%~)}BgJxJM?nnE&6;YtS2FJt)Fq2xi65VjU7fp~7WwwTbec-5C0+lcK3LTfy-eO~d+OI-5|IRw#&%gBjz-y4ThC!n&;p7I3I!W9<&Td}NMXg3|Y z*|$xe4h_7*;=~vY;bfH_v*I-y2zgOx%PF*KSc1mn>Xe-j-$(p@DEYv7UFXTM3E{xx z2JBHi-&wf*q*mn}`tAMhAY*$a0v#`&#x>he!_9*>>wWyA>7ycX_aH3#T!ZN&R`#uHwx~zUGX^@q37!QY_>|QQ*DUM2vs(5$L(d^yQp?ir)Ce%ySU};>yt4js!o4s ztNo$ZINI&#mG(_oTvt$!-7|;qvLqV4UA4yMo=xM*hILjGga(cck5TkM#^;mkc#}$; z<7-h{&eJc1(Ao=J^{H7C17G;;6E?Pz30YE7*Y+7NGj02s+b-VfT@1;>s_3x5M9E@l z1Fa3+#6GR=pqmnY>A91!fFT}>^ceIgWF=4!Ls_7NuVz&A!{I2|bKjQpbBC}RrmX-TOz*f0VP^I*eea{dM*A^x z?K}bW@JkOY9C9B4i;Xt}ez4v>8bVW?{h^KxmPXk@UFpntGK{*Tnk#azI6NiBqWFyr zD5a42UgaD(t;UXKS~_nv*=ydOHZO6=pZDtxP@mwpB-p^$lWI`fHn$?yc&O#giKhMP z%4V`e?6GvS&tnAMLM*T{I1MZV!WD#NXv!}k40Ot+#R{OfsC^>RiA#7CU?Rt-<6|o`^|jSa{t7OS)b(AzOaNq%Ncrg=ppx;%#{nDgXMWW zU-`K(tY%mj4Zqb$8=%AuE}y(}p&mRMTb=OEC{r0PKd*hgfY-TI;OsM*L#K4XP^0U| zclAabPGyjogo!5!_TFrz8feMgq{74JeGk%YmUXF-tta;AlML}jHP1?U+|6VU))$n=ukqQw zn;gSg^6Ed(J9%q} zc%@bKlAI3r2XP1lvu+>jhta_$AwVn(C0a)o{Bw%muDg#Esg zo(h?-9LI7Zbdt zlk!1s#~f;okRhz|MilG(M=pH~4yI~B zYu87YZ=B}3qQ?bmS z*UqZR(S-S@d#r^u3!~E;Pscnirg4vpM93AI?nl&`55&Q8<_WnyuG; z`)x9+)qIfUej9ZxF=~-Mi@S~NDDl}*p!^tS%rSv0!iW}W;n)#{uYJ;ad)O%AOL&2I zmlkzqs$oUe%Q_;KpJ7q2fZ@D zWSeWcu(jXLH&Ja(BGZ$dP8XW6eY#L`wb}=7W_&gB&BQxs@|fX^qFecCtkgHC@8LW!U$khfM2--lOtR0(ImHuMa z!0=K;4kL{WHTjCtOmF0&ra-Khao6cb1nsc?t=P|$hxSKqAm`I=&%B$7zG^xBW1?rt z48S_;N&1V12T$yVuMmHa%nGJdR|+9D7+eG*vPQr_LE!-Z>WJFgK}_u+`fBbDrq1_S zfPJdj(alz^Ak6mTyE7sd%r#T!Ik@~p$qjxXMR$cJpYN>>q=}v#DW}Q><{l8B@_FuYNZb*sme=5^5l zSYBf<2|;wkdmOsgTD_5oKp840$~oknt<12_$|kAUW`y>u*Enz^Yx_n*`^2`7{oOPw z?9j(9DDX68l48O_Bo#lWqTNf<2ftPQv?3H0hKwSkEx$0Ys8(-p@9-QaDn-`u0ZmhQ zz3@y>$N~?$-?_f1ZT#`Qbl{G!u3({lY!luiSb|+>AWAJP6qGWM!okqk+R)sT)!Ed^ z)zaA1nbp=5VrXIrF=REicQR#maI$wWb%Iy|7q~dtK}H-rrbecmU=B7jBO`Vbc0)EZ zGj2AJ85@Y5i^aj&*2LH$Tva}D0)*K}y-O~^8z3JaSz^&CGcAh2jK@%KTdHS%mx+|W zx+C!Oc`}lU+F=>@6Q;Rb6YI%>C|U`REF57>jJ?SYDgxJ0B0g?%f?(a`!^` z%}F5H1ERfbKKDE2Rj@d%-=)lPRBpXS?NT;=5-gyo-5mohyJB@U8z{s^(XWS=Ut_Dy zzwL-osom{s+q`8ORGrAMC{6fyw1~3x*s$N|#VrY$bt{o3bBjQMP*}Z0jRpzqAc_{& z?%X~K=Eqjh6?aQ=L`6nE>d>Yg)?|mzHqI!)d#tL74mJxALsWL5^Y4ziJu5St4WLw~ z_N;Nq;&>(aDkgem{Kf8bv8a0wg#Bt%D*Trv9PR`tbRkXjHpcT z;Z6Q63z6N*jPhF_AITU8VR?Zwep7vB_hpaku#&pxLjlxMFV$s2o~(;*|B@a zc?(s@N^beL&WhBH6;ce)2~6kG-6bfhU7JZxxnKAwCQ~Me#aEwS@cn%aMF?{o>lk9Z z*=N^HW66zs>nQ2wUOY#B796&VCX&eustL!h#!3=!TomRyTu|f7uZTPoUpo)rlG@!s zaJs8#KrmAktzYI@F3FMNex~t`Jb_WUR}(drRoLuvIy85G)mZj0TMeli@FQ4)T{ehJl6! zV}Q^QkPU*RpiN=nV4&flKqkK@gwD`}Q`azca<;U$;{&6hu(5!-Sa>)jqVg9qjxZA0xLkW@rUmk!Z(E&H z?x`5grc;cPFO-j85}FKQ>*$|q5pp(2_GNONTKj$|;}L2hX$@x|A7drFq{FDp3m9p& z6MJpQ8IOOdof_t9JG%Q^7LD-=)oJ3H!9YY5XZr*75Q@zHkG3eC(q7<1b{neIkO8)P z&tKvAV{P&hq$Tk=WiFp(j}H@oT}pzysY-;QC4!IW+&jxBmNW_8`jDcRRYm7&R5n&5 zY!>G2)VAdd$KelLWyY@~=@Yss!oWg9L1!6*3_<9?L%oRs4SfZCJp%?h7=&?sjB|Yq z4}t~$0o}YlfewcchbzARy!0Tt#~;kB9F~_ynYM4+i2)+NzDx~A2*Q8(*9m^?hrnZi zhI)?PFuSn1v*_gPVG`SX>|{2^wshCUs3c^4Z+Lu0qcXks9WGrRT7rQtww%_|d%*x{ zajgVSOX7UVHH~)n7uaLweu1;T$O5s;FK;nXGzwPIJwDdIqFP7@Bwsb%4w;*6F_*5q zzg~gNuzqXvL6f&I<9_WePFwxQ&^6LJ>Co^gF9c~@dTV^&?AiynpP5*!`!UC^->p3h zC!03fZBjC?wQ1bnCAYr8g^2IV?Ny*->#>V1VGuBS8?H(AT|!fO|p$TuDPbcv(!eOMT@@9 zIeq+rn`pGAa3?i5XNC@%u{i_8_O-yVk# zQqWSbBbf-P#JB8WU>~$aV6;46VNyPJZfFcDHwthT@kdDP%U*Cn zG)o&Z_}dih58Vf}R2K;QdK&#Q?IM8?fN2*78tP9|^EG3;Neg!ago1#?hybuUL|9mm z`?vo?L&MpEtU)y2jzQ4DgccBp10O4^y|J^y4`dD``aKm)F!$F~#)j8i&-sUhtlu8@ z*9R>vc1`p|MOciTARs@#>k5&>d4L{(_%e7hxPm#p73E~Z@z0iH^XI(m|9oD>>nc#d zNr5ClJP0V)L_GMy1_}la!~mlEc8@U7_@vhra|W8?XIjfDs-$||o?mmq{(J8m;%($f+1Inu!husqFrO^daViYuAv zVPR34lBY|dJMLJ1BeFjKqz&65z5hqEwO%K<}b|rg_(a^L;hij_zN??VbhvKAZnR}Kn-{75=+ zKv+Q6heN_a(F6o9fFwff?ZB8{NDdq#4x);wiLJez378B-dYudf2T$J8*va16-VD%{ z?42C!oeUv>j`r<3?Em5V-_p+aUYgLoDAQ`Uq}@EveY0rE4d`JT;&$kf7H&7y)_PnG zCFUBbH$%m-O~aI=9t;F3QDDoYG41vUJIr}g7rwLg_TG11N<0npG%_1q4AtP1P#cWhj z^)OylzTv!&j*}yN&$C@!6Whr}Hj5o8#;QB%FP-Eq(w;uDDTQvtsv@OYL)#L3)zalw z6!gLj0W}7Juxe6~aWT=W_8aYN16r!(2RieYeCK!dXSdfeaD776@lHz)1RweV<}40~ z;zx>#`0$IU_$P|$_8a6mfb2k=8SEM0VAkJh;!jl1*}{;G+3+`6k=fXp*&GZoO`AVw z`-xrtAF|0^8>WC02Z@5Xe^Y4zatI6kFL6U81O#)x8_;mjAiuzGgc6|I4?wQ}B-K{< zmJ0+EeD~Xp|0Ak>O%lG-?dw(5*G1J=)_vpproOBcU_ekm;lLNV>1Je1?q+CKAtQs* zbuVDPD|NpjU0pyZLdE%0_EUDHdYG2+U6(@(7H~&S6QRhgpCe0kt5ppQ#Ph)Y+@OHb zNNA1c;S_=`M9*P#Z%3$3Vn_UDvv~8``((p)?^BK&31LT7!^G3Qdl@2dne|A8CtKJC z&@@7+CQIq4HdCFb@Pz8i_T{N0#v{!NuKc`tq4E`3jwgSe0g) z3l1)hO5NN>gZ$V(HQ9eMTUtrJ|x$eOeA68 z>`S^w1<7Mo$!I|{X@?UirfKzwKEJ1GO4s=S&zeCXRQ3iIQff@pOh}rWC-GyaV+T9j zT=2ZPF=||ZIY-9y9akyLVh{CRg;WSU@0*~`jq;@Qe2yVvr{&CSBy_BBb6o=u*MO6Y zcAFs+vP#W6YTIOl>+O&_Q0@X}f>ApZsk6V6=|M~tDm-nCmgf>xF@Du{q$1i@$W)xL zS$~DSh0nx(ReIeU@PwHi&1<*_U&DGHbIdXG>hYZ}iUvLY791h#_(+v3GBJ;|%lYGb zwe?y#gdVhB2xE;t7_>tM`)?m|Ot!wmg4ZWl|FkOWKeEv}Y4O%j!(gzp+KRYS9f3e3gMBdIrE zlz-_PU&LN6gYYnwPCb6awyi{7Q-?C3f8r`}j9zc6xI0+>srHeL%9;|UXU_xCXysu# zrbasPP&7YkZ3V5{1;F=k-^h{I`rX|bDs|9v;O>(Wk4!|) zpaHq{IC9CoRlWC7E_N`p&tg&aQO670Onl}2QM4dSa_qlB!gBE~OI2 zdlIhPspOxoaSP!2xmF8}IuEuHW#rYS4(k?|du4hMgU~1o9jHV~MO_zc!HH8<1Z!$gcqe)a$$Z7LGzV z3VJP|&0rM!jocni>wD}T{ww9J$D;Q+K#d6116%JvexV@OY{-9O(tyGIM~eW!!wKgP z4aN0p;Nt=B(=vz76-eQQUcmDT7yd`t#J%iNOBT1DmfoG~(jlrN8tg;lBYTKAeEGgS^CY%rn0(%kZ(MeFXhOsCoYVzK;73PKcdz|?fN=+ZK-g$ObKgk6g-xyPzDo0@M$)be_^< zWct$^fc$Yt{`kDn!TvZXz)6Jf-R9bbk9`dC$KJno;iLV~2Y|_r{SUdJ;ef781vD)g zaDf;G8X5uhi&S_b4vk0v3j$xWiSPXfcm@=P&7MAqApw)0&ljFOP>+8)X}$NxZ!EE{ zAKo{l_HEK33@(iZN5&)-93p&ExBw<&_F$kpffpeL8|cSD061gGU?}eED_F3O3v_`t ztciw7SezT$`R){{Dx3)wjrb#lt@UU41!wyOfczf*$QN#cNPZ&%xT@~9hQRJ2;~&;g zqi!+2m!4%?V?_>@5>%YnU-xFN3Qcf-kHA`DlRfwUj!?ntPO-xOl zD3~cE*)#kxqyW-Y2e>vfzY?!I#BWU~D{&}c(d(D6iQ8`eOuYOWf2=eC2=BK_qXT;; zEU(LEy55t(0{*?a-!4%6SY19q`vrIpDh`;=n4SV?M;?lADSs;hsG@|u6NRA*#KPXm z(gWDC;NombVQ**S4y<6guJgj;uzt%zp>AjC3hdf2wE4QL;d&>LnWgcU^(TeMZ)HH- zzif5j0dZVEx9gwltq#{~UoaaxCod=OJ<$L5`};cwPKP14UO6wRn3RH+8rmmo$$;-T@ zoTWF6WTP_lZwn!}3-{8;r%)CfbWqe>TO?iVb>Gq&Lw{2#9`l;%Q!)XgClt4b2>XM1 z_Jw^+V&4#^rlZ5-y9*ziLyR8lL&?szO)t5Kv5D}JIoetFpt?vP4R#MP#trnJ*WIx; z3D=bWjDzJKxT&Xh#F35!y^l$YKp-=*d(*?rI?=!^dwhF{#ea8a8+lEv3(sl+){gys zQMx)*#}SfMY@Pnp9Q$sd!Kuz|tg6rWd-WPt4{4wL#`^p!Kz^lv-Zk;#wh9E0?YC7R z^bI&ekbdU<3>}a*NE4)vk8Ejsy_3z{(hNiiA_pNNz%!!5!VtsZMt*!x99;Ay!n(Ep zq16W|LMBfl77#5y_186|jlH=&3(!w3oq>^Zy+eo9)%nZ0>ymz7w%53wSxQN!t6~qo zSwm!VMI1~(B>HJ2epxljoSc-wE;E^XF2%YT_u9#wdZVLFb=Gm#IVc*R(VW=?giEIJ z8}BEdy0XPREq7}uN^UA&0#mm8#cA9_F9$YK=V}-28uz@EyQv)|vmJ#`M}Dsa^W0B~ z=Y~!1u3+n-@nYp7Wfu+a>II&e!~qG`fV^{-x5TO7X1>1Bhh5>5Ify1BVVYmnTe^wZ zgdB(UqMJ>KSUba$(;vfkhS|yjmNge5o0~EVn+0!Hf8bdgEz{*wv=WYdZDwO!xH_JV zf8aM5hl}pr7soL^6zSmX=b7r$m}odA9+DW=WO1&YE^#}AiE78jo`TVGBKuh zqtD-PmuFcqA(7$U6JXWI0{|GsSMc(LFaIEIp)7XX^>`?iDD6+H#{cbu`+5b+1p@!J z;QS4|0Pzku{t8}hKVtKLI-$^kZvBR`WXRMPWOrZp0BI#mq8Z` zI2N%*!dnL?--cpKu#)dG!Ih=2e=|;B$FgBuIo~ggsu6W!MB=lai?}f3t7m(M=fhKk zPawB+X-SPxp7WY)*>fd0Bj0ZohoM+ZLF!xmg+#@$N~7?b=XcH6J+{Z(8d? za{fW!{M$h<$94qzD&eI7v|Fv7NJ8?bD7Ea;SKa&{4l7b*=N}~zAHH5?#~qpNcsTiV z>#`wQ)5-0iFTeK^`7nmNDejR~+tfk1?1y(N$WQgF1Kl}89~2R>MN+r0iI8Zc7YLR2 zo{lhX*N!a>-?YWzi$03!N?nxNs#it-z?BgEpe>X8+gj5N;3LjIt`(sX{?d(X2DCh& zg6V_qgLHmmFLEI2Z?FXTND03ANKIIr-EEDHzF>;6gENTsdmxN{bt|g+g!}-1UR0* zh=G6M21oiLeB8u>0}wPD=&RrMF~Z_tekUx=@$&tH z=i|T^bsa$r(`1GOW)vC-i9}ECJMNt%G$3D)K9%fRSa||_-W$a_f?}hcoVV0)$%Ru1Hl)5#T)(GI@omZp;TZckOm++D;60RSp%7te+gq zcr@+zUBHfxAHn8hEUF%(xNNk$uoRjF!6nt6AZX6FqaUr5PHdzQk{8x3@YTOuT9 zhUsnfi#;3ap>#A1BAenMBg+egpq5Y-@C%)>E{MvarVUlIy03jV!V6)US}Ir5jSa57 z_&C2?Oc(Wuh0r|jOKI<7(qT3R{ZTd z0oaXNs69TawkrFN+hw6C-{7wUXsK4vk6QTu6wuwd22^r5UJ&k??MH`)GiGY`^_a1OXr+`d650IAj>OAy1iV*pag zzM>^y^vnL9pR9uTzo&)y?r;Ip8d@6uT?I{@{%JVn`U9Ni;6N9o2lbNJ;gjj}gA3ic zpgeE>0H=S6w}0XLm3UUV^YS_H{*hFF{%u*xzKXhBCkJEJMRj^lUI~RyKBfp-VGWw0 z(P&6xn6J2K&QLth`QIBg%f#X>`%i|d*jFS8?$Ki9@QAd|T??Vb5xy{JO( z0wu$k)7z7>QXqd^MW7um(poDVynOW9S4==cm*C!FHvh2Ytzk;<`G@8{Mn$y>EO^Nu zQ>jaJu+|(4L{8D%c?vSo`m4$(gpxfvsM;WXvy#ZcZ$Ce!tsseC4MJL(UV|9e8RTeq zpmmCAO)Z~F;XeD=JOkC}R-TCKgiABqfyG1)CEO~D+ip(UONNjYrLU_NCbY<|>wA1r#`K2(koN4f1p^XffF zu?$57#^Tt`X_bG}*H6cl17z@#>9wVgxV7J)C6&%c<9ePk zcqNLUQU+M)DUIgDmpz?Tve67nL7Qq?PBWYyAL%|fh{;{A{pJ*aIhV7F|xs`k&$RA(udy^m| zfc^1VfKv=#l-}(7UCf6JbnRQ8DWL-E?A@gexL)&sO^ZWpXZ__kUGD z{ztCRuLANDk%;xiYC3xOpc+=l3=~dn0wF2LC!H$jBPvQ32WBkuJV8&$!Ci(M!pZC# zlbwxQ+XKN`Rt#Qd_(a|^&$7|&YM{$y>EZ_>`cJ2KUd8uClZw&o;c3yl+i>sNSR&=~ zPV-l%Y;B~#>luTGVq(VVkq(DKhY`8QpS$@UZ;DDHNFTav8@3yXIvNpquui%7#j7`n z!_;0|@B|bD?6Qvbg^xZ5*((g@BKkdyLLtQ!Qoe!r$}PC#X>~@29Aru}n0E6nDnE6& z?g4Z4q5v&-Dq=*40PsP`I+QA1)Q8!klte^|5_%T0RyfBP%Jt>1J1XD|qc3clW?mXK zt>+FkM`rrtkpFiDWLZMbI1eK94lb`U$3@3G4Y?`}!8WxRc$rq&G0lCD7cjVYUaUsd zSk#IlFPL$wpG43O1tp|@6_CG;HI93r-vnf=yWx5#Os2&H;RG6UXYo!fVex9Rix0hI ze6gv8I`D9R3CP!a_b&nY|Aj#QcWaqn0`m1sc)tYXUjj1lLhk=U@7FH@`ImtFOF;f5 zApa7Oe+kIH1mu6gQ}#Hny;7VCx60iHl z;4P0B#^ppGY_Z&yj&Q*Q8hx(kN7VI7vd}QNP`E&pBqXTocx7m~tRhT6Y%W|NUKuKI z_QxN6CsP||R+j6(f6h1=n&XE71oSFEgo0xJA(uK(oT|Gs#MG8W#l;Q+>^Wo+wFmYb z+L$`2evSCWqHgDGXl4pXw$2Ww#(ykY4EXS1WoUR_8c-i+xS#7(3Y?LX78O@e6=zY? zQu{gMK5OOuSS%>0b|4rO!4GwE0cxoxC9NXHtR$kMrp>INs0I|H`g0*HK#N%9woNbr znHhlJA6rC-2nyPikc<7x8LP*4_kp`d;=v3Tp>F#&uS@{cBd zz6*gL?jk_uyNT;KafS{K|H3CIf4Z4D3U#GckLKk$Dkvx=;AVcbM6U85So-On#sN!S zu@aKIUo8p#a8KGU-z_;q4DCz|olL+ipnvuW{bcIr=KIl9PU3%J>ZkVm$ENOP{K?e6 z|ERcue%H|u;=cEn4LFI0ni;nfmv8++ThC z_V-cSLHD1S`srEyRmjlaO?{Sy{;L3@e}v5I0)CFK`FjDF^3ebHqiz0f{;$I?{%+nu c5&EZKj7qZb2-nvMfj_>$)K-`XkOip!5BUZA@Bjb+ literal 0 HcmV?d00001 diff --git a/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/System.Runtime.CompilerServices.Unsafe.4.7.1.nupkg.meta b/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/System.Runtime.CompilerServices.Unsafe.4.7.1.nupkg.meta new file mode 100644 index 0000000..9d1e541 --- /dev/null +++ b/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/System.Runtime.CompilerServices.Unsafe.4.7.1.nupkg.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: cc338a90e9107fd439e3950da6095606 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/THIRD-PARTY-NOTICES.TXT b/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/THIRD-PARTY-NOTICES.TXT new file mode 100644 index 0000000..77a243e --- /dev/null +++ b/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/THIRD-PARTY-NOTICES.TXT @@ -0,0 +1,375 @@ +.NET Core uses third-party libraries or other resources that may be +distributed under licenses different than the .NET Core software. + +In the event that we accidentally failed to list a required notice, please +bring it to our attention. Post an issue or email us: + + dotnet@microsoft.com + +The attached notices are provided for information only. + +License notice for ASP.NET +------------------------------- + +Copyright (c) .NET Foundation. All rights reserved. +Licensed under the Apache License, Version 2.0. + +Available at +https://github.com/aspnet/AspNetCore/blob/master/LICENSE.txt + +License notice for Slicing-by-8 +------------------------------- + +http://sourceforge.net/projects/slicing-by-8/ + +Copyright (c) 2004-2006 Intel Corporation - All Rights Reserved + + +This software program is licensed subject to the BSD License, available at +http://www.opensource.org/licenses/bsd-license.html. + + +License notice for Unicode data +------------------------------- + +http://www.unicode.org/copyright.html#License + +Copyright © 1991-2017 Unicode, Inc. All rights reserved. +Distributed under the Terms of Use in http://www.unicode.org/copyright.html. + +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Unicode data files and any associated documentation +(the "Data Files") or Unicode software and any associated documentation +(the "Software") to deal in the Data Files or Software +without restriction, including without limitation the rights to use, +copy, modify, merge, publish, distribute, and/or sell copies of +the Data Files or Software, and to permit persons to whom the Data Files +or Software are furnished to do so, provided that either +(a) this copyright and permission notice appear with all copies +of the Data Files or Software, or +(b) this copyright and permission notice appear in associated +Documentation. + +THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE +WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT OF THIRD PARTY RIGHTS. +IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS +NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL +DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THE DATA FILES OR SOFTWARE. + +Except as contained in this notice, the name of a copyright holder +shall not be used in advertising or otherwise to promote the sale, +use or other dealings in these Data Files or Software without prior +written authorization of the copyright holder. + +License notice for Zlib +----------------------- + +https://github.com/madler/zlib +http://zlib.net/zlib_license.html + +/* zlib.h -- interface of the 'zlib' general purpose compression library + version 1.2.11, January 15th, 2017 + + Copyright (C) 1995-2017 Jean-loup Gailly and Mark Adler + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. + + Jean-loup Gailly Mark Adler + jloup@gzip.org madler@alumni.caltech.edu + +*/ + +License notice for Mono +------------------------------- + +http://www.mono-project.com/docs/about-mono/ + +Copyright (c) .NET Foundation Contributors + +MIT License + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the Software), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +License notice for International Organization for Standardization +----------------------------------------------------------------- + +Portions (C) International Organization for Standardization 1986: + Permission to copy in any form is granted for use with + conforming SGML systems and applications as defined in + ISO 8879, provided this notice is included in all copies. + +License notice for Intel +------------------------ + +"Copyright (c) 2004-2006 Intel Corporation - All Rights Reserved + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation +and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +License notice for Xamarin and Novell +------------------------------------- + +Copyright (c) 2015 Xamarin, Inc (http://www.xamarin.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +Copyright (c) 2011 Novell, Inc (http://www.novell.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +Third party notice for W3C +-------------------------- + +"W3C SOFTWARE AND DOCUMENT NOTICE AND LICENSE +Status: This license takes effect 13 May, 2015. +This work is being provided by the copyright holders under the following license. +License +By obtaining and/or copying this work, you (the licensee) agree that you have read, understood, and will comply with the following terms and conditions. +Permission to copy, modify, and distribute this work, with or without modification, for any purpose and without fee or royalty is hereby granted, provided that you include the following on ALL copies of the work or portions thereof, including modifications: +The full text of this NOTICE in a location viewable to users of the redistributed or derivative work. +Any pre-existing intellectual property disclaimers, notices, or terms and conditions. If none exist, the W3C Software and Document Short Notice should be included. +Notice of any changes or modifications, through a copyright statement on the new code or document such as "This software or document includes material copied from or derived from [title and URI of the W3C document]. Copyright © [YEAR] W3C® (MIT, ERCIM, Keio, Beihang)." +Disclaimers +THIS WORK IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE OR DOCUMENT WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS. +COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR DOCUMENT. +The name and trademarks of copyright holders may NOT be used in advertising or publicity pertaining to the work without specific, written prior permission. Title to copyright in this work will at all times remain with copyright holders." + +License notice for Bit Twiddling Hacks +-------------------------------------- + +Bit Twiddling Hacks + +By Sean Eron Anderson +seander@cs.stanford.edu + +Individually, the code snippets here are in the public domain (unless otherwise +noted) — feel free to use them however you please. The aggregate collection and +descriptions are © 1997-2005 Sean Eron Anderson. The code and descriptions are +distributed in the hope that they will be useful, but WITHOUT ANY WARRANTY and +without even the implied warranty of merchantability or fitness for a particular +purpose. + +License notice for Brotli +-------------------------------------- + +Copyright (c) 2009, 2010, 2013-2016 by the Brotli Authors. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +compress_fragment.c: +Copyright (c) 2011, Google Inc. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +""AS IS"" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +decode_fuzzer.c: +Copyright (c) 2015 The Chromium Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +""AS IS"" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." + +License notice for Json.NET +------------------------------- + +https://github.com/JamesNK/Newtonsoft.Json/blob/master/LICENSE.md + +The MIT License (MIT) + +Copyright (c) 2007 James Newton-King + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +License notice for vectorized base64 encoding / decoding +-------------------------------------------------------- + +Copyright (c) 2005-2007, Nick Galbreath +Copyright (c) 2013-2017, Alfred Klomp +Copyright (c) 2015-2017, Wojciech Mula +Copyright (c) 2016-2017, Matthieu Darbois +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + +- Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + +- Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS +IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED +TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/THIRD-PARTY-NOTICES.TXT.meta b/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/THIRD-PARTY-NOTICES.TXT.meta new file mode 100644 index 0000000..62df69e --- /dev/null +++ b/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/THIRD-PARTY-NOTICES.TXT.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 9719244d53e68d045aa65b995fa18cc7 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/lib.meta b/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/lib.meta new file mode 100644 index 0000000..184f1d1 --- /dev/null +++ b/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/lib.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: deed52b61979b434899e9a29eb4aa354 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/lib/net461.meta b/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/lib/net461.meta new file mode 100644 index 0000000..d0a183e --- /dev/null +++ b/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/lib/net461.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8d464e46705c3ae40b547832ff591fa2 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/lib/net461/System.Runtime.CompilerServices.Unsafe.dll b/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/lib/net461/System.Runtime.CompilerServices.Unsafe.dll new file mode 100644 index 0000000..5ce9dd4 --- /dev/null +++ b/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/lib/net461/System.Runtime.CompilerServices.Unsafe.dll @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f6ef966d019b1c406659ce18f3ab00c3c7c9334e4dadc0249bc6721cdb77ee9a +size 17000 diff --git a/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/lib/net461/System.Runtime.CompilerServices.Unsafe.dll.meta b/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/lib/net461/System.Runtime.CompilerServices.Unsafe.dll.meta new file mode 100644 index 0000000..57869d7 --- /dev/null +++ b/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/lib/net461/System.Runtime.CompilerServices.Unsafe.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: 676dd0e23f1a27c429fb4834b8d21f24 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/lib/net461/System.Runtime.CompilerServices.Unsafe.xml b/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/lib/net461/System.Runtime.CompilerServices.Unsafe.xml new file mode 100644 index 0000000..7aa4e5d --- /dev/null +++ b/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/lib/net461/System.Runtime.CompilerServices.Unsafe.xml @@ -0,0 +1,244 @@ + + + + System.Runtime.CompilerServices.Unsafe + + + + Contains generic, low-level functionality for manipulating pointers. + + + Adds an element offset to the given reference. + The reference to add the offset to. + The offset to add. + The type of reference. + A new reference that reflects the addition of offset to pointer. + + + Adds an element offset to the given reference. + The reference to add the offset to. + The offset to add. + The type of reference. + A new reference that reflects the addition of offset to pointer. + + + Adds an element offset to the given void pointer. + The void pointer to add the offset to. + The offset to add. + The type of void pointer. + A new void pointer that reflects the addition of offset to the specified pointer. + + + Adds a byte offset to the given reference. + The reference to add the offset to. + The offset to add. + The type of reference. + A new reference that reflects the addition of byte offset to pointer. + + + Determines whether the specified references point to the same location. + The first reference to compare. + The second reference to compare. + The type of reference. + + if and point to the same location; otherwise, . + + + Casts the given object to the specified type. + The object to cast. + The type which the object will be cast to. + The original object, casted to the given type. + + + Reinterprets the given reference as a reference to a value of type . + The reference to reinterpret. + The type of reference to reinterpret. + The desired type of the reference. + A reference to a value of type . + + + Returns a pointer to the given by-ref parameter. + The object whose pointer is obtained. + The type of object. + A pointer to the given value. + + + Reinterprets the given read-only reference as a reference. + The read-only reference to reinterpret. + The type of reference. + A reference to a value of type . + + + Reinterprets the given location as a reference to a value of type . + The location of the value to reference. + The type of the interpreted location. + A reference to a value of type . + + + Determines the byte offset from origin to target from the given references. + The reference to origin. + The reference to target. + The type of reference. + Byte offset from origin to target i.e. - . + + + Copies a value of type to the given location. + The location to copy to. + A pointer to the value to copy. + The type of value to copy. + + + Copies a value of type to the given location. + The location to copy to. + A reference to the value to copy. + The type of value to copy. + + + Copies bytes from the source address to the destination address. + The destination address to copy to. + The source address to copy from. + The number of bytes to copy. + + + Copies bytes from the source address to the destination address. + The destination address to copy to. + The source address to copy from. + The number of bytes to copy. + + + Copies bytes from the source address to the destination address without assuming architecture dependent alignment of the addresses. + The destination address to copy to. + The source address to copy from. + The number of bytes to copy. + + + Copies bytes from the source address to the destination address without assuming architecture dependent alignment of the addresses. + The destination address to copy to. + The source address to copy from. + The number of bytes to copy. + + + Initializes a block of memory at the given location with a given initial value. + The address of the start of the memory block to initialize. + The value to initialize the block to. + The number of bytes to initialize. + + + Initializes a block of memory at the given location with a given initial value. + The address of the start of the memory block to initialize. + The value to initialize the block to. + The number of bytes to initialize. + + + Initializes a block of memory at the given location with a given initial value without assuming architecture dependent alignment of the address. + The address of the start of the memory block to initialize. + The value to initialize the block to. + The number of bytes to initialize. + + + Initializes a block of memory at the given location with a given initial value without assuming architecture dependent alignment of the address. + The address of the start of the memory block to initialize. + The value to initialize the block to. + The number of bytes to initialize. + + + Returns a value that indicates whether a specified reference is greater than another specified reference. + The first value to compare. + The second value to compare. + The type of the reference. + + if is greater than ; otherwise, . + + + Returns a value that indicates whether a specified reference is less than another specified reference. + The first value to compare. + The second value to compare. + The type of the reference. + + if is less than ; otherwise, . + + + Reads a value of type from the given location. + The location to read from. + The type to read. + An object of type read from the given location. + + + Reads a value of type from the given location without assuming architecture dependent alignment of the addresses. + The location to read from. + The type to read. + An object of type read from the given location. + + + Reads a value of type from the given location without assuming architecture dependent alignment of the addresses. + The location to read from. + The type to read. + An object of type read from the given location. + + + Returns the size of an object of the given type parameter. + The type of object whose size is retrieved. + The size of an object of type . + + + Subtracts an element offset from the given reference. + The reference to subtract the offset from. + The offset to subtract. + The type of reference. + A new reference that reflects the subtraction of offset from pointer. + + + Subtracts an element offset from the given reference. + The reference to subtract the offset from. + The offset to subtract. + The type of reference. + A new reference that reflects the subtraction of offset from pointer. + + + Subtracts an element offset from the given void pointer. + The void pointer to subtract the offset from. + The offset to subtract. + The type of the void pointer. + A new void pointer that reflects the subtraction of offset from the specified pointer. + + + Subtracts a byte offset from the given reference. + The reference to subtract the offset from. + The offset to subtract. + The type of reference. + A new reference that reflects the subtraction of byte offset from pointer. + + + Returns a to a boxed value. + The value to unbox. + The type to be unboxed. + A to the boxed value . + + is , and is a non-nullable value type. + + is not a boxed value type. +-or- + is not a boxed . + + cannot be found. + + + Writes a value of type to the given location. + The location to write to. + The value to write. + The type of value to write. + + + Writes a value of type to the given location without assuming architecture dependent alignment of the addresses. + The location to write to. + The value to write. + The type of value to write. + + + Writes a value of type to the given location without assuming architecture dependent alignment of the addresses. + The location to write to. + The value to write. + The type of value to write. + + + \ No newline at end of file diff --git a/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/lib/net461/System.Runtime.CompilerServices.Unsafe.xml.meta b/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/lib/net461/System.Runtime.CompilerServices.Unsafe.xml.meta new file mode 100644 index 0000000..05a1d10 --- /dev/null +++ b/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/lib/net461/System.Runtime.CompilerServices.Unsafe.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 4e8cc467a88b36a498730c10688502d0 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/lib/netcoreapp2.0.meta b/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/lib/netcoreapp2.0.meta new file mode 100644 index 0000000..6cb2e9a --- /dev/null +++ b/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/lib/netcoreapp2.0.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ddd15c8051a6efb4ca9874d091c63951 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/lib/netcoreapp2.0/System.Runtime.CompilerServices.Unsafe.dll b/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/lib/netcoreapp2.0/System.Runtime.CompilerServices.Unsafe.dll new file mode 100644 index 0000000..3273a01 --- /dev/null +++ b/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/lib/netcoreapp2.0/System.Runtime.CompilerServices.Unsafe.dll @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fb00d92c7e3a85d5d0a8ccdfb33de4830d1e7882d9ddb5fbe569df1fa8538215 +size 16976 diff --git a/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/lib/netcoreapp2.0/System.Runtime.CompilerServices.Unsafe.dll.meta b/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/lib/netcoreapp2.0/System.Runtime.CompilerServices.Unsafe.dll.meta new file mode 100644 index 0000000..3a6845a --- /dev/null +++ b/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/lib/netcoreapp2.0/System.Runtime.CompilerServices.Unsafe.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: e05ccf650a00ea34b931a5578a7ddf44 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/lib/netcoreapp2.0/System.Runtime.CompilerServices.Unsafe.xml b/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/lib/netcoreapp2.0/System.Runtime.CompilerServices.Unsafe.xml new file mode 100644 index 0000000..7aa4e5d --- /dev/null +++ b/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/lib/netcoreapp2.0/System.Runtime.CompilerServices.Unsafe.xml @@ -0,0 +1,244 @@ + + + + System.Runtime.CompilerServices.Unsafe + + + + Contains generic, low-level functionality for manipulating pointers. + + + Adds an element offset to the given reference. + The reference to add the offset to. + The offset to add. + The type of reference. + A new reference that reflects the addition of offset to pointer. + + + Adds an element offset to the given reference. + The reference to add the offset to. + The offset to add. + The type of reference. + A new reference that reflects the addition of offset to pointer. + + + Adds an element offset to the given void pointer. + The void pointer to add the offset to. + The offset to add. + The type of void pointer. + A new void pointer that reflects the addition of offset to the specified pointer. + + + Adds a byte offset to the given reference. + The reference to add the offset to. + The offset to add. + The type of reference. + A new reference that reflects the addition of byte offset to pointer. + + + Determines whether the specified references point to the same location. + The first reference to compare. + The second reference to compare. + The type of reference. + + if and point to the same location; otherwise, . + + + Casts the given object to the specified type. + The object to cast. + The type which the object will be cast to. + The original object, casted to the given type. + + + Reinterprets the given reference as a reference to a value of type . + The reference to reinterpret. + The type of reference to reinterpret. + The desired type of the reference. + A reference to a value of type . + + + Returns a pointer to the given by-ref parameter. + The object whose pointer is obtained. + The type of object. + A pointer to the given value. + + + Reinterprets the given read-only reference as a reference. + The read-only reference to reinterpret. + The type of reference. + A reference to a value of type . + + + Reinterprets the given location as a reference to a value of type . + The location of the value to reference. + The type of the interpreted location. + A reference to a value of type . + + + Determines the byte offset from origin to target from the given references. + The reference to origin. + The reference to target. + The type of reference. + Byte offset from origin to target i.e. - . + + + Copies a value of type to the given location. + The location to copy to. + A pointer to the value to copy. + The type of value to copy. + + + Copies a value of type to the given location. + The location to copy to. + A reference to the value to copy. + The type of value to copy. + + + Copies bytes from the source address to the destination address. + The destination address to copy to. + The source address to copy from. + The number of bytes to copy. + + + Copies bytes from the source address to the destination address. + The destination address to copy to. + The source address to copy from. + The number of bytes to copy. + + + Copies bytes from the source address to the destination address without assuming architecture dependent alignment of the addresses. + The destination address to copy to. + The source address to copy from. + The number of bytes to copy. + + + Copies bytes from the source address to the destination address without assuming architecture dependent alignment of the addresses. + The destination address to copy to. + The source address to copy from. + The number of bytes to copy. + + + Initializes a block of memory at the given location with a given initial value. + The address of the start of the memory block to initialize. + The value to initialize the block to. + The number of bytes to initialize. + + + Initializes a block of memory at the given location with a given initial value. + The address of the start of the memory block to initialize. + The value to initialize the block to. + The number of bytes to initialize. + + + Initializes a block of memory at the given location with a given initial value without assuming architecture dependent alignment of the address. + The address of the start of the memory block to initialize. + The value to initialize the block to. + The number of bytes to initialize. + + + Initializes a block of memory at the given location with a given initial value without assuming architecture dependent alignment of the address. + The address of the start of the memory block to initialize. + The value to initialize the block to. + The number of bytes to initialize. + + + Returns a value that indicates whether a specified reference is greater than another specified reference. + The first value to compare. + The second value to compare. + The type of the reference. + + if is greater than ; otherwise, . + + + Returns a value that indicates whether a specified reference is less than another specified reference. + The first value to compare. + The second value to compare. + The type of the reference. + + if is less than ; otherwise, . + + + Reads a value of type from the given location. + The location to read from. + The type to read. + An object of type read from the given location. + + + Reads a value of type from the given location without assuming architecture dependent alignment of the addresses. + The location to read from. + The type to read. + An object of type read from the given location. + + + Reads a value of type from the given location without assuming architecture dependent alignment of the addresses. + The location to read from. + The type to read. + An object of type read from the given location. + + + Returns the size of an object of the given type parameter. + The type of object whose size is retrieved. + The size of an object of type . + + + Subtracts an element offset from the given reference. + The reference to subtract the offset from. + The offset to subtract. + The type of reference. + A new reference that reflects the subtraction of offset from pointer. + + + Subtracts an element offset from the given reference. + The reference to subtract the offset from. + The offset to subtract. + The type of reference. + A new reference that reflects the subtraction of offset from pointer. + + + Subtracts an element offset from the given void pointer. + The void pointer to subtract the offset from. + The offset to subtract. + The type of the void pointer. + A new void pointer that reflects the subtraction of offset from the specified pointer. + + + Subtracts a byte offset from the given reference. + The reference to subtract the offset from. + The offset to subtract. + The type of reference. + A new reference that reflects the subtraction of byte offset from pointer. + + + Returns a to a boxed value. + The value to unbox. + The type to be unboxed. + A to the boxed value . + + is , and is a non-nullable value type. + + is not a boxed value type. +-or- + is not a boxed . + + cannot be found. + + + Writes a value of type to the given location. + The location to write to. + The value to write. + The type of value to write. + + + Writes a value of type to the given location without assuming architecture dependent alignment of the addresses. + The location to write to. + The value to write. + The type of value to write. + + + Writes a value of type to the given location without assuming architecture dependent alignment of the addresses. + The location to write to. + The value to write. + The type of value to write. + + + \ No newline at end of file diff --git a/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/lib/netcoreapp2.0/System.Runtime.CompilerServices.Unsafe.xml.meta b/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/lib/netcoreapp2.0/System.Runtime.CompilerServices.Unsafe.xml.meta new file mode 100644 index 0000000..1d2672a --- /dev/null +++ b/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/lib/netcoreapp2.0/System.Runtime.CompilerServices.Unsafe.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 9dc9bd1062ff1384297504dd0b798196 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/lib/netstandard1.0.meta b/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/lib/netstandard1.0.meta new file mode 100644 index 0000000..02ca0be --- /dev/null +++ b/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/lib/netstandard1.0.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7e85e9077a7bda74a9e988babe66cc8e +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/lib/netstandard1.0/System.Runtime.CompilerServices.Unsafe.dll b/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/lib/netstandard1.0/System.Runtime.CompilerServices.Unsafe.dll new file mode 100644 index 0000000..3a9ef3d --- /dev/null +++ b/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/lib/netstandard1.0/System.Runtime.CompilerServices.Unsafe.dll @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8bc82fbd03e66739c5c1edd46678cc6daada7f6c06a752d0a655ea62c37a1635 +size 16976 diff --git a/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/lib/netstandard1.0/System.Runtime.CompilerServices.Unsafe.dll.meta b/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/lib/netstandard1.0/System.Runtime.CompilerServices.Unsafe.dll.meta new file mode 100644 index 0000000..359618f --- /dev/null +++ b/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/lib/netstandard1.0/System.Runtime.CompilerServices.Unsafe.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: 63861cb16a553e64699b5c335cf05be4 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/lib/netstandard1.0/System.Runtime.CompilerServices.Unsafe.xml b/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/lib/netstandard1.0/System.Runtime.CompilerServices.Unsafe.xml new file mode 100644 index 0000000..7aa4e5d --- /dev/null +++ b/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/lib/netstandard1.0/System.Runtime.CompilerServices.Unsafe.xml @@ -0,0 +1,244 @@ + + + + System.Runtime.CompilerServices.Unsafe + + + + Contains generic, low-level functionality for manipulating pointers. + + + Adds an element offset to the given reference. + The reference to add the offset to. + The offset to add. + The type of reference. + A new reference that reflects the addition of offset to pointer. + + + Adds an element offset to the given reference. + The reference to add the offset to. + The offset to add. + The type of reference. + A new reference that reflects the addition of offset to pointer. + + + Adds an element offset to the given void pointer. + The void pointer to add the offset to. + The offset to add. + The type of void pointer. + A new void pointer that reflects the addition of offset to the specified pointer. + + + Adds a byte offset to the given reference. + The reference to add the offset to. + The offset to add. + The type of reference. + A new reference that reflects the addition of byte offset to pointer. + + + Determines whether the specified references point to the same location. + The first reference to compare. + The second reference to compare. + The type of reference. + + if and point to the same location; otherwise, . + + + Casts the given object to the specified type. + The object to cast. + The type which the object will be cast to. + The original object, casted to the given type. + + + Reinterprets the given reference as a reference to a value of type . + The reference to reinterpret. + The type of reference to reinterpret. + The desired type of the reference. + A reference to a value of type . + + + Returns a pointer to the given by-ref parameter. + The object whose pointer is obtained. + The type of object. + A pointer to the given value. + + + Reinterprets the given read-only reference as a reference. + The read-only reference to reinterpret. + The type of reference. + A reference to a value of type . + + + Reinterprets the given location as a reference to a value of type . + The location of the value to reference. + The type of the interpreted location. + A reference to a value of type . + + + Determines the byte offset from origin to target from the given references. + The reference to origin. + The reference to target. + The type of reference. + Byte offset from origin to target i.e. - . + + + Copies a value of type to the given location. + The location to copy to. + A pointer to the value to copy. + The type of value to copy. + + + Copies a value of type to the given location. + The location to copy to. + A reference to the value to copy. + The type of value to copy. + + + Copies bytes from the source address to the destination address. + The destination address to copy to. + The source address to copy from. + The number of bytes to copy. + + + Copies bytes from the source address to the destination address. + The destination address to copy to. + The source address to copy from. + The number of bytes to copy. + + + Copies bytes from the source address to the destination address without assuming architecture dependent alignment of the addresses. + The destination address to copy to. + The source address to copy from. + The number of bytes to copy. + + + Copies bytes from the source address to the destination address without assuming architecture dependent alignment of the addresses. + The destination address to copy to. + The source address to copy from. + The number of bytes to copy. + + + Initializes a block of memory at the given location with a given initial value. + The address of the start of the memory block to initialize. + The value to initialize the block to. + The number of bytes to initialize. + + + Initializes a block of memory at the given location with a given initial value. + The address of the start of the memory block to initialize. + The value to initialize the block to. + The number of bytes to initialize. + + + Initializes a block of memory at the given location with a given initial value without assuming architecture dependent alignment of the address. + The address of the start of the memory block to initialize. + The value to initialize the block to. + The number of bytes to initialize. + + + Initializes a block of memory at the given location with a given initial value without assuming architecture dependent alignment of the address. + The address of the start of the memory block to initialize. + The value to initialize the block to. + The number of bytes to initialize. + + + Returns a value that indicates whether a specified reference is greater than another specified reference. + The first value to compare. + The second value to compare. + The type of the reference. + + if is greater than ; otherwise, . + + + Returns a value that indicates whether a specified reference is less than another specified reference. + The first value to compare. + The second value to compare. + The type of the reference. + + if is less than ; otherwise, . + + + Reads a value of type from the given location. + The location to read from. + The type to read. + An object of type read from the given location. + + + Reads a value of type from the given location without assuming architecture dependent alignment of the addresses. + The location to read from. + The type to read. + An object of type read from the given location. + + + Reads a value of type from the given location without assuming architecture dependent alignment of the addresses. + The location to read from. + The type to read. + An object of type read from the given location. + + + Returns the size of an object of the given type parameter. + The type of object whose size is retrieved. + The size of an object of type . + + + Subtracts an element offset from the given reference. + The reference to subtract the offset from. + The offset to subtract. + The type of reference. + A new reference that reflects the subtraction of offset from pointer. + + + Subtracts an element offset from the given reference. + The reference to subtract the offset from. + The offset to subtract. + The type of reference. + A new reference that reflects the subtraction of offset from pointer. + + + Subtracts an element offset from the given void pointer. + The void pointer to subtract the offset from. + The offset to subtract. + The type of the void pointer. + A new void pointer that reflects the subtraction of offset from the specified pointer. + + + Subtracts a byte offset from the given reference. + The reference to subtract the offset from. + The offset to subtract. + The type of reference. + A new reference that reflects the subtraction of byte offset from pointer. + + + Returns a to a boxed value. + The value to unbox. + The type to be unboxed. + A to the boxed value . + + is , and is a non-nullable value type. + + is not a boxed value type. +-or- + is not a boxed . + + cannot be found. + + + Writes a value of type to the given location. + The location to write to. + The value to write. + The type of value to write. + + + Writes a value of type to the given location without assuming architecture dependent alignment of the addresses. + The location to write to. + The value to write. + The type of value to write. + + + Writes a value of type to the given location without assuming architecture dependent alignment of the addresses. + The location to write to. + The value to write. + The type of value to write. + + + \ No newline at end of file diff --git a/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/lib/netstandard1.0/System.Runtime.CompilerServices.Unsafe.xml.meta b/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/lib/netstandard1.0/System.Runtime.CompilerServices.Unsafe.xml.meta new file mode 100644 index 0000000..f1e34c4 --- /dev/null +++ b/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/lib/netstandard1.0/System.Runtime.CompilerServices.Unsafe.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: ce6d75a238289c1448b7e98af5690f87 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/lib/netstandard2.0.meta b/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/lib/netstandard2.0.meta new file mode 100644 index 0000000..778ad09 --- /dev/null +++ b/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/lib/netstandard2.0.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7c4f778c296cefe438f639da08242c48 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/lib/netstandard2.0/System.Runtime.CompilerServices.Unsafe.dll b/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/lib/netstandard2.0/System.Runtime.CompilerServices.Unsafe.dll new file mode 100644 index 0000000..74ca598 --- /dev/null +++ b/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/lib/netstandard2.0/System.Runtime.CompilerServices.Unsafe.dll @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ef9eabf36b3410eefb577ad471ef2cebc6e2e998448c8b86289863dac358ace5 +size 16976 diff --git a/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/lib/netstandard2.0/System.Runtime.CompilerServices.Unsafe.dll.meta b/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/lib/netstandard2.0/System.Runtime.CompilerServices.Unsafe.dll.meta new file mode 100644 index 0000000..6bd3d8c --- /dev/null +++ b/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/lib/netstandard2.0/System.Runtime.CompilerServices.Unsafe.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: 6af88f99bfcc4a54eb3ff7e0667ef5bd +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/lib/netstandard2.0/System.Runtime.CompilerServices.Unsafe.xml b/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/lib/netstandard2.0/System.Runtime.CompilerServices.Unsafe.xml new file mode 100644 index 0000000..7aa4e5d --- /dev/null +++ b/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/lib/netstandard2.0/System.Runtime.CompilerServices.Unsafe.xml @@ -0,0 +1,244 @@ + + + + System.Runtime.CompilerServices.Unsafe + + + + Contains generic, low-level functionality for manipulating pointers. + + + Adds an element offset to the given reference. + The reference to add the offset to. + The offset to add. + The type of reference. + A new reference that reflects the addition of offset to pointer. + + + Adds an element offset to the given reference. + The reference to add the offset to. + The offset to add. + The type of reference. + A new reference that reflects the addition of offset to pointer. + + + Adds an element offset to the given void pointer. + The void pointer to add the offset to. + The offset to add. + The type of void pointer. + A new void pointer that reflects the addition of offset to the specified pointer. + + + Adds a byte offset to the given reference. + The reference to add the offset to. + The offset to add. + The type of reference. + A new reference that reflects the addition of byte offset to pointer. + + + Determines whether the specified references point to the same location. + The first reference to compare. + The second reference to compare. + The type of reference. + + if and point to the same location; otherwise, . + + + Casts the given object to the specified type. + The object to cast. + The type which the object will be cast to. + The original object, casted to the given type. + + + Reinterprets the given reference as a reference to a value of type . + The reference to reinterpret. + The type of reference to reinterpret. + The desired type of the reference. + A reference to a value of type . + + + Returns a pointer to the given by-ref parameter. + The object whose pointer is obtained. + The type of object. + A pointer to the given value. + + + Reinterprets the given read-only reference as a reference. + The read-only reference to reinterpret. + The type of reference. + A reference to a value of type . + + + Reinterprets the given location as a reference to a value of type . + The location of the value to reference. + The type of the interpreted location. + A reference to a value of type . + + + Determines the byte offset from origin to target from the given references. + The reference to origin. + The reference to target. + The type of reference. + Byte offset from origin to target i.e. - . + + + Copies a value of type to the given location. + The location to copy to. + A pointer to the value to copy. + The type of value to copy. + + + Copies a value of type to the given location. + The location to copy to. + A reference to the value to copy. + The type of value to copy. + + + Copies bytes from the source address to the destination address. + The destination address to copy to. + The source address to copy from. + The number of bytes to copy. + + + Copies bytes from the source address to the destination address. + The destination address to copy to. + The source address to copy from. + The number of bytes to copy. + + + Copies bytes from the source address to the destination address without assuming architecture dependent alignment of the addresses. + The destination address to copy to. + The source address to copy from. + The number of bytes to copy. + + + Copies bytes from the source address to the destination address without assuming architecture dependent alignment of the addresses. + The destination address to copy to. + The source address to copy from. + The number of bytes to copy. + + + Initializes a block of memory at the given location with a given initial value. + The address of the start of the memory block to initialize. + The value to initialize the block to. + The number of bytes to initialize. + + + Initializes a block of memory at the given location with a given initial value. + The address of the start of the memory block to initialize. + The value to initialize the block to. + The number of bytes to initialize. + + + Initializes a block of memory at the given location with a given initial value without assuming architecture dependent alignment of the address. + The address of the start of the memory block to initialize. + The value to initialize the block to. + The number of bytes to initialize. + + + Initializes a block of memory at the given location with a given initial value without assuming architecture dependent alignment of the address. + The address of the start of the memory block to initialize. + The value to initialize the block to. + The number of bytes to initialize. + + + Returns a value that indicates whether a specified reference is greater than another specified reference. + The first value to compare. + The second value to compare. + The type of the reference. + + if is greater than ; otherwise, . + + + Returns a value that indicates whether a specified reference is less than another specified reference. + The first value to compare. + The second value to compare. + The type of the reference. + + if is less than ; otherwise, . + + + Reads a value of type from the given location. + The location to read from. + The type to read. + An object of type read from the given location. + + + Reads a value of type from the given location without assuming architecture dependent alignment of the addresses. + The location to read from. + The type to read. + An object of type read from the given location. + + + Reads a value of type from the given location without assuming architecture dependent alignment of the addresses. + The location to read from. + The type to read. + An object of type read from the given location. + + + Returns the size of an object of the given type parameter. + The type of object whose size is retrieved. + The size of an object of type . + + + Subtracts an element offset from the given reference. + The reference to subtract the offset from. + The offset to subtract. + The type of reference. + A new reference that reflects the subtraction of offset from pointer. + + + Subtracts an element offset from the given reference. + The reference to subtract the offset from. + The offset to subtract. + The type of reference. + A new reference that reflects the subtraction of offset from pointer. + + + Subtracts an element offset from the given void pointer. + The void pointer to subtract the offset from. + The offset to subtract. + The type of the void pointer. + A new void pointer that reflects the subtraction of offset from the specified pointer. + + + Subtracts a byte offset from the given reference. + The reference to subtract the offset from. + The offset to subtract. + The type of reference. + A new reference that reflects the subtraction of byte offset from pointer. + + + Returns a to a boxed value. + The value to unbox. + The type to be unboxed. + A to the boxed value . + + is , and is a non-nullable value type. + + is not a boxed value type. +-or- + is not a boxed . + + cannot be found. + + + Writes a value of type to the given location. + The location to write to. + The value to write. + The type of value to write. + + + Writes a value of type to the given location without assuming architecture dependent alignment of the addresses. + The location to write to. + The value to write. + The type of value to write. + + + Writes a value of type to the given location without assuming architecture dependent alignment of the addresses. + The location to write to. + The value to write. + The type of value to write. + + + \ No newline at end of file diff --git a/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/lib/netstandard2.0/System.Runtime.CompilerServices.Unsafe.xml.meta b/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/lib/netstandard2.0/System.Runtime.CompilerServices.Unsafe.xml.meta new file mode 100644 index 0000000..031e776 --- /dev/null +++ b/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/lib/netstandard2.0/System.Runtime.CompilerServices.Unsafe.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 2d0d9a61b44a1c64396974114ee2fe83 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/ref.meta b/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/ref.meta new file mode 100644 index 0000000..f000177 --- /dev/null +++ b/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/ref.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 957fd09a497263244a9259858185cf70 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/ref/net461.meta b/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/ref/net461.meta new file mode 100644 index 0000000..3b80cf5 --- /dev/null +++ b/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/ref/net461.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9595b037820c0584185decd6a671e233 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/ref/net461/System.Runtime.CompilerServices.Unsafe.dll b/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/ref/net461/System.Runtime.CompilerServices.Unsafe.dll new file mode 100644 index 0000000..5b06548 --- /dev/null +++ b/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/ref/net461/System.Runtime.CompilerServices.Unsafe.dll @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7d70d4a0af84635de3f579e161d74c381e0acb38981b27283faf122eb1f16cc7 +size 16464 diff --git a/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/ref/net461/System.Runtime.CompilerServices.Unsafe.dll.meta b/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/ref/net461/System.Runtime.CompilerServices.Unsafe.dll.meta new file mode 100644 index 0000000..e0d34e5 --- /dev/null +++ b/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/ref/net461/System.Runtime.CompilerServices.Unsafe.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: e76ecb25dd492bb4080183ebb3b7e46d +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/ref/net461/System.Runtime.CompilerServices.Unsafe.xml b/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/ref/net461/System.Runtime.CompilerServices.Unsafe.xml new file mode 100644 index 0000000..7aa4e5d --- /dev/null +++ b/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/ref/net461/System.Runtime.CompilerServices.Unsafe.xml @@ -0,0 +1,244 @@ + + + + System.Runtime.CompilerServices.Unsafe + + + + Contains generic, low-level functionality for manipulating pointers. + + + Adds an element offset to the given reference. + The reference to add the offset to. + The offset to add. + The type of reference. + A new reference that reflects the addition of offset to pointer. + + + Adds an element offset to the given reference. + The reference to add the offset to. + The offset to add. + The type of reference. + A new reference that reflects the addition of offset to pointer. + + + Adds an element offset to the given void pointer. + The void pointer to add the offset to. + The offset to add. + The type of void pointer. + A new void pointer that reflects the addition of offset to the specified pointer. + + + Adds a byte offset to the given reference. + The reference to add the offset to. + The offset to add. + The type of reference. + A new reference that reflects the addition of byte offset to pointer. + + + Determines whether the specified references point to the same location. + The first reference to compare. + The second reference to compare. + The type of reference. + + if and point to the same location; otherwise, . + + + Casts the given object to the specified type. + The object to cast. + The type which the object will be cast to. + The original object, casted to the given type. + + + Reinterprets the given reference as a reference to a value of type . + The reference to reinterpret. + The type of reference to reinterpret. + The desired type of the reference. + A reference to a value of type . + + + Returns a pointer to the given by-ref parameter. + The object whose pointer is obtained. + The type of object. + A pointer to the given value. + + + Reinterprets the given read-only reference as a reference. + The read-only reference to reinterpret. + The type of reference. + A reference to a value of type . + + + Reinterprets the given location as a reference to a value of type . + The location of the value to reference. + The type of the interpreted location. + A reference to a value of type . + + + Determines the byte offset from origin to target from the given references. + The reference to origin. + The reference to target. + The type of reference. + Byte offset from origin to target i.e. - . + + + Copies a value of type to the given location. + The location to copy to. + A pointer to the value to copy. + The type of value to copy. + + + Copies a value of type to the given location. + The location to copy to. + A reference to the value to copy. + The type of value to copy. + + + Copies bytes from the source address to the destination address. + The destination address to copy to. + The source address to copy from. + The number of bytes to copy. + + + Copies bytes from the source address to the destination address. + The destination address to copy to. + The source address to copy from. + The number of bytes to copy. + + + Copies bytes from the source address to the destination address without assuming architecture dependent alignment of the addresses. + The destination address to copy to. + The source address to copy from. + The number of bytes to copy. + + + Copies bytes from the source address to the destination address without assuming architecture dependent alignment of the addresses. + The destination address to copy to. + The source address to copy from. + The number of bytes to copy. + + + Initializes a block of memory at the given location with a given initial value. + The address of the start of the memory block to initialize. + The value to initialize the block to. + The number of bytes to initialize. + + + Initializes a block of memory at the given location with a given initial value. + The address of the start of the memory block to initialize. + The value to initialize the block to. + The number of bytes to initialize. + + + Initializes a block of memory at the given location with a given initial value without assuming architecture dependent alignment of the address. + The address of the start of the memory block to initialize. + The value to initialize the block to. + The number of bytes to initialize. + + + Initializes a block of memory at the given location with a given initial value without assuming architecture dependent alignment of the address. + The address of the start of the memory block to initialize. + The value to initialize the block to. + The number of bytes to initialize. + + + Returns a value that indicates whether a specified reference is greater than another specified reference. + The first value to compare. + The second value to compare. + The type of the reference. + + if is greater than ; otherwise, . + + + Returns a value that indicates whether a specified reference is less than another specified reference. + The first value to compare. + The second value to compare. + The type of the reference. + + if is less than ; otherwise, . + + + Reads a value of type from the given location. + The location to read from. + The type to read. + An object of type read from the given location. + + + Reads a value of type from the given location without assuming architecture dependent alignment of the addresses. + The location to read from. + The type to read. + An object of type read from the given location. + + + Reads a value of type from the given location without assuming architecture dependent alignment of the addresses. + The location to read from. + The type to read. + An object of type read from the given location. + + + Returns the size of an object of the given type parameter. + The type of object whose size is retrieved. + The size of an object of type . + + + Subtracts an element offset from the given reference. + The reference to subtract the offset from. + The offset to subtract. + The type of reference. + A new reference that reflects the subtraction of offset from pointer. + + + Subtracts an element offset from the given reference. + The reference to subtract the offset from. + The offset to subtract. + The type of reference. + A new reference that reflects the subtraction of offset from pointer. + + + Subtracts an element offset from the given void pointer. + The void pointer to subtract the offset from. + The offset to subtract. + The type of the void pointer. + A new void pointer that reflects the subtraction of offset from the specified pointer. + + + Subtracts a byte offset from the given reference. + The reference to subtract the offset from. + The offset to subtract. + The type of reference. + A new reference that reflects the subtraction of byte offset from pointer. + + + Returns a to a boxed value. + The value to unbox. + The type to be unboxed. + A to the boxed value . + + is , and is a non-nullable value type. + + is not a boxed value type. +-or- + is not a boxed . + + cannot be found. + + + Writes a value of type to the given location. + The location to write to. + The value to write. + The type of value to write. + + + Writes a value of type to the given location without assuming architecture dependent alignment of the addresses. + The location to write to. + The value to write. + The type of value to write. + + + Writes a value of type to the given location without assuming architecture dependent alignment of the addresses. + The location to write to. + The value to write. + The type of value to write. + + + \ No newline at end of file diff --git a/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/ref/net461/System.Runtime.CompilerServices.Unsafe.xml.meta b/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/ref/net461/System.Runtime.CompilerServices.Unsafe.xml.meta new file mode 100644 index 0000000..0b9c4e3 --- /dev/null +++ b/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/ref/net461/System.Runtime.CompilerServices.Unsafe.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 0d3b24504937e2443bba06ec5366af6a +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/ref/netstandard1.0.meta b/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/ref/netstandard1.0.meta new file mode 100644 index 0000000..47bd9c3 --- /dev/null +++ b/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/ref/netstandard1.0.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3b8769620feec1845ab81cdaeb5d5221 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/ref/netstandard1.0/System.Runtime.CompilerServices.Unsafe.dll b/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/ref/netstandard1.0/System.Runtime.CompilerServices.Unsafe.dll new file mode 100644 index 0000000..6cfe273 --- /dev/null +++ b/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/ref/netstandard1.0/System.Runtime.CompilerServices.Unsafe.dll @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:399e79d0221af27559f5eb4d1f46a9d255c3dc322bdc4d9a1dca8af4c4e768e8 +size 16464 diff --git a/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/ref/netstandard1.0/System.Runtime.CompilerServices.Unsafe.dll.meta b/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/ref/netstandard1.0/System.Runtime.CompilerServices.Unsafe.dll.meta new file mode 100644 index 0000000..cbb1108 --- /dev/null +++ b/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/ref/netstandard1.0/System.Runtime.CompilerServices.Unsafe.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: 4a0e6476bcef9d34b82091a39b757acb +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/ref/netstandard1.0/System.Runtime.CompilerServices.Unsafe.xml b/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/ref/netstandard1.0/System.Runtime.CompilerServices.Unsafe.xml new file mode 100644 index 0000000..7aa4e5d --- /dev/null +++ b/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/ref/netstandard1.0/System.Runtime.CompilerServices.Unsafe.xml @@ -0,0 +1,244 @@ + + + + System.Runtime.CompilerServices.Unsafe + + + + Contains generic, low-level functionality for manipulating pointers. + + + Adds an element offset to the given reference. + The reference to add the offset to. + The offset to add. + The type of reference. + A new reference that reflects the addition of offset to pointer. + + + Adds an element offset to the given reference. + The reference to add the offset to. + The offset to add. + The type of reference. + A new reference that reflects the addition of offset to pointer. + + + Adds an element offset to the given void pointer. + The void pointer to add the offset to. + The offset to add. + The type of void pointer. + A new void pointer that reflects the addition of offset to the specified pointer. + + + Adds a byte offset to the given reference. + The reference to add the offset to. + The offset to add. + The type of reference. + A new reference that reflects the addition of byte offset to pointer. + + + Determines whether the specified references point to the same location. + The first reference to compare. + The second reference to compare. + The type of reference. + + if and point to the same location; otherwise, . + + + Casts the given object to the specified type. + The object to cast. + The type which the object will be cast to. + The original object, casted to the given type. + + + Reinterprets the given reference as a reference to a value of type . + The reference to reinterpret. + The type of reference to reinterpret. + The desired type of the reference. + A reference to a value of type . + + + Returns a pointer to the given by-ref parameter. + The object whose pointer is obtained. + The type of object. + A pointer to the given value. + + + Reinterprets the given read-only reference as a reference. + The read-only reference to reinterpret. + The type of reference. + A reference to a value of type . + + + Reinterprets the given location as a reference to a value of type . + The location of the value to reference. + The type of the interpreted location. + A reference to a value of type . + + + Determines the byte offset from origin to target from the given references. + The reference to origin. + The reference to target. + The type of reference. + Byte offset from origin to target i.e. - . + + + Copies a value of type to the given location. + The location to copy to. + A pointer to the value to copy. + The type of value to copy. + + + Copies a value of type to the given location. + The location to copy to. + A reference to the value to copy. + The type of value to copy. + + + Copies bytes from the source address to the destination address. + The destination address to copy to. + The source address to copy from. + The number of bytes to copy. + + + Copies bytes from the source address to the destination address. + The destination address to copy to. + The source address to copy from. + The number of bytes to copy. + + + Copies bytes from the source address to the destination address without assuming architecture dependent alignment of the addresses. + The destination address to copy to. + The source address to copy from. + The number of bytes to copy. + + + Copies bytes from the source address to the destination address without assuming architecture dependent alignment of the addresses. + The destination address to copy to. + The source address to copy from. + The number of bytes to copy. + + + Initializes a block of memory at the given location with a given initial value. + The address of the start of the memory block to initialize. + The value to initialize the block to. + The number of bytes to initialize. + + + Initializes a block of memory at the given location with a given initial value. + The address of the start of the memory block to initialize. + The value to initialize the block to. + The number of bytes to initialize. + + + Initializes a block of memory at the given location with a given initial value without assuming architecture dependent alignment of the address. + The address of the start of the memory block to initialize. + The value to initialize the block to. + The number of bytes to initialize. + + + Initializes a block of memory at the given location with a given initial value without assuming architecture dependent alignment of the address. + The address of the start of the memory block to initialize. + The value to initialize the block to. + The number of bytes to initialize. + + + Returns a value that indicates whether a specified reference is greater than another specified reference. + The first value to compare. + The second value to compare. + The type of the reference. + + if is greater than ; otherwise, . + + + Returns a value that indicates whether a specified reference is less than another specified reference. + The first value to compare. + The second value to compare. + The type of the reference. + + if is less than ; otherwise, . + + + Reads a value of type from the given location. + The location to read from. + The type to read. + An object of type read from the given location. + + + Reads a value of type from the given location without assuming architecture dependent alignment of the addresses. + The location to read from. + The type to read. + An object of type read from the given location. + + + Reads a value of type from the given location without assuming architecture dependent alignment of the addresses. + The location to read from. + The type to read. + An object of type read from the given location. + + + Returns the size of an object of the given type parameter. + The type of object whose size is retrieved. + The size of an object of type . + + + Subtracts an element offset from the given reference. + The reference to subtract the offset from. + The offset to subtract. + The type of reference. + A new reference that reflects the subtraction of offset from pointer. + + + Subtracts an element offset from the given reference. + The reference to subtract the offset from. + The offset to subtract. + The type of reference. + A new reference that reflects the subtraction of offset from pointer. + + + Subtracts an element offset from the given void pointer. + The void pointer to subtract the offset from. + The offset to subtract. + The type of the void pointer. + A new void pointer that reflects the subtraction of offset from the specified pointer. + + + Subtracts a byte offset from the given reference. + The reference to subtract the offset from. + The offset to subtract. + The type of reference. + A new reference that reflects the subtraction of byte offset from pointer. + + + Returns a to a boxed value. + The value to unbox. + The type to be unboxed. + A to the boxed value . + + is , and is a non-nullable value type. + + is not a boxed value type. +-or- + is not a boxed . + + cannot be found. + + + Writes a value of type to the given location. + The location to write to. + The value to write. + The type of value to write. + + + Writes a value of type to the given location without assuming architecture dependent alignment of the addresses. + The location to write to. + The value to write. + The type of value to write. + + + Writes a value of type to the given location without assuming architecture dependent alignment of the addresses. + The location to write to. + The value to write. + The type of value to write. + + + \ No newline at end of file diff --git a/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/ref/netstandard1.0/System.Runtime.CompilerServices.Unsafe.xml.meta b/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/ref/netstandard1.0/System.Runtime.CompilerServices.Unsafe.xml.meta new file mode 100644 index 0000000..284dc02 --- /dev/null +++ b/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/ref/netstandard1.0/System.Runtime.CompilerServices.Unsafe.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 695cda262e06e974b870b3a783a7c9e2 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/ref/netstandard2.0.meta b/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/ref/netstandard2.0.meta new file mode 100644 index 0000000..b06f2ff --- /dev/null +++ b/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/ref/netstandard2.0.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 90251b2fc64ffc642ae23406002d2bb9 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/ref/netstandard2.0/System.Runtime.CompilerServices.Unsafe.dll b/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/ref/netstandard2.0/System.Runtime.CompilerServices.Unsafe.dll new file mode 100644 index 0000000..aea9b7a --- /dev/null +++ b/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/ref/netstandard2.0/System.Runtime.CompilerServices.Unsafe.dll @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:77ade091c2e9a576365ea51e05b87309344f55ddef5364b94a29c06c2356ce5a +size 16248 diff --git a/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/ref/netstandard2.0/System.Runtime.CompilerServices.Unsafe.dll.meta b/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/ref/netstandard2.0/System.Runtime.CompilerServices.Unsafe.dll.meta new file mode 100644 index 0000000..bad981f --- /dev/null +++ b/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/ref/netstandard2.0/System.Runtime.CompilerServices.Unsafe.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: 22bab307a94cf8847bd0e77b1ff3fbd5 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/ref/netstandard2.0/System.Runtime.CompilerServices.Unsafe.xml b/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/ref/netstandard2.0/System.Runtime.CompilerServices.Unsafe.xml new file mode 100644 index 0000000..7aa4e5d --- /dev/null +++ b/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/ref/netstandard2.0/System.Runtime.CompilerServices.Unsafe.xml @@ -0,0 +1,244 @@ + + + + System.Runtime.CompilerServices.Unsafe + + + + Contains generic, low-level functionality for manipulating pointers. + + + Adds an element offset to the given reference. + The reference to add the offset to. + The offset to add. + The type of reference. + A new reference that reflects the addition of offset to pointer. + + + Adds an element offset to the given reference. + The reference to add the offset to. + The offset to add. + The type of reference. + A new reference that reflects the addition of offset to pointer. + + + Adds an element offset to the given void pointer. + The void pointer to add the offset to. + The offset to add. + The type of void pointer. + A new void pointer that reflects the addition of offset to the specified pointer. + + + Adds a byte offset to the given reference. + The reference to add the offset to. + The offset to add. + The type of reference. + A new reference that reflects the addition of byte offset to pointer. + + + Determines whether the specified references point to the same location. + The first reference to compare. + The second reference to compare. + The type of reference. + + if and point to the same location; otherwise, . + + + Casts the given object to the specified type. + The object to cast. + The type which the object will be cast to. + The original object, casted to the given type. + + + Reinterprets the given reference as a reference to a value of type . + The reference to reinterpret. + The type of reference to reinterpret. + The desired type of the reference. + A reference to a value of type . + + + Returns a pointer to the given by-ref parameter. + The object whose pointer is obtained. + The type of object. + A pointer to the given value. + + + Reinterprets the given read-only reference as a reference. + The read-only reference to reinterpret. + The type of reference. + A reference to a value of type . + + + Reinterprets the given location as a reference to a value of type . + The location of the value to reference. + The type of the interpreted location. + A reference to a value of type . + + + Determines the byte offset from origin to target from the given references. + The reference to origin. + The reference to target. + The type of reference. + Byte offset from origin to target i.e. - . + + + Copies a value of type to the given location. + The location to copy to. + A pointer to the value to copy. + The type of value to copy. + + + Copies a value of type to the given location. + The location to copy to. + A reference to the value to copy. + The type of value to copy. + + + Copies bytes from the source address to the destination address. + The destination address to copy to. + The source address to copy from. + The number of bytes to copy. + + + Copies bytes from the source address to the destination address. + The destination address to copy to. + The source address to copy from. + The number of bytes to copy. + + + Copies bytes from the source address to the destination address without assuming architecture dependent alignment of the addresses. + The destination address to copy to. + The source address to copy from. + The number of bytes to copy. + + + Copies bytes from the source address to the destination address without assuming architecture dependent alignment of the addresses. + The destination address to copy to. + The source address to copy from. + The number of bytes to copy. + + + Initializes a block of memory at the given location with a given initial value. + The address of the start of the memory block to initialize. + The value to initialize the block to. + The number of bytes to initialize. + + + Initializes a block of memory at the given location with a given initial value. + The address of the start of the memory block to initialize. + The value to initialize the block to. + The number of bytes to initialize. + + + Initializes a block of memory at the given location with a given initial value without assuming architecture dependent alignment of the address. + The address of the start of the memory block to initialize. + The value to initialize the block to. + The number of bytes to initialize. + + + Initializes a block of memory at the given location with a given initial value without assuming architecture dependent alignment of the address. + The address of the start of the memory block to initialize. + The value to initialize the block to. + The number of bytes to initialize. + + + Returns a value that indicates whether a specified reference is greater than another specified reference. + The first value to compare. + The second value to compare. + The type of the reference. + + if is greater than ; otherwise, . + + + Returns a value that indicates whether a specified reference is less than another specified reference. + The first value to compare. + The second value to compare. + The type of the reference. + + if is less than ; otherwise, . + + + Reads a value of type from the given location. + The location to read from. + The type to read. + An object of type read from the given location. + + + Reads a value of type from the given location without assuming architecture dependent alignment of the addresses. + The location to read from. + The type to read. + An object of type read from the given location. + + + Reads a value of type from the given location without assuming architecture dependent alignment of the addresses. + The location to read from. + The type to read. + An object of type read from the given location. + + + Returns the size of an object of the given type parameter. + The type of object whose size is retrieved. + The size of an object of type . + + + Subtracts an element offset from the given reference. + The reference to subtract the offset from. + The offset to subtract. + The type of reference. + A new reference that reflects the subtraction of offset from pointer. + + + Subtracts an element offset from the given reference. + The reference to subtract the offset from. + The offset to subtract. + The type of reference. + A new reference that reflects the subtraction of offset from pointer. + + + Subtracts an element offset from the given void pointer. + The void pointer to subtract the offset from. + The offset to subtract. + The type of the void pointer. + A new void pointer that reflects the subtraction of offset from the specified pointer. + + + Subtracts a byte offset from the given reference. + The reference to subtract the offset from. + The offset to subtract. + The type of reference. + A new reference that reflects the subtraction of byte offset from pointer. + + + Returns a to a boxed value. + The value to unbox. + The type to be unboxed. + A to the boxed value . + + is , and is a non-nullable value type. + + is not a boxed value type. +-or- + is not a boxed . + + cannot be found. + + + Writes a value of type to the given location. + The location to write to. + The value to write. + The type of value to write. + + + Writes a value of type to the given location without assuming architecture dependent alignment of the addresses. + The location to write to. + The value to write. + The type of value to write. + + + Writes a value of type to the given location without assuming architecture dependent alignment of the addresses. + The location to write to. + The value to write. + The type of value to write. + + + \ No newline at end of file diff --git a/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/ref/netstandard2.0/System.Runtime.CompilerServices.Unsafe.xml.meta b/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/ref/netstandard2.0/System.Runtime.CompilerServices.Unsafe.xml.meta new file mode 100644 index 0000000..05d396d --- /dev/null +++ b/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/ref/netstandard2.0/System.Runtime.CompilerServices.Unsafe.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 432f18ec5c131b949a1e28f5d1322aad +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/useSharedDesignerContext.txt b/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/useSharedDesignerContext.txt new file mode 100644 index 0000000..e69de29 diff --git a/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/useSharedDesignerContext.txt.meta b/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/useSharedDesignerContext.txt.meta new file mode 100644 index 0000000..36c90e3 --- /dev/null +++ b/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/useSharedDesignerContext.txt.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 21b7f5030a6ca3147a16b455ff304414 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/version.txt b/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/version.txt new file mode 100644 index 0000000..e9c0a7c --- /dev/null +++ b/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/version.txt @@ -0,0 +1 @@ +8a3ffed558ddf943c1efa87d693227722d6af094 diff --git a/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/version.txt.meta b/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/version.txt.meta new file mode 100644 index 0000000..e55227a --- /dev/null +++ b/Game/Assets/Supabase/System.Runtime.CompilerServices.Unsafe.4.7.1/version.txt.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 81f86ef940d5b01438044fa412b99125 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2.meta b/Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2.meta new file mode 100644 index 0000000..d55fa6a --- /dev/null +++ b/Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: cfbbf123ea8792a46ace606231a61b85 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/.signature.p7s b/Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/.signature.p7s new file mode 100644 index 0000000000000000000000000000000000000000..96e2ea316c24a2ebf1c8a00a02ad55e017131b79 GIT binary patch literal 18703 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%0DeknMZ5!)6@gUPRT!kqcpy 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 z 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 H9zy;LR*oGq literal 0 HcmV?d00001 diff --git a/Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/System.Text.Encodings.Web.4.7.2.nupkg.meta b/Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/System.Text.Encodings.Web.4.7.2.nupkg.meta new file mode 100644 index 0000000..9e64bc2 --- /dev/null +++ b/Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/System.Text.Encodings.Web.4.7.2.nupkg.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 0598853fbc5dd9d4b850571253b431a4 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/THIRD-PARTY-NOTICES.TXT b/Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/THIRD-PARTY-NOTICES.TXT new file mode 100644 index 0000000..77a243e --- /dev/null +++ b/Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/THIRD-PARTY-NOTICES.TXT @@ -0,0 +1,375 @@ +.NET Core uses third-party libraries or other resources that may be +distributed under licenses different than the .NET Core software. + +In the event that we accidentally failed to list a required notice, please +bring it to our attention. Post an issue or email us: + + dotnet@microsoft.com + +The attached notices are provided for information only. + +License notice for ASP.NET +------------------------------- + +Copyright (c) .NET Foundation. All rights reserved. +Licensed under the Apache License, Version 2.0. + +Available at +https://github.com/aspnet/AspNetCore/blob/master/LICENSE.txt + +License notice for Slicing-by-8 +------------------------------- + +http://sourceforge.net/projects/slicing-by-8/ + +Copyright (c) 2004-2006 Intel Corporation - All Rights Reserved + + +This software program is licensed subject to the BSD License, available at +http://www.opensource.org/licenses/bsd-license.html. + + +License notice for Unicode data +------------------------------- + +http://www.unicode.org/copyright.html#License + +Copyright © 1991-2017 Unicode, Inc. All rights reserved. +Distributed under the Terms of Use in http://www.unicode.org/copyright.html. + +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Unicode data files and any associated documentation +(the "Data Files") or Unicode software and any associated documentation +(the "Software") to deal in the Data Files or Software +without restriction, including without limitation the rights to use, +copy, modify, merge, publish, distribute, and/or sell copies of +the Data Files or Software, and to permit persons to whom the Data Files +or Software are furnished to do so, provided that either +(a) this copyright and permission notice appear with all copies +of the Data Files or Software, or +(b) this copyright and permission notice appear in associated +Documentation. + +THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE +WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT OF THIRD PARTY RIGHTS. +IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS +NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL +DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THE DATA FILES OR SOFTWARE. + +Except as contained in this notice, the name of a copyright holder +shall not be used in advertising or otherwise to promote the sale, +use or other dealings in these Data Files or Software without prior +written authorization of the copyright holder. + +License notice for Zlib +----------------------- + +https://github.com/madler/zlib +http://zlib.net/zlib_license.html + +/* zlib.h -- interface of the 'zlib' general purpose compression library + version 1.2.11, January 15th, 2017 + + Copyright (C) 1995-2017 Jean-loup Gailly and Mark Adler + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. + + Jean-loup Gailly Mark Adler + jloup@gzip.org madler@alumni.caltech.edu + +*/ + +License notice for Mono +------------------------------- + +http://www.mono-project.com/docs/about-mono/ + +Copyright (c) .NET Foundation Contributors + +MIT License + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the Software), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +License notice for International Organization for Standardization +----------------------------------------------------------------- + +Portions (C) International Organization for Standardization 1986: + Permission to copy in any form is granted for use with + conforming SGML systems and applications as defined in + ISO 8879, provided this notice is included in all copies. + +License notice for Intel +------------------------ + +"Copyright (c) 2004-2006 Intel Corporation - All Rights Reserved + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation +and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +License notice for Xamarin and Novell +------------------------------------- + +Copyright (c) 2015 Xamarin, Inc (http://www.xamarin.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +Copyright (c) 2011 Novell, Inc (http://www.novell.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +Third party notice for W3C +-------------------------- + +"W3C SOFTWARE AND DOCUMENT NOTICE AND LICENSE +Status: This license takes effect 13 May, 2015. +This work is being provided by the copyright holders under the following license. +License +By obtaining and/or copying this work, you (the licensee) agree that you have read, understood, and will comply with the following terms and conditions. +Permission to copy, modify, and distribute this work, with or without modification, for any purpose and without fee or royalty is hereby granted, provided that you include the following on ALL copies of the work or portions thereof, including modifications: +The full text of this NOTICE in a location viewable to users of the redistributed or derivative work. +Any pre-existing intellectual property disclaimers, notices, or terms and conditions. If none exist, the W3C Software and Document Short Notice should be included. +Notice of any changes or modifications, through a copyright statement on the new code or document such as "This software or document includes material copied from or derived from [title and URI of the W3C document]. Copyright © [YEAR] W3C® (MIT, ERCIM, Keio, Beihang)." +Disclaimers +THIS WORK IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE OR DOCUMENT WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS. +COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR DOCUMENT. +The name and trademarks of copyright holders may NOT be used in advertising or publicity pertaining to the work without specific, written prior permission. Title to copyright in this work will at all times remain with copyright holders." + +License notice for Bit Twiddling Hacks +-------------------------------------- + +Bit Twiddling Hacks + +By Sean Eron Anderson +seander@cs.stanford.edu + +Individually, the code snippets here are in the public domain (unless otherwise +noted) — feel free to use them however you please. The aggregate collection and +descriptions are © 1997-2005 Sean Eron Anderson. The code and descriptions are +distributed in the hope that they will be useful, but WITHOUT ANY WARRANTY and +without even the implied warranty of merchantability or fitness for a particular +purpose. + +License notice for Brotli +-------------------------------------- + +Copyright (c) 2009, 2010, 2013-2016 by the Brotli Authors. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +compress_fragment.c: +Copyright (c) 2011, Google Inc. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +""AS IS"" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +decode_fuzzer.c: +Copyright (c) 2015 The Chromium Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +""AS IS"" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." + +License notice for Json.NET +------------------------------- + +https://github.com/JamesNK/Newtonsoft.Json/blob/master/LICENSE.md + +The MIT License (MIT) + +Copyright (c) 2007 James Newton-King + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +License notice for vectorized base64 encoding / decoding +-------------------------------------------------------- + +Copyright (c) 2005-2007, Nick Galbreath +Copyright (c) 2013-2017, Alfred Klomp +Copyright (c) 2015-2017, Wojciech Mula +Copyright (c) 2016-2017, Matthieu Darbois +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + +- Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + +- Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS +IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED +TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/THIRD-PARTY-NOTICES.TXT.meta b/Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/THIRD-PARTY-NOTICES.TXT.meta new file mode 100644 index 0000000..04befcc --- /dev/null +++ b/Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/THIRD-PARTY-NOTICES.TXT.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: f5e4d12688fe3634da312ba072494142 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/lib.meta b/Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/lib.meta new file mode 100644 index 0000000..4917520 --- /dev/null +++ b/Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/lib.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0034da3e416bb104485dad245298b353 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/lib/net461.meta b/Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/lib/net461.meta new file mode 100644 index 0000000..876f7ab --- /dev/null +++ b/Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/lib/net461.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 474ef98647865594296ff1f63ff13455 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/lib/net461/System.Text.Encodings.Web.dll b/Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/lib/net461/System.Text.Encodings.Web.dll new file mode 100644 index 0000000..f3a5e74 --- /dev/null +++ b/Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/lib/net461/System.Text.Encodings.Web.dll @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:09f7d7e7f98be4c21c4dba8c3be7bf9516dbae6dddfb1b827188a9bd874c6724 +size 59768 diff --git a/Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/lib/net461/System.Text.Encodings.Web.dll.meta b/Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/lib/net461/System.Text.Encodings.Web.dll.meta new file mode 100644 index 0000000..a235136 --- /dev/null +++ b/Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/lib/net461/System.Text.Encodings.Web.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: dddb5bc0461ec214da89649a00c06cdb +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/lib/net461/System.Text.Encodings.Web.xml b/Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/lib/net461/System.Text.Encodings.Web.xml new file mode 100644 index 0000000..c5904a1 --- /dev/null +++ b/Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/lib/net461/System.Text.Encodings.Web.xml @@ -0,0 +1,932 @@ + + + + System.Text.Encodings.Web + + + + Represents an HTML character encoding. + + + Initializes a new instance of the class. + + + Creates a new instance of the HtmlEncoder class with the specified settings. + Settings that control how the instance encodes, primarily which characters to encode. + A new instance of the class. + + is . + + + Creates a new instance of the HtmlEncoder class that specifies characters the encoder is allowed to not encode. + The set of characters that the encoder is allowed to not encode. + A new instance of the class. + + is . + + + Gets a built-in instance of the class. + A built-in instance of the class. + + + Represents a JavaScript character encoding. + + + Initializes a new instance of the class. + + + Creates a new instance of JavaScriptEncoder class with the specified settings. + Settings that control how the instance encodes, primarily which characters to encode. + A new instance of the class. + + is . + + + Creates a new instance of the JavaScriptEncoder class that specifies characters the encoder is allowed to not encode. + The set of characters that the encoder is allowed to not encode. + A new instance of the class. + + is . + + + Gets a built-in instance of the class. + A built-in instance of the class. + + + Gets a built-in JavaScript encoder instance that is less strict about what is encoded. + A JavaScript encoder instance. + + + The base class of web encoders. + + + Initializes a new instance of the class. + + + Encodes characters from an array and writes them to a object. + The stream to which to write the encoded text. + The array of characters to encode. + The array index of the first character to encode. + The number of characters in the array to encode. + + is . + The method failed. The encoder does not implement correctly. + + is . + + is out of range. + + is out of range. + + + Encodes the specified string to a object. + The stream to which to write the encoded text. + The string to encode. + + + Encodes a substring and writes it to a object. + The stream to which to write the encoded text. + The string whose substring is to be encoded. + The index where the substring starts. + The number of characters in the substring. + + is . + The method failed. The encoder does not implement correctly. + + is . + + is out of range. + + is out of range. + + + Encodes the supplied characters. + A source buffer containing the characters to encode. + The destination buffer to which the encoded form of will be written. + The number of characters consumed from the buffer. + The number of characters written to the buffer. + + to indicate there is no further source data that needs to be encoded; otherwise, . + An enumeration value that describes the result of the encoding operation. + + + Encodes the supplied string and returns the encoded text as a new string. + The string to encode. + The encoded string. + + is . + The method failed. The encoder does not implement correctly. + + + Encodes the supplied UTF-8 text. + A source buffer containing the UTF-8 text to encode. + The destination buffer to which the encoded form of will be written. + The number of bytes consumed from the buffer. + The number of bytes written to the buffer. + + to indicate there is no further source data that needs to be encoded; otherwise, . + A status code that describes the result of the encoding operation. + + + Finds the index of the first character to encode. + The text buffer to search. + The number of characters in . + The index of the first character to encode. + + + Finds the first element in a UTF-8 text input buffer that would be escaped by the current encoder instance. + The UTF-8 text input buffer to search. + The index of the first element in that would be escaped by the current encoder instance, or -1 if no data in requires escaping. + + + Gets the maximum number of characters that this encoder can generate for each input code point. + The maximum number of characters. + + + Encodes a Unicode scalar value and writes it to a buffer. + A Unicode scalar value. + A pointer to the buffer to which to write the encoded text. + The length of the destination in characters. + When the method returns, indicates the number of characters written to the . + + if is too small to fit the encoded text; otherwise, returns . + + + Determines if a given Unicode scalar value will be encoded. + A Unicode scalar value. + + if the value will be encoded by this encoder; otherwise, returns . + + + Represents a filter that allows only certain Unicode code points. + + + Instantiates an empty filter (allows no code points through by default). + + + Instantiates a filter by cloning the allowed list of another object. + The other object to be cloned. + + + Instantiates a filter where only the character ranges specified by are allowed by the filter. + The allowed character ranges. + + is . + + + Allows the character specified by through the filter. + The allowed character. + + + Allows all characters specified by through the filter. + The allowed characters. + + is . + + + Allows all code points specified by . + The allowed code points. + + is . + + + Allows all characters specified by through the filter. + The range of characters to be allowed. + + is . + + + Allows all characters specified by through the filter. + The ranges of characters to be allowed. + + is . + + + Resets this object by disallowing all characters. + + + Disallows the character through the filter. + The disallowed character. + + + Disallows all characters specified by through the filter. + The disallowed characters. + + is . + + + Disallows all characters specified by through the filter. + The range of characters to be disallowed. + + is . + + + Disallows all characters specified by through the filter. + The ranges of characters to be disallowed. + + is . + + + Gets an enumerator of all allowed code points. + The enumerator of allowed code points. + + + Represents a URL character encoding. + + + Initializes a new instance of the class. + + + Creates a new instance of UrlEncoder class with the specified settings. + Settings that control how the instance encodes, primarily which characters to encode. + A new instance of the class. + + is . + + + Creates a new instance of the UrlEncoder class that specifies characters the encoder is allowed to not encode. + The set of characters that the encoder is allowed to not encode. + A new instance of the class. + + is . + + + Gets a built-in instance of the class. + A built-in instance of the class. + + + Represents a contiguous range of Unicode code points. + + + Creates a new that includes a specified number of characters starting at a specified Unicode code point. + The first code point in the range. + The number of code points in the range. + + is less than zero or greater than 0xFFFF. +-or- + is less than zero. +-or- + plus is greater than 0xFFFF. + + + Creates a new instance from a span of characters. + The first character in the range. + The last character in the range. + A range that includes all characters between and . + + precedes . + + + Gets the first code point in the range represented by this instance. + The first code point in the range. + + + Gets the number of code points in the range represented by this instance. + The number of code points in the range. + + + Provides static properties that return predefined instances that correspond to blocks from the Unicode specification. + + + Gets a range that consists of the entire Basic Multilingual Plane (BMP), from U+0000 to U+FFFF). + A range that consists of the entire BMP. + + + Gets the Alphabetic Presentation Forms Unicode block (U+FB00-U+FB4F). + The Alphabetic Presentation Forms Unicode block (U+FB00-U+FB4F). + + + Gets the Arabic Unicode block (U+0600-U+06FF). + The Arabic Unicode block (U+0600-U+06FF). + + + Gets the Arabic Extended-A Unicode block (U+08A0-U+08FF). + The Arabic Extended-A Unicode block (U+08A0-U+08FF). + + + Gets the Arabic Presentation Forms-A Unicode block (U+FB50-U+FDFF). + The Arabic Presentation Forms-A Unicode block (U+FB50-U+FDFF). + + + Gets the Arabic Presentation Forms-B Unicode block (U+FE70-U+FEFF). + The Arabic Presentation Forms-B Unicode block (U+FE70-U+FEFF). + + + Gets the Arabic Supplement Unicode block (U+0750-U+077F). + The Arabic Supplement Unicode block (U+0750-U+077F). + + + Gets the Armenian Unicode block (U+0530-U+058F). + The Armenian Unicode block (U+0530-U+058F). + + + Gets the Arrows Unicode block (U+2190-U+21FF). + The Arrows Unicode block (U+2190-U+21FF). + + + Gets the Balinese Unicode block (U+1B00-U+1B7F). + The Balinese Unicode block (U+1B00-U+1B7F). + + + Gets the Bamum Unicode block (U+A6A0-U+A6FF). + The Bamum Unicode block (U+A6A0-U+A6FF). + + + Gets the Basic Latin Unicode block (U+0021-U+007F). + The Basic Latin Unicode block (U+0021-U+007F). + + + Gets the Batak Unicode block (U+1BC0-U+1BFF). + The Batak Unicode block (U+1BC0-U+1BFF). + + + Gets the Bengali Unicode block (U+0980-U+09FF). + The Bengali Unicode block (U+0980-U+09FF). + + + Gets the Block Elements Unicode block (U+2580-U+259F). + The Block Elements Unicode block (U+2580-U+259F). + + + Gets the Bopomofo Unicode block (U+3100-U+312F). + The Bopomofo Unicode block (U+3105-U+312F). + + + Gets the Bopomofo Extended Unicode block (U+31A0-U+31BF). + The Bopomofo Extended Unicode block (U+31A0-U+31BF). + + + Gets the Box Drawing Unicode block (U+2500-U+257F). + The Box Drawing Unicode block (U+2500-U+257F). + + + Gets the Braille Patterns Unicode block (U+2800-U+28FF). + The Braille Patterns Unicode block (U+2800-U+28FF). + + + Gets the Buginese Unicode block (U+1A00-U+1A1F). + The Buginese Unicode block (U+1A00-U+1A1F). + + + Gets the Buhid Unicode block (U+1740-U+175F). + The Buhid Unicode block (U+1740-U+175F). + + + Gets the Cham Unicode block (U+AA00-U+AA5F). + The Cham Unicode block (U+AA00-U+AA5F). + + + Gets the Cherokee Unicode block (U+13A0-U+13FF). + The Cherokee Unicode block (U+13A0-U+13FF). + + + Gets the Cherokee Supplement Unicode block (U+AB70-U+ABBF). + The Cherokee Supplement Unicode block (U+AB70-U+ABBF). + + + Gets the CJK Compatibility Unicode block (U+3300-U+33FF). + The CJK Compatibility Unicode block (U+3300-U+33FF). + + + Gets the CJK Compatibility Forms Unicode block (U+FE30-U+FE4F). + The CJK Compatibility Forms Unicode block (U+FE30-U+FE4F). + + + Gets the CJK Compatibility Ideographs Unicode block (U+F900-U+FAD9). + The CJK Compatibility Ideographs Unicode block (U+F900-U+FAD9). + + + Gets the CJK Radicals Supplement Unicode block (U+2E80-U+2EFF). + The CJK Radicals Supplement Unicode block (U+2E80-U+2EFF). + + + Gets the CJK Strokes Unicode block (U+31C0-U+31EF). + The CJK Strokes Unicode block (U+31C0-U+31EF). + + + Gets the CJK Symbols and Punctuation Unicode block (U+3000-U+303F). + The CJK Symbols and Punctuation Unicode block (U+3000-U+303F). + + + Gets the CJK Unified Ideographs Unicode block (U+4E00-U+9FCC). + The CJK Unified Ideographs Unicode block (U+4E00-U+9FCC). + + + Gets the CJK Unitied Ideographs Extension A Unicode block (U+3400-U+4DB5). + The CJK Unitied Ideographs Extension A Unicode block (U+3400-U+4DB5). + + + Gets the Combining Diacritical Marks Unicode block (U+0300-U+036F). + The Combining Diacritical Marks Unicode block (U+0300-U+036F). + + + Gets the Combining Diacritical Marks Extended Unicode block (U+1AB0-U+1AFF). + The Combining Diacritical Marks Extended Unicode block (U+1AB0-U+1AFF). + + + Gets the Combining Diacritical Marks for Symbols Unicode block (U+20D0-U+20FF). + The Combining Diacritical Marks for Symbols Unicode block (U+20D0-U+20FF). + + + Gets the Combining Diacritical Marks Supplement Unicode block (U+1DC0-U+1DFF). + The Combining Diacritical Marks Supplement Unicode block (U+1DC0-U+1DFF). + + + Gets the Combining Half Marks Unicode block (U+FE20-U+FE2F). + The Combining Half Marks Unicode block (U+FE20-U+FE2F). + + + Gets the Common Indic Number Forms Unicode block (U+A830-U+A83F). + The Common Indic Number Forms Unicode block (U+A830-U+A83F). + + + Gets the Control Pictures Unicode block (U+2400-U+243F). + The Control Pictures Unicode block (U+2400-U+243F). + + + Gets the Coptic Unicode block (U+2C80-U+2CFF). + The Coptic Unicode block (U+2C80-U+2CFF). + + + Gets the Currency Symbols Unicode block (U+20A0-U+20CF). + The Currency Symbols Unicode block (U+20A0-U+20CF). + + + Gets the Cyrillic Unicode block (U+0400-U+04FF). + The Cyrillic Unicode block (U+0400-U+04FF). + + + Gets the Cyrillic Extended-A Unicode block (U+2DE0-U+2DFF). + The Cyrillic Extended-A Unicode block (U+2DE0-U+2DFF). + + + Gets the Cyrillic Extended-B Unicode block (U+A640-U+A69F). + The Cyrillic Extended-B Unicode block (U+A640-U+A69F). + + + A corresponding to the 'Cyrillic Extended-C' Unicode block (U+1C80..U+1C8F). + + + Gets the Cyrillic Supplement Unicode block (U+0500-U+052F). + The Cyrillic Supplement Unicode block (U+0500-U+052F). + + + Gets the Devangari Unicode block (U+0900-U+097F). + The Devangari Unicode block (U+0900-U+097F). + + + Gets the Devanagari Extended Unicode block (U+A8E0-U+A8FF). + The Devanagari Extended Unicode block (U+A8E0-U+A8FF). + + + Gets the Dingbats Unicode block (U+2700-U+27BF). + The Dingbats Unicode block (U+2700-U+27BF). + + + Gets the Enclosed Alphanumerics Unicode block (U+2460-U+24FF). + The Enclosed Alphanumerics Unicode block (U+2460-U+24FF). + + + Gets the Enclosed CJK Letters and Months Unicode block (U+3200-U+32FF). + The Enclosed CJK Letters and Months Unicode block (U+3200-U+32FF). + + + Gets the Ethiopic Unicode block (U+1200-U+137C). + The Ethiopic Unicode block (U+1200-U+137C). + + + Gets the Ethipic Extended Unicode block (U+2D80-U+2DDF). + The Ethipic Extended Unicode block (U+2D80-U+2DDF). + + + Gets the Ethiopic Extended-A Unicode block (U+AB00-U+AB2F). + The Ethiopic Extended-A Unicode block (U+AB00-U+AB2F). + + + Gets the Ethiopic Supplement Unicode block (U+1380-U+1399). + The Ethiopic Supplement Unicode block (U+1380-U+1399). + + + Gets the General Punctuation Unicode block (U+2000-U+206F). + The General Punctuation Unicode block (U+2000-U+206F). + + + Gets the Geometric Shapes Unicode block (U+25A0-U+25FF). + The Geometric Shapes Unicode block (U+25A0-U+25FF). + + + Gets the Georgian Unicode block (U+10A0-U+10FF). + The Georgian Unicode block (U+10A0-U+10FF). + + + A corresponding to the 'Georgian Extended' Unicode block (U+1C90..U+1CBF). + + + Gets the Georgian Supplement Unicode block (U+2D00-U+2D2F). + The Georgian Supplement Unicode block (U+2D00-U+2D2F). + + + Gets the Glagolitic Unicode block (U+2C00-U+2C5F). + The Glagolitic Unicode block (U+2C00-U+2C5F). + + + Gets the Greek and Coptic Unicode block (U+0370-U+03FF). + The Greek and Coptic Unicode block (U+0370-U+03FF). + + + Gets the Greek Extended Unicode block (U+1F00-U+1FFF). + The Greek Extended Unicode block (U+1F00-U+1FFF). + + + Gets the Gujarti Unicode block (U+0A81-U+0AFF). + The Gujarti Unicode block (U+0A81-U+0AFF). + + + Gets the Gurmukhi Unicode block (U+0A01-U+0A7F). + The Gurmukhi Unicode block (U+0A01-U+0A7F). + + + Gets the Halfwidth and Fullwidth Forms Unicode block (U+FF00-U+FFEE). + The Halfwidth and Fullwidth Forms Unicode block (U+FF00-U+FFEE). + + + Gets the Hangul Compatibility Jamo Unicode block (U+3131-U+318F). + The Hangul Compatibility Jamo Unicode block (U+3131-U+318F). + + + Gets the Hangul Jamo Unicode block (U+1100-U+11FF). + The Hangul Jamo Unicode block (U+1100-U+11FF). + + + Gets the Hangul Jamo Extended-A Unicode block (U+A960-U+A9F). + The Hangul Jamo Extended-A Unicode block (U+A960-U+A97F). + + + Gets the Hangul Jamo Extended-B Unicode block (U+D7B0-U+D7FF). + The Hangul Jamo Extended-B Unicode block (U+D7B0-U+D7FF). + + + Gets the Hangul Syllables Unicode block (U+AC00-U+D7AF). + The Hangul Syllables Unicode block (U+AC00-U+D7AF). + + + Gets the Hanunoo Unicode block (U+1720-U+173F). + The Hanunoo Unicode block (U+1720-U+173F). + + + Gets the Hebrew Unicode block (U+0590-U+05FF). + The Hebrew Unicode block (U+0590-U+05FF). + + + Gets the Hiragana Unicode block (U+3040-U+309F). + The Hiragana Unicode block (U+3040-U+309F). + + + Gets the Ideographic Description Characters Unicode block (U+2FF0-U+2FFF). + The Ideographic Description Characters Unicode block (U+2FF0-U+2FFF). + + + Gets the IPA Extensions Unicode block (U+0250-U+02AF). + The IPA Extensions Unicode block (U+0250-U+02AF). + + + Gets the Javanese Unicode block (U+A980-U+A9DF). + The Javanese Unicode block (U+A980-U+A9DF). + + + Gets the Kanbun Unicode block (U+3190-U+319F). + The Kanbun Unicode block (U+3190-U+319F). + + + Gets the Kangxi Radicals Supplement Unicode block (U+2F00-U+2FDF). + The Kangxi Radicals Supplement Unicode block (U+2F00-U+2FDF). + + + Gets the Kannada Unicode block (U+0C81-U+0CFF). + The Kannada Unicode block (U+0C81-U+0CFF). + + + Gets the Katakana Unicode block (U+30A0-U+30FF). + The Katakana Unicode block (U+30A0-U+30FF). + + + Gets the Katakana Phonetic Extensions Unicode block (U+31F0-U+31FF). + The Katakana Phonetic Extensions Unicode block (U+31F0-U+31FF). + + + Gets the Kayah Li Unicode block (U+A900-U+A92F). + The Kayah Li Unicode block (U+A900-U+A92F). + + + Gets the Khmer Unicode block (U+1780-U+17FF). + The Khmer Unicode block (U+1780-U+17FF). + + + Gets the Khmer Symbols Unicode block (U+19E0-U+19FF). + The Khmer Symbols Unicode block (U+19E0-U+19FF). + + + Gets the Lao Unicode block (U+0E80-U+0EDF). + The Lao Unicode block (U+0E80-U+0EDF). + + + Gets the Latin-1 Supplement Unicode block (U+00A1-U+00FF). + The Latin-1 Supplement Unicode block (U+00A1-U+00FF). + + + Gets the Latin Extended-A Unicode block (U+0100-U+017F). + The Latin Extended-A Unicode block (U+0100-U+017F). + + + Gets the Latin Extended Additional Unicode block (U+1E00-U+1EFF). + The Latin Extended Additional Unicode block (U+1E00-U+1EFF). + + + Gets the Latin Extended-B Unicode block (U+0180-U+024F). + The Latin Extended-B Unicode block (U+0180-U+024F). + + + Gets the Latin Extended-C Unicode block (U+2C60-U+2C7F). + The Latin Extended-C Unicode block (U+2C60-U+2C7F). + + + Gets the Latin Extended-D Unicode block (U+A720-U+A7FF). + The Latin Extended-D Unicode block (U+A720-U+A7FF). + + + Gets the Latin Extended-E Unicode block (U+AB30-U+AB6F). + The Latin Extended-E Unicode block (U+AB30-U+AB6F). + + + Gets the Lepcha Unicode block (U+1C00-U+1C4F). + The Lepcha Unicode block (U+1C00-U+1C4F). + + + Gets the Letterlike Symbols Unicode block (U+2100-U+214F). + The Letterlike Symbols Unicode block (U+2100-U+214F). + + + Gets the Limbu Unicode block (U+1900-U+194F). + The Limbu Unicode block (U+1900-U+194F). + + + Gets the Lisu Unicode block (U+A4D0-U+A4FF). + The Lisu Unicode block (U+A4D0-U+A4FF). + + + Gets the Malayalam Unicode block (U+0D00-U+0D7F). + The Malayalam Unicode block (U+0D00-U+0D7F). + + + Gets the Mandaic Unicode block (U+0840-U+085F). + The Mandaic Unicode block (U+0840-U+085F). + + + Gets the Mathematical Operators Unicode block (U+2200-U+22FF). + The Mathematical Operators Unicode block (U+2200-U+22FF). + + + Gets the Meetei Mayek Unicode block (U+ABC0-U+ABFF). + The Meetei Mayek Unicode block (U+ABC0-U+ABFF). + + + Gets the Meetei Mayek Extensions Unicode block (U+AAE0-U+AAFF). + The Meetei Mayek Extensions Unicode block (U+AAE0-U+AAFF). + + + Gets the Miscellaneous Mathematical Symbols-A Unicode block (U+27C0-U+27EF). + The Miscellaneous Mathematical Symbols-A Unicode block (U+27C0-U+27EF). + + + Gets the Miscellaneous Mathematical Symbols-B Unicode block (U+2980-U+29FF). + The Miscellaneous Mathematical Symbols-B Unicode block (U+2980-U+29FF). + + + Gets the Miscellaneous Symbols Unicode block (U+2600-U+26FF). + The Miscellaneous Symbols Unicode block (U+2600-U+26FF). + + + Gets the Miscellaneous Symbols and Arrows Unicode block (U+2B00-U+2BFF). + The Miscellaneous Symbols and Arrows Unicode block (U+2B00-U+2BFF). + + + Gets the Miscellaneous Technical Unicode block (U+2300-U+23FF). + The Miscellaneous Technical Unicode block (U+2300-U+23FF). + + + Gets the Modifier Tone Letters Unicode block (U+A700-U+A71F). + The Modifier Tone Letters Unicode block (U+A700-U+A71F). + + + Gets the Mongolian Unicode block (U+1800-U+18AF). + The Mongolian Unicode block (U+1800-U+18AF). + + + Gets the Myanmar Unicode block (U+1000-U+109F). + The Myanmar Unicode block (U+1000-U+109F). + + + Gets the Myanmar Extended-A Unicode block (U+AA60-U+AA7F). + The Myanmar Extended-A Unicode block (U+AA60-U+AA7F). + + + Gets the Myanmar Extended-B Unicode block (U+A9E0-U+A9FF). + The Myanmar Extended-B Unicode block (U+A9E0-U+A9FF). + + + Gets the New Tai Lue Unicode block (U+1980-U+19DF). + The New Tai Lue Unicode block (U+1980-U+19DF). + + + Gets the NKo Unicode block (U+07C0-U+07FF). + The NKo Unicode block (U+07C0-U+07FF). + + + Gets an empty Unicode range. + A Unicode range with no elements. + + + Gets the Number Forms Unicode block (U+2150-U+218F). + The Number Forms Unicode block (U+2150-U+218F). + + + Gets the Ogham Unicode block (U+1680-U+169F). + The Ogham Unicode block (U+1680-U+169F). + + + Gets the Ol Chiki Unicode block (U+1C50-U+1C7F). + The Ol Chiki Unicode block (U+1C50-U+1C7F). + + + Gets the Optical Character Recognition Unicode block (U+2440-U+245F). + The Optical Character Recognition Unicode block (U+2440-U+245F). + + + Gets the Oriya Unicode block (U+0B00-U+0B7F). + The Oriya Unicode block (U+0B00-U+0B7F). + + + Gets the Phags-pa Unicode block (U+A840-U+A87F). + The Phags-pa Unicode block (U+A840-U+A87F). + + + Gets the Phonetic Extensions Unicode block (U+1D00-U+1D7F). + The Phonetic Extensions Unicode block (U+1D00-U+1D7F). + + + Gets the Phonetic Extensions Supplement Unicode block (U+1D80-U+1DBF). + The Phonetic Extensions Supplement Unicode block (U+1D80-U+1DBF). + + + Gets the Rejang Unicode block (U+A930-U+A95F). + The Rejang Unicode block (U+A930-U+A95F). + + + Gets the Runic Unicode block (U+16A0-U+16FF). + The Runic Unicode block (U+16A0-U+16FF). + + + Gets the Samaritan Unicode block (U+0800-U+083F). + The Samaritan Unicode block (U+0800-U+083F). + + + Gets the Saurashtra Unicode block (U+A880-U+A8DF). + The Saurashtra Unicode block (U+A880-U+A8DF). + + + Gets the Sinhala Unicode block (U+0D80-U+0DFF). + The Sinhala Unicode block (U+0D80-U+0DFF). + + + Gets the Small Form Variants Unicode block (U+FE50-U+FE6F). + The Small Form Variants Unicode block (U+FE50-U+FE6F). + + + Gets the Spacing Modifier Letters Unicode block (U+02B0-U+02FF). + The Spacing Modifier Letters Unicode block (U+02B0-U+02FF). + + + Gets the Specials Unicode block (U+FFF0-U+FFFF). + The Specials Unicode block (U+FFF0-U+FFFF). + + + Gets the Sundanese Unicode block (U+1B80-U+1BBF). + The Sundanese Unicode block (U+1B80-U+1BBF). + + + Gets the Sundanese Supplement Unicode block (U+1CC0-U+1CCF). + The Sundanese Supplement Unicode block (U+1CC0-U+1CCF). + + + Gets the Superscripts and Subscripts Unicode block (U+2070-U+209F). + The Superscripts and Subscripts Unicode block (U+2070-U+209F). + + + Gets the Supplemental Arrows-A Unicode block (U+27F0-U+27FF). + The Supplemental Arrows-A Unicode block (U+27F0-U+27FF). + + + Gets the Supplemental Arrows-B Unicode block (U+2900-U+297F). + The Supplemental Arrows-B Unicode block (U+2900-U+297F). + + + Gets the Supplemental Mathematical Operators Unicode block (U+2A00-U+2AFF). + The Supplemental Mathematical Operators Unicode block (U+2A00-U+2AFF). + + + Gets the Supplemental Punctuation Unicode block (U+2E00-U+2E7F). + The Supplemental Punctuation Unicode block (U+2E00-U+2E7F). + + + Gets the Syloti Nagri Unicode block (U+A800-U+A82F). + The Syloti Nagri Unicode block (U+A800-U+A82F). + + + Gets the Syriac Unicode block (U+0700-U+074F). + The Syriac Unicode block (U+0700-U+074F). + + + A corresponding to the 'Syriac Supplement' Unicode block (U+0860..U+086F). + + + Gets the Tagalog Unicode block (U+1700-U+171F). + The Tagalog Unicode block (U+1700-U+171F). + + + Gets the Tagbanwa Unicode block (U+1760-U+177F). + The Tagbanwa Unicode block (U+1760-U+177F). + + + Gets the Tai Le Unicode block (U+1950-U+197F). + The Tai Le Unicode block (U+1950-U+197F). + + + Gets the Tai Tham Unicode block (U+1A20-U+1AAF). + The Tai Tham Unicode block (U+1A20-U+1AAF). + + + Gets the Tai Viet Unicode block (U+AA80-U+AADF). + The Tai Viet Unicode block (U+AA80-U+AADF). + + + Gets the Tamil Unicode block (U+0B80-U+0BFF). + The Tamil Unicode block (U+0B82-U+0BFA). + + + Gets the Telugu Unicode block (U+0C00-U+0C7F). + The Telugu Unicode block (U+0C00-U+0C7F). + + + Gets the Thaana Unicode block (U+0780-U+07BF). + The Thaana Unicode block (U+0780-U+07BF). + + + Gets the Thai Unicode block (U+0E00-U+0E7F). + The Thai Unicode block (U+0E00-U+0E7F). + + + Gets the Tibetan Unicode block (U+0F00-U+0FFF). + The Tibetan Unicode block (U+0F00-U+0FFF). + + + Gets the Tifinagh Unicode block (U+2D30-U+2D7F). + The Tifinagh Unicode block (U+2D30-U+2D7F). + + + Gets the Unified Canadian Aboriginal Syllabics Unicode block (U+1400-U+167F). + The Unified Canadian Aboriginal Syllabics Unicode block (U+1400-U+167F). + + + Gets the Unified Canadian Aboriginal Syllabics Extended Unicode block (U+18B0-U+18FF). + The Unified Canadian Aboriginal Syllabics Extended Unicode block (U+18B0-U+18FF). + + + Gets the Vai Unicode block (U+A500-U+A63F). + The Vai Unicode block (U+A500-U+A63F). + + + Gets the Variation Selectors Unicode block (U+FE00-U+FE0F). + The Variation Selectors Unicode block (U+FE00-U+FE0F). + + + Gets the Vedic Extensions Unicode block (U+1CD0-U+1CFF). + The Vedic Extensions Unicode block (U+1CD0-U+1CFF). + + + Gets the Vertical Forms Unicode block (U+FE10-U+FE1F). + The Vertical Forms Unicode block (U+FE10-U+FE1F). + + + Gets the Yijing Hexagram Symbols Unicode block (U+4DC0-U+4DFF). + The Yijing Hexagram Symbols Unicode block (U+4DC0-U+4DFF). + + + Gets the Yi Radicals Unicode block (U+A490-U+A4CF). + The Yi Radicals Unicode block (U+A490-U+A4CF). + + + Gets the Yi Syllables Unicode block (U+A000-U+A48F). + The Yi Syllables Unicode block (U+A000-U+A48F). + + + \ No newline at end of file diff --git a/Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/lib/net461/System.Text.Encodings.Web.xml.meta b/Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/lib/net461/System.Text.Encodings.Web.xml.meta new file mode 100644 index 0000000..34e2b3b --- /dev/null +++ b/Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/lib/net461/System.Text.Encodings.Web.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: acd2e20c31042504d83232aa83a84966 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/lib/netstandard1.0.meta b/Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/lib/netstandard1.0.meta new file mode 100644 index 0000000..c125c68 --- /dev/null +++ b/Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/lib/netstandard1.0.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a05d21fe987664d4db5c8bda0c7aed0e +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/lib/netstandard1.0/System.Text.Encodings.Web.dll b/Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/lib/netstandard1.0/System.Text.Encodings.Web.dll new file mode 100644 index 0000000..b65ff0d --- /dev/null +++ b/Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/lib/netstandard1.0/System.Text.Encodings.Web.dll @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ac517b2c283243531911870c2c8ed5cf0fe5e660fc17411164b23e0fbe8ee8b9 +size 54136 diff --git a/Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/lib/netstandard1.0/System.Text.Encodings.Web.dll.meta b/Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/lib/netstandard1.0/System.Text.Encodings.Web.dll.meta new file mode 100644 index 0000000..6ef3f1d --- /dev/null +++ b/Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/lib/netstandard1.0/System.Text.Encodings.Web.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: 302cc854b4cdf4b47a9f906613d9eca9 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/lib/netstandard1.0/System.Text.Encodings.Web.xml b/Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/lib/netstandard1.0/System.Text.Encodings.Web.xml new file mode 100644 index 0000000..4d2efe2 --- /dev/null +++ b/Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/lib/netstandard1.0/System.Text.Encodings.Web.xml @@ -0,0 +1,866 @@ + + + System.Text.Encodings.Web + + + + Represents an HTML character encoding. + + + Initializes a new instance of the class. + + + Creates a new instance of the HtmlEncoder class with the specified settings. + Settings that control how the instance encodes, primarily which characters to encode. + A new instance of the class. + settings is null. + + + Creates a new instance of the HtmlEncoder class that specifies characters the encoder is allowed to not encode. + The set of characters that the encoder is allowed to not encode. + A new instance of the class. + allowedRanges is null. + + + Gets a built-in instance of the class. + A built-in instance of the class. + + + Represents a JavaScript character encoding. + + + Initializes a new instance of the class. + + + Creates a new instance of JavaScriptEncoder class with the specified settings. + Settings that control how the instance encodes, primarily which characters to encode. + A new instance of the class. + settings is null. + + + Creates a new instance of the JavaScriptEncoder class that specifies characters the encoder is allowed to not encode. + The set of characters that the encoder is allowed to not encode. + A new instance of the class. + allowedRanges is null. + + + Gets a built-in instance of the class. + A built-in instance of the class. + + + The base class of web encoders. + + + Initializes a new instance of the class. + + + Encodes the supplied string and returns the encoded text as a new string. + The string to encode. + The encoded string. + value is null. + The method failed. The encoder does not implement correctly. + + + Encodes the specified string to a object. + The stream to which to write the encoded text. + The string to encode. + + + Encodes characters from an array and writes them to a object. + The stream to which to write the encoded text. + The array of characters to encode. + The array index of the first character to encode. + The number of characters in the array to encode. + output is null. + The method failed. The encoder does not implement correctly. + value is null. + startIndex is out of range. + characterCount is out of range. + + + Encodes a substring and writes it to a object. + The stream to which to write the encoded text. + The string whose substring is to be encoded. + The index where the substring starts. + The number of characters in the substring. + output is null. + The method failed. The encoder does not implement correctly. + value is null. + startIndex is out of range. + characterCount is out of range. + + + Finds the index of the first character to encode. + The text buffer to search. + The number of characters in text. + The index of the first character to encode. + + + Gets the maximum number of characters that this encoder can generate for each input code point. + The maximum number of characters. + + + Encodes a Unicode scalar value and writes it to a buffer. + A Unicode scalar value. + A pointer to the buffer to which to write the encoded text. + The length of the destination buffer in characters. + When the method returns, indicates the number of characters written to the buffer. + false if bufferLength is too small to fit the encoded text; otherwise, returns true. + + + Determines if a given Unicode scalar value will be encoded. + A Unicode scalar value. + true if the unicodeScalar value will be encoded by this encoder; otherwise, returns false. + + + Represents a filter that allows only certain Unicode code points. + + + Instantiates an empty filter (allows no code points through by default). + + + Instantiates a filter by cloning the allowed list of another object. + The other object to be cloned. + + + Instantiates a filter where only the character ranges specified by allowedRanges are allowed by the filter. + The allowed character ranges. + allowedRanges is null. + + + Allows the character specified by character through the filter. + The allowed character. + + + Allows all characters specified by characters through the filter. + The allowed characters. + characters is null. + + + Allows all code points specified by codePoints. + The allowed code points. + codePoints is null. + + + Allows all characters specified by range through the filter. + The range of characters to be allowed. + range is null. + + + Allows all characters specified by ranges through the filter. + The ranges of characters to be allowed. + ranges is null. + + + Resets this object by disallowing all characters. + + + Disallows the character character through the filter. + The disallowed character. + + + Disallows all characters specified by characters through the filter. + The disallowed characters. + characters is null. + + + Disallows all characters specified by range through the filter. + The range of characters to be disallowed. + range is null. + + + Disallows all characters specified by ranges through the filter. + The ranges of characters to be disallowed. + ranges is null. + + + Gets an enumerator of all allowed code points. + The enumerator of allowed code points. + + + Represents a URL character encoding. + + + Initializes a new instance of the class. + + + Creates a new instance of UrlEncoder class with the specified settings. + Settings that control how the instance encodes, primarily which characters to encode. + A new instance of the class. + settings is null. + + + Creates a new instance of the UrlEncoder class that specifies characters the encoder is allowed to not encode. + The set of characters that the encoder is allowed to not encode. + A new instance of the class. + allowedRanges is null. + + + Gets a built-in instance of the class. + A built-in instance of the class. + + + Represents a contiguous range of Unicode code points. + + + Creates a new that includes a specified number of characters starting at a specified Unicode code point. + The first code point in the range. + The number of code points in the range. + firstCodePoint is less than zero or greater than 0xFFFF. +-or- +length is less than zero. +-or- +firstCodePoint plus length is greater than 0xFFFF. + + + Creates a new instance from a span of characters. + The first character in the range. + The last character in the range. + A range that includes all characters between firstCharacter and lastCharacter. + lastCharacter precedes firstCharacter. + + + Gets the first code point in the range represented by this instance. + The first code point in the range. + + + Gets the number of code points in the range represented by this instance. + The number of code points in the range. + + + Provides static properties that return predefined instances that correspond to blocks from the Unicode specification. + + + Gets a range that consists of the entire Basic Multilingual Plane (BMP), from U+0000 to U+FFFF). + A range that consists of the entire BMP. + + + Gets the Alphabetic Presentation Forms Unicode block (U+FB00-U+FB4F). + The Alphabetic Presentation Forms Unicode block (U+FB00-U+FB4F). + + + Gets the Arabic Unicode block (U+0600-U+06FF). + The Arabic Unicode block (U+0600-U+06FF). + + + Gets the Arabic Extended-A Unicode block (U+08A0-U+08FF). + The Arabic Extended-A Unicode block (U+08A0-U+08FF). + + + Gets the Arabic Presentation Forms-A Unicode block (U+FB50-U+FDFF). + The Arabic Presentation Forms-A Unicode block (U+FB50-U+FDFF). + + + Gets the Arabic Presentation Forms-B Unicode block (U+FE70-U+FEFF). + The Arabic Presentation Forms-B Unicode block (U+FE70-U+FEFF). + + + Gets the Arabic Supplement Unicode block (U+0750-U+077F). + The Arabic Supplement Unicode block (U+0750-U+077F). + + + Gets the Armenian Unicode block (U+0530-U+058F). + The Armenian Unicode block (U+0530-U+058F). + + + Gets the Arrows Unicode block (U+2190-U+21FF). + The Arrows Unicode block (U+2190-U+21FF). + + + Gets the Balinese Unicode block (U+1B00-U+1B7F). + The Balinese Unicode block (U+1B00-U+1B7F). + + + Gets the Bamum Unicode block (U+A6A0-U+A6FF). + The Bamum Unicode block (U+A6A0-U+A6FF). + + + Gets the Basic Latin Unicode block (U+0021-U+007F). + The Basic Latin Unicode block (U+0021-U+007F). + + + Gets the Batak Unicode block (U+1BC0-U+1BFF). + The Batak Unicode block (U+1BC0-U+1BFF). + + + Gets the Bengali Unicode block (U+0980-U+09FF). + The Bengali Unicode block (U+0980-U+09FF). + + + Gets the Block Elements Unicode block (U+2580-U+259F). + The Block Elements Unicode block (U+2580-U+259F). + + + Gets the Bopomofo Unicode block (U+3100-U+312F). + The Bopomofo Unicode block (U+3105-U+312F). + + + Gets the Bopomofo Extended Unicode block (U+31A0-U+31BF). + The Bopomofo Extended Unicode block (U+31A0-U+31BF). + + + Gets the Box Drawing Unicode block (U+2500-U+257F). + The Box Drawing Unicode block (U+2500-U+257F). + + + Gets the Braille Patterns Unicode block (U+2800-U+28FF). + The Braille Patterns Unicode block (U+2800-U+28FF). + + + Gets the Buginese Unicode block (U+1A00-U+1A1F). + The Buginese Unicode block (U+1A00-U+1A1F). + + + Gets the Buhid Unicode block (U+1740-U+175F). + The Buhid Unicode block (U+1740-U+175F). + + + Gets the Cham Unicode block (U+AA00-U+AA5F). + The Cham Unicode block (U+AA00-U+AA5F). + + + Gets the Cherokee Unicode block (U+13A0-U+13FF). + The Cherokee Unicode block (U+13A0-U+13FF). + + + Gets the Cherokee Supplement Unicode block (U+AB70-U+ABBF). + The Cherokee Supplement Unicode block (U+AB70-U+ABBF). + + + Gets the CJK Compatibility Unicode block (U+3300-U+33FF). + The CJK Compatibility Unicode block (U+3300-U+33FF). + + + Gets the CJK Compatibility Forms Unicode block (U+FE30-U+FE4F). + The CJK Compatibility Forms Unicode block (U+FE30-U+FE4F). + + + Gets the CJK Compatibility Ideographs Unicode block (U+F900-U+FAD9). + The CJK Compatibility Ideographs Unicode block (U+F900-U+FAD9). + + + Gets the CJK Radicals Supplement Unicode block (U+2E80-U+2EFF). + The CJK Radicals Supplement Unicode block (U+2E80-U+2EFF). + + + Gets the CJK Strokes Unicode block (U+31C0-U+31EF). + The CJK Strokes Unicode block (U+31C0-U+31EF). + + + Gets the CJK Symbols and Punctuation Unicode block (U+3000-U+303F). + The CJK Symbols and Punctuation Unicode block (U+3000-U+303F). + + + Gets the CJK Unified Ideographs Unicode block (U+4E00-U+9FCC). + The CJK Unified Ideographs Unicode block (U+4E00-U+9FCC). + + + Gets the CJK Unitied Ideographs Extension A Unicode block (U+3400-U+4DB5). + The CJK Unitied Ideographs Extension A Unicode block (U+3400-U+4DB5). + + + Gets the Combining Diacritical Marks Unicode block (U+0300-U+036F). + The Combining Diacritical Marks Unicode block (U+0300-U+036F). + + + Gets the Combining Diacritical Marks Extended Unicode block (U+1AB0-U+1AFF). + The Combining Diacritical Marks Extended Unicode block (U+1AB0-U+1AFF). + + + Gets the Combining Diacritical Marks for Symbols Unicode block (U+20D0-U+20FF). + The Combining Diacritical Marks for Symbols Unicode block (U+20D0-U+20FF). + + + Gets the Combining Diacritical Marks Supplement Unicode block (U+1DC0-U+1DFF). + The Combining Diacritical Marks Supplement Unicode block (U+1DC0-U+1DFF). + + + Gets the Combining Half Marks Unicode block (U+FE20-U+FE2F). + The Combining Half Marks Unicode block (U+FE20-U+FE2F). + + + Gets the Common Indic Number Forms Unicode block (U+A830-U+A83F). + The Common Indic Number Forms Unicode block (U+A830-U+A83F). + + + Gets the Control Pictures Unicode block (U+2400-U+243F). + The Control Pictures Unicode block (U+2400-U+243F). + + + Gets the Coptic Unicode block (U+2C80-U+2CFF). + The Coptic Unicode block (U+2C80-U+2CFF). + + + Gets the Currency Symbols Unicode block (U+20A0-U+20CF). + The Currency Symbols Unicode block (U+20A0-U+20CF). + + + Gets the Cyrillic Unicode block (U+0400-U+04FF). + The Cyrillic Unicode block (U+0400-U+04FF). + + + Gets the Cyrillic Extended-A Unicode block (U+2DE0-U+2DFF). + The Cyrillic Extended-A Unicode block (U+2DE0-U+2DFF). + + + Gets the Cyrillic Extended-B Unicode block (U+A640-U+A69F). + The Cyrillic Extended-B Unicode block (U+A640-U+A69F). + + + Gets the Cyrillic Supplement Unicode block (U+0500-U+052F). + The Cyrillic Supplement Unicode block (U+0500-U+052F). + + + Gets the Devangari Unicode block (U+0900-U+097F). + The Devangari Unicode block (U+0900-U+097F). + + + Gets the Devanagari Extended Unicode block (U+A8E0-U+A8FF). + The Devanagari Extended Unicode block (U+A8E0-U+A8FF). + + + Gets the Dingbats Unicode block (U+2700-U+27BF). + The Dingbats Unicode block (U+2700-U+27BF). + + + Gets the Enclosed Alphanumerics Unicode block (U+2460-U+24FF). + The Enclosed Alphanumerics Unicode block (U+2460-U+24FF). + + + Gets the Enclosed CJK Letters and Months Unicode block (U+3200-U+32FF). + The Enclosed CJK Letters and Months Unicode block (U+3200-U+32FF). + + + Gets the Ethiopic Unicode block (U+1200-U+137C). + The Ethiopic Unicode block (U+1200-U+137C). + + + Gets the Ethipic Extended Unicode block (U+2D80-U+2DDF). + The Ethipic Extended Unicode block (U+2D80-U+2DDF). + + + Gets the Ethiopic Extended-A Unicode block (U+AB00-U+AB2F). + The Ethiopic Extended-A Unicode block (U+AB00-U+AB2F). + + + Gets the Ethiopic Supplement Unicode block (U+1380-U+1399). + The Ethiopic Supplement Unicode block (U+1380-U+1399). + + + Gets the General Punctuation Unicode block (U+2000-U+206F). + The General Punctuation Unicode block (U+2000-U+206F). + + + Gets the Geometric Shapes Unicode block (U+25A0-U+25FF). + The Geometric Shapes Unicode block (U+25A0-U+25FF). + + + Gets the Georgian Unicode block (U+10A0-U+10FF). + The Georgian Unicode block (U+10A0-U+10FF). + + + Gets the Georgian Supplement Unicode block (U+2D00-U+2D2F). + The Georgian Supplement Unicode block (U+2D00-U+2D2F). + + + Gets the Glagolitic Unicode block (U+2C00-U+2C5F). + The Glagolitic Unicode block (U+2C00-U+2C5F). + + + Gets the Greek and Coptic Unicode block (U+0370-U+03FF). + The Greek and Coptic Unicode block (U+0370-U+03FF). + + + Gets the Greek Extended Unicode block (U+1F00-U+1FFF). + The Greek Extended Unicode block (U+1F00-U+1FFF). + + + Gets the Gujarti Unicode block (U+0A81-U+0AFF). + The Gujarti Unicode block (U+0A81-U+0AFF). + + + Gets the Gurmukhi Unicode block (U+0A01-U+0A7F). + The Gurmukhi Unicode block (U+0A01-U+0A7F). + + + Gets the Halfwidth and Fullwidth Forms Unicode block (U+FF00-U+FFEE). + The Halfwidth and Fullwidth Forms Unicode block (U+FF00-U+FFEE). + + + Gets the Hangul Compatibility Jamo Unicode block (U+3131-U+318F). + The Hangul Compatibility Jamo Unicode block (U+3131-U+318F). + + + Gets the Hangul Jamo Unicode block (U+1100-U+11FF). + The Hangul Jamo Unicode block (U+1100-U+11FF). + + + Gets the Hangul Jamo Extended-A Unicode block (U+A960-U+A9F). + The Hangul Jamo Extended-A Unicode block (U+A960-U+A97F). + + + Gets the Hangul Jamo Extended-B Unicode block (U+D7B0-U+D7FF). + The Hangul Jamo Extended-B Unicode block (U+D7B0-U+D7FF). + + + Gets the Hangul Syllables Unicode block (U+AC00-U+D7AF). + The Hangul Syllables Unicode block (U+AC00-U+D7AF). + + + Gets the Hanunoo Unicode block (U+1720-U+173F). + The Hanunoo Unicode block (U+1720-U+173F). + + + Gets the Hebrew Unicode block (U+0590-U+05FF). + The Hebrew Unicode block (U+0590-U+05FF). + + + Gets the Hiragana Unicode block (U+3040-U+309F). + The Hiragana Unicode block (U+3040-U+309F). + + + Gets the Ideographic Description Characters Unicode block (U+2FF0-U+2FFF). + The Ideographic Description Characters Unicode block (U+2FF0-U+2FFF). + + + Gets the IPA Extensions Unicode block (U+0250-U+02AF). + The IPA Extensions Unicode block (U+0250-U+02AF). + + + Gets the Javanese Unicode block (U+A980-U+A9DF). + The Javanese Unicode block (U+A980-U+A9DF). + + + Gets the Kanbun Unicode block (U+3190-U+319F). + The Kanbun Unicode block (U+3190-U+319F). + + + Gets the Kangxi Radicals Supplement Unicode block (U+2F00-U+2FDF). + The Kangxi Radicals Supplement Unicode block (U+2F00-U+2FDF). + + + Gets the Kannada Unicode block (U+0C81-U+0CFF). + The Kannada Unicode block (U+0C81-U+0CFF). + + + Gets the Katakana Unicode block (U+30A0-U+30FF). + The Katakana Unicode block (U+30A0-U+30FF). + + + Gets the Katakana Phonetic Extensions Unicode block (U+31F0-U+31FF). + The Katakana Phonetic Extensions Unicode block (U+31F0-U+31FF). + + + Gets the Kayah Li Unicode block (U+A900-U+A92F). + The Kayah Li Unicode block (U+A900-U+A92F). + + + Gets the Khmer Unicode block (U+1780-U+17FF). + The Khmer Unicode block (U+1780-U+17FF). + + + Gets the Khmer Symbols Unicode block (U+19E0-U+19FF). + The Khmer Symbols Unicode block (U+19E0-U+19FF). + + + Gets the Lao Unicode block (U+0E80-U+0EDF). + The Lao Unicode block (U+0E80-U+0EDF). + + + Gets the Latin-1 Supplement Unicode block (U+00A1-U+00FF). + The Latin-1 Supplement Unicode block (U+00A1-U+00FF). + + + Gets the Latin Extended-A Unicode block (U+0100-U+017F). + The Latin Extended-A Unicode block (U+0100-U+017F). + + + Gets the Latin Extended Additional Unicode block (U+1E00-U+1EFF). + The Latin Extended Additional Unicode block (U+1E00-U+1EFF). + + + Gets the Latin Extended-B Unicode block (U+0180-U+024F). + The Latin Extended-B Unicode block (U+0180-U+024F). + + + Gets the Latin Extended-C Unicode block (U+2C60-U+2C7F). + The Latin Extended-C Unicode block (U+2C60-U+2C7F). + + + Gets the Latin Extended-D Unicode block (U+A720-U+A7FF). + The Latin Extended-D Unicode block (U+A720-U+A7FF). + + + Gets the Latin Extended-E Unicode block (U+AB30-U+AB6F). + The Latin Extended-E Unicode block (U+AB30-U+AB6F). + + + Gets the Lepcha Unicode block (U+1C00-U+1C4F). + The Lepcha Unicode block (U+1C00-U+1C4F). + + + Gets the Letterlike Symbols Unicode block (U+2100-U+214F). + The Letterlike Symbols Unicode block (U+2100-U+214F). + + + Gets the Limbu Unicode block (U+1900-U+194F). + The Limbu Unicode block (U+1900-U+194F). + + + Gets the Lisu Unicode block (U+A4D0-U+A4FF). + The Lisu Unicode block (U+A4D0-U+A4FF). + + + Gets the Malayalam Unicode block (U+0D00-U+0D7F). + The Malayalam Unicode block (U+0D00-U+0D7F). + + + Gets the Mandaic Unicode block (U+0840-U+085F). + The Mandaic Unicode block (U+0840-U+085F). + + + Gets the Mathematical Operators Unicode block (U+2200-U+22FF). + The Mathematical Operators Unicode block (U+2200-U+22FF). + + + Gets the Meetei Mayek Unicode block (U+ABC0-U+ABFF). + The Meetei Mayek Unicode block (U+ABC0-U+ABFF). + + + Gets the Meetei Mayek Extensions Unicode block (U+AAE0-U+AAFF). + The Meetei Mayek Extensions Unicode block (U+AAE0-U+AAFF). + + + Gets the Miscellaneous Mathematical Symbols-A Unicode block (U+27C0-U+27EF). + The Miscellaneous Mathematical Symbols-A Unicode block (U+27C0-U+27EF). + + + Gets the Miscellaneous Mathematical Symbols-B Unicode block (U+2980-U+29FF). + The Miscellaneous Mathematical Symbols-B Unicode block (U+2980-U+29FF). + + + Gets the Miscellaneous Symbols Unicode block (U+2600-U+26FF). + The Miscellaneous Symbols Unicode block (U+2600-U+26FF). + + + Gets the Miscellaneous Symbols and Arrows Unicode block (U+2B00-U+2BFF). + The Miscellaneous Symbols and Arrows Unicode block (U+2B00-U+2BFF). + + + Gets the Miscellaneous Technical Unicode block (U+2300-U+23FF). + The Miscellaneous Technical Unicode block (U+2300-U+23FF). + + + Gets the Modifier Tone Letters Unicode block (U+A700-U+A71F). + The Modifier Tone Letters Unicode block (U+A700-U+A71F). + + + Gets the Mongolian Unicode block (U+1800-U+18AF). + The Mongolian Unicode block (U+1800-U+18AF). + + + Gets the Myanmar Unicode block (U+1000-U+109F). + The Myanmar Unicode block (U+1000-U+109F). + + + Gets the Myanmar Extended-A Unicode block (U+AA60-U+AA7F). + The Myanmar Extended-A Unicode block (U+AA60-U+AA7F). + + + Gets the Myanmar Extended-B Unicode block (U+A9E0-U+A9FF). + The Myanmar Extended-B Unicode block (U+A9E0-U+A9FF). + + + Gets the New Tai Lue Unicode block (U+1980-U+19DF). + The New Tai Lue Unicode block (U+1980-U+19DF). + + + Gets the NKo Unicode block (U+07C0-U+07FF). + The NKo Unicode block (U+07C0-U+07FF). + + + Gets an empty Unicode range. + A Unicode range with no elements. + + + Gets the Number Forms Unicode block (U+2150-U+218F). + The Number Forms Unicode block (U+2150-U+218F). + + + Gets the Ogham Unicode block (U+1680-U+169F). + The Ogham Unicode block (U+1680-U+169F). + + + Gets the Ol Chiki Unicode block (U+1C50-U+1C7F). + The Ol Chiki Unicode block (U+1C50-U+1C7F). + + + Gets the Optical Character Recognition Unicode block (U+2440-U+245F). + The Optical Character Recognition Unicode block (U+2440-U+245F). + + + Gets the Oriya Unicode block (U+0B00-U+0B7F). + The Oriya Unicode block (U+0B00-U+0B7F). + + + Gets the Phags-pa Unicode block (U+A840-U+A87F). + The Phags-pa Unicode block (U+A840-U+A87F). + + + Gets the Phonetic Extensions Unicode block (U+1D00-U+1D7F). + The Phonetic Extensions Unicode block (U+1D00-U+1D7F). + + + Gets the Phonetic Extensions Supplement Unicode block (U+1D80-U+1DBF). + The Phonetic Extensions Supplement Unicode block (U+1D80-U+1DBF). + + + Gets the Rejang Unicode block (U+A930-U+A95F). + The Rejang Unicode block (U+A930-U+A95F). + + + Gets the Runic Unicode block (U+16A0-U+16FF). + The Runic Unicode block (U+16A0-U+16FF). + + + Gets the Samaritan Unicode block (U+0800-U+083F). + The Samaritan Unicode block (U+0800-U+083F). + + + Gets the Saurashtra Unicode block (U+A880-U+A8DF). + The Saurashtra Unicode block (U+A880-U+A8DF). + + + Gets the Sinhala Unicode block (U+0D80-U+0DFF). + The Sinhala Unicode block (U+0D80-U+0DFF). + + + Gets the Small Form Variants Unicode block (U+FE50-U+FE6F). + The Small Form Variants Unicode block (U+FE50-U+FE6F). + + + Gets the Spacing Modifier Letters Unicode block (U+02B0-U+02FF). + The Spacing Modifier Letters Unicode block (U+02B0-U+02FF). + + + Gets the Specials Unicode block (U+FFF0-U+FFFF). + The Specials Unicode block (U+FFF0-U+FFFF). + + + Gets the Sundanese Unicode block (U+1B80-U+1BBF). + The Sundanese Unicode block (U+1B80-U+1BBF). + + + Gets the Sundanese Supplement Unicode block (U+1CC0-U+1CCF). + The Sundanese Supplement Unicode block (U+1CC0-U+1CCF). + + + Gets the Superscripts and Subscripts Unicode block (U+2070-U+209F). + The Superscripts and Subscripts Unicode block (U+2070-U+209F). + + + Gets the Supplemental Arrows-A Unicode block (U+27F0-U+27FF). + The Supplemental Arrows-A Unicode block (U+27F0-U+27FF). + + + Gets the Supplemental Arrows-B Unicode block (U+2900-U+297F). + The Supplemental Arrows-B Unicode block (U+2900-U+297F). + + + Gets the Supplemental Mathematical Operators Unicode block (U+2A00-U+2AFF). + The Supplemental Mathematical Operators Unicode block (U+2A00-U+2AFF). + + + Gets the Supplemental Punctuation Unicode block (U+2E00-U+2E7F). + The Supplemental Punctuation Unicode block (U+2E00-U+2E7F). + + + Gets the Syloti Nagri Unicode block (U+A800-U+A82F). + The Syloti Nagri Unicode block (U+A800-U+A82F). + + + Gets the Syriac Unicode block (U+0700-U+074F). + The Syriac Unicode block (U+0700-U+074F). + + + Gets the Tagalog Unicode block (U+1700-U+171F). + The Tagalog Unicode block (U+1700-U+171F). + + + Gets the Tagbanwa Unicode block (U+1760-U+177F). + The Tagbanwa Unicode block (U+1760-U+177F). + + + Gets the Tai Le Unicode block (U+1950-U+197F). + The Tai Le Unicode block (U+1950-U+197F). + + + Gets the Tai Tham Unicode block (U+1A20-U+1AAF). + The Tai Tham Unicode block (U+1A20-U+1AAF). + + + Gets the Tai Viet Unicode block (U+AA80-U+AADF). + The Tai Viet Unicode block (U+AA80-U+AADF). + + + Gets the Tamil Unicode block (U+0B80-U+0BFF). + The Tamil Unicode block (U+0B82-U+0BFA). + + + Gets the Telugu Unicode block (U+0C00-U+0C7F). + The Telugu Unicode block (U+0C00-U+0C7F). + + + Gets the Thaana Unicode block (U+0780-U+07BF). + The Thaana Unicode block (U+0780-U+07BF). + + + Gets the Thai Unicode block (U+0E00-U+0E7F). + The Thai Unicode block (U+0E00-U+0E7F). + + + Gets the Tibetan Unicode block (U+0F00-U+0FFF). + The Tibetan Unicode block (U+0F00-U+0FFF). + + + Gets the Tifinagh Unicode block (U+2D30-U+2D7F). + The Tifinagh Unicode block (U+2D30-U+2D7F). + + + Gets the Unified Canadian Aboriginal Syllabics Unicode block (U+1400-U+167F). + The Unified Canadian Aboriginal Syllabics Unicode block (U+1400-U+167F). + + + Gets the Unified Canadian Aboriginal Syllabics Extended Unicode block (U+18B0-U+18FF). + The Unified Canadian Aboriginal Syllabics Extended Unicode block (U+18B0-U+18FF). + + + Gets the Vai Unicode block (U+A500-U+A63F). + The Vai Unicode block (U+A500-U+A63F). + + + Gets the Variation Selectors Unicode block (U+FE00-U+FE0F). + The Variation Selectors Unicode block (U+FE00-U+FE0F). + + + Gets the Vedic Extensions Unicode block (U+1CD0-U+1CFF). + The Vedic Extensions Unicode block (U+1CD0-U+1CFF). + + + Gets the Vertical Forms Unicode block (U+FE10-U+FE1F). + The Vertical Forms Unicode block (U+FE10-U+FE1F). + + + Gets the Yijing Hexagram Symbols Unicode block (U+4DC0-U+4DFF). + The Yijing Hexagram Symbols Unicode block (U+4DC0-U+4DFF). + + + Gets the Yi Radicals Unicode block (U+A490-U+A4CF). + The Yi Radicals Unicode block (U+A490-U+A4CF). + + + Gets the Yi Syllables Unicode block (U+A000-U+A48F). + The Yi Syllables Unicode block (U+A000-U+A48F). + + + \ No newline at end of file diff --git a/Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/lib/netstandard1.0/System.Text.Encodings.Web.xml.meta b/Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/lib/netstandard1.0/System.Text.Encodings.Web.xml.meta new file mode 100644 index 0000000..0c48015 --- /dev/null +++ b/Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/lib/netstandard1.0/System.Text.Encodings.Web.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 534492230722b2c45a8f5939a185050c +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/lib/netstandard2.0.meta b/Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/lib/netstandard2.0.meta new file mode 100644 index 0000000..c6d2f35 --- /dev/null +++ b/Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/lib/netstandard2.0.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8ae88a58f1aa9874aae7afcf88b7ff09 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/lib/netstandard2.0/System.Text.Encodings.Web.dll b/Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/lib/netstandard2.0/System.Text.Encodings.Web.dll new file mode 100644 index 0000000..afd806e --- /dev/null +++ b/Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/lib/netstandard2.0/System.Text.Encodings.Web.dll @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ac3bf38d84a90e0e12dcf763c152539e8f588d97d6f63deb9959834aeaf16591 +size 59768 diff --git a/Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/lib/netstandard2.0/System.Text.Encodings.Web.dll.meta b/Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/lib/netstandard2.0/System.Text.Encodings.Web.dll.meta new file mode 100644 index 0000000..6697242 --- /dev/null +++ b/Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/lib/netstandard2.0/System.Text.Encodings.Web.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: 749a778283ce43342846d4b6e2e8fb22 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/lib/netstandard2.0/System.Text.Encodings.Web.xml b/Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/lib/netstandard2.0/System.Text.Encodings.Web.xml new file mode 100644 index 0000000..c5904a1 --- /dev/null +++ b/Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/lib/netstandard2.0/System.Text.Encodings.Web.xml @@ -0,0 +1,932 @@ + + + + System.Text.Encodings.Web + + + + Represents an HTML character encoding. + + + Initializes a new instance of the class. + + + Creates a new instance of the HtmlEncoder class with the specified settings. + Settings that control how the instance encodes, primarily which characters to encode. + A new instance of the class. + + is . + + + Creates a new instance of the HtmlEncoder class that specifies characters the encoder is allowed to not encode. + The set of characters that the encoder is allowed to not encode. + A new instance of the class. + + is . + + + Gets a built-in instance of the class. + A built-in instance of the class. + + + Represents a JavaScript character encoding. + + + Initializes a new instance of the class. + + + Creates a new instance of JavaScriptEncoder class with the specified settings. + Settings that control how the instance encodes, primarily which characters to encode. + A new instance of the class. + + is . + + + Creates a new instance of the JavaScriptEncoder class that specifies characters the encoder is allowed to not encode. + The set of characters that the encoder is allowed to not encode. + A new instance of the class. + + is . + + + Gets a built-in instance of the class. + A built-in instance of the class. + + + Gets a built-in JavaScript encoder instance that is less strict about what is encoded. + A JavaScript encoder instance. + + + The base class of web encoders. + + + Initializes a new instance of the class. + + + Encodes characters from an array and writes them to a object. + The stream to which to write the encoded text. + The array of characters to encode. + The array index of the first character to encode. + The number of characters in the array to encode. + + is . + The method failed. The encoder does not implement correctly. + + is . + + is out of range. + + is out of range. + + + Encodes the specified string to a object. + The stream to which to write the encoded text. + The string to encode. + + + Encodes a substring and writes it to a object. + The stream to which to write the encoded text. + The string whose substring is to be encoded. + The index where the substring starts. + The number of characters in the substring. + + is . + The method failed. The encoder does not implement correctly. + + is . + + is out of range. + + is out of range. + + + Encodes the supplied characters. + A source buffer containing the characters to encode. + The destination buffer to which the encoded form of will be written. + The number of characters consumed from the buffer. + The number of characters written to the buffer. + + to indicate there is no further source data that needs to be encoded; otherwise, . + An enumeration value that describes the result of the encoding operation. + + + Encodes the supplied string and returns the encoded text as a new string. + The string to encode. + The encoded string. + + is . + The method failed. The encoder does not implement correctly. + + + Encodes the supplied UTF-8 text. + A source buffer containing the UTF-8 text to encode. + The destination buffer to which the encoded form of will be written. + The number of bytes consumed from the buffer. + The number of bytes written to the buffer. + + to indicate there is no further source data that needs to be encoded; otherwise, . + A status code that describes the result of the encoding operation. + + + Finds the index of the first character to encode. + The text buffer to search. + The number of characters in . + The index of the first character to encode. + + + Finds the first element in a UTF-8 text input buffer that would be escaped by the current encoder instance. + The UTF-8 text input buffer to search. + The index of the first element in that would be escaped by the current encoder instance, or -1 if no data in requires escaping. + + + Gets the maximum number of characters that this encoder can generate for each input code point. + The maximum number of characters. + + + Encodes a Unicode scalar value and writes it to a buffer. + A Unicode scalar value. + A pointer to the buffer to which to write the encoded text. + The length of the destination in characters. + When the method returns, indicates the number of characters written to the . + + if is too small to fit the encoded text; otherwise, returns . + + + Determines if a given Unicode scalar value will be encoded. + A Unicode scalar value. + + if the value will be encoded by this encoder; otherwise, returns . + + + Represents a filter that allows only certain Unicode code points. + + + Instantiates an empty filter (allows no code points through by default). + + + Instantiates a filter by cloning the allowed list of another object. + The other object to be cloned. + + + Instantiates a filter where only the character ranges specified by are allowed by the filter. + The allowed character ranges. + + is . + + + Allows the character specified by through the filter. + The allowed character. + + + Allows all characters specified by through the filter. + The allowed characters. + + is . + + + Allows all code points specified by . + The allowed code points. + + is . + + + Allows all characters specified by through the filter. + The range of characters to be allowed. + + is . + + + Allows all characters specified by through the filter. + The ranges of characters to be allowed. + + is . + + + Resets this object by disallowing all characters. + + + Disallows the character through the filter. + The disallowed character. + + + Disallows all characters specified by through the filter. + The disallowed characters. + + is . + + + Disallows all characters specified by through the filter. + The range of characters to be disallowed. + + is . + + + Disallows all characters specified by through the filter. + The ranges of characters to be disallowed. + + is . + + + Gets an enumerator of all allowed code points. + The enumerator of allowed code points. + + + Represents a URL character encoding. + + + Initializes a new instance of the class. + + + Creates a new instance of UrlEncoder class with the specified settings. + Settings that control how the instance encodes, primarily which characters to encode. + A new instance of the class. + + is . + + + Creates a new instance of the UrlEncoder class that specifies characters the encoder is allowed to not encode. + The set of characters that the encoder is allowed to not encode. + A new instance of the class. + + is . + + + Gets a built-in instance of the class. + A built-in instance of the class. + + + Represents a contiguous range of Unicode code points. + + + Creates a new that includes a specified number of characters starting at a specified Unicode code point. + The first code point in the range. + The number of code points in the range. + + is less than zero or greater than 0xFFFF. +-or- + is less than zero. +-or- + plus is greater than 0xFFFF. + + + Creates a new instance from a span of characters. + The first character in the range. + The last character in the range. + A range that includes all characters between and . + + precedes . + + + Gets the first code point in the range represented by this instance. + The first code point in the range. + + + Gets the number of code points in the range represented by this instance. + The number of code points in the range. + + + Provides static properties that return predefined instances that correspond to blocks from the Unicode specification. + + + Gets a range that consists of the entire Basic Multilingual Plane (BMP), from U+0000 to U+FFFF). + A range that consists of the entire BMP. + + + Gets the Alphabetic Presentation Forms Unicode block (U+FB00-U+FB4F). + The Alphabetic Presentation Forms Unicode block (U+FB00-U+FB4F). + + + Gets the Arabic Unicode block (U+0600-U+06FF). + The Arabic Unicode block (U+0600-U+06FF). + + + Gets the Arabic Extended-A Unicode block (U+08A0-U+08FF). + The Arabic Extended-A Unicode block (U+08A0-U+08FF). + + + Gets the Arabic Presentation Forms-A Unicode block (U+FB50-U+FDFF). + The Arabic Presentation Forms-A Unicode block (U+FB50-U+FDFF). + + + Gets the Arabic Presentation Forms-B Unicode block (U+FE70-U+FEFF). + The Arabic Presentation Forms-B Unicode block (U+FE70-U+FEFF). + + + Gets the Arabic Supplement Unicode block (U+0750-U+077F). + The Arabic Supplement Unicode block (U+0750-U+077F). + + + Gets the Armenian Unicode block (U+0530-U+058F). + The Armenian Unicode block (U+0530-U+058F). + + + Gets the Arrows Unicode block (U+2190-U+21FF). + The Arrows Unicode block (U+2190-U+21FF). + + + Gets the Balinese Unicode block (U+1B00-U+1B7F). + The Balinese Unicode block (U+1B00-U+1B7F). + + + Gets the Bamum Unicode block (U+A6A0-U+A6FF). + The Bamum Unicode block (U+A6A0-U+A6FF). + + + Gets the Basic Latin Unicode block (U+0021-U+007F). + The Basic Latin Unicode block (U+0021-U+007F). + + + Gets the Batak Unicode block (U+1BC0-U+1BFF). + The Batak Unicode block (U+1BC0-U+1BFF). + + + Gets the Bengali Unicode block (U+0980-U+09FF). + The Bengali Unicode block (U+0980-U+09FF). + + + Gets the Block Elements Unicode block (U+2580-U+259F). + The Block Elements Unicode block (U+2580-U+259F). + + + Gets the Bopomofo Unicode block (U+3100-U+312F). + The Bopomofo Unicode block (U+3105-U+312F). + + + Gets the Bopomofo Extended Unicode block (U+31A0-U+31BF). + The Bopomofo Extended Unicode block (U+31A0-U+31BF). + + + Gets the Box Drawing Unicode block (U+2500-U+257F). + The Box Drawing Unicode block (U+2500-U+257F). + + + Gets the Braille Patterns Unicode block (U+2800-U+28FF). + The Braille Patterns Unicode block (U+2800-U+28FF). + + + Gets the Buginese Unicode block (U+1A00-U+1A1F). + The Buginese Unicode block (U+1A00-U+1A1F). + + + Gets the Buhid Unicode block (U+1740-U+175F). + The Buhid Unicode block (U+1740-U+175F). + + + Gets the Cham Unicode block (U+AA00-U+AA5F). + The Cham Unicode block (U+AA00-U+AA5F). + + + Gets the Cherokee Unicode block (U+13A0-U+13FF). + The Cherokee Unicode block (U+13A0-U+13FF). + + + Gets the Cherokee Supplement Unicode block (U+AB70-U+ABBF). + The Cherokee Supplement Unicode block (U+AB70-U+ABBF). + + + Gets the CJK Compatibility Unicode block (U+3300-U+33FF). + The CJK Compatibility Unicode block (U+3300-U+33FF). + + + Gets the CJK Compatibility Forms Unicode block (U+FE30-U+FE4F). + The CJK Compatibility Forms Unicode block (U+FE30-U+FE4F). + + + Gets the CJK Compatibility Ideographs Unicode block (U+F900-U+FAD9). + The CJK Compatibility Ideographs Unicode block (U+F900-U+FAD9). + + + Gets the CJK Radicals Supplement Unicode block (U+2E80-U+2EFF). + The CJK Radicals Supplement Unicode block (U+2E80-U+2EFF). + + + Gets the CJK Strokes Unicode block (U+31C0-U+31EF). + The CJK Strokes Unicode block (U+31C0-U+31EF). + + + Gets the CJK Symbols and Punctuation Unicode block (U+3000-U+303F). + The CJK Symbols and Punctuation Unicode block (U+3000-U+303F). + + + Gets the CJK Unified Ideographs Unicode block (U+4E00-U+9FCC). + The CJK Unified Ideographs Unicode block (U+4E00-U+9FCC). + + + Gets the CJK Unitied Ideographs Extension A Unicode block (U+3400-U+4DB5). + The CJK Unitied Ideographs Extension A Unicode block (U+3400-U+4DB5). + + + Gets the Combining Diacritical Marks Unicode block (U+0300-U+036F). + The Combining Diacritical Marks Unicode block (U+0300-U+036F). + + + Gets the Combining Diacritical Marks Extended Unicode block (U+1AB0-U+1AFF). + The Combining Diacritical Marks Extended Unicode block (U+1AB0-U+1AFF). + + + Gets the Combining Diacritical Marks for Symbols Unicode block (U+20D0-U+20FF). + The Combining Diacritical Marks for Symbols Unicode block (U+20D0-U+20FF). + + + Gets the Combining Diacritical Marks Supplement Unicode block (U+1DC0-U+1DFF). + The Combining Diacritical Marks Supplement Unicode block (U+1DC0-U+1DFF). + + + Gets the Combining Half Marks Unicode block (U+FE20-U+FE2F). + The Combining Half Marks Unicode block (U+FE20-U+FE2F). + + + Gets the Common Indic Number Forms Unicode block (U+A830-U+A83F). + The Common Indic Number Forms Unicode block (U+A830-U+A83F). + + + Gets the Control Pictures Unicode block (U+2400-U+243F). + The Control Pictures Unicode block (U+2400-U+243F). + + + Gets the Coptic Unicode block (U+2C80-U+2CFF). + The Coptic Unicode block (U+2C80-U+2CFF). + + + Gets the Currency Symbols Unicode block (U+20A0-U+20CF). + The Currency Symbols Unicode block (U+20A0-U+20CF). + + + Gets the Cyrillic Unicode block (U+0400-U+04FF). + The Cyrillic Unicode block (U+0400-U+04FF). + + + Gets the Cyrillic Extended-A Unicode block (U+2DE0-U+2DFF). + The Cyrillic Extended-A Unicode block (U+2DE0-U+2DFF). + + + Gets the Cyrillic Extended-B Unicode block (U+A640-U+A69F). + The Cyrillic Extended-B Unicode block (U+A640-U+A69F). + + + A corresponding to the 'Cyrillic Extended-C' Unicode block (U+1C80..U+1C8F). + + + Gets the Cyrillic Supplement Unicode block (U+0500-U+052F). + The Cyrillic Supplement Unicode block (U+0500-U+052F). + + + Gets the Devangari Unicode block (U+0900-U+097F). + The Devangari Unicode block (U+0900-U+097F). + + + Gets the Devanagari Extended Unicode block (U+A8E0-U+A8FF). + The Devanagari Extended Unicode block (U+A8E0-U+A8FF). + + + Gets the Dingbats Unicode block (U+2700-U+27BF). + The Dingbats Unicode block (U+2700-U+27BF). + + + Gets the Enclosed Alphanumerics Unicode block (U+2460-U+24FF). + The Enclosed Alphanumerics Unicode block (U+2460-U+24FF). + + + Gets the Enclosed CJK Letters and Months Unicode block (U+3200-U+32FF). + The Enclosed CJK Letters and Months Unicode block (U+3200-U+32FF). + + + Gets the Ethiopic Unicode block (U+1200-U+137C). + The Ethiopic Unicode block (U+1200-U+137C). + + + Gets the Ethipic Extended Unicode block (U+2D80-U+2DDF). + The Ethipic Extended Unicode block (U+2D80-U+2DDF). + + + Gets the Ethiopic Extended-A Unicode block (U+AB00-U+AB2F). + The Ethiopic Extended-A Unicode block (U+AB00-U+AB2F). + + + Gets the Ethiopic Supplement Unicode block (U+1380-U+1399). + The Ethiopic Supplement Unicode block (U+1380-U+1399). + + + Gets the General Punctuation Unicode block (U+2000-U+206F). + The General Punctuation Unicode block (U+2000-U+206F). + + + Gets the Geometric Shapes Unicode block (U+25A0-U+25FF). + The Geometric Shapes Unicode block (U+25A0-U+25FF). + + + Gets the Georgian Unicode block (U+10A0-U+10FF). + The Georgian Unicode block (U+10A0-U+10FF). + + + A corresponding to the 'Georgian Extended' Unicode block (U+1C90..U+1CBF). + + + Gets the Georgian Supplement Unicode block (U+2D00-U+2D2F). + The Georgian Supplement Unicode block (U+2D00-U+2D2F). + + + Gets the Glagolitic Unicode block (U+2C00-U+2C5F). + The Glagolitic Unicode block (U+2C00-U+2C5F). + + + Gets the Greek and Coptic Unicode block (U+0370-U+03FF). + The Greek and Coptic Unicode block (U+0370-U+03FF). + + + Gets the Greek Extended Unicode block (U+1F00-U+1FFF). + The Greek Extended Unicode block (U+1F00-U+1FFF). + + + Gets the Gujarti Unicode block (U+0A81-U+0AFF). + The Gujarti Unicode block (U+0A81-U+0AFF). + + + Gets the Gurmukhi Unicode block (U+0A01-U+0A7F). + The Gurmukhi Unicode block (U+0A01-U+0A7F). + + + Gets the Halfwidth and Fullwidth Forms Unicode block (U+FF00-U+FFEE). + The Halfwidth and Fullwidth Forms Unicode block (U+FF00-U+FFEE). + + + Gets the Hangul Compatibility Jamo Unicode block (U+3131-U+318F). + The Hangul Compatibility Jamo Unicode block (U+3131-U+318F). + + + Gets the Hangul Jamo Unicode block (U+1100-U+11FF). + The Hangul Jamo Unicode block (U+1100-U+11FF). + + + Gets the Hangul Jamo Extended-A Unicode block (U+A960-U+A9F). + The Hangul Jamo Extended-A Unicode block (U+A960-U+A97F). + + + Gets the Hangul Jamo Extended-B Unicode block (U+D7B0-U+D7FF). + The Hangul Jamo Extended-B Unicode block (U+D7B0-U+D7FF). + + + Gets the Hangul Syllables Unicode block (U+AC00-U+D7AF). + The Hangul Syllables Unicode block (U+AC00-U+D7AF). + + + Gets the Hanunoo Unicode block (U+1720-U+173F). + The Hanunoo Unicode block (U+1720-U+173F). + + + Gets the Hebrew Unicode block (U+0590-U+05FF). + The Hebrew Unicode block (U+0590-U+05FF). + + + Gets the Hiragana Unicode block (U+3040-U+309F). + The Hiragana Unicode block (U+3040-U+309F). + + + Gets the Ideographic Description Characters Unicode block (U+2FF0-U+2FFF). + The Ideographic Description Characters Unicode block (U+2FF0-U+2FFF). + + + Gets the IPA Extensions Unicode block (U+0250-U+02AF). + The IPA Extensions Unicode block (U+0250-U+02AF). + + + Gets the Javanese Unicode block (U+A980-U+A9DF). + The Javanese Unicode block (U+A980-U+A9DF). + + + Gets the Kanbun Unicode block (U+3190-U+319F). + The Kanbun Unicode block (U+3190-U+319F). + + + Gets the Kangxi Radicals Supplement Unicode block (U+2F00-U+2FDF). + The Kangxi Radicals Supplement Unicode block (U+2F00-U+2FDF). + + + Gets the Kannada Unicode block (U+0C81-U+0CFF). + The Kannada Unicode block (U+0C81-U+0CFF). + + + Gets the Katakana Unicode block (U+30A0-U+30FF). + The Katakana Unicode block (U+30A0-U+30FF). + + + Gets the Katakana Phonetic Extensions Unicode block (U+31F0-U+31FF). + The Katakana Phonetic Extensions Unicode block (U+31F0-U+31FF). + + + Gets the Kayah Li Unicode block (U+A900-U+A92F). + The Kayah Li Unicode block (U+A900-U+A92F). + + + Gets the Khmer Unicode block (U+1780-U+17FF). + The Khmer Unicode block (U+1780-U+17FF). + + + Gets the Khmer Symbols Unicode block (U+19E0-U+19FF). + The Khmer Symbols Unicode block (U+19E0-U+19FF). + + + Gets the Lao Unicode block (U+0E80-U+0EDF). + The Lao Unicode block (U+0E80-U+0EDF). + + + Gets the Latin-1 Supplement Unicode block (U+00A1-U+00FF). + The Latin-1 Supplement Unicode block (U+00A1-U+00FF). + + + Gets the Latin Extended-A Unicode block (U+0100-U+017F). + The Latin Extended-A Unicode block (U+0100-U+017F). + + + Gets the Latin Extended Additional Unicode block (U+1E00-U+1EFF). + The Latin Extended Additional Unicode block (U+1E00-U+1EFF). + + + Gets the Latin Extended-B Unicode block (U+0180-U+024F). + The Latin Extended-B Unicode block (U+0180-U+024F). + + + Gets the Latin Extended-C Unicode block (U+2C60-U+2C7F). + The Latin Extended-C Unicode block (U+2C60-U+2C7F). + + + Gets the Latin Extended-D Unicode block (U+A720-U+A7FF). + The Latin Extended-D Unicode block (U+A720-U+A7FF). + + + Gets the Latin Extended-E Unicode block (U+AB30-U+AB6F). + The Latin Extended-E Unicode block (U+AB30-U+AB6F). + + + Gets the Lepcha Unicode block (U+1C00-U+1C4F). + The Lepcha Unicode block (U+1C00-U+1C4F). + + + Gets the Letterlike Symbols Unicode block (U+2100-U+214F). + The Letterlike Symbols Unicode block (U+2100-U+214F). + + + Gets the Limbu Unicode block (U+1900-U+194F). + The Limbu Unicode block (U+1900-U+194F). + + + Gets the Lisu Unicode block (U+A4D0-U+A4FF). + The Lisu Unicode block (U+A4D0-U+A4FF). + + + Gets the Malayalam Unicode block (U+0D00-U+0D7F). + The Malayalam Unicode block (U+0D00-U+0D7F). + + + Gets the Mandaic Unicode block (U+0840-U+085F). + The Mandaic Unicode block (U+0840-U+085F). + + + Gets the Mathematical Operators Unicode block (U+2200-U+22FF). + The Mathematical Operators Unicode block (U+2200-U+22FF). + + + Gets the Meetei Mayek Unicode block (U+ABC0-U+ABFF). + The Meetei Mayek Unicode block (U+ABC0-U+ABFF). + + + Gets the Meetei Mayek Extensions Unicode block (U+AAE0-U+AAFF). + The Meetei Mayek Extensions Unicode block (U+AAE0-U+AAFF). + + + Gets the Miscellaneous Mathematical Symbols-A Unicode block (U+27C0-U+27EF). + The Miscellaneous Mathematical Symbols-A Unicode block (U+27C0-U+27EF). + + + Gets the Miscellaneous Mathematical Symbols-B Unicode block (U+2980-U+29FF). + The Miscellaneous Mathematical Symbols-B Unicode block (U+2980-U+29FF). + + + Gets the Miscellaneous Symbols Unicode block (U+2600-U+26FF). + The Miscellaneous Symbols Unicode block (U+2600-U+26FF). + + + Gets the Miscellaneous Symbols and Arrows Unicode block (U+2B00-U+2BFF). + The Miscellaneous Symbols and Arrows Unicode block (U+2B00-U+2BFF). + + + Gets the Miscellaneous Technical Unicode block (U+2300-U+23FF). + The Miscellaneous Technical Unicode block (U+2300-U+23FF). + + + Gets the Modifier Tone Letters Unicode block (U+A700-U+A71F). + The Modifier Tone Letters Unicode block (U+A700-U+A71F). + + + Gets the Mongolian Unicode block (U+1800-U+18AF). + The Mongolian Unicode block (U+1800-U+18AF). + + + Gets the Myanmar Unicode block (U+1000-U+109F). + The Myanmar Unicode block (U+1000-U+109F). + + + Gets the Myanmar Extended-A Unicode block (U+AA60-U+AA7F). + The Myanmar Extended-A Unicode block (U+AA60-U+AA7F). + + + Gets the Myanmar Extended-B Unicode block (U+A9E0-U+A9FF). + The Myanmar Extended-B Unicode block (U+A9E0-U+A9FF). + + + Gets the New Tai Lue Unicode block (U+1980-U+19DF). + The New Tai Lue Unicode block (U+1980-U+19DF). + + + Gets the NKo Unicode block (U+07C0-U+07FF). + The NKo Unicode block (U+07C0-U+07FF). + + + Gets an empty Unicode range. + A Unicode range with no elements. + + + Gets the Number Forms Unicode block (U+2150-U+218F). + The Number Forms Unicode block (U+2150-U+218F). + + + Gets the Ogham Unicode block (U+1680-U+169F). + The Ogham Unicode block (U+1680-U+169F). + + + Gets the Ol Chiki Unicode block (U+1C50-U+1C7F). + The Ol Chiki Unicode block (U+1C50-U+1C7F). + + + Gets the Optical Character Recognition Unicode block (U+2440-U+245F). + The Optical Character Recognition Unicode block (U+2440-U+245F). + + + Gets the Oriya Unicode block (U+0B00-U+0B7F). + The Oriya Unicode block (U+0B00-U+0B7F). + + + Gets the Phags-pa Unicode block (U+A840-U+A87F). + The Phags-pa Unicode block (U+A840-U+A87F). + + + Gets the Phonetic Extensions Unicode block (U+1D00-U+1D7F). + The Phonetic Extensions Unicode block (U+1D00-U+1D7F). + + + Gets the Phonetic Extensions Supplement Unicode block (U+1D80-U+1DBF). + The Phonetic Extensions Supplement Unicode block (U+1D80-U+1DBF). + + + Gets the Rejang Unicode block (U+A930-U+A95F). + The Rejang Unicode block (U+A930-U+A95F). + + + Gets the Runic Unicode block (U+16A0-U+16FF). + The Runic Unicode block (U+16A0-U+16FF). + + + Gets the Samaritan Unicode block (U+0800-U+083F). + The Samaritan Unicode block (U+0800-U+083F). + + + Gets the Saurashtra Unicode block (U+A880-U+A8DF). + The Saurashtra Unicode block (U+A880-U+A8DF). + + + Gets the Sinhala Unicode block (U+0D80-U+0DFF). + The Sinhala Unicode block (U+0D80-U+0DFF). + + + Gets the Small Form Variants Unicode block (U+FE50-U+FE6F). + The Small Form Variants Unicode block (U+FE50-U+FE6F). + + + Gets the Spacing Modifier Letters Unicode block (U+02B0-U+02FF). + The Spacing Modifier Letters Unicode block (U+02B0-U+02FF). + + + Gets the Specials Unicode block (U+FFF0-U+FFFF). + The Specials Unicode block (U+FFF0-U+FFFF). + + + Gets the Sundanese Unicode block (U+1B80-U+1BBF). + The Sundanese Unicode block (U+1B80-U+1BBF). + + + Gets the Sundanese Supplement Unicode block (U+1CC0-U+1CCF). + The Sundanese Supplement Unicode block (U+1CC0-U+1CCF). + + + Gets the Superscripts and Subscripts Unicode block (U+2070-U+209F). + The Superscripts and Subscripts Unicode block (U+2070-U+209F). + + + Gets the Supplemental Arrows-A Unicode block (U+27F0-U+27FF). + The Supplemental Arrows-A Unicode block (U+27F0-U+27FF). + + + Gets the Supplemental Arrows-B Unicode block (U+2900-U+297F). + The Supplemental Arrows-B Unicode block (U+2900-U+297F). + + + Gets the Supplemental Mathematical Operators Unicode block (U+2A00-U+2AFF). + The Supplemental Mathematical Operators Unicode block (U+2A00-U+2AFF). + + + Gets the Supplemental Punctuation Unicode block (U+2E00-U+2E7F). + The Supplemental Punctuation Unicode block (U+2E00-U+2E7F). + + + Gets the Syloti Nagri Unicode block (U+A800-U+A82F). + The Syloti Nagri Unicode block (U+A800-U+A82F). + + + Gets the Syriac Unicode block (U+0700-U+074F). + The Syriac Unicode block (U+0700-U+074F). + + + A corresponding to the 'Syriac Supplement' Unicode block (U+0860..U+086F). + + + Gets the Tagalog Unicode block (U+1700-U+171F). + The Tagalog Unicode block (U+1700-U+171F). + + + Gets the Tagbanwa Unicode block (U+1760-U+177F). + The Tagbanwa Unicode block (U+1760-U+177F). + + + Gets the Tai Le Unicode block (U+1950-U+197F). + The Tai Le Unicode block (U+1950-U+197F). + + + Gets the Tai Tham Unicode block (U+1A20-U+1AAF). + The Tai Tham Unicode block (U+1A20-U+1AAF). + + + Gets the Tai Viet Unicode block (U+AA80-U+AADF). + The Tai Viet Unicode block (U+AA80-U+AADF). + + + Gets the Tamil Unicode block (U+0B80-U+0BFF). + The Tamil Unicode block (U+0B82-U+0BFA). + + + Gets the Telugu Unicode block (U+0C00-U+0C7F). + The Telugu Unicode block (U+0C00-U+0C7F). + + + Gets the Thaana Unicode block (U+0780-U+07BF). + The Thaana Unicode block (U+0780-U+07BF). + + + Gets the Thai Unicode block (U+0E00-U+0E7F). + The Thai Unicode block (U+0E00-U+0E7F). + + + Gets the Tibetan Unicode block (U+0F00-U+0FFF). + The Tibetan Unicode block (U+0F00-U+0FFF). + + + Gets the Tifinagh Unicode block (U+2D30-U+2D7F). + The Tifinagh Unicode block (U+2D30-U+2D7F). + + + Gets the Unified Canadian Aboriginal Syllabics Unicode block (U+1400-U+167F). + The Unified Canadian Aboriginal Syllabics Unicode block (U+1400-U+167F). + + + Gets the Unified Canadian Aboriginal Syllabics Extended Unicode block (U+18B0-U+18FF). + The Unified Canadian Aboriginal Syllabics Extended Unicode block (U+18B0-U+18FF). + + + Gets the Vai Unicode block (U+A500-U+A63F). + The Vai Unicode block (U+A500-U+A63F). + + + Gets the Variation Selectors Unicode block (U+FE00-U+FE0F). + The Variation Selectors Unicode block (U+FE00-U+FE0F). + + + Gets the Vedic Extensions Unicode block (U+1CD0-U+1CFF). + The Vedic Extensions Unicode block (U+1CD0-U+1CFF). + + + Gets the Vertical Forms Unicode block (U+FE10-U+FE1F). + The Vertical Forms Unicode block (U+FE10-U+FE1F). + + + Gets the Yijing Hexagram Symbols Unicode block (U+4DC0-U+4DFF). + The Yijing Hexagram Symbols Unicode block (U+4DC0-U+4DFF). + + + Gets the Yi Radicals Unicode block (U+A490-U+A4CF). + The Yi Radicals Unicode block (U+A490-U+A4CF). + + + Gets the Yi Syllables Unicode block (U+A000-U+A48F). + The Yi Syllables Unicode block (U+A000-U+A48F). + + + \ No newline at end of file diff --git a/Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/lib/netstandard2.0/System.Text.Encodings.Web.xml.meta b/Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/lib/netstandard2.0/System.Text.Encodings.Web.xml.meta new file mode 100644 index 0000000..0d15277 --- /dev/null +++ b/Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/lib/netstandard2.0/System.Text.Encodings.Web.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: f60b7a9bc92bb074cacf054f1a916d89 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/lib/netstandard2.1.meta b/Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/lib/netstandard2.1.meta new file mode 100644 index 0000000..8b92e57 --- /dev/null +++ b/Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/lib/netstandard2.1.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9cb7466220cae0c4aaa680bcc6d31727 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/lib/netstandard2.1/System.Text.Encodings.Web.dll b/Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/lib/netstandard2.1/System.Text.Encodings.Web.dll new file mode 100644 index 0000000..d9903df --- /dev/null +++ b/Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/lib/netstandard2.1/System.Text.Encodings.Web.dll @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ef1153543cf059821e8879306b6b0bb3f9e506b4cabdfe219c08a935e0869dc3 +size 56184 diff --git a/Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/lib/netstandard2.1/System.Text.Encodings.Web.dll.meta b/Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/lib/netstandard2.1/System.Text.Encodings.Web.dll.meta new file mode 100644 index 0000000..83bec77 --- /dev/null +++ b/Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/lib/netstandard2.1/System.Text.Encodings.Web.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: 493988f9ae3d55c4b8e5d32d3870df90 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/lib/netstandard2.1/System.Text.Encodings.Web.xml b/Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/lib/netstandard2.1/System.Text.Encodings.Web.xml new file mode 100644 index 0000000..c5904a1 --- /dev/null +++ b/Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/lib/netstandard2.1/System.Text.Encodings.Web.xml @@ -0,0 +1,932 @@ + + + + System.Text.Encodings.Web + + + + Represents an HTML character encoding. + + + Initializes a new instance of the class. + + + Creates a new instance of the HtmlEncoder class with the specified settings. + Settings that control how the instance encodes, primarily which characters to encode. + A new instance of the class. + + is . + + + Creates a new instance of the HtmlEncoder class that specifies characters the encoder is allowed to not encode. + The set of characters that the encoder is allowed to not encode. + A new instance of the class. + + is . + + + Gets a built-in instance of the class. + A built-in instance of the class. + + + Represents a JavaScript character encoding. + + + Initializes a new instance of the class. + + + Creates a new instance of JavaScriptEncoder class with the specified settings. + Settings that control how the instance encodes, primarily which characters to encode. + A new instance of the class. + + is . + + + Creates a new instance of the JavaScriptEncoder class that specifies characters the encoder is allowed to not encode. + The set of characters that the encoder is allowed to not encode. + A new instance of the class. + + is . + + + Gets a built-in instance of the class. + A built-in instance of the class. + + + Gets a built-in JavaScript encoder instance that is less strict about what is encoded. + A JavaScript encoder instance. + + + The base class of web encoders. + + + Initializes a new instance of the class. + + + Encodes characters from an array and writes them to a object. + The stream to which to write the encoded text. + The array of characters to encode. + The array index of the first character to encode. + The number of characters in the array to encode. + + is . + The method failed. The encoder does not implement correctly. + + is . + + is out of range. + + is out of range. + + + Encodes the specified string to a object. + The stream to which to write the encoded text. + The string to encode. + + + Encodes a substring and writes it to a object. + The stream to which to write the encoded text. + The string whose substring is to be encoded. + The index where the substring starts. + The number of characters in the substring. + + is . + The method failed. The encoder does not implement correctly. + + is . + + is out of range. + + is out of range. + + + Encodes the supplied characters. + A source buffer containing the characters to encode. + The destination buffer to which the encoded form of will be written. + The number of characters consumed from the buffer. + The number of characters written to the buffer. + + to indicate there is no further source data that needs to be encoded; otherwise, . + An enumeration value that describes the result of the encoding operation. + + + Encodes the supplied string and returns the encoded text as a new string. + The string to encode. + The encoded string. + + is . + The method failed. The encoder does not implement correctly. + + + Encodes the supplied UTF-8 text. + A source buffer containing the UTF-8 text to encode. + The destination buffer to which the encoded form of will be written. + The number of bytes consumed from the buffer. + The number of bytes written to the buffer. + + to indicate there is no further source data that needs to be encoded; otherwise, . + A status code that describes the result of the encoding operation. + + + Finds the index of the first character to encode. + The text buffer to search. + The number of characters in . + The index of the first character to encode. + + + Finds the first element in a UTF-8 text input buffer that would be escaped by the current encoder instance. + The UTF-8 text input buffer to search. + The index of the first element in that would be escaped by the current encoder instance, or -1 if no data in requires escaping. + + + Gets the maximum number of characters that this encoder can generate for each input code point. + The maximum number of characters. + + + Encodes a Unicode scalar value and writes it to a buffer. + A Unicode scalar value. + A pointer to the buffer to which to write the encoded text. + The length of the destination in characters. + When the method returns, indicates the number of characters written to the . + + if is too small to fit the encoded text; otherwise, returns . + + + Determines if a given Unicode scalar value will be encoded. + A Unicode scalar value. + + if the value will be encoded by this encoder; otherwise, returns . + + + Represents a filter that allows only certain Unicode code points. + + + Instantiates an empty filter (allows no code points through by default). + + + Instantiates a filter by cloning the allowed list of another object. + The other object to be cloned. + + + Instantiates a filter where only the character ranges specified by are allowed by the filter. + The allowed character ranges. + + is . + + + Allows the character specified by through the filter. + The allowed character. + + + Allows all characters specified by through the filter. + The allowed characters. + + is . + + + Allows all code points specified by . + The allowed code points. + + is . + + + Allows all characters specified by through the filter. + The range of characters to be allowed. + + is . + + + Allows all characters specified by through the filter. + The ranges of characters to be allowed. + + is . + + + Resets this object by disallowing all characters. + + + Disallows the character through the filter. + The disallowed character. + + + Disallows all characters specified by through the filter. + The disallowed characters. + + is . + + + Disallows all characters specified by through the filter. + The range of characters to be disallowed. + + is . + + + Disallows all characters specified by through the filter. + The ranges of characters to be disallowed. + + is . + + + Gets an enumerator of all allowed code points. + The enumerator of allowed code points. + + + Represents a URL character encoding. + + + Initializes a new instance of the class. + + + Creates a new instance of UrlEncoder class with the specified settings. + Settings that control how the instance encodes, primarily which characters to encode. + A new instance of the class. + + is . + + + Creates a new instance of the UrlEncoder class that specifies characters the encoder is allowed to not encode. + The set of characters that the encoder is allowed to not encode. + A new instance of the class. + + is . + + + Gets a built-in instance of the class. + A built-in instance of the class. + + + Represents a contiguous range of Unicode code points. + + + Creates a new that includes a specified number of characters starting at a specified Unicode code point. + The first code point in the range. + The number of code points in the range. + + is less than zero or greater than 0xFFFF. +-or- + is less than zero. +-or- + plus is greater than 0xFFFF. + + + Creates a new instance from a span of characters. + The first character in the range. + The last character in the range. + A range that includes all characters between and . + + precedes . + + + Gets the first code point in the range represented by this instance. + The first code point in the range. + + + Gets the number of code points in the range represented by this instance. + The number of code points in the range. + + + Provides static properties that return predefined instances that correspond to blocks from the Unicode specification. + + + Gets a range that consists of the entire Basic Multilingual Plane (BMP), from U+0000 to U+FFFF). + A range that consists of the entire BMP. + + + Gets the Alphabetic Presentation Forms Unicode block (U+FB00-U+FB4F). + The Alphabetic Presentation Forms Unicode block (U+FB00-U+FB4F). + + + Gets the Arabic Unicode block (U+0600-U+06FF). + The Arabic Unicode block (U+0600-U+06FF). + + + Gets the Arabic Extended-A Unicode block (U+08A0-U+08FF). + The Arabic Extended-A Unicode block (U+08A0-U+08FF). + + + Gets the Arabic Presentation Forms-A Unicode block (U+FB50-U+FDFF). + The Arabic Presentation Forms-A Unicode block (U+FB50-U+FDFF). + + + Gets the Arabic Presentation Forms-B Unicode block (U+FE70-U+FEFF). + The Arabic Presentation Forms-B Unicode block (U+FE70-U+FEFF). + + + Gets the Arabic Supplement Unicode block (U+0750-U+077F). + The Arabic Supplement Unicode block (U+0750-U+077F). + + + Gets the Armenian Unicode block (U+0530-U+058F). + The Armenian Unicode block (U+0530-U+058F). + + + Gets the Arrows Unicode block (U+2190-U+21FF). + The Arrows Unicode block (U+2190-U+21FF). + + + Gets the Balinese Unicode block (U+1B00-U+1B7F). + The Balinese Unicode block (U+1B00-U+1B7F). + + + Gets the Bamum Unicode block (U+A6A0-U+A6FF). + The Bamum Unicode block (U+A6A0-U+A6FF). + + + Gets the Basic Latin Unicode block (U+0021-U+007F). + The Basic Latin Unicode block (U+0021-U+007F). + + + Gets the Batak Unicode block (U+1BC0-U+1BFF). + The Batak Unicode block (U+1BC0-U+1BFF). + + + Gets the Bengali Unicode block (U+0980-U+09FF). + The Bengali Unicode block (U+0980-U+09FF). + + + Gets the Block Elements Unicode block (U+2580-U+259F). + The Block Elements Unicode block (U+2580-U+259F). + + + Gets the Bopomofo Unicode block (U+3100-U+312F). + The Bopomofo Unicode block (U+3105-U+312F). + + + Gets the Bopomofo Extended Unicode block (U+31A0-U+31BF). + The Bopomofo Extended Unicode block (U+31A0-U+31BF). + + + Gets the Box Drawing Unicode block (U+2500-U+257F). + The Box Drawing Unicode block (U+2500-U+257F). + + + Gets the Braille Patterns Unicode block (U+2800-U+28FF). + The Braille Patterns Unicode block (U+2800-U+28FF). + + + Gets the Buginese Unicode block (U+1A00-U+1A1F). + The Buginese Unicode block (U+1A00-U+1A1F). + + + Gets the Buhid Unicode block (U+1740-U+175F). + The Buhid Unicode block (U+1740-U+175F). + + + Gets the Cham Unicode block (U+AA00-U+AA5F). + The Cham Unicode block (U+AA00-U+AA5F). + + + Gets the Cherokee Unicode block (U+13A0-U+13FF). + The Cherokee Unicode block (U+13A0-U+13FF). + + + Gets the Cherokee Supplement Unicode block (U+AB70-U+ABBF). + The Cherokee Supplement Unicode block (U+AB70-U+ABBF). + + + Gets the CJK Compatibility Unicode block (U+3300-U+33FF). + The CJK Compatibility Unicode block (U+3300-U+33FF). + + + Gets the CJK Compatibility Forms Unicode block (U+FE30-U+FE4F). + The CJK Compatibility Forms Unicode block (U+FE30-U+FE4F). + + + Gets the CJK Compatibility Ideographs Unicode block (U+F900-U+FAD9). + The CJK Compatibility Ideographs Unicode block (U+F900-U+FAD9). + + + Gets the CJK Radicals Supplement Unicode block (U+2E80-U+2EFF). + The CJK Radicals Supplement Unicode block (U+2E80-U+2EFF). + + + Gets the CJK Strokes Unicode block (U+31C0-U+31EF). + The CJK Strokes Unicode block (U+31C0-U+31EF). + + + Gets the CJK Symbols and Punctuation Unicode block (U+3000-U+303F). + The CJK Symbols and Punctuation Unicode block (U+3000-U+303F). + + + Gets the CJK Unified Ideographs Unicode block (U+4E00-U+9FCC). + The CJK Unified Ideographs Unicode block (U+4E00-U+9FCC). + + + Gets the CJK Unitied Ideographs Extension A Unicode block (U+3400-U+4DB5). + The CJK Unitied Ideographs Extension A Unicode block (U+3400-U+4DB5). + + + Gets the Combining Diacritical Marks Unicode block (U+0300-U+036F). + The Combining Diacritical Marks Unicode block (U+0300-U+036F). + + + Gets the Combining Diacritical Marks Extended Unicode block (U+1AB0-U+1AFF). + The Combining Diacritical Marks Extended Unicode block (U+1AB0-U+1AFF). + + + Gets the Combining Diacritical Marks for Symbols Unicode block (U+20D0-U+20FF). + The Combining Diacritical Marks for Symbols Unicode block (U+20D0-U+20FF). + + + Gets the Combining Diacritical Marks Supplement Unicode block (U+1DC0-U+1DFF). + The Combining Diacritical Marks Supplement Unicode block (U+1DC0-U+1DFF). + + + Gets the Combining Half Marks Unicode block (U+FE20-U+FE2F). + The Combining Half Marks Unicode block (U+FE20-U+FE2F). + + + Gets the Common Indic Number Forms Unicode block (U+A830-U+A83F). + The Common Indic Number Forms Unicode block (U+A830-U+A83F). + + + Gets the Control Pictures Unicode block (U+2400-U+243F). + The Control Pictures Unicode block (U+2400-U+243F). + + + Gets the Coptic Unicode block (U+2C80-U+2CFF). + The Coptic Unicode block (U+2C80-U+2CFF). + + + Gets the Currency Symbols Unicode block (U+20A0-U+20CF). + The Currency Symbols Unicode block (U+20A0-U+20CF). + + + Gets the Cyrillic Unicode block (U+0400-U+04FF). + The Cyrillic Unicode block (U+0400-U+04FF). + + + Gets the Cyrillic Extended-A Unicode block (U+2DE0-U+2DFF). + The Cyrillic Extended-A Unicode block (U+2DE0-U+2DFF). + + + Gets the Cyrillic Extended-B Unicode block (U+A640-U+A69F). + The Cyrillic Extended-B Unicode block (U+A640-U+A69F). + + + A corresponding to the 'Cyrillic Extended-C' Unicode block (U+1C80..U+1C8F). + + + Gets the Cyrillic Supplement Unicode block (U+0500-U+052F). + The Cyrillic Supplement Unicode block (U+0500-U+052F). + + + Gets the Devangari Unicode block (U+0900-U+097F). + The Devangari Unicode block (U+0900-U+097F). + + + Gets the Devanagari Extended Unicode block (U+A8E0-U+A8FF). + The Devanagari Extended Unicode block (U+A8E0-U+A8FF). + + + Gets the Dingbats Unicode block (U+2700-U+27BF). + The Dingbats Unicode block (U+2700-U+27BF). + + + Gets the Enclosed Alphanumerics Unicode block (U+2460-U+24FF). + The Enclosed Alphanumerics Unicode block (U+2460-U+24FF). + + + Gets the Enclosed CJK Letters and Months Unicode block (U+3200-U+32FF). + The Enclosed CJK Letters and Months Unicode block (U+3200-U+32FF). + + + Gets the Ethiopic Unicode block (U+1200-U+137C). + The Ethiopic Unicode block (U+1200-U+137C). + + + Gets the Ethipic Extended Unicode block (U+2D80-U+2DDF). + The Ethipic Extended Unicode block (U+2D80-U+2DDF). + + + Gets the Ethiopic Extended-A Unicode block (U+AB00-U+AB2F). + The Ethiopic Extended-A Unicode block (U+AB00-U+AB2F). + + + Gets the Ethiopic Supplement Unicode block (U+1380-U+1399). + The Ethiopic Supplement Unicode block (U+1380-U+1399). + + + Gets the General Punctuation Unicode block (U+2000-U+206F). + The General Punctuation Unicode block (U+2000-U+206F). + + + Gets the Geometric Shapes Unicode block (U+25A0-U+25FF). + The Geometric Shapes Unicode block (U+25A0-U+25FF). + + + Gets the Georgian Unicode block (U+10A0-U+10FF). + The Georgian Unicode block (U+10A0-U+10FF). + + + A corresponding to the 'Georgian Extended' Unicode block (U+1C90..U+1CBF). + + + Gets the Georgian Supplement Unicode block (U+2D00-U+2D2F). + The Georgian Supplement Unicode block (U+2D00-U+2D2F). + + + Gets the Glagolitic Unicode block (U+2C00-U+2C5F). + The Glagolitic Unicode block (U+2C00-U+2C5F). + + + Gets the Greek and Coptic Unicode block (U+0370-U+03FF). + The Greek and Coptic Unicode block (U+0370-U+03FF). + + + Gets the Greek Extended Unicode block (U+1F00-U+1FFF). + The Greek Extended Unicode block (U+1F00-U+1FFF). + + + Gets the Gujarti Unicode block (U+0A81-U+0AFF). + The Gujarti Unicode block (U+0A81-U+0AFF). + + + Gets the Gurmukhi Unicode block (U+0A01-U+0A7F). + The Gurmukhi Unicode block (U+0A01-U+0A7F). + + + Gets the Halfwidth and Fullwidth Forms Unicode block (U+FF00-U+FFEE). + The Halfwidth and Fullwidth Forms Unicode block (U+FF00-U+FFEE). + + + Gets the Hangul Compatibility Jamo Unicode block (U+3131-U+318F). + The Hangul Compatibility Jamo Unicode block (U+3131-U+318F). + + + Gets the Hangul Jamo Unicode block (U+1100-U+11FF). + The Hangul Jamo Unicode block (U+1100-U+11FF). + + + Gets the Hangul Jamo Extended-A Unicode block (U+A960-U+A9F). + The Hangul Jamo Extended-A Unicode block (U+A960-U+A97F). + + + Gets the Hangul Jamo Extended-B Unicode block (U+D7B0-U+D7FF). + The Hangul Jamo Extended-B Unicode block (U+D7B0-U+D7FF). + + + Gets the Hangul Syllables Unicode block (U+AC00-U+D7AF). + The Hangul Syllables Unicode block (U+AC00-U+D7AF). + + + Gets the Hanunoo Unicode block (U+1720-U+173F). + The Hanunoo Unicode block (U+1720-U+173F). + + + Gets the Hebrew Unicode block (U+0590-U+05FF). + The Hebrew Unicode block (U+0590-U+05FF). + + + Gets the Hiragana Unicode block (U+3040-U+309F). + The Hiragana Unicode block (U+3040-U+309F). + + + Gets the Ideographic Description Characters Unicode block (U+2FF0-U+2FFF). + The Ideographic Description Characters Unicode block (U+2FF0-U+2FFF). + + + Gets the IPA Extensions Unicode block (U+0250-U+02AF). + The IPA Extensions Unicode block (U+0250-U+02AF). + + + Gets the Javanese Unicode block (U+A980-U+A9DF). + The Javanese Unicode block (U+A980-U+A9DF). + + + Gets the Kanbun Unicode block (U+3190-U+319F). + The Kanbun Unicode block (U+3190-U+319F). + + + Gets the Kangxi Radicals Supplement Unicode block (U+2F00-U+2FDF). + The Kangxi Radicals Supplement Unicode block (U+2F00-U+2FDF). + + + Gets the Kannada Unicode block (U+0C81-U+0CFF). + The Kannada Unicode block (U+0C81-U+0CFF). + + + Gets the Katakana Unicode block (U+30A0-U+30FF). + The Katakana Unicode block (U+30A0-U+30FF). + + + Gets the Katakana Phonetic Extensions Unicode block (U+31F0-U+31FF). + The Katakana Phonetic Extensions Unicode block (U+31F0-U+31FF). + + + Gets the Kayah Li Unicode block (U+A900-U+A92F). + The Kayah Li Unicode block (U+A900-U+A92F). + + + Gets the Khmer Unicode block (U+1780-U+17FF). + The Khmer Unicode block (U+1780-U+17FF). + + + Gets the Khmer Symbols Unicode block (U+19E0-U+19FF). + The Khmer Symbols Unicode block (U+19E0-U+19FF). + + + Gets the Lao Unicode block (U+0E80-U+0EDF). + The Lao Unicode block (U+0E80-U+0EDF). + + + Gets the Latin-1 Supplement Unicode block (U+00A1-U+00FF). + The Latin-1 Supplement Unicode block (U+00A1-U+00FF). + + + Gets the Latin Extended-A Unicode block (U+0100-U+017F). + The Latin Extended-A Unicode block (U+0100-U+017F). + + + Gets the Latin Extended Additional Unicode block (U+1E00-U+1EFF). + The Latin Extended Additional Unicode block (U+1E00-U+1EFF). + + + Gets the Latin Extended-B Unicode block (U+0180-U+024F). + The Latin Extended-B Unicode block (U+0180-U+024F). + + + Gets the Latin Extended-C Unicode block (U+2C60-U+2C7F). + The Latin Extended-C Unicode block (U+2C60-U+2C7F). + + + Gets the Latin Extended-D Unicode block (U+A720-U+A7FF). + The Latin Extended-D Unicode block (U+A720-U+A7FF). + + + Gets the Latin Extended-E Unicode block (U+AB30-U+AB6F). + The Latin Extended-E Unicode block (U+AB30-U+AB6F). + + + Gets the Lepcha Unicode block (U+1C00-U+1C4F). + The Lepcha Unicode block (U+1C00-U+1C4F). + + + Gets the Letterlike Symbols Unicode block (U+2100-U+214F). + The Letterlike Symbols Unicode block (U+2100-U+214F). + + + Gets the Limbu Unicode block (U+1900-U+194F). + The Limbu Unicode block (U+1900-U+194F). + + + Gets the Lisu Unicode block (U+A4D0-U+A4FF). + The Lisu Unicode block (U+A4D0-U+A4FF). + + + Gets the Malayalam Unicode block (U+0D00-U+0D7F). + The Malayalam Unicode block (U+0D00-U+0D7F). + + + Gets the Mandaic Unicode block (U+0840-U+085F). + The Mandaic Unicode block (U+0840-U+085F). + + + Gets the Mathematical Operators Unicode block (U+2200-U+22FF). + The Mathematical Operators Unicode block (U+2200-U+22FF). + + + Gets the Meetei Mayek Unicode block (U+ABC0-U+ABFF). + The Meetei Mayek Unicode block (U+ABC0-U+ABFF). + + + Gets the Meetei Mayek Extensions Unicode block (U+AAE0-U+AAFF). + The Meetei Mayek Extensions Unicode block (U+AAE0-U+AAFF). + + + Gets the Miscellaneous Mathematical Symbols-A Unicode block (U+27C0-U+27EF). + The Miscellaneous Mathematical Symbols-A Unicode block (U+27C0-U+27EF). + + + Gets the Miscellaneous Mathematical Symbols-B Unicode block (U+2980-U+29FF). + The Miscellaneous Mathematical Symbols-B Unicode block (U+2980-U+29FF). + + + Gets the Miscellaneous Symbols Unicode block (U+2600-U+26FF). + The Miscellaneous Symbols Unicode block (U+2600-U+26FF). + + + Gets the Miscellaneous Symbols and Arrows Unicode block (U+2B00-U+2BFF). + The Miscellaneous Symbols and Arrows Unicode block (U+2B00-U+2BFF). + + + Gets the Miscellaneous Technical Unicode block (U+2300-U+23FF). + The Miscellaneous Technical Unicode block (U+2300-U+23FF). + + + Gets the Modifier Tone Letters Unicode block (U+A700-U+A71F). + The Modifier Tone Letters Unicode block (U+A700-U+A71F). + + + Gets the Mongolian Unicode block (U+1800-U+18AF). + The Mongolian Unicode block (U+1800-U+18AF). + + + Gets the Myanmar Unicode block (U+1000-U+109F). + The Myanmar Unicode block (U+1000-U+109F). + + + Gets the Myanmar Extended-A Unicode block (U+AA60-U+AA7F). + The Myanmar Extended-A Unicode block (U+AA60-U+AA7F). + + + Gets the Myanmar Extended-B Unicode block (U+A9E0-U+A9FF). + The Myanmar Extended-B Unicode block (U+A9E0-U+A9FF). + + + Gets the New Tai Lue Unicode block (U+1980-U+19DF). + The New Tai Lue Unicode block (U+1980-U+19DF). + + + Gets the NKo Unicode block (U+07C0-U+07FF). + The NKo Unicode block (U+07C0-U+07FF). + + + Gets an empty Unicode range. + A Unicode range with no elements. + + + Gets the Number Forms Unicode block (U+2150-U+218F). + The Number Forms Unicode block (U+2150-U+218F). + + + Gets the Ogham Unicode block (U+1680-U+169F). + The Ogham Unicode block (U+1680-U+169F). + + + Gets the Ol Chiki Unicode block (U+1C50-U+1C7F). + The Ol Chiki Unicode block (U+1C50-U+1C7F). + + + Gets the Optical Character Recognition Unicode block (U+2440-U+245F). + The Optical Character Recognition Unicode block (U+2440-U+245F). + + + Gets the Oriya Unicode block (U+0B00-U+0B7F). + The Oriya Unicode block (U+0B00-U+0B7F). + + + Gets the Phags-pa Unicode block (U+A840-U+A87F). + The Phags-pa Unicode block (U+A840-U+A87F). + + + Gets the Phonetic Extensions Unicode block (U+1D00-U+1D7F). + The Phonetic Extensions Unicode block (U+1D00-U+1D7F). + + + Gets the Phonetic Extensions Supplement Unicode block (U+1D80-U+1DBF). + The Phonetic Extensions Supplement Unicode block (U+1D80-U+1DBF). + + + Gets the Rejang Unicode block (U+A930-U+A95F). + The Rejang Unicode block (U+A930-U+A95F). + + + Gets the Runic Unicode block (U+16A0-U+16FF). + The Runic Unicode block (U+16A0-U+16FF). + + + Gets the Samaritan Unicode block (U+0800-U+083F). + The Samaritan Unicode block (U+0800-U+083F). + + + Gets the Saurashtra Unicode block (U+A880-U+A8DF). + The Saurashtra Unicode block (U+A880-U+A8DF). + + + Gets the Sinhala Unicode block (U+0D80-U+0DFF). + The Sinhala Unicode block (U+0D80-U+0DFF). + + + Gets the Small Form Variants Unicode block (U+FE50-U+FE6F). + The Small Form Variants Unicode block (U+FE50-U+FE6F). + + + Gets the Spacing Modifier Letters Unicode block (U+02B0-U+02FF). + The Spacing Modifier Letters Unicode block (U+02B0-U+02FF). + + + Gets the Specials Unicode block (U+FFF0-U+FFFF). + The Specials Unicode block (U+FFF0-U+FFFF). + + + Gets the Sundanese Unicode block (U+1B80-U+1BBF). + The Sundanese Unicode block (U+1B80-U+1BBF). + + + Gets the Sundanese Supplement Unicode block (U+1CC0-U+1CCF). + The Sundanese Supplement Unicode block (U+1CC0-U+1CCF). + + + Gets the Superscripts and Subscripts Unicode block (U+2070-U+209F). + The Superscripts and Subscripts Unicode block (U+2070-U+209F). + + + Gets the Supplemental Arrows-A Unicode block (U+27F0-U+27FF). + The Supplemental Arrows-A Unicode block (U+27F0-U+27FF). + + + Gets the Supplemental Arrows-B Unicode block (U+2900-U+297F). + The Supplemental Arrows-B Unicode block (U+2900-U+297F). + + + Gets the Supplemental Mathematical Operators Unicode block (U+2A00-U+2AFF). + The Supplemental Mathematical Operators Unicode block (U+2A00-U+2AFF). + + + Gets the Supplemental Punctuation Unicode block (U+2E00-U+2E7F). + The Supplemental Punctuation Unicode block (U+2E00-U+2E7F). + + + Gets the Syloti Nagri Unicode block (U+A800-U+A82F). + The Syloti Nagri Unicode block (U+A800-U+A82F). + + + Gets the Syriac Unicode block (U+0700-U+074F). + The Syriac Unicode block (U+0700-U+074F). + + + A corresponding to the 'Syriac Supplement' Unicode block (U+0860..U+086F). + + + Gets the Tagalog Unicode block (U+1700-U+171F). + The Tagalog Unicode block (U+1700-U+171F). + + + Gets the Tagbanwa Unicode block (U+1760-U+177F). + The Tagbanwa Unicode block (U+1760-U+177F). + + + Gets the Tai Le Unicode block (U+1950-U+197F). + The Tai Le Unicode block (U+1950-U+197F). + + + Gets the Tai Tham Unicode block (U+1A20-U+1AAF). + The Tai Tham Unicode block (U+1A20-U+1AAF). + + + Gets the Tai Viet Unicode block (U+AA80-U+AADF). + The Tai Viet Unicode block (U+AA80-U+AADF). + + + Gets the Tamil Unicode block (U+0B80-U+0BFF). + The Tamil Unicode block (U+0B82-U+0BFA). + + + Gets the Telugu Unicode block (U+0C00-U+0C7F). + The Telugu Unicode block (U+0C00-U+0C7F). + + + Gets the Thaana Unicode block (U+0780-U+07BF). + The Thaana Unicode block (U+0780-U+07BF). + + + Gets the Thai Unicode block (U+0E00-U+0E7F). + The Thai Unicode block (U+0E00-U+0E7F). + + + Gets the Tibetan Unicode block (U+0F00-U+0FFF). + The Tibetan Unicode block (U+0F00-U+0FFF). + + + Gets the Tifinagh Unicode block (U+2D30-U+2D7F). + The Tifinagh Unicode block (U+2D30-U+2D7F). + + + Gets the Unified Canadian Aboriginal Syllabics Unicode block (U+1400-U+167F). + The Unified Canadian Aboriginal Syllabics Unicode block (U+1400-U+167F). + + + Gets the Unified Canadian Aboriginal Syllabics Extended Unicode block (U+18B0-U+18FF). + The Unified Canadian Aboriginal Syllabics Extended Unicode block (U+18B0-U+18FF). + + + Gets the Vai Unicode block (U+A500-U+A63F). + The Vai Unicode block (U+A500-U+A63F). + + + Gets the Variation Selectors Unicode block (U+FE00-U+FE0F). + The Variation Selectors Unicode block (U+FE00-U+FE0F). + + + Gets the Vedic Extensions Unicode block (U+1CD0-U+1CFF). + The Vedic Extensions Unicode block (U+1CD0-U+1CFF). + + + Gets the Vertical Forms Unicode block (U+FE10-U+FE1F). + The Vertical Forms Unicode block (U+FE10-U+FE1F). + + + Gets the Yijing Hexagram Symbols Unicode block (U+4DC0-U+4DFF). + The Yijing Hexagram Symbols Unicode block (U+4DC0-U+4DFF). + + + Gets the Yi Radicals Unicode block (U+A490-U+A4CF). + The Yi Radicals Unicode block (U+A490-U+A4CF). + + + Gets the Yi Syllables Unicode block (U+A000-U+A48F). + The Yi Syllables Unicode block (U+A000-U+A48F). + + + \ No newline at end of file diff --git a/Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/lib/netstandard2.1/System.Text.Encodings.Web.xml.meta b/Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/lib/netstandard2.1/System.Text.Encodings.Web.xml.meta new file mode 100644 index 0000000..22468c4 --- /dev/null +++ b/Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/lib/netstandard2.1/System.Text.Encodings.Web.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 0569d514daffab14fb90054de2e4efba +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/useSharedDesignerContext.txt b/Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/useSharedDesignerContext.txt new file mode 100644 index 0000000..e69de29 diff --git a/Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/useSharedDesignerContext.txt.meta b/Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/useSharedDesignerContext.txt.meta new file mode 100644 index 0000000..3212d11 --- /dev/null +++ b/Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/useSharedDesignerContext.txt.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 30c6e8e53645540488d2646a3b6db761 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/version.txt b/Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/version.txt new file mode 100644 index 0000000..30bd54f --- /dev/null +++ b/Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/version.txt @@ -0,0 +1 @@ +9299d909ff6c03c664a3f9a3ef995a9fa2eeec3e diff --git a/Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/version.txt.meta b/Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/version.txt.meta new file mode 100644 index 0000000..73c5ede --- /dev/null +++ b/Game/Assets/Supabase/System.Text.Encodings.Web.4.7.2/version.txt.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 36c8c784f9918364b9dbce11ae58032d +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Text.Json.4.7.2.meta b/Game/Assets/Supabase/System.Text.Json.4.7.2.meta new file mode 100644 index 0000000..46d5185 --- /dev/null +++ b/Game/Assets/Supabase/System.Text.Json.4.7.2.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a277506c1fa39174987511ed296b3c76 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Text.Json.4.7.2/.signature.p7s b/Game/Assets/Supabase/System.Text.Json.4.7.2/.signature.p7s new file mode 100644 index 0000000000000000000000000000000000000000..0c70dc011e3b58296e0a4c6df8ad0e917ab57bb1 GIT binary patch literal 18703 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 kFbn}Zj-W@HBy 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�r~s?Usd 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%0ABq0V+HcWIGe(j<>wlmtRNZh;`MPIjk8AO5 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 I?3m5}1H*$oVE_OC literal 0 HcmV?d00001 diff --git a/Game/Assets/Supabase/System.Text.Json.4.7.2/System.Text.Json.4.7.2.nupkg.meta b/Game/Assets/Supabase/System.Text.Json.4.7.2/System.Text.Json.4.7.2.nupkg.meta new file mode 100644 index 0000000..f0c3e05 --- /dev/null +++ b/Game/Assets/Supabase/System.Text.Json.4.7.2/System.Text.Json.4.7.2.nupkg.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 7cc5b7c140700424089deac48f49837d +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Text.Json.4.7.2/THIRD-PARTY-NOTICES.TXT b/Game/Assets/Supabase/System.Text.Json.4.7.2/THIRD-PARTY-NOTICES.TXT new file mode 100644 index 0000000..77a243e --- /dev/null +++ b/Game/Assets/Supabase/System.Text.Json.4.7.2/THIRD-PARTY-NOTICES.TXT @@ -0,0 +1,375 @@ +.NET Core uses third-party libraries or other resources that may be +distributed under licenses different than the .NET Core software. + +In the event that we accidentally failed to list a required notice, please +bring it to our attention. Post an issue or email us: + + dotnet@microsoft.com + +The attached notices are provided for information only. + +License notice for ASP.NET +------------------------------- + +Copyright (c) .NET Foundation. All rights reserved. +Licensed under the Apache License, Version 2.0. + +Available at +https://github.com/aspnet/AspNetCore/blob/master/LICENSE.txt + +License notice for Slicing-by-8 +------------------------------- + +http://sourceforge.net/projects/slicing-by-8/ + +Copyright (c) 2004-2006 Intel Corporation - All Rights Reserved + + +This software program is licensed subject to the BSD License, available at +http://www.opensource.org/licenses/bsd-license.html. + + +License notice for Unicode data +------------------------------- + +http://www.unicode.org/copyright.html#License + +Copyright © 1991-2017 Unicode, Inc. All rights reserved. +Distributed under the Terms of Use in http://www.unicode.org/copyright.html. + +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Unicode data files and any associated documentation +(the "Data Files") or Unicode software and any associated documentation +(the "Software") to deal in the Data Files or Software +without restriction, including without limitation the rights to use, +copy, modify, merge, publish, distribute, and/or sell copies of +the Data Files or Software, and to permit persons to whom the Data Files +or Software are furnished to do so, provided that either +(a) this copyright and permission notice appear with all copies +of the Data Files or Software, or +(b) this copyright and permission notice appear in associated +Documentation. + +THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE +WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT OF THIRD PARTY RIGHTS. +IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS +NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL +DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THE DATA FILES OR SOFTWARE. + +Except as contained in this notice, the name of a copyright holder +shall not be used in advertising or otherwise to promote the sale, +use or other dealings in these Data Files or Software without prior +written authorization of the copyright holder. + +License notice for Zlib +----------------------- + +https://github.com/madler/zlib +http://zlib.net/zlib_license.html + +/* zlib.h -- interface of the 'zlib' general purpose compression library + version 1.2.11, January 15th, 2017 + + Copyright (C) 1995-2017 Jean-loup Gailly and Mark Adler + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. + + Jean-loup Gailly Mark Adler + jloup@gzip.org madler@alumni.caltech.edu + +*/ + +License notice for Mono +------------------------------- + +http://www.mono-project.com/docs/about-mono/ + +Copyright (c) .NET Foundation Contributors + +MIT License + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the Software), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +License notice for International Organization for Standardization +----------------------------------------------------------------- + +Portions (C) International Organization for Standardization 1986: + Permission to copy in any form is granted for use with + conforming SGML systems and applications as defined in + ISO 8879, provided this notice is included in all copies. + +License notice for Intel +------------------------ + +"Copyright (c) 2004-2006 Intel Corporation - All Rights Reserved + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation +and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +License notice for Xamarin and Novell +------------------------------------- + +Copyright (c) 2015 Xamarin, Inc (http://www.xamarin.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +Copyright (c) 2011 Novell, Inc (http://www.novell.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +Third party notice for W3C +-------------------------- + +"W3C SOFTWARE AND DOCUMENT NOTICE AND LICENSE +Status: This license takes effect 13 May, 2015. +This work is being provided by the copyright holders under the following license. +License +By obtaining and/or copying this work, you (the licensee) agree that you have read, understood, and will comply with the following terms and conditions. +Permission to copy, modify, and distribute this work, with or without modification, for any purpose and without fee or royalty is hereby granted, provided that you include the following on ALL copies of the work or portions thereof, including modifications: +The full text of this NOTICE in a location viewable to users of the redistributed or derivative work. +Any pre-existing intellectual property disclaimers, notices, or terms and conditions. If none exist, the W3C Software and Document Short Notice should be included. +Notice of any changes or modifications, through a copyright statement on the new code or document such as "This software or document includes material copied from or derived from [title and URI of the W3C document]. Copyright © [YEAR] W3C® (MIT, ERCIM, Keio, Beihang)." +Disclaimers +THIS WORK IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE OR DOCUMENT WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS. +COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR DOCUMENT. +The name and trademarks of copyright holders may NOT be used in advertising or publicity pertaining to the work without specific, written prior permission. Title to copyright in this work will at all times remain with copyright holders." + +License notice for Bit Twiddling Hacks +-------------------------------------- + +Bit Twiddling Hacks + +By Sean Eron Anderson +seander@cs.stanford.edu + +Individually, the code snippets here are in the public domain (unless otherwise +noted) — feel free to use them however you please. The aggregate collection and +descriptions are © 1997-2005 Sean Eron Anderson. The code and descriptions are +distributed in the hope that they will be useful, but WITHOUT ANY WARRANTY and +without even the implied warranty of merchantability or fitness for a particular +purpose. + +License notice for Brotli +-------------------------------------- + +Copyright (c) 2009, 2010, 2013-2016 by the Brotli Authors. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +compress_fragment.c: +Copyright (c) 2011, Google Inc. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +""AS IS"" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +decode_fuzzer.c: +Copyright (c) 2015 The Chromium Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +""AS IS"" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." + +License notice for Json.NET +------------------------------- + +https://github.com/JamesNK/Newtonsoft.Json/blob/master/LICENSE.md + +The MIT License (MIT) + +Copyright (c) 2007 James Newton-King + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +License notice for vectorized base64 encoding / decoding +-------------------------------------------------------- + +Copyright (c) 2005-2007, Nick Galbreath +Copyright (c) 2013-2017, Alfred Klomp +Copyright (c) 2015-2017, Wojciech Mula +Copyright (c) 2016-2017, Matthieu Darbois +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + +- Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + +- Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS +IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED +TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/Game/Assets/Supabase/System.Text.Json.4.7.2/THIRD-PARTY-NOTICES.TXT.meta b/Game/Assets/Supabase/System.Text.Json.4.7.2/THIRD-PARTY-NOTICES.TXT.meta new file mode 100644 index 0000000..396a194 --- /dev/null +++ b/Game/Assets/Supabase/System.Text.Json.4.7.2/THIRD-PARTY-NOTICES.TXT.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 917c470006d1bd94fa06cef86c72747b +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Text.Json.4.7.2/lib.meta b/Game/Assets/Supabase/System.Text.Json.4.7.2/lib.meta new file mode 100644 index 0000000..98bb0f7 --- /dev/null +++ b/Game/Assets/Supabase/System.Text.Json.4.7.2/lib.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0f9b252cd9847e14187b8b701c2026f6 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Text.Json.4.7.2/lib/net461.meta b/Game/Assets/Supabase/System.Text.Json.4.7.2/lib/net461.meta new file mode 100644 index 0000000..b41df3c --- /dev/null +++ b/Game/Assets/Supabase/System.Text.Json.4.7.2/lib/net461.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 4b6e5ef6560333247a57d0d657c315b9 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Text.Json.4.7.2/lib/net461/System.Text.Json.dll b/Game/Assets/Supabase/System.Text.Json.4.7.2/lib/net461/System.Text.Json.dll new file mode 100644 index 0000000..e12a0db --- /dev/null +++ b/Game/Assets/Supabase/System.Text.Json.4.7.2/lib/net461/System.Text.Json.dll @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d2608254043e5b19f6e8335569fc2dd72ae4ce11a3df0d3f1425ac158df93237 +size 293248 diff --git a/Game/Assets/Supabase/System.Text.Json.4.7.2/lib/net461/System.Text.Json.dll.meta b/Game/Assets/Supabase/System.Text.Json.4.7.2/lib/net461/System.Text.Json.dll.meta new file mode 100644 index 0000000..812a517 --- /dev/null +++ b/Game/Assets/Supabase/System.Text.Json.4.7.2/lib/net461/System.Text.Json.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: d731664f43571ba4ba938424d6b52230 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Text.Json.4.7.2/lib/net461/System.Text.Json.xml b/Game/Assets/Supabase/System.Text.Json.4.7.2/lib/net461/System.Text.Json.xml new file mode 100644 index 0000000..3de6bfe --- /dev/null +++ b/Game/Assets/Supabase/System.Text.Json.4.7.2/lib/net461/System.Text.Json.xml @@ -0,0 +1,2346 @@ + + + + System.Text.Json + + + + Defines how the struct handles comments. + + + Allows comments within the JSON input and treats them as valid tokens. While reading, the caller can access the comment values. + + + Doesn't allow comments within the JSON input. Comments are treated as invalid JSON if found, and a is thrown. This is the default value. + + + Allows comments within the JSON input and ignores them. The behaves as if no comments are present. + + + Provides a mechanism for examining the structural content of a JSON value without automatically instantiating data values. + + + Releases the resources used by this instance. + + + Parses a sequence as UTF-8-encoded text representing a single JSON byte value into a JsonDocument. + The JSON text to parse. + Options to control the reader behavior during parsing. + A JsonDocument representation of the JSON value. + + does not represent a valid single JSON value. + + contains unsupported options. + + + Parses a as UTF-8-encoded data representing a single JSON value into a JsonDocument. The stream is read to completion. + The JSON data to parse. + Options to control the reader behavior during parsing. + A JsonDocument representation of the JSON value. + + does not represent a valid single JSON value. + + contains unsupported options. + + + Parses memory as UTF-8-encoded text representing a single JSON byte value into a JsonDocument. + The JSON text to parse. + Options to control the reader behavior during parsing. + A JsonDocument representation of the JSON value. + + does not represent a valid single JSON value. + + contains unsupported options. + + + Parses text representing a single JSON character value into a JsonDocument. + The JSON text to parse. + Options to control the reader behavior during parsing. + A JsonDocument representation of the JSON value. + + does not represent a valid single JSON value. + + contains unsupported options. + + + Parses text representing a single JSON string value into a JsonDocument. + The JSON text to parse. + Options to control the reader behavior during parsing. + A JsonDocument representation of the JSON value. + + does not represent a valid single JSON value. + + contains unsupported options. + + + Parses a as UTF-8-encoded data representing a single JSON value into a JsonDocument. The stream is read to completion. + The JSON data to parse. + Options to control the reader behavior during parsing. + The token to monitor for cancellation requests. + A task to produce a JsonDocument representation of the JSON value. + + does not represent a valid single JSON value. + + contains unsupported options. + + + Parses one JSON value (including objects or arrays) from the provided reader. + The reader to read. + A JsonDocument representing the value (and nested values) read from the reader. + + contains unsupported options. +-or- +The current token does not start or represent a value. + A value could not be read from the reader. + + + Gets the root element of this JSON document. + A representing the value of the document. + + + Attempts to parse one JSON value (including objects or arrays) from the provided reader. + The reader to read. + When the method returns, contains the parsed document. + + if a value was read and parsed into a JsonDocument; if the reader ran out of data while parsing. All other situations result in an exception being thrown. + + contains unsupported options. +-or- +The current token does not start or represent a value. + A value could not be read from the reader. + + + Writes the document to the provided writer as a JSON value. + The writer to which to write the document. + The parameter is . + The of this would result in invalid JSON. + The parent has been disposed. + + + Provides the ability for the user to define custom behavior when parsing JSON to create a . + + + Gets or sets a value that indicates whether an extra comma at the end of a list of JSON values in an object or array is allowed (and ignored) within the JSON payload being read. + + if an extra comma at the end of a list of JSON values in an object or array is allowed; otherwise, . Default is + + + Gets or sets a value that determines how the handles comments when reading through the JSON data. + One of the enumeration values that indicates how comments are handled. + The comment handling enum is set to a value that is not supported (or not within the enum range). + + + Gets or sets the maximum depth allowed when parsing JSON data, with the default (that is, 0) indicating a maximum depth of 64. + The maximum depth allowed when parsing JSON data. + The max depth is set to a negative value. + + + Represents a specific JSON value within a . + + + Represents an enumerator for the contents of a JSON array. + + + Gets the element in the collection at the current position of the enumerator. + The element in the collection at the current position of the enumerator. + + + Releases the resources used by this instance. + + + Returns an enumerator that iterates through a collection. + An enumerator that can be used to iterate through the array. + + + Advances the enumerator to the next element of the collection. + + if the enumerator was successfully advanced to the next element; if the enumerator has passed the end of the collection. + + + Sets the enumerator to its initial position, which is before the first element in the collection. + + + Returns an enumerator that iterates through a collection. + An enumerator for an array of that can be used to iterate through the collection. + + + Returns an enumerator that iterates through a collection. + An enumerator that can be used to iterate through the collection. + + + Gets the element in the collection at the current position of the enumerator. + The element in the collection at the current position of the enumerator. + + + Gets a JsonElement that can be safely stored beyond the lifetime of the original . + A JsonElement that can be safely stored beyond the lifetime of the original . + + + Gets an enumerator to enumerate the values in the JSON array represented by this JsonElement. + An enumerator to enumerate the values in the JSON array represented by this JsonElement. + This value's is not . + The parent has been disposed. + + + Gets an enumerator to enumerate the properties in the JSON object represented by this JsonElement. + An enumerator to enumerate the properties in the JSON object represented by this JsonElement. + This value's is not . + The parent has been disposed. + + + Gets the number of values contained within the current array value. + The number of values contained within the current array value. + This value's is not . + The parent has been disposed. + + + Gets the value of the element as a . + The value of the element as a . + This value's is neither nor . + The parent has been disposed. + + + Gets the current JSON number as a . + The current JSON number as a . + This value's is not . + The value cannot be represented as a . + The parent has been disposed. + + + Gets the value of the element as a byte array. + The value decoded as a byte array. + This value's is not . + The value is not encoded as Base64 text and hence cannot be decoded to bytes. + The parent has been disposed. + + + Gets the value of the element as a . + The value of the element as a . + This value's is not . + The value cannot be read as a . + The parent has been disposed. + + + Gets the value of the element as a . + The value of the element as a . + This value's is not . + The value cannot be read as a . + The parent has been disposed. + + + Gets the current JSON number as a . + The current JSON number as a . + This value's is not . + The value cannot be represented as a . + The parent has been disposed. + + + Gets the current JSON number as a . + The current JSON number as a . + This value's is not . + The value cannot be represented as a . + The parent has been disposed. + + + Gets the value of the element as a . + The value of the element as a . + This value's is not . + The value cannot be represented as a . + The parent has been disposed. + + + Gets the current JSON number as an . + The current JSON number as an . + This value's is not . + The value cannot be represented as an . + The parent has been disposed. + + + Gets the current JSON number as an . + The current JSON number as an . + This value's is not . + The value cannot be represented as an . + The parent has been disposed. + + + Gets the current JSON number as an . + The current JSON number as an . + This value's is not . + The value cannot be represented as a . + The parent has been disposed. + + + Gets a representing the value of a required property identified by . + The UTF-8 representation (with no Byte-Order-Mark (BOM)) of the name of the property to return. + A representing the value of the requested property. + This value's is not . + No property was found with the requested name. + The parent has been disposed. + + + Gets a representing the value of a required property identified by . + The name of the property whose value is to be returned. + A representing the value of the requested property. + This value's is not . + No property was found with the requested name. + The parent has been disposed. + + + Gets a representing the value of a required property identified by . + The name of the property whose value is to be returned. + A representing the value of the requested property. + This value's is not . + No property was found with the requested name. + + is . + The parent has been disposed. + + + Gets a string that represents the original input data backing this value. + The original input data backing this value. + The parent has been disposed. + + + Gets the current JSON number as an . + The current JSON number as an . + This value's is not . + The value cannot be represented as an . + The parent has been disposed. + + + Gets the current JSON number as a . + The current JSON number as a . + This value's is not . + The value cannot be represented as a . + The parent has been disposed. + + + Gets the value of the element as a . + The value of the element as a . + This value's is neither nor . + The parent has been disposed. + + + Gets the current JSON number as a . + The current JSON number as a . + This value's is not . + The value cannot be represented as a . + The parent has been disposed. + + + Gets the current JSON number as a . + The current JSON number as a . + This value's is not . + The value cannot be represented as a . + The parent has been disposed. + + + Gets the current JSON number as a . + The current JSON number as a . + This value's is not . + The value cannot be represented as a . + The parent has been disposed. + + + Gets the value at the specified index if the current value is an . + The item index. + The value at the specified index. + This value's is not . + + is not in the range [0, ()). + The parent has been disposed. + + + Represents an enumerator for the properties of a JSON object. + + + Gets the element in the collection at the current position of the enumerator. + The element in the collection at the current position of the enumerator. + + + Releases the resources used by this instance. + + + Returns an enumerator that iterates the properties of an object. + An enumerator that can be used to iterate through the object. + + + Advances the enumerator to the next element of the collection. + + if the enumerator was successfully advanced to the next element; if the enumerator has passed the end of the collection. + + + Sets the enumerator to its initial position, which is before the first element in the collection. + + + Returns an enumerator that iterates through a collection. + An enumerator for objects that can be used to iterate through the collection. + + + Returns an enumerator that iterates through a collection. + An enumerator that can be used to iterate through the collection. + + + Gets the element in the collection at the current position of the enumerator. + The element in the collection at the current position of the enumerator. + + + Gets a string representation for the current value appropriate to the value type. + A string representation for the current value appropriate to the value type. + The parent has been disposed. + + + Attempts to represent the current JSON number as a . + When the method returns, contains the byte equivalent of the current JSON number if the conversion succeeded. + + if the number can be represented as a ; otherwise, . + This value's is not . + The parent has been disposed. + + + Attempts to represent the current JSON string as a byte array, assuming that it is Base64 encoded. + If the method succeeds, contains the decoded binary representation of the Base64 text. + + if the entire token value is encoded as valid Base64 text and can be successfully decoded to bytes; otherwise, . + This value's is not . + The parent has been disposed. + + + Attempts to represent the current JSON string as a . + When this method returns, contains the date and time value equivalent to the current JSON string. + + if the string can be represented as a ; otherwise, . + This value's is not . + The parent has been disposed. + + + Attempts to represent the current JSON string as a . + When this method returns, contains the date and time equivalent to the current JSON string. + + if the string can be represented as a ; otherwise, . + This value's is not . + The parent has been disposed. + + + Attempts to represent the current JSON number as a . + When this method returns, contains the decimal equivalent of the current JSON number. + + if the number can be represented as a ; otherwise, . + This value's is not . + The parent has been disposed. + + + Attempts to represent the current JSON number as a . + When this method returns, contains a double-precision floating point value equivalent to the current JSON number. + + if the number can be represented as a ; otherwise, . + This value's is not . + The parent has been disposed. + + + Attempts to represent the current JSON string as a . + When this method returns, contains the GUID equivalent to the current JSON string. + + if the string can be represented as a ; otherwise, . + This value's is not . + The parent has been disposed. + + + Attempts to represent the current JSON number as an . + When the method returns, contains the 16-bit integer equivalent of the current JSON number if the conversion succeeded. + + if the number can be represented as an ; otherwise, . + This value's is not . + The parent has been disposed. + + + Attempts to represent the current JSON number as an . + When this method returns, contains the 32-biut integer value equivalent to the current JSON number. + + if the number can be represented as an ; otherwise, . + This value's is not . + The parent has been disposed. + + + Attempts to represent the current JSON number as a . + When this method returns, contains the 64-bit integer value equivalent to the current JSON number. + + if the number can be represented as a ; otherwise, . + This value's is not . + The parent has been disposed. + + + Looks for a property named in the current object, returning a value that indicates whether or not such a property exists. When the property exists, the method assigns its value to the argument. + The UTF-8 (with no Byte-Order-Mark (BOM)) representation of the name of the property to return. + Receives the value of the located property. + + if the property was found; otherwise, . + This value's is not . + The parent has been disposed. + + + Looks for a property named in the current object, returning a value that indicates whether or not such a property exists. When the property exists, the method assigns its value to the argument. + The name of the property to find. + When this method returns, contains the value of the specified property. + + if the property was found; otherwise, . + This value's is not . + The parent has been disposed. + + + Looks for a property named in the current object, returning a value that indicates whether or not such a property exists. When the property exists, its value is assigned to the argument. + The name of the property to find. + When this method returns, contains the value of the specified property. + + if the property was found; otherwise, . + This value's is not . + + is . + The parent has been disposed. + + + Attempts to represent the current JSON number as an . + When the method returns, contains the signed byte equivalent of the current JSON number if the conversion succeeded. + + if the number can be represented as an ; otherwise, . + This value's is not . + The parent has been disposed. + + + Attempts to represent the current JSON number as a . + When this method returns, contains the single-precision floating point value equivalent to the current JSON number. + + if the number can be represented as a ; otherwise, . + This value's is not . + The parent has been disposed. + + + Attempts to represent the current JSON number as a . + When the method returns, contains the unsigned 16-bit integer equivalent of the current JSON number if the conversion succeeded. + + if the number can be represented as a ; otherwise, . + This value's is not . + The parent has been disposed. + + + Attempts to represent the current JSON number as a . + When this method returns, contains unsigned 32-bit integer value equivalent to the current JSON number. + + if the number can be represented as a ; otherwise, . + This value's is not . + The parent has been disposed. + + + Attempts to represent the current JSON number as a . + When this method returns, contains unsigned 64-bit integer value equivalent to the current JSON number. + + if the number can be represented as a ; otherwise, . + This value's is not . + The parent has been disposed. + + + Compares the text represented by a UTF8-encoded byte span to the string value of this element. + The UTF-8 encoded text to compare against. + + if the string value of this element has the same UTF-8 encoding as +; otherwise, . + This value's is not . + + + Compares a specified read-only character span to the string value of this element. + The text to compare against. + + if the string value of this element matches ; otherwise, . + This value's is not . + + + Compares a specified string to the string value of this element. + The text to compare against. + + if the string value of this element matches ; otherwise, . + This value's is not . + + + Gets the type of the current JSON value. + The type of the current JSON value. + The parent has been disposed. + + + Writes the element to the specified writer as a JSON value. + The writer to which to write the element. + The parameter is . + The of this value is . + The parent has been disposed. + + + Provides methods to transform UTF-8 or UTF-16 encoded text into a form that is suitable for JSON. + + + Encodes a UTF-8 text value as a JSON string. + The UTF-8 encoded text to convert to JSON encoded text. + The encoder to use when escaping the string, or to use the default encoder. + The encoded JSON text. + + is too large. +-or- + contains invalid UTF-8 bytes. + + + Encodes a specified text value as a JSON string. + The value to convert to JSON encoded text. + The encoder to use when escaping the string, or to use the default encoder. + The encoded JSON text. + + is too large. +-or- + contains invalid UTF-16 characters. + + + Encodes the string text value as a JSON string. + The value to convert to JSON encoded text. + The encoder to use when escaping the string, or to use the default encoder. + The encoded JSON text. + + is . + + is too large. +-or- + contains invalid UTF-16 characters. + + + Gets the UTF-8 encoded representation of the pre-encoded JSON text. + The UTF-8 encoded representation of the pre-encoded JSON text. + + + Determines whether this instance and a specified object, which must also be a instance, have the same value. + The object to compare to this instance. + + if the current instance and are equal; otherwise, . + + + Determines whether this instance and another specified instance have the same value. + The object to compare to this instance. + + if this instance and have the same value; otherwise, . + + + Returns the hash code for this . + The hash code for this instance. + + + Converts the value of this instance to a . + The underlying UTF-16 encoded string. + + + Defines a custom exception object that is thrown when invalid JSON text is encountered, when the defined maximum depth is passed, or the JSON text is not compatible with the type of a property on an object. + + + Initializes a new instance of the class. + + + Creates a new exception object with serialized data. + The serialized object data about the exception being thrown. + An object that contains contextual information about the source or destination. + + is . + + + Initializes a new instance of the class with a specified error message. + The context-specific error message. + + + Initializes a new instance of the class, with a specified error message and a reference to the inner exception that is the cause of this exception. + The context-specific error message. + The exception that caused the current exception. + + + Creates a new exception object to relay error information to the user. + The context-specific error message. + The path where the invalid JSON was encountered. + The line number (starting at 0) at which the invalid JSON was encountered when deserializing. + The byte count within the current line (starting at 0) where the invalid JSON was encountered. + + + Creates a new exception object to relay error information to the user that includes a specified inner exception. + The context-specific error message. + The path where the invalid JSON was encountered. + The line number (starting at 0) at which the invalid JSON was encountered when deserializing. + The byte count (starting at 0) within the current line where the invalid JSON was encountered. + The exception that caused the current exception. + + + Gets the zero-based number of bytes read within the current line before the exception. + The zero-based number of bytes read within the current line before the exception. + + + Sets the with information about the exception. + The serialized object data about the exception being thrown. + An object that contains contextual information about the source or destination. + + + Gets the zero-based number of lines read before the exception. + The zero-based number of lines read before the exception. + + + Gets a message that describes the current exception. + The error message that describes the current exception. + + + Gets The path within the JSON where the exception was encountered. + The path within the JSON where the exception was encountered. + + + Determines the naming policy used to convert a string-based name to another format, such as a camel-casing format. + + + Initializes a new instance of . + + + Gets the naming policy for camel-casing. + The naming policy for camel-casing. + + + When overridden in a derived class, converts the specified name according to the policy. + The name to convert. + The converted name. + + + Represents a single property for a JSON object. + + + Gets the name of this property. + The name of this property. + + + Compares the specified UTF-8 encoded text to the name of this property. + The UTF-8 encoded text to compare against. + + if the name of this property has the same UTF-8 encoding as ; otherwise, . + This value's is not . + + + Compares the specified text as a character span to the name of this property. + The text to compare against. + + if the name of this property matches ; otherwise, . + This value's is not . + + + Compares the specified string to the name of this property. + The text to compare against. + + if the name of this property matches ; otherwise . + This value's is not . + + + Provides a string representation of the property for debugging purposes. + A string containing the uninterpreted value of the property, beginning at the declaring open-quote and ending at the last character that is part of the value. + + + Gets the value of this property. + The value of this property. + + + Writes the property to the provided writer as a named JSON object property. + The writer to which to write the property. + + is . + + is too large to be a JSON object property. + The of this JSON property's would result in invalid JSON. + The parent has been disposed. + + + Provides the ability for the user to define custom behavior when reading JSON. + + + Gets or sets a value that defines whether an extra comma at the end of a list of JSON values in an object or array is allowed (and ignored) within the JSON payload being read. + + if an extra comma is allowed; otherwise, . + + + Gets or sets a value that determines how the handles comments when reading through the JSON data. + One of the enumeration values that indicates how comments are handled. + The property is being set to a value that is not a member of the enumeration. + + + Gets or sets the maximum depth allowed when reading JSON, with the default (that is, 0) indicating a maximum depth of 64. + The maximum depth allowed when reading JSON. + The maximum depth is being set to a negative value. + + + Defines an opaque type that holds and saves all the relevant state information, which must be provided to the to continue reading after processing incomplete data. + + + Constructs a new instance. + Defines the customized behavior of the that is different from the JSON RFC (for example how to handle comments, or the maximum depth allowed when reading). By default, the follows the JSON RFC strictly (comments within the JSON are invalid) and reads up to a maximum depth of 64. + The maximum depth is set to a non-positive value (< 0). + + + Gets the custom behavior to use when reading JSON data using the struct that may deviate from strict adherence to the JSON specification, which is the default behavior. + The custom behavior to use when reading JSON data. + + + Provides functionality to serialize objects or value types to JSON and to deserialize JSON into objects or value types. + + + Parses the UTF-8 encoded text representing a single JSON value into an instance of a specified type. + The JSON text to parse. + The type of the object to convert to and return. + Options to control the behavior during parsing. + A representation of the JSON value. + + is . + The JSON is invalid. +-or- + is not compatible with the JSON. +-or- +There is remaining data in the span beyond a single JSON value. + + + Parses the text representing a single JSON value into an instance of a specified type. + The JSON text to parse. + The type of the object to convert to and return. + Options to control the behavior during parsing. + A representation of the JSON value. + + or is . + The JSON is invalid. +-or- + is not compatible with the JSON. +-or- +There is remaining data in the string beyond a single JSON value. + + + Reads one JSON value (including objects or arrays) from the provided reader and converts it into an instance of a specified type. + The reader to read the JSON from. + The type of the object to convert to and return. + Options to control the serializer behavior during reading. + A representation of the JSON value. + + is . + The JSON is invalid. +-or- + is not compatible with the JSON. +-or- +A value could not be read from the reader. + + is using unsupported options. + + + Parses the UTF-8 encoded text representing a single JSON value into an instance of the type specified by a generic type parameter. + The JSON text to parse. + Options to control the behavior during parsing. + The target type of the UTF-8 encoded text. + A representation of the JSON value. + The JSON is invalid. +-or- + is not compatible with the JSON. +-or- +There is remaining data in the span beyond a single JSON value. + + + Parses the text representing a single JSON value into an instance of the type specified by a generic type parameter. + The JSON text to parse. + Options to control the behavior during parsing. + The target type of the JSON value. + A representation of the JSON value. + + is . + The JSON is invalid. +-or- + is not compatible with the JSON. +-or- +There is remaining data in the string beyond a single JSON value. + + + Reads one JSON value (including objects or arrays) from the provided reader into an instance of the type specified by a generic type parameter. + The reader to read the JSON from. + Options to control serializer behavior during reading. + The target type of the JSON value. + A representation of the JSON value. + The JSON is invalid. +-or- + is not compatible with the JSON. +-or- +A value could not be read from the reader. + + uses unsupported options. + + + Asynchronously reads the UTF-8 encoded text representing a single JSON value into an instance of a specified type. The stream will be read to completion. + The JSON data to parse. + The type of the object to convert to and return. + Options to control the behavior during reading. + A cancellation token that may be used to cancel the read operation. + A representation of the JSON value. + + or is . + The JSON is invalid. +-or- + is not compatible with the JSON. +-or- +There is remaining data in the stream. + + + Asynchronously reads the UTF-8 encoded text representing a single JSON value into an instance of a type specified by a generic type parameter. The stream will be read to completion. + The JSON data to parse. + Options to control the behavior during reading. + A token that may be used to cancel the read operation. + The target type of the JSON value. + A representation of the JSON value. + The JSON is invalid. +-or- + is not compatible with the JSON. +-or- +There is remaining data in the stream. + + + Converts the value of a specified type into a JSON string. + The value to convert. + The type of the to convert. + Options to control the conversion behavior. + The JSON string representation of the value. + + + Writes the JSON representation of the specified type to the provided writer. + The JSON writer to write to. + The value to convert and write. + The type of the to convert. + Options to control serialization behavior. + + + Converts the value of a type specified by a generic type parameter into a JSON string. + The value to convert. + Options to control serialization behavior. + The type of the value to serialize. + A JSON string representation of the value. + + + Writes the JSON representation of a type specified by a generic type parameter to the provided writer. + A JSON writer to write to. + The value to convert and write. + Options to control serialization behavior. + The type of the value to serialize. + + + Asynchronously converts the value of a specified type to UTF-8 encoded JSON text and writes it to the specified stream. + The UTF-8 stream to write to. + The value to convert. + The type of the to convert. + Options to control serialization behavior. + A token that may be used to cancel the write operation. + A task that represents the asynchronous write operation. + + + Asynchronously converts a value of a type specified by a generic type parameter to UTF-8 encoded JSON text and writes it to a stream. + The UTF-8 stream to write to. + The value to convert. + Options to control serialization behavior. + A token that may be used to cancel the write operation. + The type of the value to serialize. + A task that represents the asynchronous write operation. + + + Converts a value of the specified type into a JSON string, encoded as UTF-8 bytes. + The value to convert. + The type of the to convert. + Options to control the conversion behavior. + A JSON string representation of the value, encoded as UTF-8 bytes. + + + Converts the value of a type specified by a generic type parameter into a JSON string, encoded as UTF-8 bytes. + The value to convert. + Options to control the conversion behavior. + The type of the value. + A JSON string representation of the value, encoded as UTF-8 bytes. + + + Provides options to be used with . + + + Initializes a new instance of the class. + + + Get or sets a value that indicates whether an extra comma at the end of a list of JSON values in an object or array is allowed (and ignored) within the JSON payload being deserialized. + + if an extra comma at the end of a list of JSON values in an object or array is allowed (and ignored); otherwise. + This property was set after serialization or deserialization has occurred. + + + Gets the list of user-defined converters that were registered. + The list of custom converters. + + + Gets or sets the default buffer size, in bytes, to use when creating temporary buffers. + The default buffer size in bytes. + The buffer size is less than 1. + This property was set after serialization or deserialization has occurred. + + + Gets or sets the policy used to convert a key's name to another format, such as camel-casing. + The policy used to convert a key's name to another format. + + + Gets or sets the encoder to use when escaping strings, or to use the default encoder. + The JavaScript character encoding. + + + Returns the converter for the specified type. + The type to return a converter for. + The first converter that supports the given type, or if there is no converter. + + + Gets or sets a value that determines whether values are ignored during serialization and deserialization. The default value is . + + to ignore null values during serialization and deserialization; otherwise, see langword="false" />. + This property was set after serialization or deserialization has occurred. + + + Gets a value that determines whether read-only properties are ignored during serialization. The default value is . + + to ignore read-only properties during serialization; otherwise, . + This property was set after serialization or deserialization has occurred. + + + Gets or sets the maximum depth allowed when serializing or deserializing JSON, with the default value of 0 indicating a maximum depth of 64. + The maximum depth allowed when serializing or deserializing JSON. + This property was set after serialization or deserialization has occurred. + The max depth is set to a negative value. + + + Gets or sets a value that determines whether a property's name uses a case-insensitive comparison during deserialization. The default value is . + + to compare property names using case-insensitive comparison; otherwise, . + + + Gets or sets a value that specifies the policy used to convert a property's name on an object to another format, such as camel-casing, or to leave property names unchanged. + A property naming policy, or to leave property names unchanged. + + + Gets or sets a value that defines how comments are handled during deserialization. + A value that indicates whether comments are allowed, disallowed, or skipped. + This property was set after serialization or deserialization has occurred. + The comment handling enum is set to a value that is not supported (or not within the enum range). + + + Gets or sets a value that defines whether JSON should use pretty printing. By default, JSON is serialized without any extra white space. + + if JSON should pretty print on serialization; otherwise, . The default is . + This property was set after serialization or deserialization has occurred. + + + Defines the various JSON tokens that make up a JSON text. + + + The token type is a comment string. + + + The token type is the end of a JSON array. + + + The token type is the end of a JSON object. + + + The token type is the JSON literal false. + + + There is no value (as distinct from ). + + + The token type is the JSON literal null. + + + The token type is a JSON number. + + + The token type is a JSON property name. + + + The token type is the start of a JSON array. + + + The token type is the start of a JSON object. + + + The token type is a JSON string. + + + The token type is the JSON literal true. + + + Specifies the data type of a JSON value. + + + A JSON array. + + + The JSON value false. + + + The JSON value null. + + + A JSON number. + + + A JSON object. + + + A JSON string. + + + The JSON value true. + + + There is no value (as distinct from ). + + + Allows the user to define custom behavior when writing JSON using the . + + + Gets or sets the encoder to use when escaping strings, or to use the default encoder. + The JavaScript character encoder used to override the escaping behavior. + + + Gets or sets a value that indicates whether the should format the JSON output, which includes indenting nested JSON tokens, adding new lines, and adding white space between property names and values. + + to format the JSON output; to write without any extra white space. The default is . + + + Gets or sets a value that indicates whether the should skip structural validation and allow the user to write invalid JSON. + + to skip structural validation and allow invalid JSON; to throw an on any attempt to write invalid JSON. + + + Provides the base class for serialization attributes. + + + Creates a new instance of the . + + + Converts an object or value to or from JSON. + + + When overridden in a derived class, determines whether the converter instance can convert the specified object type. + The type of the object to check whether it can be converted by this converter instance. + + if the instance can convert the specified object type; otherwise, . + + + Converts an object or value to or from JSON. + The type of object or value handled by the converter. + + + Initializes a new instance. + + + Determines whether the specified type can be converted. + The type to compare against. + + if the type can be converted; otherwise, . + + + Reads and converts the JSON to type . + The reader. + The type to convert. + An object that specifies serialization options to use. + The converted value. + + + Writes a specified value as JSON. + The writer to write to. + The value to convert to JSON. + An object that specifies serialization options to use. + + + When placed on a property or type, specifies the converter type to use. + + + Initializes a new instance of . + + + Initializes a new instance of with the specified converter type. + The type of the converter. + + + Gets the type of the , or if it was created without a type. + The type of the , or if it was created without a type. + + + When overridden in a derived class and is , allows the derived class to create a in order to pass additional state. + The type of the converter. + The custom converter. + + + Supports converting several types by using a factory pattern. + + + When overidden in a derived class, initializes a new instance of the class. + + + Creates a converter for a specified type. + The type handled by the converter. + The serialization options to use. + A converter for which is compatible with . + + + When placed on a property of type , any properties that do not have a matching member are added to that dictionary during deserialization and written during serialization. + + + Instantiates a new instance of the class. + + + Prevents a property from being serialized or deserialized. + + + Initializes a new instance of . + + + Specifies the property name that is present in the JSON when serializing and deserializing. This overrides any naming policy specified by . + + + Initializes a new instance of with the specified property name. + The name of the property. + + + Gets the name of the property. + The name of the property. + + + Converts enumeration values to and from strings. + + + Initializes an instance of the class with the default naming policy that allows integer values. + + + Initializes an instance of the class with a specified naming policy and a value that indicates whether undefined enumeration values are allowed. + The optional naming policy for writing enum values. + + to allow undefined enum values; otherwise, . When , if an enum value isn't defined, it will output as a number rather than a string. + + + Determines whether the specified type can be converted to an enum. + The type to be checked. + + if the type can be converted; otherwise, . + + + Creates a converter for the specified type. + The type handled by the converter. + The serialization options to use. + A converter for which is compatible with . + + + Provides a high-performance API for forward-only, read-only access to UTF-8 encoded JSON text. + + + Initializes a new instance of the structure that processes a read-only sequence of UTF-8 encoded text and indicates whether the input contains all the text to process. + The UTF-8 encoded JSON text to process. + + to indicate that the input sequence contains the entire data to process; to indicate that the input span contains partial data with more data to follow. + An object that contains the reader state. If this is the first call to the constructor, pass the default state; otherwise, pass the value of the property from the previous instance of the . + + + Initializes a new instance of the structure that processes a read-only sequence of UTF-8 encoded text using the specified options. + The UTF-8 encoded JSON text to process. + Defines customized behavior of the that differs from the JSON RFC (for example how to handle comments or maximum depth allowed when reading). By default, the follows the JSON RFC strictly; comments within the JSON are invalid, and the maximum depth is 64. + + + Initializes a new instance of the structure that processes a read-only span of UTF-8 encoded text and indicates whether the input contains all the text to process. + The UTF-8 encoded JSON text to process. + + to indicate that the input sequence contains the entire data to process; to indicate that the input span contains partial data with more data to follow. + An object that contains the reader state. If this is the first call to the constructor, pass the default state; otherwise, pass the value of the property from the previous instance of the . + + + Initializes a new instance of the structure that processes a read-only span of UTF-8 encoded text using the specified options. + The UTF-8 encoded JSON text to process. + Defines customized behavior of the that differs from the JSON RFC (for example how to handle comments or maximum depth allowed when reading). By default, the follows the JSON RFC strictly; comments within the JSON are invalid, and the maximum depth is 64. + + + Gets the total number of bytes consumed so far by this instance of the . + The total number of bytes consumed so far. + + + Gets the depth of the current token. + The depth of the current token. + + + Gets the current state to pass to a constructor with more data. + The current reader state. + + + Reads the next JSON token value from the source as a . + + if the is ; if the is . + The value of the JSON token isn't a boolean value (that is, or ). + + + Parses the current JSON token value from the source as a . + The value of the UTF-8 encoded token. + The value of the JSON token is not a . + The numeric format of the JSON token value is incorrect (for example, it contains a fractional value or is written in scientific notation). +-or- +The JSON token value represents a number less than or greater than . + + + Parses the current JSON token value from the source and decodes the Base64 encoded JSON string as a byte array. + The byte array that represents the current JSON token value. + The type of the JSON token is not a . + The value is not encoded as Base64 text, so it can't be decoded to bytes. + + + Parses the current JSON token value from the source as a comment, transcoded it as a . + The comment that represents the current JSON token value. + The JSON token is not a comment. + + + Reads the next JSON token value from the source and parses it to a . + The date and time value, if the entire UTF-8 encoded token value can be successfully parsed. + The value of the JSON token isn't a . + The JSON token value cannot be read as a . +-or- +The entire UTF-8 encoded token value cannot be parsed to a value. + + + Reads the next JSON token value from the source and parses it to a . + The date and time offset, if the entire UTF-8 encoded token value can be successfully parsed. + The value of the JSON token isn't a . + The JSON token value cannot be read as a . +-or- +The entire UTF-8 encoded token value cannot be parsed to a value. + + + Reads the next JSON token value from the source and parses it to a . + The UTF-8 encoded token value parsed to a . + The JSON token value isn't a . + The JSON token value represents a number less than or greater than . + + + Reads the next JSON token value from the source and parses it to a . + The UTF-8 encoded token value parsed to a . + The JSON token value isn't a . + The JSON token value represents a number less than or greater than . + + + Reads the next JSON token value from the source and parses it to a . + The GUID value, if the entire UTF-8 encoded token value can be successfully parsed. + The value of the JSON token isn't a . + The JSON token value is in an unsupported format for a Guid. +-or- +The entire UTF-8 encoded token value cannot be parsed to a value. + + + Parses the current JSON token value from the source as a . + The UTF-8 encoded token value parsed to an . + The value of the JSON token is not a . + The numeric format of the JSON token value is incorrect (for example, it contains a fractional value or is written in scientific notation). +-or- +The JSON token value represents a number less than or greater than . + + + Reads the next JSON token value from the source and parses it to an . + The UTF-8 encoded token value parsed to an . + The JSON token value isn't a . + The JSON token value is of the incorrect numeric format. For example, it contains a decimal or is written in scientific notation. +-or- +The JSON token value represents a number less than or greater than . + + + Reads the next JSON token value from the source and parses it to an . + The UTF-8 encoded token value parsed to an . + The JSON token value isn't a . + The JSON token value is of the incorrect numeric format. For example, it contains a decimal or is written in scientific notation. +-or- +The JSON token value represents a number less than or greater than . + + + Parses the current JSON token value from the source as an . + The UTF-8 encoded token value parsed to an . + The value of the JSON token is not a . + The numeric format of the JSON token value is incorrect (for example, it contains a fractional value or is written in scientific notation). +-or- +The JSON token value represents a number less than or greater than . + + + Reads the next JSON token value from the source and parses it to a . + The UTF-8 encoded token value parsed to a . + The JSON token value isn't a . + The JSON token value represents a number less than or greater than . + + + Reads the next JSON token value from the source, unescaped, and transcoded as a string. + The token value parsed to a string, or if is . + The JSON token value isn't a string (that is, not a , , or ). +-or- +The JSON string contains invalid UTF-8 bytes or invalid UTF-16 surrogates. + + + Parses the current JSON token value from the source as a . + The UTF-8 encoded token value parsed to a . + The value of the JSON token is not a . + The numeric format of the JSON token value is incorrect (for example, it contains a fractional value or is written in scientific notation). +-or- +The JSON token value represents a number less than or greater than . + + + Reads the next JSON token value from the source and parses it to a . + The UTF-8 encoded token value parsed to a . + The JSON token value isn't a . + The JSON token value is of the incorrect numeric format. For example, it contains a decimal or is written in scientific notation. +-or- +The JSON token value represents a number less than or greater than . + + + Reads the next JSON token value from the source and parses it to a . + The UTF-8 encoded token value parsed to a . + The JSON token value isn't a . + The JSON token value is of the incorrect numeric format. For example, it contains a decimal or is written in scientific notation. +-or- +The JSON token value represents a number less than or greater than . + + + Gets a value that indicates which Value property to use to get the token value. + + if should be used to get the token value; if should be used instead. + + + Gets the mode of this instance of the which indicates whether all the JSON data was provided or there is more data to come. + + if the reader was constructed with the input span or sequence containing the entire JSON data to process; if the reader was constructed with an input span or sequence that may contain partial JSON data with more data to follow. + + + Gets the current within the provided UTF-8 encoded input ReadOnlySequence<byte> or a default if the struct was constructed with a ReadOnlySpan<byte>. + The current within the provided UTF-8 encoded input ReadOnlySequence<byte> or a default if the struct was constructed with a ReadOnlySpan<byte>. + + + Reads the next JSON token from the input source. + + if the token was read successfully; otherwise, . + An invalid JSON token according to the JSON RFC is encountered. +-or- +The current depth exceeds the recursive limit set by the maximum depth. + + + Skips the children of the current JSON token. + The reader was given partial data with more data to follow (that is, is ). + An invalid JSON token was encountered while skipping, according to the JSON RFC. +-or- +The current depth exceeds the recursive limit set by the maximum depth. + + + Gets the index that the last processed JSON token starts at (within the given UTF-8 encoded input text), skipping any white space. + The starting index of the last processed JSON token within the given UTF-8 encoded input text. + + + Gets the type of the last processed JSON token in the UTF-8 encoded JSON text. + The type of the last processed JSON token. + + + Tries to parse the current JSON token value from the source as a and returns a value that indicates whether the operation succeeded. + When this method returns, contains the parsed value. + + if the entire UTF-8 encoded token value can be successfully parsed to a value; otherwise, . + The JSON token value isn't a . + + + Tries to parse the current JSON token value from the source and decodes the Base64 encoded JSON string as a byte array and returns a value that indicates whether the operation succeeded. + When this method returns, contains the decoded binary representation of the Base64 text. + + if the entire token value is encoded as valid Base64 text and can be successfully decoded to bytes; otherwise, . + The JSON token is not a . + + + Tries to parse the current JSON token value from the source as a and returns a value that indicates whether the operation succeeded. + When this method returns, contains the parsed value. + + if the entire UTF-8 encoded token value can be successfully parsed to a value; otherwise, . + The value of the JSON token isn't a . + + + Tries to parse the current JSON token value from the source as a and returns a value that indicates whether the operation succeeded. + When this method returns, contains the parsed value. + + if the entire UTF-8 encoded token value can be successfully parsed to a value; otherwise, . + The value of the JSON token isn't a . + + + Tries to parse the current JSON token value from the source as a and returns a value that indicates whether the operation succeeded. + When this method returns, contains the parsed value. + + if the entire UTF-8 encoded token value can be successfully parsed to a value; otherwise, . + The JSON token value isn't a . + + + Tries to parse the current JSON token value from the source as a and returns a value that indicates whether the operation succeeded. + When this method returns, contains the parsed value. + + if the entire UTF-8 encoded token value can be successfully parsed to a value; otherwise, . + The JSON token value isn't a . + + + Tries to parse the current JSON token value from the source as a and returns a value that indicates whether the operation succeeded. + When this method returns, contains the parsed value. + + if the entire UTF-8 encoded token value can be successfully parsed to a value; otherwise, . + The value of the JSON token isn't a . + + + Tries to parse the current JSON token value from the source as an and returns a value that indicates whether the operation succeeded. + When this method returns, contains the parsed value. + + if the entire UTF-8 encoded token value can be successfully parsed to a value; otherwise, . + The JSON token value isn't a . + + + Tries to parse the current JSON token value from the source as an and returns a value that indicates whether the operation succeeded. + When this method returns, contains the parsed value. + + if the entire UTF-8 encoded token value can be successfully parsed to an value; otherwise, . + The JSON token value isn't a . + + + Tries to parse the current JSON token value from the source as an and returns a value that indicates whether the operation succeeded. + When this method returns, contains the parsed value. + + if the entire UTF-8 encoded token value can be successfully parsed to an value; otherwise, . + The JSON token value isn't a . + + + Tries to parse the current JSON token value from the source as an and returns a value that indicates whether the operation succeeded. + When this method returns, contains the parsed value. + + if the entire UTF-8 encoded token value can be successfully parsed to an value; otherwise, . + The JSON token value isn't a . + + + Tries to parse the current JSON token value from the source as a and returns a value that indicates whether the operation succeeded. + When this method returns, contains the parsed value. + + if the entire UTF-8 encoded token value can be successfully parsed to an value; otherwise, . + The JSON token value isn't a . + + + Tries to parse the current JSON token value from the source as a and returns a value that indicates whether the operation succeeded. + When this method returns, contains the parsed value. + + if the entire UTF-8 encoded token value can be successfully parsed to a value; otherwise, . + The JSON token value isn't a . + + + Tries to parse the current JSON token value from the source as a and returns a value that indicates whether the operation succeeded. + When this method returns, contains the parsed value. + + if the entire UTF-8 encoded token value can be successfully parsed to a value; otherwise, . + The JSON token value isn't a . + + + Tries to parse the current JSON token value from the source as a and returns a value that indicates whether the operation succeeded. + When this method returns, contains the parsed value. + + if the entire UTF-8 encoded token value can be successfully parsed to a value; otherwise, . + The JSON token value isn't a . + + + Tries to skip the children of the current JSON token. + + if there was enough data for the children to be skipped successfully; otherwise, . + An invalid JSON token was encountered while skipping, according to the JSON RFC. +-or - +The current depth exceeds the recursive limit set by the maximum depth. + + + Gets the raw value of the last processed token as a ReadOnlySequence<byte> slice of the input payload, only if the token is contained within multiple segments. + A byte read-only sequence. + + + Gets the raw value of the last processed token as a ReadOnlySpan<byte> slice of the input payload, if the token fits in a single segment or if the reader was constructed with a JSON payload contained in a ReadOnlySpan<byte>. + A read-only span of bytes. + + + Compares the UTF-8 encoded text in a read-only byte span to the unescaped JSON token value in the source and returns a value that indicates whether they match. + The UTF-8 encoded text to compare against. + + if the JSON token value in the source matches the UTF-8 encoded lookup text; otherwise, . + The JSON token is not a JSON string (that is, it is not or ). + + + Compares the text in a read-only character span to the unescaped JSON token value in the source and returns a value that indicates whether they match. + The text to compare against. + + if the JSON token value in the source matches the lookup text; otherwise, . + The JSON token is not a JSON string (that is, it is not or ). + + + Compares the string text to the unescaped JSON token value in the source and returns a value that indicates whether they match. + The text to compare against. + + if the JSON token value in the source matches the lookup text; otherwise, . + The JSON token is not a JSON string (that is, it is not or ). + + + Provides a high-performance API for forward-only, non-cached writing of UTF-8 encoded JSON text. + + + Initializes a new instance of the class using the specified to write the output to and customization options. + The destination for writing JSON text. + Defines the customized behavior of the . By default, it writes minimized JSON (with no extra white space) and validates that the JSON being written is structurally valid according to the JSON RFC. + + is . + + + Initializes a new instance of the class using the specified stream to write the output to and customization options. + The destination for writing JSON text. + Defines the customized behavior of the . By default, it writes minimized JSON (with no extra white space) and validates that the JSON being written is structurally valid according to the JSON RFC. + + is . + + + Gets the total number of bytes committed to the output by the current instance so far. + The total number of bytes committed to the output by the so far. + + + Gets the number of bytes written by the so far that have not yet been flushed to the output and committed. + The number of bytes written so far by the that have not yet been flushed to the output and committed. + + + Gets the depth of the current token. + The depth of the current token. + + + Commits any leftover JSON text that has not yet been flushed and releases all resources used by the current instance. + + + Asynchronously commits any leftover JSON text that has not yet been flushed and releases all resources used by the current instance. + A task representing the asynchronous dispose operation. + + + Commits the JSON text written so far, which makes it visible to the output destination. + This instance has been disposed. + + + Asynchronously commits the JSON text written so far, which makes it visible to the output destination. + The token to monitor for cancellation requests. The default value is . + A task representing the asynchronous flush operation. + This instance has been disposed. + + + Gets the custom behavior when writing JSON using this instance, which indicates whether to format the output while writing, whether to skip structural JSON validation, and which characters to escape. + The custom behavior of this instance of the writer for formatting, validating, and escaping. + + + Resets the internal state of this instance so that it can be reused. + This instance has been disposed. + + + Resets the internal state of this instance so that it can be reused with a new instance of . + The destination for writing JSON text. + + is . + This instance has been disposed. + + + Resets the internal state of this instance so that it can be reused with a new instance of . + The destination for writing JSON text. + + is . + This instance has been disposed. + + + Writes the property name and raw bytes value (as a Base64 encoded JSON string) as part of a name/value pair of a JSON object. + The UTF-8 encoded name of the property to write. + The binary data to write as Base64 encoded text. + The specified property name or value is too large. + Validation is enabled, and this method would result in writing invalid JSON. + + + Writes the property name and raw bytes value (as a Base64 encoded JSON string) as part of a name/value pair of a JSON object. + The property name of the JSON object to be transcoded and written as UTF-8. + The binary data to write as Base64 encoded text. + The specified property name or value is too large. + Validation is enabled, and this method would result in writing invalid JSON. + + + Writes the property name and raw bytes value (as a Base64 encoded JSON string) as part of a name/value pair of a JSON object. + The property name of the JSON object to be transcoded and written as UTF-8. + The binary data to write as Base64 encoded text. + The specified property name or value is too large. + Validation is enabled, and this method would result in writing invalid JSON. + The parameter is . + + + Writes the pre-encoded property name and raw bytes value (as a Base64 encoded JSON string) as part of a name/value pair of a JSON object. + The JSON-encoded name of the property to write. + The binary data to write as Base64 encoded text. + The specified value is too large. + Validation is enabled, and this method would result in writing invalid JSON. + + + Writes the raw bytes value as a Base64 encoded JSON string as an element of a JSON array. + The binary data to be written as a Base64 encoded JSON string element of a JSON array. + The specified value is too large. + Validation is enabled, and this method would result in writing invalid JSON. + + + Writes a property name specified as a read-only span of bytes and a value (as a JSON literal true or false) as part of a name/value pair of a JSON object. + The UTF-8 encoded property name of the JSON object to be written. + The value to be written as a JSON literal true or false as part of the name/value pair. + The specified property name is too large. + Validation is enabled, and the operation would result in writing invalid JSON. + + + Writes a property name specified as a read-only character span and a value (as a JSON literal true or false) as part of a name/value pair of a JSON object. + The UTF-16 encoded property name of the JSON object to be transcoded and written as UTF-8. + The value to be written as a JSON literal true or false as part of the name/value pair. + The specified property name is too large. + Validation is enabled, and the operation would result in writing invalid JSON. + + + Writes a property name specified as a string and a value (as a JSON literal true or false) as part of a name/value pair of a JSON object. + The UTF-16 encoded property name of the JSON object to be transcoded and written as UTF-8. + The value to be written as a JSON literal true or false as part of the name/value pair. + The specified property name is too large. + Validation is enabled, and the operation would result in writing invalid JSON. + The parameter is . + + + Writes the pre-encoded property name and value (as a JSON literal true or false) as part of a name/value pair of a JSON object. + The JSON encoded property name of the JSON object to be transcoded and written as UTF-8. + The value to be written as a JSON literal true or false as part of the name/value pair. + Validation is enabled, and this method would result in writing invalid JSON. + + + Writes a value (as a JSON literal true or false) as an element of a JSON array. + The value to be written as a JSON literal true or false as an element of a JSON array. + Validation is enabled, and the operation would result in writing invalid JSON. + + + Writes a UTF-8 text value as a JSON comment. + The UTF-8 encoded value to be written as a JSON comment within /*..*/. + The specified value is too large. +-or- + contains a comment delimiter (that is, */). + + + Writes a UTF-16 text value as a JSON comment. + The UTF-16 encoded value to be written as a UTF-8 transcoded JSON comment within /*..*/. + The specified value is too large. +-or- + contains a comment delimiter (that is, */). + + + Writes a string text value as a JSON comment. + The UTF-16 encoded value to be written as a UTF-8 transcoded JSON comment within /*..*/. + The specified value is too large. +-or- + contains a comment delimiter (that is, */). + The parameter is . + + + Writes the end of a JSON array. + Validation is enabled, and the operation would result in writing invalid JSON. + + + Writes the end of a JSON object. + Validation is enabled, and the operation would result in writing invalid JSON. + + + Writes a property name specified as a read-only span of bytes and the JSON literal null as part of a name/value pair of a JSON object. + The UTF-8 encoded property name of the JSON object to be written. + The specified property name is too large. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes a property name specified as a read-only character span and the JSON literal null as part of a name/value pair of a JSON object. + The UTF-16 encoded property name of the JSON object to be transcoded and written as UTF-8. + The specified property name is too large. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes a property name specified as a string and the JSON literal null as part of a name/value pair of a JSON object. + The UTF-16 encoded property name of the JSON object to be transcoded and written as UTF-8. + The specified property name is too large. + Validation is enabled, and the write operation would produce invalid JSON. + The parameter is . + + + Writes the pre-encoded property name and the JSON literal null as part of a name/value pair of a JSON object. + The JSON encoded property name of the JSON object to be transcoded and written as UTF-8. + Validation is enabled, and this method would result in writing invalid JSON. + + + Writes the JSON literal null as an element of a JSON array. + Validation is enabled, and the operation would result in writing invalid JSON. + + + Writes a property name specified as a read-only span of bytes and a value (as a JSON number) as part of a name/value pair of a JSON object. + The UTF-8 encoded property name of the JSON object to be written. + The value to be written as a JSON number as part of the name/value pair. + The specified property name is too large. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes a property name specified as a read-only span of bytes and a value (as a JSON number) as part of a name/value pair of a JSON object. + The UTF-8 encoded property name of the JSON object to be written. + The value to be written as a JSON number as part of the name/value pair. + The specified property name is too large. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes a property name specified as a read-only span of bytes and an value (as a JSON number) as part of a name/value pair of a JSON object. + The UTF-8 encoded property name of the JSON object to be written. + The value to be written as a JSON number as part of the name/value pair. + The specified property name is too large. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes a property name specified as a read-only span of bytes and an value (as a JSON number) as part of a name/value pair of a JSON object. + The UTF-8 encoded property name of the JSON object to be written. + The value to be written as a JSON number as part of the name/value pair. + The specified property name is too large. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes a property name specified as a read-only span of bytes and a value (as a JSON number) as part of a name/value pair of a JSON object. + The UTF-8 encoded property name of the JSON object to be written. + The value to be written as a JSON number as part of the name/value pair. + The specified property name is too large. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes a property name specified as a read-only span of bytes and a value (as a JSON number) as part of a name/value pair of a JSON object. + The UTF-8 encoded property name of the JSON object to be written. + The value to be written as a JSON number as part of the name/value pair. + The specified property name is too large. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes a property name specified as a read-only span of bytes and a value (as a JSON number) as part of a name/value pair of a JSON object. + The UTF-8 encoded property name of the JSON object to be written. + The value to be written as a JSON number as part of the name/value pair. + The specified property name is too large. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes a property name specified as a read-only character span and a value (as a JSON number) as part of a name/value pair of a JSON object. + The UTF-16 encoded property name of the JSON object to be transcoded and written as UTF-8. + The value to be written as a JSON number as part of the name/value pair. + The specified property name is too large. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes a property name specified as a read-only character span and a value (as a JSON number) as part of a name/value pair of a JSON object. + The UTF-16 encoded property name of the JSON object to be transcoded and written as UTF-8. + The value to be written as a JSON number as part of the name/value pair. + The specified property name is too large. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes a property name specified as a read-only character span and an value (as a JSON number) as part of a name/value pair of a JSON object. + The UTF-16 encoded property name of the JSON object to be transcoded and written as UTF-8. + The value to be written as a JSON number as part of the name/value pair. + The specified property name is too large. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes a property name specified as a read-only character span and an value (as a JSON number) as part of a name/value pair of a JSON object. + The UTF-16 encoded property name of the JSON object to be transcoded and written as UTF-8. + The value to be written as a JSON number as part of the name/value pair. + The specified property name is too large. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes a property name specified as a read-only character span and a value (as a JSON number) as part of a name/value pair of a JSON object. + The UTF-16 encoded property name of the JSON object to be transcoded and written as UTF-8. + The value to be written as a JSON number as part of the name/value pair. + The specified property name is too large. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes a property name specified as a read-only character span and a value (as a JSON number) as part of a name/value pair of a JSON object. + The UTF-16 encoded property name of the JSON object to be transcoded and written as UTF-8. + The value to be written as a JSON number as part of the name/value pair. + The specified property name is too large. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes a property name specified as a read-only character span and a value (as a JSON number) as part of a name/value pair of a JSON object. + The UTF-16 encoded property name of the JSON object to be transcoded and written as UTF-8. + The value to be written as a JSON number as part of the name/value pair. + The specified property name is too large. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes a property name specified as a string and a value (as a JSON number) as part of a name/value pair of a JSON object. + The UTF-16 encoded property name of the JSON object to be transcoded and written as UTF-8. + The value to be written as a JSON number as part of the name/value pair. + The specified property name is too large. + Validation is enabled, and the write operation would produce invalid JSON. + The parameter is . + + + Writes a property name specified as a string and a value (as a JSON number) as part of a name/value pair of a JSON object. + The UTF-16 encoded property name of the JSON object to be transcoded and written as UTF-8. + The value to be written as a JSON number as part of the name/value pair. + The specified property name is too large. + Validation is enabled, and the write operation would produce invalid JSON. + The parameter is . + + + Writes a property name specified as a string and an value (as a JSON number) as part of a name/value pair of a JSON object. + The UTF-16 encoded property name of the JSON object to be transcoded and written as UTF-8. + The value to be written as a JSON number as part of the name/value pair. + The specified property name is too large. + Validation is enabled, and the write operation would produce invalid JSON. + The parameter is . + + + Writes a property name specified as a string and an value (as a JSON number) as part of a name/value pair of a JSON object. + The UTF-16 encoded property name of the JSON object to be transcoded and written as UTF-8. + The value to be written as a JSON number as part of the name/value pair. + The specified property name is too large. + Validation is enabled, and the write operation would produce invalid JSON. + The parameter is . + + + Writes a property name specified as a string and a value (as a JSON number) as part of a name/value pair of a JSON object. + The UTF-16 encoded property name of the JSON object to be transcoded and written as UTF-8. + The value to be written as a JSON number as part of the name/value pair. + The specified property name is too large. + Validation is enabled, and the write operation would produce invalid JSON. + The parameter is . + + + Writes a property name specified as a string and a value (as a JSON number) as part of a name/value pair of a JSON object. + The UTF-16 encoded property name of the JSON object to be transcoded and written as UTF-8. + The value to be written as a JSON number as part of the name/value pair. + The specified property name is too large. + Validation is enabled, and the write operation would produce invalid JSON. + The parameter is . + + + Writes a property name specified as a string and a value (as a JSON number) as part of a name/value pair of a JSON object. + The UTF-16 encoded property name of the JSON object to be transcoded and written as UTF-8. + The value to be written as a JSON number as part of the name/value pair. + The specified property name is too large. + Validation is enabled, and the write operation would produce invalid JSON. + The parameter is . + + + Writes the pre-encoded property name and value (as a JSON number) as part of a name/value pair of a JSON object. + The JSON encoded property name of the JSON object to be transcoded and written as UTF-8. + The value to be written as a JSON number as part of the name/value pair. + Validation is enabled, and this method would result in writing invalid JSON. + + + Writes the pre-encoded property name and value (as a JSON number) as part of a name/value pair of a JSON object. + The JSON encoded property name of the JSON object to be transcoded and written as UTF-8. + The value to be written as a JSON number as part of the name/value pair. + Validation is enabled, and this method would result in writing invalid JSON. + + + Writes the pre-encoded property name and value (as a JSON number) as part of a name/value pair of a JSON object. + The JSON encoded property name of the JSON object to be transcoded and written as UTF-8. + The value to be written as a JSON number as part of the name/value pair. + Validation is enabled, and this method would result in writing invalid JSON. + + + Writes the pre-encoded property name and value (as a JSON number) as part of a name/value pair of a JSON object. + The JSON encoded property name of the JSON object to be transcoded and written as UTF-8. + The value to be written as a JSON number as part of the name/value pair. + Validation is enabled, and this method would result in writing invalid JSON. + + + Writes the pre-encoded property name and value (as a JSON number) as part of a name/value pair of a JSON object. + The JSON encoded property name of the JSON object to be transcoded and written as UTF-8. + The value to be written as a JSON number as part of the name/value pair. + Validation is enabled, and this method would result in writing invalid JSON. + + + Writes the pre-encoded property name and value (as a JSON number) as part of a name/value pair of a JSON object. + The JSON encoded property name of the JSON object to be transcoded and written as UTF-8. + The value to be written as a JSON number as part of the name/value pair. + Validation is enabled, and this method would result in writing invalid JSON. + + + Writes the pre-encoded property name and value (as a JSON number) as part of a name/value pair of a JSON object. + The JSON encoded property name of the JSON object to be transcoded and written as UTF-8. + The value to be written as a JSON number as part of the name/value pair. + Validation is enabled, and this method would result in writing invalid JSON. + + + Writes a value (as a JSON number) as an element of a JSON array. + The value to be written as a JSON number as an element of a JSON array. + Validation is enabled, and the operation would result in writing invalid JSON. + + + Writes a value (as a JSON number) as an element of a JSON array. + The value to be written as a JSON number as an element of a JSON array. + Validation is enabled, and the operation would result in writing invalid JSON. + + + Writes an value (as a JSON number) as an element of a JSON array. + The value to be written as a JSON number as an element of a JSON array. + Validation is enabled, and the operation would result in writing invalid JSON. + + + Writes an value (as a JSON number) as an element of a JSON array. + The value to be written as a JSON number as an element of a JSON array. + Validation is enabled, and the operation would result in writing invalid JSON. + + + Writes a value (as a JSON number) as an element of a JSON array. + The value to be written as a JSON number as an element of a JSON array. + Validation is enabled, and the operation would result in writing invalid JSON. + + + Writes a value (as a JSON number) as an element of a JSON array. + The value to be written as a JSON number as an element of a JSON array. + Validation is enabled, and the operation would result in writing invalid JSON. + + + Writes a value (as a JSON number) as an element of a JSON array. + The value to be written as a JSON number as an element of a JSON array. + Validation is enabled, and the operation would result in writing invalid JSON. + + + Writes the UTF-8 property name (as a JSON string) as the first part of a name/value pair of a JSON object. + The UTF-8 encoded property name of the JSON object to be written. + The specified property name is too large. + Validation is enabled, and this write operation would produce invalid JSON. + + + Writes the property name (as a JSON string) as the first part of a name/value pair of a JSON object. + The property name of the JSON object to be transcoded and written as UTF-8. + The specified property name is too large. + Validation is enabled, and this write operation would produce invalid JSON. + + + Writes the property name (as a JSON string) as the first part of a name/value pair of a JSON object. + The property name of the JSON object to be transcoded and written as UTF-8. + The specified property name is too large. + Validation is enabled, and this write operation would produce invalid JSON. + + is . + + + Writes the pre-encoded property name (as a JSON string) as the first part of a name/value pair of a JSON object. + The JSON encoded property name of the JSON object to be transcoded and written as UTF-8. + Validation is enabled, and this write operation would produce invalid JSON. + + + Writes the beginning of a JSON array. + The depth of the JSON exceeds the maximum depth of 1,000. +-or- +Validation is enabled, and this write operation would produce invalid JSON. + + + Writes the beginning of a JSON array with a property name specified as a read-only span of bytes as the key. + The UTF-8 encoded property name of the JSON array to be written. + The specified property name is too large. + The depth of the JSON exceeds the maximum depth of 1,000. +-or- +Validation is enabled, and this write operation would produce invalid JSON. + + + Writes the beginning of a JSON array with a property name specified as a read-only character span as the key. + The UTF-16 encoded property name of the JSON array to be transcoded and written as UTF-8. + The specified property name is too large. + The depth of the JSON exceeds the maximum depth of 1,000. +-or- +Validation is enabled, and this write operation would produce invalid JSON. + + + Writes the beginning of a JSON array with a property name specified as a string as the key. + The UTF-16 encoded property name of the JSON array to be transcoded and written as UTF-8. + The specified property name is too large. + The depth of the JSON exceeds the maximum depth of 1,000. +-or- +Validation is enabled, and this write operation would produce invalid JSON. + The parameter is . + + + Writes the beginning of a JSON array with a pre-encoded property name as the key. + The JSON encoded property name of the JSON array to be transcoded and written as UTF-8. + The depth of the JSON has exceeded the maximum depth of 1,000. +-or- +Validation is enabled, and this method would result in writing invalid JSON. + + + Writes the beginning of a JSON object. + The depth of the JSON exceeds the maximum depth of 1,000. +-or- +Validation is enabled, and the operation would result in writing invalid JSON. + + + Writes the beginning of a JSON object with a property name specified as a read-only span of bytes as the key. + The UTF-8 encoded property name of the JSON object to be written. + The specified property name is too large. + The depth of the JSON exceeds the maximum depth of 1,000. +-or- +Validation is enabled, and this write operation would produce invalid JSON. + + + Writes the beginning of a JSON object with a property name specififed as a read-only character span as the key. + The UTF-16 encoded property name of the JSON object to be transcoded and written as UTF-8. + The specified property name is too large. + The depth of the JSON exceeds the maximum depth of 1,000. +-or- +Validation is enabled, and this write operation would produce invalid JSON. + + + Writes the beginning of a JSON object with a property name specified as a string as the key. + The UTF-16 encoded property name of the JSON object to be transcoded and written as UTF-8. + The specified property name is too large. + The depth of the JSON exceeds the maximum depth of 1,000. +-or- +Validation is enabled, and this write operation would produce invalid JSON. + The parameter is . + + + Writes the beginning of a JSON object with a pre-encoded property name as the key. + The JSON encoded property name of the JSON object to be transcoded and written as UTF-8. + The depth of the JSON has exceeded the maximum depth of 1,000. +-or- +Validation is enabled, and this method would result in writing invalid JSON. + + + Writes a UTF-8 property name and a value (as a JSON string) as part of a name/value pair of a JSON object. + The UTF-8 encoded property name of the JSON object to be written. + The value to be written as a JSON string as part of the name/value pair. + The specified property name is too large. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes a UTF-8 property name and a value (as a JSON string) as part of a name/value pair of a JSON object. + The UTF-8 encoded property name of the JSON object to be written. + The value to be written as a JSON string as part of the name/value pair. + The specified property name is too large. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes a UTF-8 property name and a value (as a JSON string) as part of a name/value pair of a JSON object. + The UTF-8 encoded property name of the JSON object to be written. + The value to be written as a JSON string as part of the name/value pair. + The specified property name is too large. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes a UTF-8 property name and UTF-8 text value (as a JSON string) as part of a name/value pair of a JSON object. + The UTF-8 encoded property name of the JSON object to be written. + The UTF-8 encoded value to be written as a JSON string as part of the name/value pair. + The specified property name or value is too large. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes a UTF-8 property name and UTF-16 text value (as a JSON string) as part of a name/value pair of a JSON object. + The UTF-8 encoded property name of the JSON object to be written. + The UTF-16 encoded value to be written as a UTF-8 transcoded JSON string as part of the name/value pair. + The specified property name or value is too large. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes a UTF-8 property name and string text value (as a JSON string) as part of a name/value pair of a JSON object. + The UTF-8 encoded property name of the JSON object to be written. + The UTF-16 encoded value to be written as a UTF-8 transcoded JSON string as part of the name/value pair. + The specified property name or value is too large. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes the UTF-8 property name and pre-encoded value (as a JSON string) as part of a name/value pair of a JSON object. + The UTF-8 encoded property name of the JSON object to be written. + The JSON encoded value to be written as a UTF-8 transcoded JSON string as part of the name/value pair. + The specified property name is too large. + Validation is enabled, and this method would result in writing invalid JSON. + + + Writes a property name specified as a read-only character span and a value (as a JSON string) as part of a name/value pair of a JSON object. + The UTF-16 encoded property name of the JSON object to be transcoded and written as UTF-8. + The value to be written as a JSON string as part of the name/value pair. + The specified property name is too large. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes a property name specified as a read-only character span and a value (as a JSON string) as part of a name/value pair of a JSON object. + The UTF-16 encoded property name of the JSON object to be transcoded and written as UTF-8. + The value to be written as a JSON string as part of the name/value pair. + The specified property name is too large. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes a property name specified as a read-only character span and a value (as a JSON string) as part of a name/value pair of a JSON object. + The UTF-16 encoded property name of the JSON object to be transcoded and written as UTF-8. + The value to be written as a JSON string as part of the name/value pair. + The specified property name is too large. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes a UTF-16 property name and UTF-8 text value (as a JSON string) as part of a name/value pair of a JSON object. + The UTF-16 encoded property name of the JSON object to be transcoded and written as UTF-8. + The UTF-8 encoded value to be written as a JSON string as part of the name/value pair. + The specified property name or value is too large. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes a UTF-16 property name and UTF-16 text value (as a JSON string) as part of a name/value pair of a JSON object. + The UTF-16 encoded property name of the JSON object to be transcoded and written as UTF-8. + The UTF-16 encoded value to be written as a UTF-8 transcoded JSON string as part of the name/value pair. + The specified property name or value is too large. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes a UTF-16 property name and string text value (as a JSON string) as part of a name/value pair of a JSON object. + The UTF-16 encoded property name of the JSON object to be transcoded and written as UTF-8. + The UTF-16 encoded value to be written as a UTF-8 transcoded JSON string as part of the name/value pair. + The specified property name or value is too large. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes the property name and pre-encoded value (as a JSON string) as part of a name/value pair of a JSON object. + The property name of the JSON object to be transcoded and written as UTF-8. + The JSON encoded value to be written as a UTF-8 transcoded JSON string as part of the name/value pair. + The specified property name is too large. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes a property name specified as a string and a value (as a JSON string) as part of a name/value pair of a JSON object. + The UTF-16 encoded property name of the JSON object to be transcoded and written as UTF-8. + The value to be written as a JSON string as part of the name/value pair. + The specified property name is too large. + Validation is enabled, and the write operation would produce invalid JSON. + The parameter is . + + + Writes a property name specified as a string and a value (as a JSON string) as part of a name/value pair of a JSON object. + The UTF-16 encoded property name of the JSON object to be transcoded and written as UTF-8. + The value to be written as a JSON string as part of the name/value pair. + The specified property name is too large. + Validation is enabled, and the write operation would produce invalid JSON. + The parameter is . + + + Writes a property name specified as a string and a value (as a JSON string) as part of a name/value pair of a JSON object. + The UTF-16 encoded property name of the JSON object to be transcoded and written as UTF-8. + The value to be written as a JSON string as part of the name/value pair. + The specified property name is too large. + Validation is enabled, and the write operation would produce invalid JSON. + The parameter is . + + + Writes a property name specified as a string and a UTF-8 text value (as a JSON string) as part of a name/value pair of a JSON object. + The UTF-16 encoded property name of the JSON object to be transcoded and written as UTF-8. + The UTF-8 encoded value to be written as a JSON string as part of the name/value pair. + The specified property name or value is too large. + Validation is enabled, and the write operation would produce invalid JSON. + The parameter is . + + + Writes a property name specified as a string and a UTF-16 text value (as a JSON string) as part of a name/value pair of a JSON object. + The UTF-16 encoded property name of the JSON object to be transcoded and written as UTF-8. + The UTF-16 encoded value to be written as a UTF-8 transcoded JSON string as part of the name/value pair. + The specified property name or value is too large. + Validation is enabled, and the write operation would produce invalid JSON. + The parameter is . + + + Writes a property name specified as a string and a string text value (as a JSON string) as part of a name/value pair of a JSON object. + The UTF-16 encoded property name of the JSON object to be transcoded and written as UTF-8. + The UTF-16 encoded value to be written as a UTF-8 transcoded JSON string as part of the name/value pair. + The specified property name or value is too large. + Validation is enabled, and the write operation would produce invalid JSON. + The parameter is . + + + Writes the property name and pre-encoded value (as a JSON string) as part of a name/value pair of a JSON object. + The property name of the JSON object to be transcoded and written as UTF-8. + The JSON encoded value to be written as a UTF-8 transcoded JSON string as part of the name/value pair. + The specified property name is too large. + Validation is enabled, and the write operation would produce invalid JSON. + The parameter is . + + + Writes the pre-encoded property name and value (as a JSON string) as part of a name/value pair of a JSON object. + The JSON encoded property name of the JSON object to be transcoded and written as UTF-8. + The value to be written as a JSON string as part of the name/value pair. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes the pre-encoded property name and value (as a JSON string) as part of a name/value pair of a JSON object. + The JSON encoded property name of the JSON object to be transcoded and written as UTF-8. + The value to be written as a JSON string as part of the name/value pair. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes the pre-encoded property name and value (as a JSON string) as part of a name/value pair of a JSON object. + The JSON encoded property name of the JSON object to be transcoded and written as UTF-8. + The value to be written as a JSON string as part of the name/value pair. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes the pre-encoded property name and UTF-8 text value (as a JSON string) as part of a name/value pair of a JSON object. + The JSON encoded property name of the JSON object to be transcoded and written as UTF-8. + The UTF-8 encoded value to be written as a JSON string as part of the name/value pair. + The specified value is too large. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes the pre-encoded property name and text value (as a JSON string) as part of a name/value pair of a JSON object. + The JSON encoded property name of the JSON object to be transcoded and written as UTF-8. + The value to be written as a UTF-8 transcoded JSON string as part of the name/value pair. + The specified value is too large. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes the pre-encoded property name and string text value (as a JSON string) as part of a name/value pair of a JSON object. + The JSON encoded property name of the JSON object to be transcoded and written as UTF-8. + The value to be written as a UTF-8 transcoded JSON string as part of the name/value pair. + The specified value is too large. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes the pre-encoded property name and pre-encoded value (as a JSON string) as part of a name/value pair of a JSON object. + The JSON encoded property name of the JSON object to be transcoded and written as UTF-8. + The JSON encoded value to be written as a UTF-8 transcoded JSON string as part of the name/value pair. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes a value (as a JSON string) as an element of a JSON array. + The value to be written as a JSON string as an element of a JSON array. + Validation is enabled, and the operation would result in writing invalid JSON. + + + Writes a value (as a JSON string) as an element of a JSON array. + The value to be written as a JSON string as an element of a JSON array. + Validation is enabled, and the operation would result in writing invalid JSON. + + + Writes a value (as a JSON string) as an element of a JSON array. + The value to be written as a JSON string as an element of a JSON array. + Validation is enabled, and the operation would result in writing invalid JSON. + + + Writes a UTF-8 text value (as a JSON string) as an element of a JSON array. + The UTF-8 encoded value to be written as a JSON string element of a JSON array. + The specified value is too large. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes a UTF-16 text value (as a JSON string) as an element of a JSON array. + The UTF-16 encoded value to be written as a UTF-8 transcoded JSON string element of a JSON array. + The specified value is too large. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes a string text value (as a JSON string) as an element of a JSON array. + The UTF-16 encoded value to be written as a UTF-8 transcoded JSON string element of a JSON array. + The specified value is too large. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes the pre-encoded text value (as a JSON string) as an element of a JSON array. + The JSON encoded value to be written as a UTF-8 transcoded JSON string element of a JSON array. + Validation is enabled, and the write operation would produce invalid JSON. + + + \ No newline at end of file diff --git a/Game/Assets/Supabase/System.Text.Json.4.7.2/lib/net461/System.Text.Json.xml.meta b/Game/Assets/Supabase/System.Text.Json.4.7.2/lib/net461/System.Text.Json.xml.meta new file mode 100644 index 0000000..bfba3c7 --- /dev/null +++ b/Game/Assets/Supabase/System.Text.Json.4.7.2/lib/net461/System.Text.Json.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 73175856bd1eb994788eb94505b92b6a +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Text.Json.4.7.2/lib/netcoreapp3.0.meta b/Game/Assets/Supabase/System.Text.Json.4.7.2/lib/netcoreapp3.0.meta new file mode 100644 index 0000000..28005c0 --- /dev/null +++ b/Game/Assets/Supabase/System.Text.Json.4.7.2/lib/netcoreapp3.0.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d40109042b5e56c40a439492b17475b0 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Text.Json.4.7.2/lib/netcoreapp3.0/System.Text.Json.dll b/Game/Assets/Supabase/System.Text.Json.4.7.2/lib/netcoreapp3.0/System.Text.Json.dll new file mode 100644 index 0000000..b0d7f1e --- /dev/null +++ b/Game/Assets/Supabase/System.Text.Json.4.7.2/lib/netcoreapp3.0/System.Text.Json.dll @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e7f80f74baa05e17f2c0c79941d2831052d42ef6b6bedbf43dcb71c9e9348030 +size 294784 diff --git a/Game/Assets/Supabase/System.Text.Json.4.7.2/lib/netcoreapp3.0/System.Text.Json.dll.meta b/Game/Assets/Supabase/System.Text.Json.4.7.2/lib/netcoreapp3.0/System.Text.Json.dll.meta new file mode 100644 index 0000000..dd650ee --- /dev/null +++ b/Game/Assets/Supabase/System.Text.Json.4.7.2/lib/netcoreapp3.0/System.Text.Json.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: 00ad0633488c6c14cbb9b74671c3f867 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Text.Json.4.7.2/lib/netcoreapp3.0/System.Text.Json.xml b/Game/Assets/Supabase/System.Text.Json.4.7.2/lib/netcoreapp3.0/System.Text.Json.xml new file mode 100644 index 0000000..3de6bfe --- /dev/null +++ b/Game/Assets/Supabase/System.Text.Json.4.7.2/lib/netcoreapp3.0/System.Text.Json.xml @@ -0,0 +1,2346 @@ + + + + System.Text.Json + + + + Defines how the struct handles comments. + + + Allows comments within the JSON input and treats them as valid tokens. While reading, the caller can access the comment values. + + + Doesn't allow comments within the JSON input. Comments are treated as invalid JSON if found, and a is thrown. This is the default value. + + + Allows comments within the JSON input and ignores them. The behaves as if no comments are present. + + + Provides a mechanism for examining the structural content of a JSON value without automatically instantiating data values. + + + Releases the resources used by this instance. + + + Parses a sequence as UTF-8-encoded text representing a single JSON byte value into a JsonDocument. + The JSON text to parse. + Options to control the reader behavior during parsing. + A JsonDocument representation of the JSON value. + + does not represent a valid single JSON value. + + contains unsupported options. + + + Parses a as UTF-8-encoded data representing a single JSON value into a JsonDocument. The stream is read to completion. + The JSON data to parse. + Options to control the reader behavior during parsing. + A JsonDocument representation of the JSON value. + + does not represent a valid single JSON value. + + contains unsupported options. + + + Parses memory as UTF-8-encoded text representing a single JSON byte value into a JsonDocument. + The JSON text to parse. + Options to control the reader behavior during parsing. + A JsonDocument representation of the JSON value. + + does not represent a valid single JSON value. + + contains unsupported options. + + + Parses text representing a single JSON character value into a JsonDocument. + The JSON text to parse. + Options to control the reader behavior during parsing. + A JsonDocument representation of the JSON value. + + does not represent a valid single JSON value. + + contains unsupported options. + + + Parses text representing a single JSON string value into a JsonDocument. + The JSON text to parse. + Options to control the reader behavior during parsing. + A JsonDocument representation of the JSON value. + + does not represent a valid single JSON value. + + contains unsupported options. + + + Parses a as UTF-8-encoded data representing a single JSON value into a JsonDocument. The stream is read to completion. + The JSON data to parse. + Options to control the reader behavior during parsing. + The token to monitor for cancellation requests. + A task to produce a JsonDocument representation of the JSON value. + + does not represent a valid single JSON value. + + contains unsupported options. + + + Parses one JSON value (including objects or arrays) from the provided reader. + The reader to read. + A JsonDocument representing the value (and nested values) read from the reader. + + contains unsupported options. +-or- +The current token does not start or represent a value. + A value could not be read from the reader. + + + Gets the root element of this JSON document. + A representing the value of the document. + + + Attempts to parse one JSON value (including objects or arrays) from the provided reader. + The reader to read. + When the method returns, contains the parsed document. + + if a value was read and parsed into a JsonDocument; if the reader ran out of data while parsing. All other situations result in an exception being thrown. + + contains unsupported options. +-or- +The current token does not start or represent a value. + A value could not be read from the reader. + + + Writes the document to the provided writer as a JSON value. + The writer to which to write the document. + The parameter is . + The of this would result in invalid JSON. + The parent has been disposed. + + + Provides the ability for the user to define custom behavior when parsing JSON to create a . + + + Gets or sets a value that indicates whether an extra comma at the end of a list of JSON values in an object or array is allowed (and ignored) within the JSON payload being read. + + if an extra comma at the end of a list of JSON values in an object or array is allowed; otherwise, . Default is + + + Gets or sets a value that determines how the handles comments when reading through the JSON data. + One of the enumeration values that indicates how comments are handled. + The comment handling enum is set to a value that is not supported (or not within the enum range). + + + Gets or sets the maximum depth allowed when parsing JSON data, with the default (that is, 0) indicating a maximum depth of 64. + The maximum depth allowed when parsing JSON data. + The max depth is set to a negative value. + + + Represents a specific JSON value within a . + + + Represents an enumerator for the contents of a JSON array. + + + Gets the element in the collection at the current position of the enumerator. + The element in the collection at the current position of the enumerator. + + + Releases the resources used by this instance. + + + Returns an enumerator that iterates through a collection. + An enumerator that can be used to iterate through the array. + + + Advances the enumerator to the next element of the collection. + + if the enumerator was successfully advanced to the next element; if the enumerator has passed the end of the collection. + + + Sets the enumerator to its initial position, which is before the first element in the collection. + + + Returns an enumerator that iterates through a collection. + An enumerator for an array of that can be used to iterate through the collection. + + + Returns an enumerator that iterates through a collection. + An enumerator that can be used to iterate through the collection. + + + Gets the element in the collection at the current position of the enumerator. + The element in the collection at the current position of the enumerator. + + + Gets a JsonElement that can be safely stored beyond the lifetime of the original . + A JsonElement that can be safely stored beyond the lifetime of the original . + + + Gets an enumerator to enumerate the values in the JSON array represented by this JsonElement. + An enumerator to enumerate the values in the JSON array represented by this JsonElement. + This value's is not . + The parent has been disposed. + + + Gets an enumerator to enumerate the properties in the JSON object represented by this JsonElement. + An enumerator to enumerate the properties in the JSON object represented by this JsonElement. + This value's is not . + The parent has been disposed. + + + Gets the number of values contained within the current array value. + The number of values contained within the current array value. + This value's is not . + The parent has been disposed. + + + Gets the value of the element as a . + The value of the element as a . + This value's is neither nor . + The parent has been disposed. + + + Gets the current JSON number as a . + The current JSON number as a . + This value's is not . + The value cannot be represented as a . + The parent has been disposed. + + + Gets the value of the element as a byte array. + The value decoded as a byte array. + This value's is not . + The value is not encoded as Base64 text and hence cannot be decoded to bytes. + The parent has been disposed. + + + Gets the value of the element as a . + The value of the element as a . + This value's is not . + The value cannot be read as a . + The parent has been disposed. + + + Gets the value of the element as a . + The value of the element as a . + This value's is not . + The value cannot be read as a . + The parent has been disposed. + + + Gets the current JSON number as a . + The current JSON number as a . + This value's is not . + The value cannot be represented as a . + The parent has been disposed. + + + Gets the current JSON number as a . + The current JSON number as a . + This value's is not . + The value cannot be represented as a . + The parent has been disposed. + + + Gets the value of the element as a . + The value of the element as a . + This value's is not . + The value cannot be represented as a . + The parent has been disposed. + + + Gets the current JSON number as an . + The current JSON number as an . + This value's is not . + The value cannot be represented as an . + The parent has been disposed. + + + Gets the current JSON number as an . + The current JSON number as an . + This value's is not . + The value cannot be represented as an . + The parent has been disposed. + + + Gets the current JSON number as an . + The current JSON number as an . + This value's is not . + The value cannot be represented as a . + The parent has been disposed. + + + Gets a representing the value of a required property identified by . + The UTF-8 representation (with no Byte-Order-Mark (BOM)) of the name of the property to return. + A representing the value of the requested property. + This value's is not . + No property was found with the requested name. + The parent has been disposed. + + + Gets a representing the value of a required property identified by . + The name of the property whose value is to be returned. + A representing the value of the requested property. + This value's is not . + No property was found with the requested name. + The parent has been disposed. + + + Gets a representing the value of a required property identified by . + The name of the property whose value is to be returned. + A representing the value of the requested property. + This value's is not . + No property was found with the requested name. + + is . + The parent has been disposed. + + + Gets a string that represents the original input data backing this value. + The original input data backing this value. + The parent has been disposed. + + + Gets the current JSON number as an . + The current JSON number as an . + This value's is not . + The value cannot be represented as an . + The parent has been disposed. + + + Gets the current JSON number as a . + The current JSON number as a . + This value's is not . + The value cannot be represented as a . + The parent has been disposed. + + + Gets the value of the element as a . + The value of the element as a . + This value's is neither nor . + The parent has been disposed. + + + Gets the current JSON number as a . + The current JSON number as a . + This value's is not . + The value cannot be represented as a . + The parent has been disposed. + + + Gets the current JSON number as a . + The current JSON number as a . + This value's is not . + The value cannot be represented as a . + The parent has been disposed. + + + Gets the current JSON number as a . + The current JSON number as a . + This value's is not . + The value cannot be represented as a . + The parent has been disposed. + + + Gets the value at the specified index if the current value is an . + The item index. + The value at the specified index. + This value's is not . + + is not in the range [0, ()). + The parent has been disposed. + + + Represents an enumerator for the properties of a JSON object. + + + Gets the element in the collection at the current position of the enumerator. + The element in the collection at the current position of the enumerator. + + + Releases the resources used by this instance. + + + Returns an enumerator that iterates the properties of an object. + An enumerator that can be used to iterate through the object. + + + Advances the enumerator to the next element of the collection. + + if the enumerator was successfully advanced to the next element; if the enumerator has passed the end of the collection. + + + Sets the enumerator to its initial position, which is before the first element in the collection. + + + Returns an enumerator that iterates through a collection. + An enumerator for objects that can be used to iterate through the collection. + + + Returns an enumerator that iterates through a collection. + An enumerator that can be used to iterate through the collection. + + + Gets the element in the collection at the current position of the enumerator. + The element in the collection at the current position of the enumerator. + + + Gets a string representation for the current value appropriate to the value type. + A string representation for the current value appropriate to the value type. + The parent has been disposed. + + + Attempts to represent the current JSON number as a . + When the method returns, contains the byte equivalent of the current JSON number if the conversion succeeded. + + if the number can be represented as a ; otherwise, . + This value's is not . + The parent has been disposed. + + + Attempts to represent the current JSON string as a byte array, assuming that it is Base64 encoded. + If the method succeeds, contains the decoded binary representation of the Base64 text. + + if the entire token value is encoded as valid Base64 text and can be successfully decoded to bytes; otherwise, . + This value's is not . + The parent has been disposed. + + + Attempts to represent the current JSON string as a . + When this method returns, contains the date and time value equivalent to the current JSON string. + + if the string can be represented as a ; otherwise, . + This value's is not . + The parent has been disposed. + + + Attempts to represent the current JSON string as a . + When this method returns, contains the date and time equivalent to the current JSON string. + + if the string can be represented as a ; otherwise, . + This value's is not . + The parent has been disposed. + + + Attempts to represent the current JSON number as a . + When this method returns, contains the decimal equivalent of the current JSON number. + + if the number can be represented as a ; otherwise, . + This value's is not . + The parent has been disposed. + + + Attempts to represent the current JSON number as a . + When this method returns, contains a double-precision floating point value equivalent to the current JSON number. + + if the number can be represented as a ; otherwise, . + This value's is not . + The parent has been disposed. + + + Attempts to represent the current JSON string as a . + When this method returns, contains the GUID equivalent to the current JSON string. + + if the string can be represented as a ; otherwise, . + This value's is not . + The parent has been disposed. + + + Attempts to represent the current JSON number as an . + When the method returns, contains the 16-bit integer equivalent of the current JSON number if the conversion succeeded. + + if the number can be represented as an ; otherwise, . + This value's is not . + The parent has been disposed. + + + Attempts to represent the current JSON number as an . + When this method returns, contains the 32-biut integer value equivalent to the current JSON number. + + if the number can be represented as an ; otherwise, . + This value's is not . + The parent has been disposed. + + + Attempts to represent the current JSON number as a . + When this method returns, contains the 64-bit integer value equivalent to the current JSON number. + + if the number can be represented as a ; otherwise, . + This value's is not . + The parent has been disposed. + + + Looks for a property named in the current object, returning a value that indicates whether or not such a property exists. When the property exists, the method assigns its value to the argument. + The UTF-8 (with no Byte-Order-Mark (BOM)) representation of the name of the property to return. + Receives the value of the located property. + + if the property was found; otherwise, . + This value's is not . + The parent has been disposed. + + + Looks for a property named in the current object, returning a value that indicates whether or not such a property exists. When the property exists, the method assigns its value to the argument. + The name of the property to find. + When this method returns, contains the value of the specified property. + + if the property was found; otherwise, . + This value's is not . + The parent has been disposed. + + + Looks for a property named in the current object, returning a value that indicates whether or not such a property exists. When the property exists, its value is assigned to the argument. + The name of the property to find. + When this method returns, contains the value of the specified property. + + if the property was found; otherwise, . + This value's is not . + + is . + The parent has been disposed. + + + Attempts to represent the current JSON number as an . + When the method returns, contains the signed byte equivalent of the current JSON number if the conversion succeeded. + + if the number can be represented as an ; otherwise, . + This value's is not . + The parent has been disposed. + + + Attempts to represent the current JSON number as a . + When this method returns, contains the single-precision floating point value equivalent to the current JSON number. + + if the number can be represented as a ; otherwise, . + This value's is not . + The parent has been disposed. + + + Attempts to represent the current JSON number as a . + When the method returns, contains the unsigned 16-bit integer equivalent of the current JSON number if the conversion succeeded. + + if the number can be represented as a ; otherwise, . + This value's is not . + The parent has been disposed. + + + Attempts to represent the current JSON number as a . + When this method returns, contains unsigned 32-bit integer value equivalent to the current JSON number. + + if the number can be represented as a ; otherwise, . + This value's is not . + The parent has been disposed. + + + Attempts to represent the current JSON number as a . + When this method returns, contains unsigned 64-bit integer value equivalent to the current JSON number. + + if the number can be represented as a ; otherwise, . + This value's is not . + The parent has been disposed. + + + Compares the text represented by a UTF8-encoded byte span to the string value of this element. + The UTF-8 encoded text to compare against. + + if the string value of this element has the same UTF-8 encoding as +; otherwise, . + This value's is not . + + + Compares a specified read-only character span to the string value of this element. + The text to compare against. + + if the string value of this element matches ; otherwise, . + This value's is not . + + + Compares a specified string to the string value of this element. + The text to compare against. + + if the string value of this element matches ; otherwise, . + This value's is not . + + + Gets the type of the current JSON value. + The type of the current JSON value. + The parent has been disposed. + + + Writes the element to the specified writer as a JSON value. + The writer to which to write the element. + The parameter is . + The of this value is . + The parent has been disposed. + + + Provides methods to transform UTF-8 or UTF-16 encoded text into a form that is suitable for JSON. + + + Encodes a UTF-8 text value as a JSON string. + The UTF-8 encoded text to convert to JSON encoded text. + The encoder to use when escaping the string, or to use the default encoder. + The encoded JSON text. + + is too large. +-or- + contains invalid UTF-8 bytes. + + + Encodes a specified text value as a JSON string. + The value to convert to JSON encoded text. + The encoder to use when escaping the string, or to use the default encoder. + The encoded JSON text. + + is too large. +-or- + contains invalid UTF-16 characters. + + + Encodes the string text value as a JSON string. + The value to convert to JSON encoded text. + The encoder to use when escaping the string, or to use the default encoder. + The encoded JSON text. + + is . + + is too large. +-or- + contains invalid UTF-16 characters. + + + Gets the UTF-8 encoded representation of the pre-encoded JSON text. + The UTF-8 encoded representation of the pre-encoded JSON text. + + + Determines whether this instance and a specified object, which must also be a instance, have the same value. + The object to compare to this instance. + + if the current instance and are equal; otherwise, . + + + Determines whether this instance and another specified instance have the same value. + The object to compare to this instance. + + if this instance and have the same value; otherwise, . + + + Returns the hash code for this . + The hash code for this instance. + + + Converts the value of this instance to a . + The underlying UTF-16 encoded string. + + + Defines a custom exception object that is thrown when invalid JSON text is encountered, when the defined maximum depth is passed, or the JSON text is not compatible with the type of a property on an object. + + + Initializes a new instance of the class. + + + Creates a new exception object with serialized data. + The serialized object data about the exception being thrown. + An object that contains contextual information about the source or destination. + + is . + + + Initializes a new instance of the class with a specified error message. + The context-specific error message. + + + Initializes a new instance of the class, with a specified error message and a reference to the inner exception that is the cause of this exception. + The context-specific error message. + The exception that caused the current exception. + + + Creates a new exception object to relay error information to the user. + The context-specific error message. + The path where the invalid JSON was encountered. + The line number (starting at 0) at which the invalid JSON was encountered when deserializing. + The byte count within the current line (starting at 0) where the invalid JSON was encountered. + + + Creates a new exception object to relay error information to the user that includes a specified inner exception. + The context-specific error message. + The path where the invalid JSON was encountered. + The line number (starting at 0) at which the invalid JSON was encountered when deserializing. + The byte count (starting at 0) within the current line where the invalid JSON was encountered. + The exception that caused the current exception. + + + Gets the zero-based number of bytes read within the current line before the exception. + The zero-based number of bytes read within the current line before the exception. + + + Sets the with information about the exception. + The serialized object data about the exception being thrown. + An object that contains contextual information about the source or destination. + + + Gets the zero-based number of lines read before the exception. + The zero-based number of lines read before the exception. + + + Gets a message that describes the current exception. + The error message that describes the current exception. + + + Gets The path within the JSON where the exception was encountered. + The path within the JSON where the exception was encountered. + + + Determines the naming policy used to convert a string-based name to another format, such as a camel-casing format. + + + Initializes a new instance of . + + + Gets the naming policy for camel-casing. + The naming policy for camel-casing. + + + When overridden in a derived class, converts the specified name according to the policy. + The name to convert. + The converted name. + + + Represents a single property for a JSON object. + + + Gets the name of this property. + The name of this property. + + + Compares the specified UTF-8 encoded text to the name of this property. + The UTF-8 encoded text to compare against. + + if the name of this property has the same UTF-8 encoding as ; otherwise, . + This value's is not . + + + Compares the specified text as a character span to the name of this property. + The text to compare against. + + if the name of this property matches ; otherwise, . + This value's is not . + + + Compares the specified string to the name of this property. + The text to compare against. + + if the name of this property matches ; otherwise . + This value's is not . + + + Provides a string representation of the property for debugging purposes. + A string containing the uninterpreted value of the property, beginning at the declaring open-quote and ending at the last character that is part of the value. + + + Gets the value of this property. + The value of this property. + + + Writes the property to the provided writer as a named JSON object property. + The writer to which to write the property. + + is . + + is too large to be a JSON object property. + The of this JSON property's would result in invalid JSON. + The parent has been disposed. + + + Provides the ability for the user to define custom behavior when reading JSON. + + + Gets or sets a value that defines whether an extra comma at the end of a list of JSON values in an object or array is allowed (and ignored) within the JSON payload being read. + + if an extra comma is allowed; otherwise, . + + + Gets or sets a value that determines how the handles comments when reading through the JSON data. + One of the enumeration values that indicates how comments are handled. + The property is being set to a value that is not a member of the enumeration. + + + Gets or sets the maximum depth allowed when reading JSON, with the default (that is, 0) indicating a maximum depth of 64. + The maximum depth allowed when reading JSON. + The maximum depth is being set to a negative value. + + + Defines an opaque type that holds and saves all the relevant state information, which must be provided to the to continue reading after processing incomplete data. + + + Constructs a new instance. + Defines the customized behavior of the that is different from the JSON RFC (for example how to handle comments, or the maximum depth allowed when reading). By default, the follows the JSON RFC strictly (comments within the JSON are invalid) and reads up to a maximum depth of 64. + The maximum depth is set to a non-positive value (< 0). + + + Gets the custom behavior to use when reading JSON data using the struct that may deviate from strict adherence to the JSON specification, which is the default behavior. + The custom behavior to use when reading JSON data. + + + Provides functionality to serialize objects or value types to JSON and to deserialize JSON into objects or value types. + + + Parses the UTF-8 encoded text representing a single JSON value into an instance of a specified type. + The JSON text to parse. + The type of the object to convert to and return. + Options to control the behavior during parsing. + A representation of the JSON value. + + is . + The JSON is invalid. +-or- + is not compatible with the JSON. +-or- +There is remaining data in the span beyond a single JSON value. + + + Parses the text representing a single JSON value into an instance of a specified type. + The JSON text to parse. + The type of the object to convert to and return. + Options to control the behavior during parsing. + A representation of the JSON value. + + or is . + The JSON is invalid. +-or- + is not compatible with the JSON. +-or- +There is remaining data in the string beyond a single JSON value. + + + Reads one JSON value (including objects or arrays) from the provided reader and converts it into an instance of a specified type. + The reader to read the JSON from. + The type of the object to convert to and return. + Options to control the serializer behavior during reading. + A representation of the JSON value. + + is . + The JSON is invalid. +-or- + is not compatible with the JSON. +-or- +A value could not be read from the reader. + + is using unsupported options. + + + Parses the UTF-8 encoded text representing a single JSON value into an instance of the type specified by a generic type parameter. + The JSON text to parse. + Options to control the behavior during parsing. + The target type of the UTF-8 encoded text. + A representation of the JSON value. + The JSON is invalid. +-or- + is not compatible with the JSON. +-or- +There is remaining data in the span beyond a single JSON value. + + + Parses the text representing a single JSON value into an instance of the type specified by a generic type parameter. + The JSON text to parse. + Options to control the behavior during parsing. + The target type of the JSON value. + A representation of the JSON value. + + is . + The JSON is invalid. +-or- + is not compatible with the JSON. +-or- +There is remaining data in the string beyond a single JSON value. + + + Reads one JSON value (including objects or arrays) from the provided reader into an instance of the type specified by a generic type parameter. + The reader to read the JSON from. + Options to control serializer behavior during reading. + The target type of the JSON value. + A representation of the JSON value. + The JSON is invalid. +-or- + is not compatible with the JSON. +-or- +A value could not be read from the reader. + + uses unsupported options. + + + Asynchronously reads the UTF-8 encoded text representing a single JSON value into an instance of a specified type. The stream will be read to completion. + The JSON data to parse. + The type of the object to convert to and return. + Options to control the behavior during reading. + A cancellation token that may be used to cancel the read operation. + A representation of the JSON value. + + or is . + The JSON is invalid. +-or- + is not compatible with the JSON. +-or- +There is remaining data in the stream. + + + Asynchronously reads the UTF-8 encoded text representing a single JSON value into an instance of a type specified by a generic type parameter. The stream will be read to completion. + The JSON data to parse. + Options to control the behavior during reading. + A token that may be used to cancel the read operation. + The target type of the JSON value. + A representation of the JSON value. + The JSON is invalid. +-or- + is not compatible with the JSON. +-or- +There is remaining data in the stream. + + + Converts the value of a specified type into a JSON string. + The value to convert. + The type of the to convert. + Options to control the conversion behavior. + The JSON string representation of the value. + + + Writes the JSON representation of the specified type to the provided writer. + The JSON writer to write to. + The value to convert and write. + The type of the to convert. + Options to control serialization behavior. + + + Converts the value of a type specified by a generic type parameter into a JSON string. + The value to convert. + Options to control serialization behavior. + The type of the value to serialize. + A JSON string representation of the value. + + + Writes the JSON representation of a type specified by a generic type parameter to the provided writer. + A JSON writer to write to. + The value to convert and write. + Options to control serialization behavior. + The type of the value to serialize. + + + Asynchronously converts the value of a specified type to UTF-8 encoded JSON text and writes it to the specified stream. + The UTF-8 stream to write to. + The value to convert. + The type of the to convert. + Options to control serialization behavior. + A token that may be used to cancel the write operation. + A task that represents the asynchronous write operation. + + + Asynchronously converts a value of a type specified by a generic type parameter to UTF-8 encoded JSON text and writes it to a stream. + The UTF-8 stream to write to. + The value to convert. + Options to control serialization behavior. + A token that may be used to cancel the write operation. + The type of the value to serialize. + A task that represents the asynchronous write operation. + + + Converts a value of the specified type into a JSON string, encoded as UTF-8 bytes. + The value to convert. + The type of the to convert. + Options to control the conversion behavior. + A JSON string representation of the value, encoded as UTF-8 bytes. + + + Converts the value of a type specified by a generic type parameter into a JSON string, encoded as UTF-8 bytes. + The value to convert. + Options to control the conversion behavior. + The type of the value. + A JSON string representation of the value, encoded as UTF-8 bytes. + + + Provides options to be used with . + + + Initializes a new instance of the class. + + + Get or sets a value that indicates whether an extra comma at the end of a list of JSON values in an object or array is allowed (and ignored) within the JSON payload being deserialized. + + if an extra comma at the end of a list of JSON values in an object or array is allowed (and ignored); otherwise. + This property was set after serialization or deserialization has occurred. + + + Gets the list of user-defined converters that were registered. + The list of custom converters. + + + Gets or sets the default buffer size, in bytes, to use when creating temporary buffers. + The default buffer size in bytes. + The buffer size is less than 1. + This property was set after serialization or deserialization has occurred. + + + Gets or sets the policy used to convert a key's name to another format, such as camel-casing. + The policy used to convert a key's name to another format. + + + Gets or sets the encoder to use when escaping strings, or to use the default encoder. + The JavaScript character encoding. + + + Returns the converter for the specified type. + The type to return a converter for. + The first converter that supports the given type, or if there is no converter. + + + Gets or sets a value that determines whether values are ignored during serialization and deserialization. The default value is . + + to ignore null values during serialization and deserialization; otherwise, see langword="false" />. + This property was set after serialization or deserialization has occurred. + + + Gets a value that determines whether read-only properties are ignored during serialization. The default value is . + + to ignore read-only properties during serialization; otherwise, . + This property was set after serialization or deserialization has occurred. + + + Gets or sets the maximum depth allowed when serializing or deserializing JSON, with the default value of 0 indicating a maximum depth of 64. + The maximum depth allowed when serializing or deserializing JSON. + This property was set after serialization or deserialization has occurred. + The max depth is set to a negative value. + + + Gets or sets a value that determines whether a property's name uses a case-insensitive comparison during deserialization. The default value is . + + to compare property names using case-insensitive comparison; otherwise, . + + + Gets or sets a value that specifies the policy used to convert a property's name on an object to another format, such as camel-casing, or to leave property names unchanged. + A property naming policy, or to leave property names unchanged. + + + Gets or sets a value that defines how comments are handled during deserialization. + A value that indicates whether comments are allowed, disallowed, or skipped. + This property was set after serialization or deserialization has occurred. + The comment handling enum is set to a value that is not supported (or not within the enum range). + + + Gets or sets a value that defines whether JSON should use pretty printing. By default, JSON is serialized without any extra white space. + + if JSON should pretty print on serialization; otherwise, . The default is . + This property was set after serialization or deserialization has occurred. + + + Defines the various JSON tokens that make up a JSON text. + + + The token type is a comment string. + + + The token type is the end of a JSON array. + + + The token type is the end of a JSON object. + + + The token type is the JSON literal false. + + + There is no value (as distinct from ). + + + The token type is the JSON literal null. + + + The token type is a JSON number. + + + The token type is a JSON property name. + + + The token type is the start of a JSON array. + + + The token type is the start of a JSON object. + + + The token type is a JSON string. + + + The token type is the JSON literal true. + + + Specifies the data type of a JSON value. + + + A JSON array. + + + The JSON value false. + + + The JSON value null. + + + A JSON number. + + + A JSON object. + + + A JSON string. + + + The JSON value true. + + + There is no value (as distinct from ). + + + Allows the user to define custom behavior when writing JSON using the . + + + Gets or sets the encoder to use when escaping strings, or to use the default encoder. + The JavaScript character encoder used to override the escaping behavior. + + + Gets or sets a value that indicates whether the should format the JSON output, which includes indenting nested JSON tokens, adding new lines, and adding white space between property names and values. + + to format the JSON output; to write without any extra white space. The default is . + + + Gets or sets a value that indicates whether the should skip structural validation and allow the user to write invalid JSON. + + to skip structural validation and allow invalid JSON; to throw an on any attempt to write invalid JSON. + + + Provides the base class for serialization attributes. + + + Creates a new instance of the . + + + Converts an object or value to or from JSON. + + + When overridden in a derived class, determines whether the converter instance can convert the specified object type. + The type of the object to check whether it can be converted by this converter instance. + + if the instance can convert the specified object type; otherwise, . + + + Converts an object or value to or from JSON. + The type of object or value handled by the converter. + + + Initializes a new instance. + + + Determines whether the specified type can be converted. + The type to compare against. + + if the type can be converted; otherwise, . + + + Reads and converts the JSON to type . + The reader. + The type to convert. + An object that specifies serialization options to use. + The converted value. + + + Writes a specified value as JSON. + The writer to write to. + The value to convert to JSON. + An object that specifies serialization options to use. + + + When placed on a property or type, specifies the converter type to use. + + + Initializes a new instance of . + + + Initializes a new instance of with the specified converter type. + The type of the converter. + + + Gets the type of the , or if it was created without a type. + The type of the , or if it was created without a type. + + + When overridden in a derived class and is , allows the derived class to create a in order to pass additional state. + The type of the converter. + The custom converter. + + + Supports converting several types by using a factory pattern. + + + When overidden in a derived class, initializes a new instance of the class. + + + Creates a converter for a specified type. + The type handled by the converter. + The serialization options to use. + A converter for which is compatible with . + + + When placed on a property of type , any properties that do not have a matching member are added to that dictionary during deserialization and written during serialization. + + + Instantiates a new instance of the class. + + + Prevents a property from being serialized or deserialized. + + + Initializes a new instance of . + + + Specifies the property name that is present in the JSON when serializing and deserializing. This overrides any naming policy specified by . + + + Initializes a new instance of with the specified property name. + The name of the property. + + + Gets the name of the property. + The name of the property. + + + Converts enumeration values to and from strings. + + + Initializes an instance of the class with the default naming policy that allows integer values. + + + Initializes an instance of the class with a specified naming policy and a value that indicates whether undefined enumeration values are allowed. + The optional naming policy for writing enum values. + + to allow undefined enum values; otherwise, . When , if an enum value isn't defined, it will output as a number rather than a string. + + + Determines whether the specified type can be converted to an enum. + The type to be checked. + + if the type can be converted; otherwise, . + + + Creates a converter for the specified type. + The type handled by the converter. + The serialization options to use. + A converter for which is compatible with . + + + Provides a high-performance API for forward-only, read-only access to UTF-8 encoded JSON text. + + + Initializes a new instance of the structure that processes a read-only sequence of UTF-8 encoded text and indicates whether the input contains all the text to process. + The UTF-8 encoded JSON text to process. + + to indicate that the input sequence contains the entire data to process; to indicate that the input span contains partial data with more data to follow. + An object that contains the reader state. If this is the first call to the constructor, pass the default state; otherwise, pass the value of the property from the previous instance of the . + + + Initializes a new instance of the structure that processes a read-only sequence of UTF-8 encoded text using the specified options. + The UTF-8 encoded JSON text to process. + Defines customized behavior of the that differs from the JSON RFC (for example how to handle comments or maximum depth allowed when reading). By default, the follows the JSON RFC strictly; comments within the JSON are invalid, and the maximum depth is 64. + + + Initializes a new instance of the structure that processes a read-only span of UTF-8 encoded text and indicates whether the input contains all the text to process. + The UTF-8 encoded JSON text to process. + + to indicate that the input sequence contains the entire data to process; to indicate that the input span contains partial data with more data to follow. + An object that contains the reader state. If this is the first call to the constructor, pass the default state; otherwise, pass the value of the property from the previous instance of the . + + + Initializes a new instance of the structure that processes a read-only span of UTF-8 encoded text using the specified options. + The UTF-8 encoded JSON text to process. + Defines customized behavior of the that differs from the JSON RFC (for example how to handle comments or maximum depth allowed when reading). By default, the follows the JSON RFC strictly; comments within the JSON are invalid, and the maximum depth is 64. + + + Gets the total number of bytes consumed so far by this instance of the . + The total number of bytes consumed so far. + + + Gets the depth of the current token. + The depth of the current token. + + + Gets the current state to pass to a constructor with more data. + The current reader state. + + + Reads the next JSON token value from the source as a . + + if the is ; if the is . + The value of the JSON token isn't a boolean value (that is, or ). + + + Parses the current JSON token value from the source as a . + The value of the UTF-8 encoded token. + The value of the JSON token is not a . + The numeric format of the JSON token value is incorrect (for example, it contains a fractional value or is written in scientific notation). +-or- +The JSON token value represents a number less than or greater than . + + + Parses the current JSON token value from the source and decodes the Base64 encoded JSON string as a byte array. + The byte array that represents the current JSON token value. + The type of the JSON token is not a . + The value is not encoded as Base64 text, so it can't be decoded to bytes. + + + Parses the current JSON token value from the source as a comment, transcoded it as a . + The comment that represents the current JSON token value. + The JSON token is not a comment. + + + Reads the next JSON token value from the source and parses it to a . + The date and time value, if the entire UTF-8 encoded token value can be successfully parsed. + The value of the JSON token isn't a . + The JSON token value cannot be read as a . +-or- +The entire UTF-8 encoded token value cannot be parsed to a value. + + + Reads the next JSON token value from the source and parses it to a . + The date and time offset, if the entire UTF-8 encoded token value can be successfully parsed. + The value of the JSON token isn't a . + The JSON token value cannot be read as a . +-or- +The entire UTF-8 encoded token value cannot be parsed to a value. + + + Reads the next JSON token value from the source and parses it to a . + The UTF-8 encoded token value parsed to a . + The JSON token value isn't a . + The JSON token value represents a number less than or greater than . + + + Reads the next JSON token value from the source and parses it to a . + The UTF-8 encoded token value parsed to a . + The JSON token value isn't a . + The JSON token value represents a number less than or greater than . + + + Reads the next JSON token value from the source and parses it to a . + The GUID value, if the entire UTF-8 encoded token value can be successfully parsed. + The value of the JSON token isn't a . + The JSON token value is in an unsupported format for a Guid. +-or- +The entire UTF-8 encoded token value cannot be parsed to a value. + + + Parses the current JSON token value from the source as a . + The UTF-8 encoded token value parsed to an . + The value of the JSON token is not a . + The numeric format of the JSON token value is incorrect (for example, it contains a fractional value or is written in scientific notation). +-or- +The JSON token value represents a number less than or greater than . + + + Reads the next JSON token value from the source and parses it to an . + The UTF-8 encoded token value parsed to an . + The JSON token value isn't a . + The JSON token value is of the incorrect numeric format. For example, it contains a decimal or is written in scientific notation. +-or- +The JSON token value represents a number less than or greater than . + + + Reads the next JSON token value from the source and parses it to an . + The UTF-8 encoded token value parsed to an . + The JSON token value isn't a . + The JSON token value is of the incorrect numeric format. For example, it contains a decimal or is written in scientific notation. +-or- +The JSON token value represents a number less than or greater than . + + + Parses the current JSON token value from the source as an . + The UTF-8 encoded token value parsed to an . + The value of the JSON token is not a . + The numeric format of the JSON token value is incorrect (for example, it contains a fractional value or is written in scientific notation). +-or- +The JSON token value represents a number less than or greater than . + + + Reads the next JSON token value from the source and parses it to a . + The UTF-8 encoded token value parsed to a . + The JSON token value isn't a . + The JSON token value represents a number less than or greater than . + + + Reads the next JSON token value from the source, unescaped, and transcoded as a string. + The token value parsed to a string, or if is . + The JSON token value isn't a string (that is, not a , , or ). +-or- +The JSON string contains invalid UTF-8 bytes or invalid UTF-16 surrogates. + + + Parses the current JSON token value from the source as a . + The UTF-8 encoded token value parsed to a . + The value of the JSON token is not a . + The numeric format of the JSON token value is incorrect (for example, it contains a fractional value or is written in scientific notation). +-or- +The JSON token value represents a number less than or greater than . + + + Reads the next JSON token value from the source and parses it to a . + The UTF-8 encoded token value parsed to a . + The JSON token value isn't a . + The JSON token value is of the incorrect numeric format. For example, it contains a decimal or is written in scientific notation. +-or- +The JSON token value represents a number less than or greater than . + + + Reads the next JSON token value from the source and parses it to a . + The UTF-8 encoded token value parsed to a . + The JSON token value isn't a . + The JSON token value is of the incorrect numeric format. For example, it contains a decimal or is written in scientific notation. +-or- +The JSON token value represents a number less than or greater than . + + + Gets a value that indicates which Value property to use to get the token value. + + if should be used to get the token value; if should be used instead. + + + Gets the mode of this instance of the which indicates whether all the JSON data was provided or there is more data to come. + + if the reader was constructed with the input span or sequence containing the entire JSON data to process; if the reader was constructed with an input span or sequence that may contain partial JSON data with more data to follow. + + + Gets the current within the provided UTF-8 encoded input ReadOnlySequence<byte> or a default if the struct was constructed with a ReadOnlySpan<byte>. + The current within the provided UTF-8 encoded input ReadOnlySequence<byte> or a default if the struct was constructed with a ReadOnlySpan<byte>. + + + Reads the next JSON token from the input source. + + if the token was read successfully; otherwise, . + An invalid JSON token according to the JSON RFC is encountered. +-or- +The current depth exceeds the recursive limit set by the maximum depth. + + + Skips the children of the current JSON token. + The reader was given partial data with more data to follow (that is, is ). + An invalid JSON token was encountered while skipping, according to the JSON RFC. +-or- +The current depth exceeds the recursive limit set by the maximum depth. + + + Gets the index that the last processed JSON token starts at (within the given UTF-8 encoded input text), skipping any white space. + The starting index of the last processed JSON token within the given UTF-8 encoded input text. + + + Gets the type of the last processed JSON token in the UTF-8 encoded JSON text. + The type of the last processed JSON token. + + + Tries to parse the current JSON token value from the source as a and returns a value that indicates whether the operation succeeded. + When this method returns, contains the parsed value. + + if the entire UTF-8 encoded token value can be successfully parsed to a value; otherwise, . + The JSON token value isn't a . + + + Tries to parse the current JSON token value from the source and decodes the Base64 encoded JSON string as a byte array and returns a value that indicates whether the operation succeeded. + When this method returns, contains the decoded binary representation of the Base64 text. + + if the entire token value is encoded as valid Base64 text and can be successfully decoded to bytes; otherwise, . + The JSON token is not a . + + + Tries to parse the current JSON token value from the source as a and returns a value that indicates whether the operation succeeded. + When this method returns, contains the parsed value. + + if the entire UTF-8 encoded token value can be successfully parsed to a value; otherwise, . + The value of the JSON token isn't a . + + + Tries to parse the current JSON token value from the source as a and returns a value that indicates whether the operation succeeded. + When this method returns, contains the parsed value. + + if the entire UTF-8 encoded token value can be successfully parsed to a value; otherwise, . + The value of the JSON token isn't a . + + + Tries to parse the current JSON token value from the source as a and returns a value that indicates whether the operation succeeded. + When this method returns, contains the parsed value. + + if the entire UTF-8 encoded token value can be successfully parsed to a value; otherwise, . + The JSON token value isn't a . + + + Tries to parse the current JSON token value from the source as a and returns a value that indicates whether the operation succeeded. + When this method returns, contains the parsed value. + + if the entire UTF-8 encoded token value can be successfully parsed to a value; otherwise, . + The JSON token value isn't a . + + + Tries to parse the current JSON token value from the source as a and returns a value that indicates whether the operation succeeded. + When this method returns, contains the parsed value. + + if the entire UTF-8 encoded token value can be successfully parsed to a value; otherwise, . + The value of the JSON token isn't a . + + + Tries to parse the current JSON token value from the source as an and returns a value that indicates whether the operation succeeded. + When this method returns, contains the parsed value. + + if the entire UTF-8 encoded token value can be successfully parsed to a value; otherwise, . + The JSON token value isn't a . + + + Tries to parse the current JSON token value from the source as an and returns a value that indicates whether the operation succeeded. + When this method returns, contains the parsed value. + + if the entire UTF-8 encoded token value can be successfully parsed to an value; otherwise, . + The JSON token value isn't a . + + + Tries to parse the current JSON token value from the source as an and returns a value that indicates whether the operation succeeded. + When this method returns, contains the parsed value. + + if the entire UTF-8 encoded token value can be successfully parsed to an value; otherwise, . + The JSON token value isn't a . + + + Tries to parse the current JSON token value from the source as an and returns a value that indicates whether the operation succeeded. + When this method returns, contains the parsed value. + + if the entire UTF-8 encoded token value can be successfully parsed to an value; otherwise, . + The JSON token value isn't a . + + + Tries to parse the current JSON token value from the source as a and returns a value that indicates whether the operation succeeded. + When this method returns, contains the parsed value. + + if the entire UTF-8 encoded token value can be successfully parsed to an value; otherwise, . + The JSON token value isn't a . + + + Tries to parse the current JSON token value from the source as a and returns a value that indicates whether the operation succeeded. + When this method returns, contains the parsed value. + + if the entire UTF-8 encoded token value can be successfully parsed to a value; otherwise, . + The JSON token value isn't a . + + + Tries to parse the current JSON token value from the source as a and returns a value that indicates whether the operation succeeded. + When this method returns, contains the parsed value. + + if the entire UTF-8 encoded token value can be successfully parsed to a value; otherwise, . + The JSON token value isn't a . + + + Tries to parse the current JSON token value from the source as a and returns a value that indicates whether the operation succeeded. + When this method returns, contains the parsed value. + + if the entire UTF-8 encoded token value can be successfully parsed to a value; otherwise, . + The JSON token value isn't a . + + + Tries to skip the children of the current JSON token. + + if there was enough data for the children to be skipped successfully; otherwise, . + An invalid JSON token was encountered while skipping, according to the JSON RFC. +-or - +The current depth exceeds the recursive limit set by the maximum depth. + + + Gets the raw value of the last processed token as a ReadOnlySequence<byte> slice of the input payload, only if the token is contained within multiple segments. + A byte read-only sequence. + + + Gets the raw value of the last processed token as a ReadOnlySpan<byte> slice of the input payload, if the token fits in a single segment or if the reader was constructed with a JSON payload contained in a ReadOnlySpan<byte>. + A read-only span of bytes. + + + Compares the UTF-8 encoded text in a read-only byte span to the unescaped JSON token value in the source and returns a value that indicates whether they match. + The UTF-8 encoded text to compare against. + + if the JSON token value in the source matches the UTF-8 encoded lookup text; otherwise, . + The JSON token is not a JSON string (that is, it is not or ). + + + Compares the text in a read-only character span to the unescaped JSON token value in the source and returns a value that indicates whether they match. + The text to compare against. + + if the JSON token value in the source matches the lookup text; otherwise, . + The JSON token is not a JSON string (that is, it is not or ). + + + Compares the string text to the unescaped JSON token value in the source and returns a value that indicates whether they match. + The text to compare against. + + if the JSON token value in the source matches the lookup text; otherwise, . + The JSON token is not a JSON string (that is, it is not or ). + + + Provides a high-performance API for forward-only, non-cached writing of UTF-8 encoded JSON text. + + + Initializes a new instance of the class using the specified to write the output to and customization options. + The destination for writing JSON text. + Defines the customized behavior of the . By default, it writes minimized JSON (with no extra white space) and validates that the JSON being written is structurally valid according to the JSON RFC. + + is . + + + Initializes a new instance of the class using the specified stream to write the output to and customization options. + The destination for writing JSON text. + Defines the customized behavior of the . By default, it writes minimized JSON (with no extra white space) and validates that the JSON being written is structurally valid according to the JSON RFC. + + is . + + + Gets the total number of bytes committed to the output by the current instance so far. + The total number of bytes committed to the output by the so far. + + + Gets the number of bytes written by the so far that have not yet been flushed to the output and committed. + The number of bytes written so far by the that have not yet been flushed to the output and committed. + + + Gets the depth of the current token. + The depth of the current token. + + + Commits any leftover JSON text that has not yet been flushed and releases all resources used by the current instance. + + + Asynchronously commits any leftover JSON text that has not yet been flushed and releases all resources used by the current instance. + A task representing the asynchronous dispose operation. + + + Commits the JSON text written so far, which makes it visible to the output destination. + This instance has been disposed. + + + Asynchronously commits the JSON text written so far, which makes it visible to the output destination. + The token to monitor for cancellation requests. The default value is . + A task representing the asynchronous flush operation. + This instance has been disposed. + + + Gets the custom behavior when writing JSON using this instance, which indicates whether to format the output while writing, whether to skip structural JSON validation, and which characters to escape. + The custom behavior of this instance of the writer for formatting, validating, and escaping. + + + Resets the internal state of this instance so that it can be reused. + This instance has been disposed. + + + Resets the internal state of this instance so that it can be reused with a new instance of . + The destination for writing JSON text. + + is . + This instance has been disposed. + + + Resets the internal state of this instance so that it can be reused with a new instance of . + The destination for writing JSON text. + + is . + This instance has been disposed. + + + Writes the property name and raw bytes value (as a Base64 encoded JSON string) as part of a name/value pair of a JSON object. + The UTF-8 encoded name of the property to write. + The binary data to write as Base64 encoded text. + The specified property name or value is too large. + Validation is enabled, and this method would result in writing invalid JSON. + + + Writes the property name and raw bytes value (as a Base64 encoded JSON string) as part of a name/value pair of a JSON object. + The property name of the JSON object to be transcoded and written as UTF-8. + The binary data to write as Base64 encoded text. + The specified property name or value is too large. + Validation is enabled, and this method would result in writing invalid JSON. + + + Writes the property name and raw bytes value (as a Base64 encoded JSON string) as part of a name/value pair of a JSON object. + The property name of the JSON object to be transcoded and written as UTF-8. + The binary data to write as Base64 encoded text. + The specified property name or value is too large. + Validation is enabled, and this method would result in writing invalid JSON. + The parameter is . + + + Writes the pre-encoded property name and raw bytes value (as a Base64 encoded JSON string) as part of a name/value pair of a JSON object. + The JSON-encoded name of the property to write. + The binary data to write as Base64 encoded text. + The specified value is too large. + Validation is enabled, and this method would result in writing invalid JSON. + + + Writes the raw bytes value as a Base64 encoded JSON string as an element of a JSON array. + The binary data to be written as a Base64 encoded JSON string element of a JSON array. + The specified value is too large. + Validation is enabled, and this method would result in writing invalid JSON. + + + Writes a property name specified as a read-only span of bytes and a value (as a JSON literal true or false) as part of a name/value pair of a JSON object. + The UTF-8 encoded property name of the JSON object to be written. + The value to be written as a JSON literal true or false as part of the name/value pair. + The specified property name is too large. + Validation is enabled, and the operation would result in writing invalid JSON. + + + Writes a property name specified as a read-only character span and a value (as a JSON literal true or false) as part of a name/value pair of a JSON object. + The UTF-16 encoded property name of the JSON object to be transcoded and written as UTF-8. + The value to be written as a JSON literal true or false as part of the name/value pair. + The specified property name is too large. + Validation is enabled, and the operation would result in writing invalid JSON. + + + Writes a property name specified as a string and a value (as a JSON literal true or false) as part of a name/value pair of a JSON object. + The UTF-16 encoded property name of the JSON object to be transcoded and written as UTF-8. + The value to be written as a JSON literal true or false as part of the name/value pair. + The specified property name is too large. + Validation is enabled, and the operation would result in writing invalid JSON. + The parameter is . + + + Writes the pre-encoded property name and value (as a JSON literal true or false) as part of a name/value pair of a JSON object. + The JSON encoded property name of the JSON object to be transcoded and written as UTF-8. + The value to be written as a JSON literal true or false as part of the name/value pair. + Validation is enabled, and this method would result in writing invalid JSON. + + + Writes a value (as a JSON literal true or false) as an element of a JSON array. + The value to be written as a JSON literal true or false as an element of a JSON array. + Validation is enabled, and the operation would result in writing invalid JSON. + + + Writes a UTF-8 text value as a JSON comment. + The UTF-8 encoded value to be written as a JSON comment within /*..*/. + The specified value is too large. +-or- + contains a comment delimiter (that is, */). + + + Writes a UTF-16 text value as a JSON comment. + The UTF-16 encoded value to be written as a UTF-8 transcoded JSON comment within /*..*/. + The specified value is too large. +-or- + contains a comment delimiter (that is, */). + + + Writes a string text value as a JSON comment. + The UTF-16 encoded value to be written as a UTF-8 transcoded JSON comment within /*..*/. + The specified value is too large. +-or- + contains a comment delimiter (that is, */). + The parameter is . + + + Writes the end of a JSON array. + Validation is enabled, and the operation would result in writing invalid JSON. + + + Writes the end of a JSON object. + Validation is enabled, and the operation would result in writing invalid JSON. + + + Writes a property name specified as a read-only span of bytes and the JSON literal null as part of a name/value pair of a JSON object. + The UTF-8 encoded property name of the JSON object to be written. + The specified property name is too large. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes a property name specified as a read-only character span and the JSON literal null as part of a name/value pair of a JSON object. + The UTF-16 encoded property name of the JSON object to be transcoded and written as UTF-8. + The specified property name is too large. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes a property name specified as a string and the JSON literal null as part of a name/value pair of a JSON object. + The UTF-16 encoded property name of the JSON object to be transcoded and written as UTF-8. + The specified property name is too large. + Validation is enabled, and the write operation would produce invalid JSON. + The parameter is . + + + Writes the pre-encoded property name and the JSON literal null as part of a name/value pair of a JSON object. + The JSON encoded property name of the JSON object to be transcoded and written as UTF-8. + Validation is enabled, and this method would result in writing invalid JSON. + + + Writes the JSON literal null as an element of a JSON array. + Validation is enabled, and the operation would result in writing invalid JSON. + + + Writes a property name specified as a read-only span of bytes and a value (as a JSON number) as part of a name/value pair of a JSON object. + The UTF-8 encoded property name of the JSON object to be written. + The value to be written as a JSON number as part of the name/value pair. + The specified property name is too large. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes a property name specified as a read-only span of bytes and a value (as a JSON number) as part of a name/value pair of a JSON object. + The UTF-8 encoded property name of the JSON object to be written. + The value to be written as a JSON number as part of the name/value pair. + The specified property name is too large. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes a property name specified as a read-only span of bytes and an value (as a JSON number) as part of a name/value pair of a JSON object. + The UTF-8 encoded property name of the JSON object to be written. + The value to be written as a JSON number as part of the name/value pair. + The specified property name is too large. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes a property name specified as a read-only span of bytes and an value (as a JSON number) as part of a name/value pair of a JSON object. + The UTF-8 encoded property name of the JSON object to be written. + The value to be written as a JSON number as part of the name/value pair. + The specified property name is too large. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes a property name specified as a read-only span of bytes and a value (as a JSON number) as part of a name/value pair of a JSON object. + The UTF-8 encoded property name of the JSON object to be written. + The value to be written as a JSON number as part of the name/value pair. + The specified property name is too large. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes a property name specified as a read-only span of bytes and a value (as a JSON number) as part of a name/value pair of a JSON object. + The UTF-8 encoded property name of the JSON object to be written. + The value to be written as a JSON number as part of the name/value pair. + The specified property name is too large. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes a property name specified as a read-only span of bytes and a value (as a JSON number) as part of a name/value pair of a JSON object. + The UTF-8 encoded property name of the JSON object to be written. + The value to be written as a JSON number as part of the name/value pair. + The specified property name is too large. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes a property name specified as a read-only character span and a value (as a JSON number) as part of a name/value pair of a JSON object. + The UTF-16 encoded property name of the JSON object to be transcoded and written as UTF-8. + The value to be written as a JSON number as part of the name/value pair. + The specified property name is too large. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes a property name specified as a read-only character span and a value (as a JSON number) as part of a name/value pair of a JSON object. + The UTF-16 encoded property name of the JSON object to be transcoded and written as UTF-8. + The value to be written as a JSON number as part of the name/value pair. + The specified property name is too large. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes a property name specified as a read-only character span and an value (as a JSON number) as part of a name/value pair of a JSON object. + The UTF-16 encoded property name of the JSON object to be transcoded and written as UTF-8. + The value to be written as a JSON number as part of the name/value pair. + The specified property name is too large. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes a property name specified as a read-only character span and an value (as a JSON number) as part of a name/value pair of a JSON object. + The UTF-16 encoded property name of the JSON object to be transcoded and written as UTF-8. + The value to be written as a JSON number as part of the name/value pair. + The specified property name is too large. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes a property name specified as a read-only character span and a value (as a JSON number) as part of a name/value pair of a JSON object. + The UTF-16 encoded property name of the JSON object to be transcoded and written as UTF-8. + The value to be written as a JSON number as part of the name/value pair. + The specified property name is too large. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes a property name specified as a read-only character span and a value (as a JSON number) as part of a name/value pair of a JSON object. + The UTF-16 encoded property name of the JSON object to be transcoded and written as UTF-8. + The value to be written as a JSON number as part of the name/value pair. + The specified property name is too large. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes a property name specified as a read-only character span and a value (as a JSON number) as part of a name/value pair of a JSON object. + The UTF-16 encoded property name of the JSON object to be transcoded and written as UTF-8. + The value to be written as a JSON number as part of the name/value pair. + The specified property name is too large. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes a property name specified as a string and a value (as a JSON number) as part of a name/value pair of a JSON object. + The UTF-16 encoded property name of the JSON object to be transcoded and written as UTF-8. + The value to be written as a JSON number as part of the name/value pair. + The specified property name is too large. + Validation is enabled, and the write operation would produce invalid JSON. + The parameter is . + + + Writes a property name specified as a string and a value (as a JSON number) as part of a name/value pair of a JSON object. + The UTF-16 encoded property name of the JSON object to be transcoded and written as UTF-8. + The value to be written as a JSON number as part of the name/value pair. + The specified property name is too large. + Validation is enabled, and the write operation would produce invalid JSON. + The parameter is . + + + Writes a property name specified as a string and an value (as a JSON number) as part of a name/value pair of a JSON object. + The UTF-16 encoded property name of the JSON object to be transcoded and written as UTF-8. + The value to be written as a JSON number as part of the name/value pair. + The specified property name is too large. + Validation is enabled, and the write operation would produce invalid JSON. + The parameter is . + + + Writes a property name specified as a string and an value (as a JSON number) as part of a name/value pair of a JSON object. + The UTF-16 encoded property name of the JSON object to be transcoded and written as UTF-8. + The value to be written as a JSON number as part of the name/value pair. + The specified property name is too large. + Validation is enabled, and the write operation would produce invalid JSON. + The parameter is . + + + Writes a property name specified as a string and a value (as a JSON number) as part of a name/value pair of a JSON object. + The UTF-16 encoded property name of the JSON object to be transcoded and written as UTF-8. + The value to be written as a JSON number as part of the name/value pair. + The specified property name is too large. + Validation is enabled, and the write operation would produce invalid JSON. + The parameter is . + + + Writes a property name specified as a string and a value (as a JSON number) as part of a name/value pair of a JSON object. + The UTF-16 encoded property name of the JSON object to be transcoded and written as UTF-8. + The value to be written as a JSON number as part of the name/value pair. + The specified property name is too large. + Validation is enabled, and the write operation would produce invalid JSON. + The parameter is . + + + Writes a property name specified as a string and a value (as a JSON number) as part of a name/value pair of a JSON object. + The UTF-16 encoded property name of the JSON object to be transcoded and written as UTF-8. + The value to be written as a JSON number as part of the name/value pair. + The specified property name is too large. + Validation is enabled, and the write operation would produce invalid JSON. + The parameter is . + + + Writes the pre-encoded property name and value (as a JSON number) as part of a name/value pair of a JSON object. + The JSON encoded property name of the JSON object to be transcoded and written as UTF-8. + The value to be written as a JSON number as part of the name/value pair. + Validation is enabled, and this method would result in writing invalid JSON. + + + Writes the pre-encoded property name and value (as a JSON number) as part of a name/value pair of a JSON object. + The JSON encoded property name of the JSON object to be transcoded and written as UTF-8. + The value to be written as a JSON number as part of the name/value pair. + Validation is enabled, and this method would result in writing invalid JSON. + + + Writes the pre-encoded property name and value (as a JSON number) as part of a name/value pair of a JSON object. + The JSON encoded property name of the JSON object to be transcoded and written as UTF-8. + The value to be written as a JSON number as part of the name/value pair. + Validation is enabled, and this method would result in writing invalid JSON. + + + Writes the pre-encoded property name and value (as a JSON number) as part of a name/value pair of a JSON object. + The JSON encoded property name of the JSON object to be transcoded and written as UTF-8. + The value to be written as a JSON number as part of the name/value pair. + Validation is enabled, and this method would result in writing invalid JSON. + + + Writes the pre-encoded property name and value (as a JSON number) as part of a name/value pair of a JSON object. + The JSON encoded property name of the JSON object to be transcoded and written as UTF-8. + The value to be written as a JSON number as part of the name/value pair. + Validation is enabled, and this method would result in writing invalid JSON. + + + Writes the pre-encoded property name and value (as a JSON number) as part of a name/value pair of a JSON object. + The JSON encoded property name of the JSON object to be transcoded and written as UTF-8. + The value to be written as a JSON number as part of the name/value pair. + Validation is enabled, and this method would result in writing invalid JSON. + + + Writes the pre-encoded property name and value (as a JSON number) as part of a name/value pair of a JSON object. + The JSON encoded property name of the JSON object to be transcoded and written as UTF-8. + The value to be written as a JSON number as part of the name/value pair. + Validation is enabled, and this method would result in writing invalid JSON. + + + Writes a value (as a JSON number) as an element of a JSON array. + The value to be written as a JSON number as an element of a JSON array. + Validation is enabled, and the operation would result in writing invalid JSON. + + + Writes a value (as a JSON number) as an element of a JSON array. + The value to be written as a JSON number as an element of a JSON array. + Validation is enabled, and the operation would result in writing invalid JSON. + + + Writes an value (as a JSON number) as an element of a JSON array. + The value to be written as a JSON number as an element of a JSON array. + Validation is enabled, and the operation would result in writing invalid JSON. + + + Writes an value (as a JSON number) as an element of a JSON array. + The value to be written as a JSON number as an element of a JSON array. + Validation is enabled, and the operation would result in writing invalid JSON. + + + Writes a value (as a JSON number) as an element of a JSON array. + The value to be written as a JSON number as an element of a JSON array. + Validation is enabled, and the operation would result in writing invalid JSON. + + + Writes a value (as a JSON number) as an element of a JSON array. + The value to be written as a JSON number as an element of a JSON array. + Validation is enabled, and the operation would result in writing invalid JSON. + + + Writes a value (as a JSON number) as an element of a JSON array. + The value to be written as a JSON number as an element of a JSON array. + Validation is enabled, and the operation would result in writing invalid JSON. + + + Writes the UTF-8 property name (as a JSON string) as the first part of a name/value pair of a JSON object. + The UTF-8 encoded property name of the JSON object to be written. + The specified property name is too large. + Validation is enabled, and this write operation would produce invalid JSON. + + + Writes the property name (as a JSON string) as the first part of a name/value pair of a JSON object. + The property name of the JSON object to be transcoded and written as UTF-8. + The specified property name is too large. + Validation is enabled, and this write operation would produce invalid JSON. + + + Writes the property name (as a JSON string) as the first part of a name/value pair of a JSON object. + The property name of the JSON object to be transcoded and written as UTF-8. + The specified property name is too large. + Validation is enabled, and this write operation would produce invalid JSON. + + is . + + + Writes the pre-encoded property name (as a JSON string) as the first part of a name/value pair of a JSON object. + The JSON encoded property name of the JSON object to be transcoded and written as UTF-8. + Validation is enabled, and this write operation would produce invalid JSON. + + + Writes the beginning of a JSON array. + The depth of the JSON exceeds the maximum depth of 1,000. +-or- +Validation is enabled, and this write operation would produce invalid JSON. + + + Writes the beginning of a JSON array with a property name specified as a read-only span of bytes as the key. + The UTF-8 encoded property name of the JSON array to be written. + The specified property name is too large. + The depth of the JSON exceeds the maximum depth of 1,000. +-or- +Validation is enabled, and this write operation would produce invalid JSON. + + + Writes the beginning of a JSON array with a property name specified as a read-only character span as the key. + The UTF-16 encoded property name of the JSON array to be transcoded and written as UTF-8. + The specified property name is too large. + The depth of the JSON exceeds the maximum depth of 1,000. +-or- +Validation is enabled, and this write operation would produce invalid JSON. + + + Writes the beginning of a JSON array with a property name specified as a string as the key. + The UTF-16 encoded property name of the JSON array to be transcoded and written as UTF-8. + The specified property name is too large. + The depth of the JSON exceeds the maximum depth of 1,000. +-or- +Validation is enabled, and this write operation would produce invalid JSON. + The parameter is . + + + Writes the beginning of a JSON array with a pre-encoded property name as the key. + The JSON encoded property name of the JSON array to be transcoded and written as UTF-8. + The depth of the JSON has exceeded the maximum depth of 1,000. +-or- +Validation is enabled, and this method would result in writing invalid JSON. + + + Writes the beginning of a JSON object. + The depth of the JSON exceeds the maximum depth of 1,000. +-or- +Validation is enabled, and the operation would result in writing invalid JSON. + + + Writes the beginning of a JSON object with a property name specified as a read-only span of bytes as the key. + The UTF-8 encoded property name of the JSON object to be written. + The specified property name is too large. + The depth of the JSON exceeds the maximum depth of 1,000. +-or- +Validation is enabled, and this write operation would produce invalid JSON. + + + Writes the beginning of a JSON object with a property name specififed as a read-only character span as the key. + The UTF-16 encoded property name of the JSON object to be transcoded and written as UTF-8. + The specified property name is too large. + The depth of the JSON exceeds the maximum depth of 1,000. +-or- +Validation is enabled, and this write operation would produce invalid JSON. + + + Writes the beginning of a JSON object with a property name specified as a string as the key. + The UTF-16 encoded property name of the JSON object to be transcoded and written as UTF-8. + The specified property name is too large. + The depth of the JSON exceeds the maximum depth of 1,000. +-or- +Validation is enabled, and this write operation would produce invalid JSON. + The parameter is . + + + Writes the beginning of a JSON object with a pre-encoded property name as the key. + The JSON encoded property name of the JSON object to be transcoded and written as UTF-8. + The depth of the JSON has exceeded the maximum depth of 1,000. +-or- +Validation is enabled, and this method would result in writing invalid JSON. + + + Writes a UTF-8 property name and a value (as a JSON string) as part of a name/value pair of a JSON object. + The UTF-8 encoded property name of the JSON object to be written. + The value to be written as a JSON string as part of the name/value pair. + The specified property name is too large. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes a UTF-8 property name and a value (as a JSON string) as part of a name/value pair of a JSON object. + The UTF-8 encoded property name of the JSON object to be written. + The value to be written as a JSON string as part of the name/value pair. + The specified property name is too large. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes a UTF-8 property name and a value (as a JSON string) as part of a name/value pair of a JSON object. + The UTF-8 encoded property name of the JSON object to be written. + The value to be written as a JSON string as part of the name/value pair. + The specified property name is too large. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes a UTF-8 property name and UTF-8 text value (as a JSON string) as part of a name/value pair of a JSON object. + The UTF-8 encoded property name of the JSON object to be written. + The UTF-8 encoded value to be written as a JSON string as part of the name/value pair. + The specified property name or value is too large. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes a UTF-8 property name and UTF-16 text value (as a JSON string) as part of a name/value pair of a JSON object. + The UTF-8 encoded property name of the JSON object to be written. + The UTF-16 encoded value to be written as a UTF-8 transcoded JSON string as part of the name/value pair. + The specified property name or value is too large. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes a UTF-8 property name and string text value (as a JSON string) as part of a name/value pair of a JSON object. + The UTF-8 encoded property name of the JSON object to be written. + The UTF-16 encoded value to be written as a UTF-8 transcoded JSON string as part of the name/value pair. + The specified property name or value is too large. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes the UTF-8 property name and pre-encoded value (as a JSON string) as part of a name/value pair of a JSON object. + The UTF-8 encoded property name of the JSON object to be written. + The JSON encoded value to be written as a UTF-8 transcoded JSON string as part of the name/value pair. + The specified property name is too large. + Validation is enabled, and this method would result in writing invalid JSON. + + + Writes a property name specified as a read-only character span and a value (as a JSON string) as part of a name/value pair of a JSON object. + The UTF-16 encoded property name of the JSON object to be transcoded and written as UTF-8. + The value to be written as a JSON string as part of the name/value pair. + The specified property name is too large. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes a property name specified as a read-only character span and a value (as a JSON string) as part of a name/value pair of a JSON object. + The UTF-16 encoded property name of the JSON object to be transcoded and written as UTF-8. + The value to be written as a JSON string as part of the name/value pair. + The specified property name is too large. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes a property name specified as a read-only character span and a value (as a JSON string) as part of a name/value pair of a JSON object. + The UTF-16 encoded property name of the JSON object to be transcoded and written as UTF-8. + The value to be written as a JSON string as part of the name/value pair. + The specified property name is too large. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes a UTF-16 property name and UTF-8 text value (as a JSON string) as part of a name/value pair of a JSON object. + The UTF-16 encoded property name of the JSON object to be transcoded and written as UTF-8. + The UTF-8 encoded value to be written as a JSON string as part of the name/value pair. + The specified property name or value is too large. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes a UTF-16 property name and UTF-16 text value (as a JSON string) as part of a name/value pair of a JSON object. + The UTF-16 encoded property name of the JSON object to be transcoded and written as UTF-8. + The UTF-16 encoded value to be written as a UTF-8 transcoded JSON string as part of the name/value pair. + The specified property name or value is too large. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes a UTF-16 property name and string text value (as a JSON string) as part of a name/value pair of a JSON object. + The UTF-16 encoded property name of the JSON object to be transcoded and written as UTF-8. + The UTF-16 encoded value to be written as a UTF-8 transcoded JSON string as part of the name/value pair. + The specified property name or value is too large. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes the property name and pre-encoded value (as a JSON string) as part of a name/value pair of a JSON object. + The property name of the JSON object to be transcoded and written as UTF-8. + The JSON encoded value to be written as a UTF-8 transcoded JSON string as part of the name/value pair. + The specified property name is too large. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes a property name specified as a string and a value (as a JSON string) as part of a name/value pair of a JSON object. + The UTF-16 encoded property name of the JSON object to be transcoded and written as UTF-8. + The value to be written as a JSON string as part of the name/value pair. + The specified property name is too large. + Validation is enabled, and the write operation would produce invalid JSON. + The parameter is . + + + Writes a property name specified as a string and a value (as a JSON string) as part of a name/value pair of a JSON object. + The UTF-16 encoded property name of the JSON object to be transcoded and written as UTF-8. + The value to be written as a JSON string as part of the name/value pair. + The specified property name is too large. + Validation is enabled, and the write operation would produce invalid JSON. + The parameter is . + + + Writes a property name specified as a string and a value (as a JSON string) as part of a name/value pair of a JSON object. + The UTF-16 encoded property name of the JSON object to be transcoded and written as UTF-8. + The value to be written as a JSON string as part of the name/value pair. + The specified property name is too large. + Validation is enabled, and the write operation would produce invalid JSON. + The parameter is . + + + Writes a property name specified as a string and a UTF-8 text value (as a JSON string) as part of a name/value pair of a JSON object. + The UTF-16 encoded property name of the JSON object to be transcoded and written as UTF-8. + The UTF-8 encoded value to be written as a JSON string as part of the name/value pair. + The specified property name or value is too large. + Validation is enabled, and the write operation would produce invalid JSON. + The parameter is . + + + Writes a property name specified as a string and a UTF-16 text value (as a JSON string) as part of a name/value pair of a JSON object. + The UTF-16 encoded property name of the JSON object to be transcoded and written as UTF-8. + The UTF-16 encoded value to be written as a UTF-8 transcoded JSON string as part of the name/value pair. + The specified property name or value is too large. + Validation is enabled, and the write operation would produce invalid JSON. + The parameter is . + + + Writes a property name specified as a string and a string text value (as a JSON string) as part of a name/value pair of a JSON object. + The UTF-16 encoded property name of the JSON object to be transcoded and written as UTF-8. + The UTF-16 encoded value to be written as a UTF-8 transcoded JSON string as part of the name/value pair. + The specified property name or value is too large. + Validation is enabled, and the write operation would produce invalid JSON. + The parameter is . + + + Writes the property name and pre-encoded value (as a JSON string) as part of a name/value pair of a JSON object. + The property name of the JSON object to be transcoded and written as UTF-8. + The JSON encoded value to be written as a UTF-8 transcoded JSON string as part of the name/value pair. + The specified property name is too large. + Validation is enabled, and the write operation would produce invalid JSON. + The parameter is . + + + Writes the pre-encoded property name and value (as a JSON string) as part of a name/value pair of a JSON object. + The JSON encoded property name of the JSON object to be transcoded and written as UTF-8. + The value to be written as a JSON string as part of the name/value pair. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes the pre-encoded property name and value (as a JSON string) as part of a name/value pair of a JSON object. + The JSON encoded property name of the JSON object to be transcoded and written as UTF-8. + The value to be written as a JSON string as part of the name/value pair. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes the pre-encoded property name and value (as a JSON string) as part of a name/value pair of a JSON object. + The JSON encoded property name of the JSON object to be transcoded and written as UTF-8. + The value to be written as a JSON string as part of the name/value pair. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes the pre-encoded property name and UTF-8 text value (as a JSON string) as part of a name/value pair of a JSON object. + The JSON encoded property name of the JSON object to be transcoded and written as UTF-8. + The UTF-8 encoded value to be written as a JSON string as part of the name/value pair. + The specified value is too large. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes the pre-encoded property name and text value (as a JSON string) as part of a name/value pair of a JSON object. + The JSON encoded property name of the JSON object to be transcoded and written as UTF-8. + The value to be written as a UTF-8 transcoded JSON string as part of the name/value pair. + The specified value is too large. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes the pre-encoded property name and string text value (as a JSON string) as part of a name/value pair of a JSON object. + The JSON encoded property name of the JSON object to be transcoded and written as UTF-8. + The value to be written as a UTF-8 transcoded JSON string as part of the name/value pair. + The specified value is too large. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes the pre-encoded property name and pre-encoded value (as a JSON string) as part of a name/value pair of a JSON object. + The JSON encoded property name of the JSON object to be transcoded and written as UTF-8. + The JSON encoded value to be written as a UTF-8 transcoded JSON string as part of the name/value pair. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes a value (as a JSON string) as an element of a JSON array. + The value to be written as a JSON string as an element of a JSON array. + Validation is enabled, and the operation would result in writing invalid JSON. + + + Writes a value (as a JSON string) as an element of a JSON array. + The value to be written as a JSON string as an element of a JSON array. + Validation is enabled, and the operation would result in writing invalid JSON. + + + Writes a value (as a JSON string) as an element of a JSON array. + The value to be written as a JSON string as an element of a JSON array. + Validation is enabled, and the operation would result in writing invalid JSON. + + + Writes a UTF-8 text value (as a JSON string) as an element of a JSON array. + The UTF-8 encoded value to be written as a JSON string element of a JSON array. + The specified value is too large. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes a UTF-16 text value (as a JSON string) as an element of a JSON array. + The UTF-16 encoded value to be written as a UTF-8 transcoded JSON string element of a JSON array. + The specified value is too large. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes a string text value (as a JSON string) as an element of a JSON array. + The UTF-16 encoded value to be written as a UTF-8 transcoded JSON string element of a JSON array. + The specified value is too large. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes the pre-encoded text value (as a JSON string) as an element of a JSON array. + The JSON encoded value to be written as a UTF-8 transcoded JSON string element of a JSON array. + Validation is enabled, and the write operation would produce invalid JSON. + + + \ No newline at end of file diff --git a/Game/Assets/Supabase/System.Text.Json.4.7.2/lib/netcoreapp3.0/System.Text.Json.xml.meta b/Game/Assets/Supabase/System.Text.Json.4.7.2/lib/netcoreapp3.0/System.Text.Json.xml.meta new file mode 100644 index 0000000..4ffc4e5 --- /dev/null +++ b/Game/Assets/Supabase/System.Text.Json.4.7.2/lib/netcoreapp3.0/System.Text.Json.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 884d3f69148e51c4a908922e0256ed5a +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Text.Json.4.7.2/lib/netstandard2.0.meta b/Game/Assets/Supabase/System.Text.Json.4.7.2/lib/netstandard2.0.meta new file mode 100644 index 0000000..b855f85 --- /dev/null +++ b/Game/Assets/Supabase/System.Text.Json.4.7.2/lib/netstandard2.0.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 81510a9efda88c54eb6a28584e1eca46 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Text.Json.4.7.2/lib/netstandard2.0/System.Text.Json.dll b/Game/Assets/Supabase/System.Text.Json.4.7.2/lib/netstandard2.0/System.Text.Json.dll new file mode 100644 index 0000000..9fccd08 --- /dev/null +++ b/Game/Assets/Supabase/System.Text.Json.4.7.2/lib/netstandard2.0/System.Text.Json.dll @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1d078df997c700444efae5b47cfd09f49dd6575850def5083966ea1926013e9f +size 293240 diff --git a/Game/Assets/Supabase/System.Text.Json.4.7.2/lib/netstandard2.0/System.Text.Json.dll.meta b/Game/Assets/Supabase/System.Text.Json.4.7.2/lib/netstandard2.0/System.Text.Json.dll.meta new file mode 100644 index 0000000..97d4dbd --- /dev/null +++ b/Game/Assets/Supabase/System.Text.Json.4.7.2/lib/netstandard2.0/System.Text.Json.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: dcf5a970f88d4bc458e89d3a53492173 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Text.Json.4.7.2/lib/netstandard2.0/System.Text.Json.xml b/Game/Assets/Supabase/System.Text.Json.4.7.2/lib/netstandard2.0/System.Text.Json.xml new file mode 100644 index 0000000..3de6bfe --- /dev/null +++ b/Game/Assets/Supabase/System.Text.Json.4.7.2/lib/netstandard2.0/System.Text.Json.xml @@ -0,0 +1,2346 @@ + + + + System.Text.Json + + + + Defines how the struct handles comments. + + + Allows comments within the JSON input and treats them as valid tokens. While reading, the caller can access the comment values. + + + Doesn't allow comments within the JSON input. Comments are treated as invalid JSON if found, and a is thrown. This is the default value. + + + Allows comments within the JSON input and ignores them. The behaves as if no comments are present. + + + Provides a mechanism for examining the structural content of a JSON value without automatically instantiating data values. + + + Releases the resources used by this instance. + + + Parses a sequence as UTF-8-encoded text representing a single JSON byte value into a JsonDocument. + The JSON text to parse. + Options to control the reader behavior during parsing. + A JsonDocument representation of the JSON value. + + does not represent a valid single JSON value. + + contains unsupported options. + + + Parses a as UTF-8-encoded data representing a single JSON value into a JsonDocument. The stream is read to completion. + The JSON data to parse. + Options to control the reader behavior during parsing. + A JsonDocument representation of the JSON value. + + does not represent a valid single JSON value. + + contains unsupported options. + + + Parses memory as UTF-8-encoded text representing a single JSON byte value into a JsonDocument. + The JSON text to parse. + Options to control the reader behavior during parsing. + A JsonDocument representation of the JSON value. + + does not represent a valid single JSON value. + + contains unsupported options. + + + Parses text representing a single JSON character value into a JsonDocument. + The JSON text to parse. + Options to control the reader behavior during parsing. + A JsonDocument representation of the JSON value. + + does not represent a valid single JSON value. + + contains unsupported options. + + + Parses text representing a single JSON string value into a JsonDocument. + The JSON text to parse. + Options to control the reader behavior during parsing. + A JsonDocument representation of the JSON value. + + does not represent a valid single JSON value. + + contains unsupported options. + + + Parses a as UTF-8-encoded data representing a single JSON value into a JsonDocument. The stream is read to completion. + The JSON data to parse. + Options to control the reader behavior during parsing. + The token to monitor for cancellation requests. + A task to produce a JsonDocument representation of the JSON value. + + does not represent a valid single JSON value. + + contains unsupported options. + + + Parses one JSON value (including objects or arrays) from the provided reader. + The reader to read. + A JsonDocument representing the value (and nested values) read from the reader. + + contains unsupported options. +-or- +The current token does not start or represent a value. + A value could not be read from the reader. + + + Gets the root element of this JSON document. + A representing the value of the document. + + + Attempts to parse one JSON value (including objects or arrays) from the provided reader. + The reader to read. + When the method returns, contains the parsed document. + + if a value was read and parsed into a JsonDocument; if the reader ran out of data while parsing. All other situations result in an exception being thrown. + + contains unsupported options. +-or- +The current token does not start or represent a value. + A value could not be read from the reader. + + + Writes the document to the provided writer as a JSON value. + The writer to which to write the document. + The parameter is . + The of this would result in invalid JSON. + The parent has been disposed. + + + Provides the ability for the user to define custom behavior when parsing JSON to create a . + + + Gets or sets a value that indicates whether an extra comma at the end of a list of JSON values in an object or array is allowed (and ignored) within the JSON payload being read. + + if an extra comma at the end of a list of JSON values in an object or array is allowed; otherwise, . Default is + + + Gets or sets a value that determines how the handles comments when reading through the JSON data. + One of the enumeration values that indicates how comments are handled. + The comment handling enum is set to a value that is not supported (or not within the enum range). + + + Gets or sets the maximum depth allowed when parsing JSON data, with the default (that is, 0) indicating a maximum depth of 64. + The maximum depth allowed when parsing JSON data. + The max depth is set to a negative value. + + + Represents a specific JSON value within a . + + + Represents an enumerator for the contents of a JSON array. + + + Gets the element in the collection at the current position of the enumerator. + The element in the collection at the current position of the enumerator. + + + Releases the resources used by this instance. + + + Returns an enumerator that iterates through a collection. + An enumerator that can be used to iterate through the array. + + + Advances the enumerator to the next element of the collection. + + if the enumerator was successfully advanced to the next element; if the enumerator has passed the end of the collection. + + + Sets the enumerator to its initial position, which is before the first element in the collection. + + + Returns an enumerator that iterates through a collection. + An enumerator for an array of that can be used to iterate through the collection. + + + Returns an enumerator that iterates through a collection. + An enumerator that can be used to iterate through the collection. + + + Gets the element in the collection at the current position of the enumerator. + The element in the collection at the current position of the enumerator. + + + Gets a JsonElement that can be safely stored beyond the lifetime of the original . + A JsonElement that can be safely stored beyond the lifetime of the original . + + + Gets an enumerator to enumerate the values in the JSON array represented by this JsonElement. + An enumerator to enumerate the values in the JSON array represented by this JsonElement. + This value's is not . + The parent has been disposed. + + + Gets an enumerator to enumerate the properties in the JSON object represented by this JsonElement. + An enumerator to enumerate the properties in the JSON object represented by this JsonElement. + This value's is not . + The parent has been disposed. + + + Gets the number of values contained within the current array value. + The number of values contained within the current array value. + This value's is not . + The parent has been disposed. + + + Gets the value of the element as a . + The value of the element as a . + This value's is neither nor . + The parent has been disposed. + + + Gets the current JSON number as a . + The current JSON number as a . + This value's is not . + The value cannot be represented as a . + The parent has been disposed. + + + Gets the value of the element as a byte array. + The value decoded as a byte array. + This value's is not . + The value is not encoded as Base64 text and hence cannot be decoded to bytes. + The parent has been disposed. + + + Gets the value of the element as a . + The value of the element as a . + This value's is not . + The value cannot be read as a . + The parent has been disposed. + + + Gets the value of the element as a . + The value of the element as a . + This value's is not . + The value cannot be read as a . + The parent has been disposed. + + + Gets the current JSON number as a . + The current JSON number as a . + This value's is not . + The value cannot be represented as a . + The parent has been disposed. + + + Gets the current JSON number as a . + The current JSON number as a . + This value's is not . + The value cannot be represented as a . + The parent has been disposed. + + + Gets the value of the element as a . + The value of the element as a . + This value's is not . + The value cannot be represented as a . + The parent has been disposed. + + + Gets the current JSON number as an . + The current JSON number as an . + This value's is not . + The value cannot be represented as an . + The parent has been disposed. + + + Gets the current JSON number as an . + The current JSON number as an . + This value's is not . + The value cannot be represented as an . + The parent has been disposed. + + + Gets the current JSON number as an . + The current JSON number as an . + This value's is not . + The value cannot be represented as a . + The parent has been disposed. + + + Gets a representing the value of a required property identified by . + The UTF-8 representation (with no Byte-Order-Mark (BOM)) of the name of the property to return. + A representing the value of the requested property. + This value's is not . + No property was found with the requested name. + The parent has been disposed. + + + Gets a representing the value of a required property identified by . + The name of the property whose value is to be returned. + A representing the value of the requested property. + This value's is not . + No property was found with the requested name. + The parent has been disposed. + + + Gets a representing the value of a required property identified by . + The name of the property whose value is to be returned. + A representing the value of the requested property. + This value's is not . + No property was found with the requested name. + + is . + The parent has been disposed. + + + Gets a string that represents the original input data backing this value. + The original input data backing this value. + The parent has been disposed. + + + Gets the current JSON number as an . + The current JSON number as an . + This value's is not . + The value cannot be represented as an . + The parent has been disposed. + + + Gets the current JSON number as a . + The current JSON number as a . + This value's is not . + The value cannot be represented as a . + The parent has been disposed. + + + Gets the value of the element as a . + The value of the element as a . + This value's is neither nor . + The parent has been disposed. + + + Gets the current JSON number as a . + The current JSON number as a . + This value's is not . + The value cannot be represented as a . + The parent has been disposed. + + + Gets the current JSON number as a . + The current JSON number as a . + This value's is not . + The value cannot be represented as a . + The parent has been disposed. + + + Gets the current JSON number as a . + The current JSON number as a . + This value's is not . + The value cannot be represented as a . + The parent has been disposed. + + + Gets the value at the specified index if the current value is an . + The item index. + The value at the specified index. + This value's is not . + + is not in the range [0, ()). + The parent has been disposed. + + + Represents an enumerator for the properties of a JSON object. + + + Gets the element in the collection at the current position of the enumerator. + The element in the collection at the current position of the enumerator. + + + Releases the resources used by this instance. + + + Returns an enumerator that iterates the properties of an object. + An enumerator that can be used to iterate through the object. + + + Advances the enumerator to the next element of the collection. + + if the enumerator was successfully advanced to the next element; if the enumerator has passed the end of the collection. + + + Sets the enumerator to its initial position, which is before the first element in the collection. + + + Returns an enumerator that iterates through a collection. + An enumerator for objects that can be used to iterate through the collection. + + + Returns an enumerator that iterates through a collection. + An enumerator that can be used to iterate through the collection. + + + Gets the element in the collection at the current position of the enumerator. + The element in the collection at the current position of the enumerator. + + + Gets a string representation for the current value appropriate to the value type. + A string representation for the current value appropriate to the value type. + The parent has been disposed. + + + Attempts to represent the current JSON number as a . + When the method returns, contains the byte equivalent of the current JSON number if the conversion succeeded. + + if the number can be represented as a ; otherwise, . + This value's is not . + The parent has been disposed. + + + Attempts to represent the current JSON string as a byte array, assuming that it is Base64 encoded. + If the method succeeds, contains the decoded binary representation of the Base64 text. + + if the entire token value is encoded as valid Base64 text and can be successfully decoded to bytes; otherwise, . + This value's is not . + The parent has been disposed. + + + Attempts to represent the current JSON string as a . + When this method returns, contains the date and time value equivalent to the current JSON string. + + if the string can be represented as a ; otherwise, . + This value's is not . + The parent has been disposed. + + + Attempts to represent the current JSON string as a . + When this method returns, contains the date and time equivalent to the current JSON string. + + if the string can be represented as a ; otherwise, . + This value's is not . + The parent has been disposed. + + + Attempts to represent the current JSON number as a . + When this method returns, contains the decimal equivalent of the current JSON number. + + if the number can be represented as a ; otherwise, . + This value's is not . + The parent has been disposed. + + + Attempts to represent the current JSON number as a . + When this method returns, contains a double-precision floating point value equivalent to the current JSON number. + + if the number can be represented as a ; otherwise, . + This value's is not . + The parent has been disposed. + + + Attempts to represent the current JSON string as a . + When this method returns, contains the GUID equivalent to the current JSON string. + + if the string can be represented as a ; otherwise, . + This value's is not . + The parent has been disposed. + + + Attempts to represent the current JSON number as an . + When the method returns, contains the 16-bit integer equivalent of the current JSON number if the conversion succeeded. + + if the number can be represented as an ; otherwise, . + This value's is not . + The parent has been disposed. + + + Attempts to represent the current JSON number as an . + When this method returns, contains the 32-biut integer value equivalent to the current JSON number. + + if the number can be represented as an ; otherwise, . + This value's is not . + The parent has been disposed. + + + Attempts to represent the current JSON number as a . + When this method returns, contains the 64-bit integer value equivalent to the current JSON number. + + if the number can be represented as a ; otherwise, . + This value's is not . + The parent has been disposed. + + + Looks for a property named in the current object, returning a value that indicates whether or not such a property exists. When the property exists, the method assigns its value to the argument. + The UTF-8 (with no Byte-Order-Mark (BOM)) representation of the name of the property to return. + Receives the value of the located property. + + if the property was found; otherwise, . + This value's is not . + The parent has been disposed. + + + Looks for a property named in the current object, returning a value that indicates whether or not such a property exists. When the property exists, the method assigns its value to the argument. + The name of the property to find. + When this method returns, contains the value of the specified property. + + if the property was found; otherwise, . + This value's is not . + The parent has been disposed. + + + Looks for a property named in the current object, returning a value that indicates whether or not such a property exists. When the property exists, its value is assigned to the argument. + The name of the property to find. + When this method returns, contains the value of the specified property. + + if the property was found; otherwise, . + This value's is not . + + is . + The parent has been disposed. + + + Attempts to represent the current JSON number as an . + When the method returns, contains the signed byte equivalent of the current JSON number if the conversion succeeded. + + if the number can be represented as an ; otherwise, . + This value's is not . + The parent has been disposed. + + + Attempts to represent the current JSON number as a . + When this method returns, contains the single-precision floating point value equivalent to the current JSON number. + + if the number can be represented as a ; otherwise, . + This value's is not . + The parent has been disposed. + + + Attempts to represent the current JSON number as a . + When the method returns, contains the unsigned 16-bit integer equivalent of the current JSON number if the conversion succeeded. + + if the number can be represented as a ; otherwise, . + This value's is not . + The parent has been disposed. + + + Attempts to represent the current JSON number as a . + When this method returns, contains unsigned 32-bit integer value equivalent to the current JSON number. + + if the number can be represented as a ; otherwise, . + This value's is not . + The parent has been disposed. + + + Attempts to represent the current JSON number as a . + When this method returns, contains unsigned 64-bit integer value equivalent to the current JSON number. + + if the number can be represented as a ; otherwise, . + This value's is not . + The parent has been disposed. + + + Compares the text represented by a UTF8-encoded byte span to the string value of this element. + The UTF-8 encoded text to compare against. + + if the string value of this element has the same UTF-8 encoding as +; otherwise, . + This value's is not . + + + Compares a specified read-only character span to the string value of this element. + The text to compare against. + + if the string value of this element matches ; otherwise, . + This value's is not . + + + Compares a specified string to the string value of this element. + The text to compare against. + + if the string value of this element matches ; otherwise, . + This value's is not . + + + Gets the type of the current JSON value. + The type of the current JSON value. + The parent has been disposed. + + + Writes the element to the specified writer as a JSON value. + The writer to which to write the element. + The parameter is . + The of this value is . + The parent has been disposed. + + + Provides methods to transform UTF-8 or UTF-16 encoded text into a form that is suitable for JSON. + + + Encodes a UTF-8 text value as a JSON string. + The UTF-8 encoded text to convert to JSON encoded text. + The encoder to use when escaping the string, or to use the default encoder. + The encoded JSON text. + + is too large. +-or- + contains invalid UTF-8 bytes. + + + Encodes a specified text value as a JSON string. + The value to convert to JSON encoded text. + The encoder to use when escaping the string, or to use the default encoder. + The encoded JSON text. + + is too large. +-or- + contains invalid UTF-16 characters. + + + Encodes the string text value as a JSON string. + The value to convert to JSON encoded text. + The encoder to use when escaping the string, or to use the default encoder. + The encoded JSON text. + + is . + + is too large. +-or- + contains invalid UTF-16 characters. + + + Gets the UTF-8 encoded representation of the pre-encoded JSON text. + The UTF-8 encoded representation of the pre-encoded JSON text. + + + Determines whether this instance and a specified object, which must also be a instance, have the same value. + The object to compare to this instance. + + if the current instance and are equal; otherwise, . + + + Determines whether this instance and another specified instance have the same value. + The object to compare to this instance. + + if this instance and have the same value; otherwise, . + + + Returns the hash code for this . + The hash code for this instance. + + + Converts the value of this instance to a . + The underlying UTF-16 encoded string. + + + Defines a custom exception object that is thrown when invalid JSON text is encountered, when the defined maximum depth is passed, or the JSON text is not compatible with the type of a property on an object. + + + Initializes a new instance of the class. + + + Creates a new exception object with serialized data. + The serialized object data about the exception being thrown. + An object that contains contextual information about the source or destination. + + is . + + + Initializes a new instance of the class with a specified error message. + The context-specific error message. + + + Initializes a new instance of the class, with a specified error message and a reference to the inner exception that is the cause of this exception. + The context-specific error message. + The exception that caused the current exception. + + + Creates a new exception object to relay error information to the user. + The context-specific error message. + The path where the invalid JSON was encountered. + The line number (starting at 0) at which the invalid JSON was encountered when deserializing. + The byte count within the current line (starting at 0) where the invalid JSON was encountered. + + + Creates a new exception object to relay error information to the user that includes a specified inner exception. + The context-specific error message. + The path where the invalid JSON was encountered. + The line number (starting at 0) at which the invalid JSON was encountered when deserializing. + The byte count (starting at 0) within the current line where the invalid JSON was encountered. + The exception that caused the current exception. + + + Gets the zero-based number of bytes read within the current line before the exception. + The zero-based number of bytes read within the current line before the exception. + + + Sets the with information about the exception. + The serialized object data about the exception being thrown. + An object that contains contextual information about the source or destination. + + + Gets the zero-based number of lines read before the exception. + The zero-based number of lines read before the exception. + + + Gets a message that describes the current exception. + The error message that describes the current exception. + + + Gets The path within the JSON where the exception was encountered. + The path within the JSON where the exception was encountered. + + + Determines the naming policy used to convert a string-based name to another format, such as a camel-casing format. + + + Initializes a new instance of . + + + Gets the naming policy for camel-casing. + The naming policy for camel-casing. + + + When overridden in a derived class, converts the specified name according to the policy. + The name to convert. + The converted name. + + + Represents a single property for a JSON object. + + + Gets the name of this property. + The name of this property. + + + Compares the specified UTF-8 encoded text to the name of this property. + The UTF-8 encoded text to compare against. + + if the name of this property has the same UTF-8 encoding as ; otherwise, . + This value's is not . + + + Compares the specified text as a character span to the name of this property. + The text to compare against. + + if the name of this property matches ; otherwise, . + This value's is not . + + + Compares the specified string to the name of this property. + The text to compare against. + + if the name of this property matches ; otherwise . + This value's is not . + + + Provides a string representation of the property for debugging purposes. + A string containing the uninterpreted value of the property, beginning at the declaring open-quote and ending at the last character that is part of the value. + + + Gets the value of this property. + The value of this property. + + + Writes the property to the provided writer as a named JSON object property. + The writer to which to write the property. + + is . + + is too large to be a JSON object property. + The of this JSON property's would result in invalid JSON. + The parent has been disposed. + + + Provides the ability for the user to define custom behavior when reading JSON. + + + Gets or sets a value that defines whether an extra comma at the end of a list of JSON values in an object or array is allowed (and ignored) within the JSON payload being read. + + if an extra comma is allowed; otherwise, . + + + Gets or sets a value that determines how the handles comments when reading through the JSON data. + One of the enumeration values that indicates how comments are handled. + The property is being set to a value that is not a member of the enumeration. + + + Gets or sets the maximum depth allowed when reading JSON, with the default (that is, 0) indicating a maximum depth of 64. + The maximum depth allowed when reading JSON. + The maximum depth is being set to a negative value. + + + Defines an opaque type that holds and saves all the relevant state information, which must be provided to the to continue reading after processing incomplete data. + + + Constructs a new instance. + Defines the customized behavior of the that is different from the JSON RFC (for example how to handle comments, or the maximum depth allowed when reading). By default, the follows the JSON RFC strictly (comments within the JSON are invalid) and reads up to a maximum depth of 64. + The maximum depth is set to a non-positive value (< 0). + + + Gets the custom behavior to use when reading JSON data using the struct that may deviate from strict adherence to the JSON specification, which is the default behavior. + The custom behavior to use when reading JSON data. + + + Provides functionality to serialize objects or value types to JSON and to deserialize JSON into objects or value types. + + + Parses the UTF-8 encoded text representing a single JSON value into an instance of a specified type. + The JSON text to parse. + The type of the object to convert to and return. + Options to control the behavior during parsing. + A representation of the JSON value. + + is . + The JSON is invalid. +-or- + is not compatible with the JSON. +-or- +There is remaining data in the span beyond a single JSON value. + + + Parses the text representing a single JSON value into an instance of a specified type. + The JSON text to parse. + The type of the object to convert to and return. + Options to control the behavior during parsing. + A representation of the JSON value. + + or is . + The JSON is invalid. +-or- + is not compatible with the JSON. +-or- +There is remaining data in the string beyond a single JSON value. + + + Reads one JSON value (including objects or arrays) from the provided reader and converts it into an instance of a specified type. + The reader to read the JSON from. + The type of the object to convert to and return. + Options to control the serializer behavior during reading. + A representation of the JSON value. + + is . + The JSON is invalid. +-or- + is not compatible with the JSON. +-or- +A value could not be read from the reader. + + is using unsupported options. + + + Parses the UTF-8 encoded text representing a single JSON value into an instance of the type specified by a generic type parameter. + The JSON text to parse. + Options to control the behavior during parsing. + The target type of the UTF-8 encoded text. + A representation of the JSON value. + The JSON is invalid. +-or- + is not compatible with the JSON. +-or- +There is remaining data in the span beyond a single JSON value. + + + Parses the text representing a single JSON value into an instance of the type specified by a generic type parameter. + The JSON text to parse. + Options to control the behavior during parsing. + The target type of the JSON value. + A representation of the JSON value. + + is . + The JSON is invalid. +-or- + is not compatible with the JSON. +-or- +There is remaining data in the string beyond a single JSON value. + + + Reads one JSON value (including objects or arrays) from the provided reader into an instance of the type specified by a generic type parameter. + The reader to read the JSON from. + Options to control serializer behavior during reading. + The target type of the JSON value. + A representation of the JSON value. + The JSON is invalid. +-or- + is not compatible with the JSON. +-or- +A value could not be read from the reader. + + uses unsupported options. + + + Asynchronously reads the UTF-8 encoded text representing a single JSON value into an instance of a specified type. The stream will be read to completion. + The JSON data to parse. + The type of the object to convert to and return. + Options to control the behavior during reading. + A cancellation token that may be used to cancel the read operation. + A representation of the JSON value. + + or is . + The JSON is invalid. +-or- + is not compatible with the JSON. +-or- +There is remaining data in the stream. + + + Asynchronously reads the UTF-8 encoded text representing a single JSON value into an instance of a type specified by a generic type parameter. The stream will be read to completion. + The JSON data to parse. + Options to control the behavior during reading. + A token that may be used to cancel the read operation. + The target type of the JSON value. + A representation of the JSON value. + The JSON is invalid. +-or- + is not compatible with the JSON. +-or- +There is remaining data in the stream. + + + Converts the value of a specified type into a JSON string. + The value to convert. + The type of the to convert. + Options to control the conversion behavior. + The JSON string representation of the value. + + + Writes the JSON representation of the specified type to the provided writer. + The JSON writer to write to. + The value to convert and write. + The type of the to convert. + Options to control serialization behavior. + + + Converts the value of a type specified by a generic type parameter into a JSON string. + The value to convert. + Options to control serialization behavior. + The type of the value to serialize. + A JSON string representation of the value. + + + Writes the JSON representation of a type specified by a generic type parameter to the provided writer. + A JSON writer to write to. + The value to convert and write. + Options to control serialization behavior. + The type of the value to serialize. + + + Asynchronously converts the value of a specified type to UTF-8 encoded JSON text and writes it to the specified stream. + The UTF-8 stream to write to. + The value to convert. + The type of the to convert. + Options to control serialization behavior. + A token that may be used to cancel the write operation. + A task that represents the asynchronous write operation. + + + Asynchronously converts a value of a type specified by a generic type parameter to UTF-8 encoded JSON text and writes it to a stream. + The UTF-8 stream to write to. + The value to convert. + Options to control serialization behavior. + A token that may be used to cancel the write operation. + The type of the value to serialize. + A task that represents the asynchronous write operation. + + + Converts a value of the specified type into a JSON string, encoded as UTF-8 bytes. + The value to convert. + The type of the to convert. + Options to control the conversion behavior. + A JSON string representation of the value, encoded as UTF-8 bytes. + + + Converts the value of a type specified by a generic type parameter into a JSON string, encoded as UTF-8 bytes. + The value to convert. + Options to control the conversion behavior. + The type of the value. + A JSON string representation of the value, encoded as UTF-8 bytes. + + + Provides options to be used with . + + + Initializes a new instance of the class. + + + Get or sets a value that indicates whether an extra comma at the end of a list of JSON values in an object or array is allowed (and ignored) within the JSON payload being deserialized. + + if an extra comma at the end of a list of JSON values in an object or array is allowed (and ignored); otherwise. + This property was set after serialization or deserialization has occurred. + + + Gets the list of user-defined converters that were registered. + The list of custom converters. + + + Gets or sets the default buffer size, in bytes, to use when creating temporary buffers. + The default buffer size in bytes. + The buffer size is less than 1. + This property was set after serialization or deserialization has occurred. + + + Gets or sets the policy used to convert a key's name to another format, such as camel-casing. + The policy used to convert a key's name to another format. + + + Gets or sets the encoder to use when escaping strings, or to use the default encoder. + The JavaScript character encoding. + + + Returns the converter for the specified type. + The type to return a converter for. + The first converter that supports the given type, or if there is no converter. + + + Gets or sets a value that determines whether values are ignored during serialization and deserialization. The default value is . + + to ignore null values during serialization and deserialization; otherwise, see langword="false" />. + This property was set after serialization or deserialization has occurred. + + + Gets a value that determines whether read-only properties are ignored during serialization. The default value is . + + to ignore read-only properties during serialization; otherwise, . + This property was set after serialization or deserialization has occurred. + + + Gets or sets the maximum depth allowed when serializing or deserializing JSON, with the default value of 0 indicating a maximum depth of 64. + The maximum depth allowed when serializing or deserializing JSON. + This property was set after serialization or deserialization has occurred. + The max depth is set to a negative value. + + + Gets or sets a value that determines whether a property's name uses a case-insensitive comparison during deserialization. The default value is . + + to compare property names using case-insensitive comparison; otherwise, . + + + Gets or sets a value that specifies the policy used to convert a property's name on an object to another format, such as camel-casing, or to leave property names unchanged. + A property naming policy, or to leave property names unchanged. + + + Gets or sets a value that defines how comments are handled during deserialization. + A value that indicates whether comments are allowed, disallowed, or skipped. + This property was set after serialization or deserialization has occurred. + The comment handling enum is set to a value that is not supported (or not within the enum range). + + + Gets or sets a value that defines whether JSON should use pretty printing. By default, JSON is serialized without any extra white space. + + if JSON should pretty print on serialization; otherwise, . The default is . + This property was set after serialization or deserialization has occurred. + + + Defines the various JSON tokens that make up a JSON text. + + + The token type is a comment string. + + + The token type is the end of a JSON array. + + + The token type is the end of a JSON object. + + + The token type is the JSON literal false. + + + There is no value (as distinct from ). + + + The token type is the JSON literal null. + + + The token type is a JSON number. + + + The token type is a JSON property name. + + + The token type is the start of a JSON array. + + + The token type is the start of a JSON object. + + + The token type is a JSON string. + + + The token type is the JSON literal true. + + + Specifies the data type of a JSON value. + + + A JSON array. + + + The JSON value false. + + + The JSON value null. + + + A JSON number. + + + A JSON object. + + + A JSON string. + + + The JSON value true. + + + There is no value (as distinct from ). + + + Allows the user to define custom behavior when writing JSON using the . + + + Gets or sets the encoder to use when escaping strings, or to use the default encoder. + The JavaScript character encoder used to override the escaping behavior. + + + Gets or sets a value that indicates whether the should format the JSON output, which includes indenting nested JSON tokens, adding new lines, and adding white space between property names and values. + + to format the JSON output; to write without any extra white space. The default is . + + + Gets or sets a value that indicates whether the should skip structural validation and allow the user to write invalid JSON. + + to skip structural validation and allow invalid JSON; to throw an on any attempt to write invalid JSON. + + + Provides the base class for serialization attributes. + + + Creates a new instance of the . + + + Converts an object or value to or from JSON. + + + When overridden in a derived class, determines whether the converter instance can convert the specified object type. + The type of the object to check whether it can be converted by this converter instance. + + if the instance can convert the specified object type; otherwise, . + + + Converts an object or value to or from JSON. + The type of object or value handled by the converter. + + + Initializes a new instance. + + + Determines whether the specified type can be converted. + The type to compare against. + + if the type can be converted; otherwise, . + + + Reads and converts the JSON to type . + The reader. + The type to convert. + An object that specifies serialization options to use. + The converted value. + + + Writes a specified value as JSON. + The writer to write to. + The value to convert to JSON. + An object that specifies serialization options to use. + + + When placed on a property or type, specifies the converter type to use. + + + Initializes a new instance of . + + + Initializes a new instance of with the specified converter type. + The type of the converter. + + + Gets the type of the , or if it was created without a type. + The type of the , or if it was created without a type. + + + When overridden in a derived class and is , allows the derived class to create a in order to pass additional state. + The type of the converter. + The custom converter. + + + Supports converting several types by using a factory pattern. + + + When overidden in a derived class, initializes a new instance of the class. + + + Creates a converter for a specified type. + The type handled by the converter. + The serialization options to use. + A converter for which is compatible with . + + + When placed on a property of type , any properties that do not have a matching member are added to that dictionary during deserialization and written during serialization. + + + Instantiates a new instance of the class. + + + Prevents a property from being serialized or deserialized. + + + Initializes a new instance of . + + + Specifies the property name that is present in the JSON when serializing and deserializing. This overrides any naming policy specified by . + + + Initializes a new instance of with the specified property name. + The name of the property. + + + Gets the name of the property. + The name of the property. + + + Converts enumeration values to and from strings. + + + Initializes an instance of the class with the default naming policy that allows integer values. + + + Initializes an instance of the class with a specified naming policy and a value that indicates whether undefined enumeration values are allowed. + The optional naming policy for writing enum values. + + to allow undefined enum values; otherwise, . When , if an enum value isn't defined, it will output as a number rather than a string. + + + Determines whether the specified type can be converted to an enum. + The type to be checked. + + if the type can be converted; otherwise, . + + + Creates a converter for the specified type. + The type handled by the converter. + The serialization options to use. + A converter for which is compatible with . + + + Provides a high-performance API for forward-only, read-only access to UTF-8 encoded JSON text. + + + Initializes a new instance of the structure that processes a read-only sequence of UTF-8 encoded text and indicates whether the input contains all the text to process. + The UTF-8 encoded JSON text to process. + + to indicate that the input sequence contains the entire data to process; to indicate that the input span contains partial data with more data to follow. + An object that contains the reader state. If this is the first call to the constructor, pass the default state; otherwise, pass the value of the property from the previous instance of the . + + + Initializes a new instance of the structure that processes a read-only sequence of UTF-8 encoded text using the specified options. + The UTF-8 encoded JSON text to process. + Defines customized behavior of the that differs from the JSON RFC (for example how to handle comments or maximum depth allowed when reading). By default, the follows the JSON RFC strictly; comments within the JSON are invalid, and the maximum depth is 64. + + + Initializes a new instance of the structure that processes a read-only span of UTF-8 encoded text and indicates whether the input contains all the text to process. + The UTF-8 encoded JSON text to process. + + to indicate that the input sequence contains the entire data to process; to indicate that the input span contains partial data with more data to follow. + An object that contains the reader state. If this is the first call to the constructor, pass the default state; otherwise, pass the value of the property from the previous instance of the . + + + Initializes a new instance of the structure that processes a read-only span of UTF-8 encoded text using the specified options. + The UTF-8 encoded JSON text to process. + Defines customized behavior of the that differs from the JSON RFC (for example how to handle comments or maximum depth allowed when reading). By default, the follows the JSON RFC strictly; comments within the JSON are invalid, and the maximum depth is 64. + + + Gets the total number of bytes consumed so far by this instance of the . + The total number of bytes consumed so far. + + + Gets the depth of the current token. + The depth of the current token. + + + Gets the current state to pass to a constructor with more data. + The current reader state. + + + Reads the next JSON token value from the source as a . + + if the is ; if the is . + The value of the JSON token isn't a boolean value (that is, or ). + + + Parses the current JSON token value from the source as a . + The value of the UTF-8 encoded token. + The value of the JSON token is not a . + The numeric format of the JSON token value is incorrect (for example, it contains a fractional value or is written in scientific notation). +-or- +The JSON token value represents a number less than or greater than . + + + Parses the current JSON token value from the source and decodes the Base64 encoded JSON string as a byte array. + The byte array that represents the current JSON token value. + The type of the JSON token is not a . + The value is not encoded as Base64 text, so it can't be decoded to bytes. + + + Parses the current JSON token value from the source as a comment, transcoded it as a . + The comment that represents the current JSON token value. + The JSON token is not a comment. + + + Reads the next JSON token value from the source and parses it to a . + The date and time value, if the entire UTF-8 encoded token value can be successfully parsed. + The value of the JSON token isn't a . + The JSON token value cannot be read as a . +-or- +The entire UTF-8 encoded token value cannot be parsed to a value. + + + Reads the next JSON token value from the source and parses it to a . + The date and time offset, if the entire UTF-8 encoded token value can be successfully parsed. + The value of the JSON token isn't a . + The JSON token value cannot be read as a . +-or- +The entire UTF-8 encoded token value cannot be parsed to a value. + + + Reads the next JSON token value from the source and parses it to a . + The UTF-8 encoded token value parsed to a . + The JSON token value isn't a . + The JSON token value represents a number less than or greater than . + + + Reads the next JSON token value from the source and parses it to a . + The UTF-8 encoded token value parsed to a . + The JSON token value isn't a . + The JSON token value represents a number less than or greater than . + + + Reads the next JSON token value from the source and parses it to a . + The GUID value, if the entire UTF-8 encoded token value can be successfully parsed. + The value of the JSON token isn't a . + The JSON token value is in an unsupported format for a Guid. +-or- +The entire UTF-8 encoded token value cannot be parsed to a value. + + + Parses the current JSON token value from the source as a . + The UTF-8 encoded token value parsed to an . + The value of the JSON token is not a . + The numeric format of the JSON token value is incorrect (for example, it contains a fractional value or is written in scientific notation). +-or- +The JSON token value represents a number less than or greater than . + + + Reads the next JSON token value from the source and parses it to an . + The UTF-8 encoded token value parsed to an . + The JSON token value isn't a . + The JSON token value is of the incorrect numeric format. For example, it contains a decimal or is written in scientific notation. +-or- +The JSON token value represents a number less than or greater than . + + + Reads the next JSON token value from the source and parses it to an . + The UTF-8 encoded token value parsed to an . + The JSON token value isn't a . + The JSON token value is of the incorrect numeric format. For example, it contains a decimal or is written in scientific notation. +-or- +The JSON token value represents a number less than or greater than . + + + Parses the current JSON token value from the source as an . + The UTF-8 encoded token value parsed to an . + The value of the JSON token is not a . + The numeric format of the JSON token value is incorrect (for example, it contains a fractional value or is written in scientific notation). +-or- +The JSON token value represents a number less than or greater than . + + + Reads the next JSON token value from the source and parses it to a . + The UTF-8 encoded token value parsed to a . + The JSON token value isn't a . + The JSON token value represents a number less than or greater than . + + + Reads the next JSON token value from the source, unescaped, and transcoded as a string. + The token value parsed to a string, or if is . + The JSON token value isn't a string (that is, not a , , or ). +-or- +The JSON string contains invalid UTF-8 bytes or invalid UTF-16 surrogates. + + + Parses the current JSON token value from the source as a . + The UTF-8 encoded token value parsed to a . + The value of the JSON token is not a . + The numeric format of the JSON token value is incorrect (for example, it contains a fractional value or is written in scientific notation). +-or- +The JSON token value represents a number less than or greater than . + + + Reads the next JSON token value from the source and parses it to a . + The UTF-8 encoded token value parsed to a . + The JSON token value isn't a . + The JSON token value is of the incorrect numeric format. For example, it contains a decimal or is written in scientific notation. +-or- +The JSON token value represents a number less than or greater than . + + + Reads the next JSON token value from the source and parses it to a . + The UTF-8 encoded token value parsed to a . + The JSON token value isn't a . + The JSON token value is of the incorrect numeric format. For example, it contains a decimal or is written in scientific notation. +-or- +The JSON token value represents a number less than or greater than . + + + Gets a value that indicates which Value property to use to get the token value. + + if should be used to get the token value; if should be used instead. + + + Gets the mode of this instance of the which indicates whether all the JSON data was provided or there is more data to come. + + if the reader was constructed with the input span or sequence containing the entire JSON data to process; if the reader was constructed with an input span or sequence that may contain partial JSON data with more data to follow. + + + Gets the current within the provided UTF-8 encoded input ReadOnlySequence<byte> or a default if the struct was constructed with a ReadOnlySpan<byte>. + The current within the provided UTF-8 encoded input ReadOnlySequence<byte> or a default if the struct was constructed with a ReadOnlySpan<byte>. + + + Reads the next JSON token from the input source. + + if the token was read successfully; otherwise, . + An invalid JSON token according to the JSON RFC is encountered. +-or- +The current depth exceeds the recursive limit set by the maximum depth. + + + Skips the children of the current JSON token. + The reader was given partial data with more data to follow (that is, is ). + An invalid JSON token was encountered while skipping, according to the JSON RFC. +-or- +The current depth exceeds the recursive limit set by the maximum depth. + + + Gets the index that the last processed JSON token starts at (within the given UTF-8 encoded input text), skipping any white space. + The starting index of the last processed JSON token within the given UTF-8 encoded input text. + + + Gets the type of the last processed JSON token in the UTF-8 encoded JSON text. + The type of the last processed JSON token. + + + Tries to parse the current JSON token value from the source as a and returns a value that indicates whether the operation succeeded. + When this method returns, contains the parsed value. + + if the entire UTF-8 encoded token value can be successfully parsed to a value; otherwise, . + The JSON token value isn't a . + + + Tries to parse the current JSON token value from the source and decodes the Base64 encoded JSON string as a byte array and returns a value that indicates whether the operation succeeded. + When this method returns, contains the decoded binary representation of the Base64 text. + + if the entire token value is encoded as valid Base64 text and can be successfully decoded to bytes; otherwise, . + The JSON token is not a . + + + Tries to parse the current JSON token value from the source as a and returns a value that indicates whether the operation succeeded. + When this method returns, contains the parsed value. + + if the entire UTF-8 encoded token value can be successfully parsed to a value; otherwise, . + The value of the JSON token isn't a . + + + Tries to parse the current JSON token value from the source as a and returns a value that indicates whether the operation succeeded. + When this method returns, contains the parsed value. + + if the entire UTF-8 encoded token value can be successfully parsed to a value; otherwise, . + The value of the JSON token isn't a . + + + Tries to parse the current JSON token value from the source as a and returns a value that indicates whether the operation succeeded. + When this method returns, contains the parsed value. + + if the entire UTF-8 encoded token value can be successfully parsed to a value; otherwise, . + The JSON token value isn't a . + + + Tries to parse the current JSON token value from the source as a and returns a value that indicates whether the operation succeeded. + When this method returns, contains the parsed value. + + if the entire UTF-8 encoded token value can be successfully parsed to a value; otherwise, . + The JSON token value isn't a . + + + Tries to parse the current JSON token value from the source as a and returns a value that indicates whether the operation succeeded. + When this method returns, contains the parsed value. + + if the entire UTF-8 encoded token value can be successfully parsed to a value; otherwise, . + The value of the JSON token isn't a . + + + Tries to parse the current JSON token value from the source as an and returns a value that indicates whether the operation succeeded. + When this method returns, contains the parsed value. + + if the entire UTF-8 encoded token value can be successfully parsed to a value; otherwise, . + The JSON token value isn't a . + + + Tries to parse the current JSON token value from the source as an and returns a value that indicates whether the operation succeeded. + When this method returns, contains the parsed value. + + if the entire UTF-8 encoded token value can be successfully parsed to an value; otherwise, . + The JSON token value isn't a . + + + Tries to parse the current JSON token value from the source as an and returns a value that indicates whether the operation succeeded. + When this method returns, contains the parsed value. + + if the entire UTF-8 encoded token value can be successfully parsed to an value; otherwise, . + The JSON token value isn't a . + + + Tries to parse the current JSON token value from the source as an and returns a value that indicates whether the operation succeeded. + When this method returns, contains the parsed value. + + if the entire UTF-8 encoded token value can be successfully parsed to an value; otherwise, . + The JSON token value isn't a . + + + Tries to parse the current JSON token value from the source as a and returns a value that indicates whether the operation succeeded. + When this method returns, contains the parsed value. + + if the entire UTF-8 encoded token value can be successfully parsed to an value; otherwise, . + The JSON token value isn't a . + + + Tries to parse the current JSON token value from the source as a and returns a value that indicates whether the operation succeeded. + When this method returns, contains the parsed value. + + if the entire UTF-8 encoded token value can be successfully parsed to a value; otherwise, . + The JSON token value isn't a . + + + Tries to parse the current JSON token value from the source as a and returns a value that indicates whether the operation succeeded. + When this method returns, contains the parsed value. + + if the entire UTF-8 encoded token value can be successfully parsed to a value; otherwise, . + The JSON token value isn't a . + + + Tries to parse the current JSON token value from the source as a and returns a value that indicates whether the operation succeeded. + When this method returns, contains the parsed value. + + if the entire UTF-8 encoded token value can be successfully parsed to a value; otherwise, . + The JSON token value isn't a . + + + Tries to skip the children of the current JSON token. + + if there was enough data for the children to be skipped successfully; otherwise, . + An invalid JSON token was encountered while skipping, according to the JSON RFC. +-or - +The current depth exceeds the recursive limit set by the maximum depth. + + + Gets the raw value of the last processed token as a ReadOnlySequence<byte> slice of the input payload, only if the token is contained within multiple segments. + A byte read-only sequence. + + + Gets the raw value of the last processed token as a ReadOnlySpan<byte> slice of the input payload, if the token fits in a single segment or if the reader was constructed with a JSON payload contained in a ReadOnlySpan<byte>. + A read-only span of bytes. + + + Compares the UTF-8 encoded text in a read-only byte span to the unescaped JSON token value in the source and returns a value that indicates whether they match. + The UTF-8 encoded text to compare against. + + if the JSON token value in the source matches the UTF-8 encoded lookup text; otherwise, . + The JSON token is not a JSON string (that is, it is not or ). + + + Compares the text in a read-only character span to the unescaped JSON token value in the source and returns a value that indicates whether they match. + The text to compare against. + + if the JSON token value in the source matches the lookup text; otherwise, . + The JSON token is not a JSON string (that is, it is not or ). + + + Compares the string text to the unescaped JSON token value in the source and returns a value that indicates whether they match. + The text to compare against. + + if the JSON token value in the source matches the lookup text; otherwise, . + The JSON token is not a JSON string (that is, it is not or ). + + + Provides a high-performance API for forward-only, non-cached writing of UTF-8 encoded JSON text. + + + Initializes a new instance of the class using the specified to write the output to and customization options. + The destination for writing JSON text. + Defines the customized behavior of the . By default, it writes minimized JSON (with no extra white space) and validates that the JSON being written is structurally valid according to the JSON RFC. + + is . + + + Initializes a new instance of the class using the specified stream to write the output to and customization options. + The destination for writing JSON text. + Defines the customized behavior of the . By default, it writes minimized JSON (with no extra white space) and validates that the JSON being written is structurally valid according to the JSON RFC. + + is . + + + Gets the total number of bytes committed to the output by the current instance so far. + The total number of bytes committed to the output by the so far. + + + Gets the number of bytes written by the so far that have not yet been flushed to the output and committed. + The number of bytes written so far by the that have not yet been flushed to the output and committed. + + + Gets the depth of the current token. + The depth of the current token. + + + Commits any leftover JSON text that has not yet been flushed and releases all resources used by the current instance. + + + Asynchronously commits any leftover JSON text that has not yet been flushed and releases all resources used by the current instance. + A task representing the asynchronous dispose operation. + + + Commits the JSON text written so far, which makes it visible to the output destination. + This instance has been disposed. + + + Asynchronously commits the JSON text written so far, which makes it visible to the output destination. + The token to monitor for cancellation requests. The default value is . + A task representing the asynchronous flush operation. + This instance has been disposed. + + + Gets the custom behavior when writing JSON using this instance, which indicates whether to format the output while writing, whether to skip structural JSON validation, and which characters to escape. + The custom behavior of this instance of the writer for formatting, validating, and escaping. + + + Resets the internal state of this instance so that it can be reused. + This instance has been disposed. + + + Resets the internal state of this instance so that it can be reused with a new instance of . + The destination for writing JSON text. + + is . + This instance has been disposed. + + + Resets the internal state of this instance so that it can be reused with a new instance of . + The destination for writing JSON text. + + is . + This instance has been disposed. + + + Writes the property name and raw bytes value (as a Base64 encoded JSON string) as part of a name/value pair of a JSON object. + The UTF-8 encoded name of the property to write. + The binary data to write as Base64 encoded text. + The specified property name or value is too large. + Validation is enabled, and this method would result in writing invalid JSON. + + + Writes the property name and raw bytes value (as a Base64 encoded JSON string) as part of a name/value pair of a JSON object. + The property name of the JSON object to be transcoded and written as UTF-8. + The binary data to write as Base64 encoded text. + The specified property name or value is too large. + Validation is enabled, and this method would result in writing invalid JSON. + + + Writes the property name and raw bytes value (as a Base64 encoded JSON string) as part of a name/value pair of a JSON object. + The property name of the JSON object to be transcoded and written as UTF-8. + The binary data to write as Base64 encoded text. + The specified property name or value is too large. + Validation is enabled, and this method would result in writing invalid JSON. + The parameter is . + + + Writes the pre-encoded property name and raw bytes value (as a Base64 encoded JSON string) as part of a name/value pair of a JSON object. + The JSON-encoded name of the property to write. + The binary data to write as Base64 encoded text. + The specified value is too large. + Validation is enabled, and this method would result in writing invalid JSON. + + + Writes the raw bytes value as a Base64 encoded JSON string as an element of a JSON array. + The binary data to be written as a Base64 encoded JSON string element of a JSON array. + The specified value is too large. + Validation is enabled, and this method would result in writing invalid JSON. + + + Writes a property name specified as a read-only span of bytes and a value (as a JSON literal true or false) as part of a name/value pair of a JSON object. + The UTF-8 encoded property name of the JSON object to be written. + The value to be written as a JSON literal true or false as part of the name/value pair. + The specified property name is too large. + Validation is enabled, and the operation would result in writing invalid JSON. + + + Writes a property name specified as a read-only character span and a value (as a JSON literal true or false) as part of a name/value pair of a JSON object. + The UTF-16 encoded property name of the JSON object to be transcoded and written as UTF-8. + The value to be written as a JSON literal true or false as part of the name/value pair. + The specified property name is too large. + Validation is enabled, and the operation would result in writing invalid JSON. + + + Writes a property name specified as a string and a value (as a JSON literal true or false) as part of a name/value pair of a JSON object. + The UTF-16 encoded property name of the JSON object to be transcoded and written as UTF-8. + The value to be written as a JSON literal true or false as part of the name/value pair. + The specified property name is too large. + Validation is enabled, and the operation would result in writing invalid JSON. + The parameter is . + + + Writes the pre-encoded property name and value (as a JSON literal true or false) as part of a name/value pair of a JSON object. + The JSON encoded property name of the JSON object to be transcoded and written as UTF-8. + The value to be written as a JSON literal true or false as part of the name/value pair. + Validation is enabled, and this method would result in writing invalid JSON. + + + Writes a value (as a JSON literal true or false) as an element of a JSON array. + The value to be written as a JSON literal true or false as an element of a JSON array. + Validation is enabled, and the operation would result in writing invalid JSON. + + + Writes a UTF-8 text value as a JSON comment. + The UTF-8 encoded value to be written as a JSON comment within /*..*/. + The specified value is too large. +-or- + contains a comment delimiter (that is, */). + + + Writes a UTF-16 text value as a JSON comment. + The UTF-16 encoded value to be written as a UTF-8 transcoded JSON comment within /*..*/. + The specified value is too large. +-or- + contains a comment delimiter (that is, */). + + + Writes a string text value as a JSON comment. + The UTF-16 encoded value to be written as a UTF-8 transcoded JSON comment within /*..*/. + The specified value is too large. +-or- + contains a comment delimiter (that is, */). + The parameter is . + + + Writes the end of a JSON array. + Validation is enabled, and the operation would result in writing invalid JSON. + + + Writes the end of a JSON object. + Validation is enabled, and the operation would result in writing invalid JSON. + + + Writes a property name specified as a read-only span of bytes and the JSON literal null as part of a name/value pair of a JSON object. + The UTF-8 encoded property name of the JSON object to be written. + The specified property name is too large. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes a property name specified as a read-only character span and the JSON literal null as part of a name/value pair of a JSON object. + The UTF-16 encoded property name of the JSON object to be transcoded and written as UTF-8. + The specified property name is too large. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes a property name specified as a string and the JSON literal null as part of a name/value pair of a JSON object. + The UTF-16 encoded property name of the JSON object to be transcoded and written as UTF-8. + The specified property name is too large. + Validation is enabled, and the write operation would produce invalid JSON. + The parameter is . + + + Writes the pre-encoded property name and the JSON literal null as part of a name/value pair of a JSON object. + The JSON encoded property name of the JSON object to be transcoded and written as UTF-8. + Validation is enabled, and this method would result in writing invalid JSON. + + + Writes the JSON literal null as an element of a JSON array. + Validation is enabled, and the operation would result in writing invalid JSON. + + + Writes a property name specified as a read-only span of bytes and a value (as a JSON number) as part of a name/value pair of a JSON object. + The UTF-8 encoded property name of the JSON object to be written. + The value to be written as a JSON number as part of the name/value pair. + The specified property name is too large. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes a property name specified as a read-only span of bytes and a value (as a JSON number) as part of a name/value pair of a JSON object. + The UTF-8 encoded property name of the JSON object to be written. + The value to be written as a JSON number as part of the name/value pair. + The specified property name is too large. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes a property name specified as a read-only span of bytes and an value (as a JSON number) as part of a name/value pair of a JSON object. + The UTF-8 encoded property name of the JSON object to be written. + The value to be written as a JSON number as part of the name/value pair. + The specified property name is too large. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes a property name specified as a read-only span of bytes and an value (as a JSON number) as part of a name/value pair of a JSON object. + The UTF-8 encoded property name of the JSON object to be written. + The value to be written as a JSON number as part of the name/value pair. + The specified property name is too large. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes a property name specified as a read-only span of bytes and a value (as a JSON number) as part of a name/value pair of a JSON object. + The UTF-8 encoded property name of the JSON object to be written. + The value to be written as a JSON number as part of the name/value pair. + The specified property name is too large. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes a property name specified as a read-only span of bytes and a value (as a JSON number) as part of a name/value pair of a JSON object. + The UTF-8 encoded property name of the JSON object to be written. + The value to be written as a JSON number as part of the name/value pair. + The specified property name is too large. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes a property name specified as a read-only span of bytes and a value (as a JSON number) as part of a name/value pair of a JSON object. + The UTF-8 encoded property name of the JSON object to be written. + The value to be written as a JSON number as part of the name/value pair. + The specified property name is too large. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes a property name specified as a read-only character span and a value (as a JSON number) as part of a name/value pair of a JSON object. + The UTF-16 encoded property name of the JSON object to be transcoded and written as UTF-8. + The value to be written as a JSON number as part of the name/value pair. + The specified property name is too large. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes a property name specified as a read-only character span and a value (as a JSON number) as part of a name/value pair of a JSON object. + The UTF-16 encoded property name of the JSON object to be transcoded and written as UTF-8. + The value to be written as a JSON number as part of the name/value pair. + The specified property name is too large. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes a property name specified as a read-only character span and an value (as a JSON number) as part of a name/value pair of a JSON object. + The UTF-16 encoded property name of the JSON object to be transcoded and written as UTF-8. + The value to be written as a JSON number as part of the name/value pair. + The specified property name is too large. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes a property name specified as a read-only character span and an value (as a JSON number) as part of a name/value pair of a JSON object. + The UTF-16 encoded property name of the JSON object to be transcoded and written as UTF-8. + The value to be written as a JSON number as part of the name/value pair. + The specified property name is too large. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes a property name specified as a read-only character span and a value (as a JSON number) as part of a name/value pair of a JSON object. + The UTF-16 encoded property name of the JSON object to be transcoded and written as UTF-8. + The value to be written as a JSON number as part of the name/value pair. + The specified property name is too large. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes a property name specified as a read-only character span and a value (as a JSON number) as part of a name/value pair of a JSON object. + The UTF-16 encoded property name of the JSON object to be transcoded and written as UTF-8. + The value to be written as a JSON number as part of the name/value pair. + The specified property name is too large. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes a property name specified as a read-only character span and a value (as a JSON number) as part of a name/value pair of a JSON object. + The UTF-16 encoded property name of the JSON object to be transcoded and written as UTF-8. + The value to be written as a JSON number as part of the name/value pair. + The specified property name is too large. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes a property name specified as a string and a value (as a JSON number) as part of a name/value pair of a JSON object. + The UTF-16 encoded property name of the JSON object to be transcoded and written as UTF-8. + The value to be written as a JSON number as part of the name/value pair. + The specified property name is too large. + Validation is enabled, and the write operation would produce invalid JSON. + The parameter is . + + + Writes a property name specified as a string and a value (as a JSON number) as part of a name/value pair of a JSON object. + The UTF-16 encoded property name of the JSON object to be transcoded and written as UTF-8. + The value to be written as a JSON number as part of the name/value pair. + The specified property name is too large. + Validation is enabled, and the write operation would produce invalid JSON. + The parameter is . + + + Writes a property name specified as a string and an value (as a JSON number) as part of a name/value pair of a JSON object. + The UTF-16 encoded property name of the JSON object to be transcoded and written as UTF-8. + The value to be written as a JSON number as part of the name/value pair. + The specified property name is too large. + Validation is enabled, and the write operation would produce invalid JSON. + The parameter is . + + + Writes a property name specified as a string and an value (as a JSON number) as part of a name/value pair of a JSON object. + The UTF-16 encoded property name of the JSON object to be transcoded and written as UTF-8. + The value to be written as a JSON number as part of the name/value pair. + The specified property name is too large. + Validation is enabled, and the write operation would produce invalid JSON. + The parameter is . + + + Writes a property name specified as a string and a value (as a JSON number) as part of a name/value pair of a JSON object. + The UTF-16 encoded property name of the JSON object to be transcoded and written as UTF-8. + The value to be written as a JSON number as part of the name/value pair. + The specified property name is too large. + Validation is enabled, and the write operation would produce invalid JSON. + The parameter is . + + + Writes a property name specified as a string and a value (as a JSON number) as part of a name/value pair of a JSON object. + The UTF-16 encoded property name of the JSON object to be transcoded and written as UTF-8. + The value to be written as a JSON number as part of the name/value pair. + The specified property name is too large. + Validation is enabled, and the write operation would produce invalid JSON. + The parameter is . + + + Writes a property name specified as a string and a value (as a JSON number) as part of a name/value pair of a JSON object. + The UTF-16 encoded property name of the JSON object to be transcoded and written as UTF-8. + The value to be written as a JSON number as part of the name/value pair. + The specified property name is too large. + Validation is enabled, and the write operation would produce invalid JSON. + The parameter is . + + + Writes the pre-encoded property name and value (as a JSON number) as part of a name/value pair of a JSON object. + The JSON encoded property name of the JSON object to be transcoded and written as UTF-8. + The value to be written as a JSON number as part of the name/value pair. + Validation is enabled, and this method would result in writing invalid JSON. + + + Writes the pre-encoded property name and value (as a JSON number) as part of a name/value pair of a JSON object. + The JSON encoded property name of the JSON object to be transcoded and written as UTF-8. + The value to be written as a JSON number as part of the name/value pair. + Validation is enabled, and this method would result in writing invalid JSON. + + + Writes the pre-encoded property name and value (as a JSON number) as part of a name/value pair of a JSON object. + The JSON encoded property name of the JSON object to be transcoded and written as UTF-8. + The value to be written as a JSON number as part of the name/value pair. + Validation is enabled, and this method would result in writing invalid JSON. + + + Writes the pre-encoded property name and value (as a JSON number) as part of a name/value pair of a JSON object. + The JSON encoded property name of the JSON object to be transcoded and written as UTF-8. + The value to be written as a JSON number as part of the name/value pair. + Validation is enabled, and this method would result in writing invalid JSON. + + + Writes the pre-encoded property name and value (as a JSON number) as part of a name/value pair of a JSON object. + The JSON encoded property name of the JSON object to be transcoded and written as UTF-8. + The value to be written as a JSON number as part of the name/value pair. + Validation is enabled, and this method would result in writing invalid JSON. + + + Writes the pre-encoded property name and value (as a JSON number) as part of a name/value pair of a JSON object. + The JSON encoded property name of the JSON object to be transcoded and written as UTF-8. + The value to be written as a JSON number as part of the name/value pair. + Validation is enabled, and this method would result in writing invalid JSON. + + + Writes the pre-encoded property name and value (as a JSON number) as part of a name/value pair of a JSON object. + The JSON encoded property name of the JSON object to be transcoded and written as UTF-8. + The value to be written as a JSON number as part of the name/value pair. + Validation is enabled, and this method would result in writing invalid JSON. + + + Writes a value (as a JSON number) as an element of a JSON array. + The value to be written as a JSON number as an element of a JSON array. + Validation is enabled, and the operation would result in writing invalid JSON. + + + Writes a value (as a JSON number) as an element of a JSON array. + The value to be written as a JSON number as an element of a JSON array. + Validation is enabled, and the operation would result in writing invalid JSON. + + + Writes an value (as a JSON number) as an element of a JSON array. + The value to be written as a JSON number as an element of a JSON array. + Validation is enabled, and the operation would result in writing invalid JSON. + + + Writes an value (as a JSON number) as an element of a JSON array. + The value to be written as a JSON number as an element of a JSON array. + Validation is enabled, and the operation would result in writing invalid JSON. + + + Writes a value (as a JSON number) as an element of a JSON array. + The value to be written as a JSON number as an element of a JSON array. + Validation is enabled, and the operation would result in writing invalid JSON. + + + Writes a value (as a JSON number) as an element of a JSON array. + The value to be written as a JSON number as an element of a JSON array. + Validation is enabled, and the operation would result in writing invalid JSON. + + + Writes a value (as a JSON number) as an element of a JSON array. + The value to be written as a JSON number as an element of a JSON array. + Validation is enabled, and the operation would result in writing invalid JSON. + + + Writes the UTF-8 property name (as a JSON string) as the first part of a name/value pair of a JSON object. + The UTF-8 encoded property name of the JSON object to be written. + The specified property name is too large. + Validation is enabled, and this write operation would produce invalid JSON. + + + Writes the property name (as a JSON string) as the first part of a name/value pair of a JSON object. + The property name of the JSON object to be transcoded and written as UTF-8. + The specified property name is too large. + Validation is enabled, and this write operation would produce invalid JSON. + + + Writes the property name (as a JSON string) as the first part of a name/value pair of a JSON object. + The property name of the JSON object to be transcoded and written as UTF-8. + The specified property name is too large. + Validation is enabled, and this write operation would produce invalid JSON. + + is . + + + Writes the pre-encoded property name (as a JSON string) as the first part of a name/value pair of a JSON object. + The JSON encoded property name of the JSON object to be transcoded and written as UTF-8. + Validation is enabled, and this write operation would produce invalid JSON. + + + Writes the beginning of a JSON array. + The depth of the JSON exceeds the maximum depth of 1,000. +-or- +Validation is enabled, and this write operation would produce invalid JSON. + + + Writes the beginning of a JSON array with a property name specified as a read-only span of bytes as the key. + The UTF-8 encoded property name of the JSON array to be written. + The specified property name is too large. + The depth of the JSON exceeds the maximum depth of 1,000. +-or- +Validation is enabled, and this write operation would produce invalid JSON. + + + Writes the beginning of a JSON array with a property name specified as a read-only character span as the key. + The UTF-16 encoded property name of the JSON array to be transcoded and written as UTF-8. + The specified property name is too large. + The depth of the JSON exceeds the maximum depth of 1,000. +-or- +Validation is enabled, and this write operation would produce invalid JSON. + + + Writes the beginning of a JSON array with a property name specified as a string as the key. + The UTF-16 encoded property name of the JSON array to be transcoded and written as UTF-8. + The specified property name is too large. + The depth of the JSON exceeds the maximum depth of 1,000. +-or- +Validation is enabled, and this write operation would produce invalid JSON. + The parameter is . + + + Writes the beginning of a JSON array with a pre-encoded property name as the key. + The JSON encoded property name of the JSON array to be transcoded and written as UTF-8. + The depth of the JSON has exceeded the maximum depth of 1,000. +-or- +Validation is enabled, and this method would result in writing invalid JSON. + + + Writes the beginning of a JSON object. + The depth of the JSON exceeds the maximum depth of 1,000. +-or- +Validation is enabled, and the operation would result in writing invalid JSON. + + + Writes the beginning of a JSON object with a property name specified as a read-only span of bytes as the key. + The UTF-8 encoded property name of the JSON object to be written. + The specified property name is too large. + The depth of the JSON exceeds the maximum depth of 1,000. +-or- +Validation is enabled, and this write operation would produce invalid JSON. + + + Writes the beginning of a JSON object with a property name specififed as a read-only character span as the key. + The UTF-16 encoded property name of the JSON object to be transcoded and written as UTF-8. + The specified property name is too large. + The depth of the JSON exceeds the maximum depth of 1,000. +-or- +Validation is enabled, and this write operation would produce invalid JSON. + + + Writes the beginning of a JSON object with a property name specified as a string as the key. + The UTF-16 encoded property name of the JSON object to be transcoded and written as UTF-8. + The specified property name is too large. + The depth of the JSON exceeds the maximum depth of 1,000. +-or- +Validation is enabled, and this write operation would produce invalid JSON. + The parameter is . + + + Writes the beginning of a JSON object with a pre-encoded property name as the key. + The JSON encoded property name of the JSON object to be transcoded and written as UTF-8. + The depth of the JSON has exceeded the maximum depth of 1,000. +-or- +Validation is enabled, and this method would result in writing invalid JSON. + + + Writes a UTF-8 property name and a value (as a JSON string) as part of a name/value pair of a JSON object. + The UTF-8 encoded property name of the JSON object to be written. + The value to be written as a JSON string as part of the name/value pair. + The specified property name is too large. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes a UTF-8 property name and a value (as a JSON string) as part of a name/value pair of a JSON object. + The UTF-8 encoded property name of the JSON object to be written. + The value to be written as a JSON string as part of the name/value pair. + The specified property name is too large. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes a UTF-8 property name and a value (as a JSON string) as part of a name/value pair of a JSON object. + The UTF-8 encoded property name of the JSON object to be written. + The value to be written as a JSON string as part of the name/value pair. + The specified property name is too large. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes a UTF-8 property name and UTF-8 text value (as a JSON string) as part of a name/value pair of a JSON object. + The UTF-8 encoded property name of the JSON object to be written. + The UTF-8 encoded value to be written as a JSON string as part of the name/value pair. + The specified property name or value is too large. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes a UTF-8 property name and UTF-16 text value (as a JSON string) as part of a name/value pair of a JSON object. + The UTF-8 encoded property name of the JSON object to be written. + The UTF-16 encoded value to be written as a UTF-8 transcoded JSON string as part of the name/value pair. + The specified property name or value is too large. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes a UTF-8 property name and string text value (as a JSON string) as part of a name/value pair of a JSON object. + The UTF-8 encoded property name of the JSON object to be written. + The UTF-16 encoded value to be written as a UTF-8 transcoded JSON string as part of the name/value pair. + The specified property name or value is too large. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes the UTF-8 property name and pre-encoded value (as a JSON string) as part of a name/value pair of a JSON object. + The UTF-8 encoded property name of the JSON object to be written. + The JSON encoded value to be written as a UTF-8 transcoded JSON string as part of the name/value pair. + The specified property name is too large. + Validation is enabled, and this method would result in writing invalid JSON. + + + Writes a property name specified as a read-only character span and a value (as a JSON string) as part of a name/value pair of a JSON object. + The UTF-16 encoded property name of the JSON object to be transcoded and written as UTF-8. + The value to be written as a JSON string as part of the name/value pair. + The specified property name is too large. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes a property name specified as a read-only character span and a value (as a JSON string) as part of a name/value pair of a JSON object. + The UTF-16 encoded property name of the JSON object to be transcoded and written as UTF-8. + The value to be written as a JSON string as part of the name/value pair. + The specified property name is too large. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes a property name specified as a read-only character span and a value (as a JSON string) as part of a name/value pair of a JSON object. + The UTF-16 encoded property name of the JSON object to be transcoded and written as UTF-8. + The value to be written as a JSON string as part of the name/value pair. + The specified property name is too large. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes a UTF-16 property name and UTF-8 text value (as a JSON string) as part of a name/value pair of a JSON object. + The UTF-16 encoded property name of the JSON object to be transcoded and written as UTF-8. + The UTF-8 encoded value to be written as a JSON string as part of the name/value pair. + The specified property name or value is too large. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes a UTF-16 property name and UTF-16 text value (as a JSON string) as part of a name/value pair of a JSON object. + The UTF-16 encoded property name of the JSON object to be transcoded and written as UTF-8. + The UTF-16 encoded value to be written as a UTF-8 transcoded JSON string as part of the name/value pair. + The specified property name or value is too large. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes a UTF-16 property name and string text value (as a JSON string) as part of a name/value pair of a JSON object. + The UTF-16 encoded property name of the JSON object to be transcoded and written as UTF-8. + The UTF-16 encoded value to be written as a UTF-8 transcoded JSON string as part of the name/value pair. + The specified property name or value is too large. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes the property name and pre-encoded value (as a JSON string) as part of a name/value pair of a JSON object. + The property name of the JSON object to be transcoded and written as UTF-8. + The JSON encoded value to be written as a UTF-8 transcoded JSON string as part of the name/value pair. + The specified property name is too large. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes a property name specified as a string and a value (as a JSON string) as part of a name/value pair of a JSON object. + The UTF-16 encoded property name of the JSON object to be transcoded and written as UTF-8. + The value to be written as a JSON string as part of the name/value pair. + The specified property name is too large. + Validation is enabled, and the write operation would produce invalid JSON. + The parameter is . + + + Writes a property name specified as a string and a value (as a JSON string) as part of a name/value pair of a JSON object. + The UTF-16 encoded property name of the JSON object to be transcoded and written as UTF-8. + The value to be written as a JSON string as part of the name/value pair. + The specified property name is too large. + Validation is enabled, and the write operation would produce invalid JSON. + The parameter is . + + + Writes a property name specified as a string and a value (as a JSON string) as part of a name/value pair of a JSON object. + The UTF-16 encoded property name of the JSON object to be transcoded and written as UTF-8. + The value to be written as a JSON string as part of the name/value pair. + The specified property name is too large. + Validation is enabled, and the write operation would produce invalid JSON. + The parameter is . + + + Writes a property name specified as a string and a UTF-8 text value (as a JSON string) as part of a name/value pair of a JSON object. + The UTF-16 encoded property name of the JSON object to be transcoded and written as UTF-8. + The UTF-8 encoded value to be written as a JSON string as part of the name/value pair. + The specified property name or value is too large. + Validation is enabled, and the write operation would produce invalid JSON. + The parameter is . + + + Writes a property name specified as a string and a UTF-16 text value (as a JSON string) as part of a name/value pair of a JSON object. + The UTF-16 encoded property name of the JSON object to be transcoded and written as UTF-8. + The UTF-16 encoded value to be written as a UTF-8 transcoded JSON string as part of the name/value pair. + The specified property name or value is too large. + Validation is enabled, and the write operation would produce invalid JSON. + The parameter is . + + + Writes a property name specified as a string and a string text value (as a JSON string) as part of a name/value pair of a JSON object. + The UTF-16 encoded property name of the JSON object to be transcoded and written as UTF-8. + The UTF-16 encoded value to be written as a UTF-8 transcoded JSON string as part of the name/value pair. + The specified property name or value is too large. + Validation is enabled, and the write operation would produce invalid JSON. + The parameter is . + + + Writes the property name and pre-encoded value (as a JSON string) as part of a name/value pair of a JSON object. + The property name of the JSON object to be transcoded and written as UTF-8. + The JSON encoded value to be written as a UTF-8 transcoded JSON string as part of the name/value pair. + The specified property name is too large. + Validation is enabled, and the write operation would produce invalid JSON. + The parameter is . + + + Writes the pre-encoded property name and value (as a JSON string) as part of a name/value pair of a JSON object. + The JSON encoded property name of the JSON object to be transcoded and written as UTF-8. + The value to be written as a JSON string as part of the name/value pair. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes the pre-encoded property name and value (as a JSON string) as part of a name/value pair of a JSON object. + The JSON encoded property name of the JSON object to be transcoded and written as UTF-8. + The value to be written as a JSON string as part of the name/value pair. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes the pre-encoded property name and value (as a JSON string) as part of a name/value pair of a JSON object. + The JSON encoded property name of the JSON object to be transcoded and written as UTF-8. + The value to be written as a JSON string as part of the name/value pair. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes the pre-encoded property name and UTF-8 text value (as a JSON string) as part of a name/value pair of a JSON object. + The JSON encoded property name of the JSON object to be transcoded and written as UTF-8. + The UTF-8 encoded value to be written as a JSON string as part of the name/value pair. + The specified value is too large. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes the pre-encoded property name and text value (as a JSON string) as part of a name/value pair of a JSON object. + The JSON encoded property name of the JSON object to be transcoded and written as UTF-8. + The value to be written as a UTF-8 transcoded JSON string as part of the name/value pair. + The specified value is too large. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes the pre-encoded property name and string text value (as a JSON string) as part of a name/value pair of a JSON object. + The JSON encoded property name of the JSON object to be transcoded and written as UTF-8. + The value to be written as a UTF-8 transcoded JSON string as part of the name/value pair. + The specified value is too large. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes the pre-encoded property name and pre-encoded value (as a JSON string) as part of a name/value pair of a JSON object. + The JSON encoded property name of the JSON object to be transcoded and written as UTF-8. + The JSON encoded value to be written as a UTF-8 transcoded JSON string as part of the name/value pair. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes a value (as a JSON string) as an element of a JSON array. + The value to be written as a JSON string as an element of a JSON array. + Validation is enabled, and the operation would result in writing invalid JSON. + + + Writes a value (as a JSON string) as an element of a JSON array. + The value to be written as a JSON string as an element of a JSON array. + Validation is enabled, and the operation would result in writing invalid JSON. + + + Writes a value (as a JSON string) as an element of a JSON array. + The value to be written as a JSON string as an element of a JSON array. + Validation is enabled, and the operation would result in writing invalid JSON. + + + Writes a UTF-8 text value (as a JSON string) as an element of a JSON array. + The UTF-8 encoded value to be written as a JSON string element of a JSON array. + The specified value is too large. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes a UTF-16 text value (as a JSON string) as an element of a JSON array. + The UTF-16 encoded value to be written as a UTF-8 transcoded JSON string element of a JSON array. + The specified value is too large. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes a string text value (as a JSON string) as an element of a JSON array. + The UTF-16 encoded value to be written as a UTF-8 transcoded JSON string element of a JSON array. + The specified value is too large. + Validation is enabled, and the write operation would produce invalid JSON. + + + Writes the pre-encoded text value (as a JSON string) as an element of a JSON array. + The JSON encoded value to be written as a UTF-8 transcoded JSON string element of a JSON array. + Validation is enabled, and the write operation would produce invalid JSON. + + + \ No newline at end of file diff --git a/Game/Assets/Supabase/System.Text.Json.4.7.2/lib/netstandard2.0/System.Text.Json.xml.meta b/Game/Assets/Supabase/System.Text.Json.4.7.2/lib/netstandard2.0/System.Text.Json.xml.meta new file mode 100644 index 0000000..5a1c667 --- /dev/null +++ b/Game/Assets/Supabase/System.Text.Json.4.7.2/lib/netstandard2.0/System.Text.Json.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 9cbe0bce61497ac48a43cb38c3ca8b66 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Text.Json.4.7.2/useSharedDesignerContext.txt b/Game/Assets/Supabase/System.Text.Json.4.7.2/useSharedDesignerContext.txt new file mode 100644 index 0000000..e69de29 diff --git a/Game/Assets/Supabase/System.Text.Json.4.7.2/useSharedDesignerContext.txt.meta b/Game/Assets/Supabase/System.Text.Json.4.7.2/useSharedDesignerContext.txt.meta new file mode 100644 index 0000000..4a5e58a --- /dev/null +++ b/Game/Assets/Supabase/System.Text.Json.4.7.2/useSharedDesignerContext.txt.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 008c1ece4c4801542a6936bedcba40a1 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Text.Json.4.7.2/version.txt b/Game/Assets/Supabase/System.Text.Json.4.7.2/version.txt new file mode 100644 index 0000000..5175275 --- /dev/null +++ b/Game/Assets/Supabase/System.Text.Json.4.7.2/version.txt @@ -0,0 +1 @@ +c4164928b270ee2369808ab347d33423ef765216 diff --git a/Game/Assets/Supabase/System.Text.Json.4.7.2/version.txt.meta b/Game/Assets/Supabase/System.Text.Json.4.7.2/version.txt.meta new file mode 100644 index 0000000..8aa5a10 --- /dev/null +++ b/Game/Assets/Supabase/System.Text.Json.4.7.2/version.txt.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 5f0b700a5571f93428aec303b4085dd7 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Threading.Channels.5.0.0.meta b/Game/Assets/Supabase/System.Threading.Channels.5.0.0.meta new file mode 100644 index 0000000..942ec38 --- /dev/null +++ b/Game/Assets/Supabase/System.Threading.Channels.5.0.0.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 69bd0d4440cbcb74daab6df8f5877748 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Threading.Channels.5.0.0/.signature.p7s b/Game/Assets/Supabase/System.Threading.Channels.5.0.0/.signature.p7s new file mode 100644 index 0000000000000000000000000000000000000000..83033348fdb273cd703404254d8e6767eda5e5e4 GIT binary patch literal 18702 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 literal 0 HcmV?d00001 diff --git a/Game/Assets/Supabase/System.Threading.Channels.5.0.0/Icon.png b/Game/Assets/Supabase/System.Threading.Channels.5.0.0/Icon.png new file mode 100644 index 0000000..b152ee0 --- /dev/null +++ b/Game/Assets/Supabase/System.Threading.Channels.5.0.0/Icon.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3356b59b6d9c24db3a22398c0fb3430724052fe75ae5e8430ee8ede2fb713356 +size 7006 diff --git a/Game/Assets/Supabase/System.Threading.Channels.5.0.0/Icon.png.meta b/Game/Assets/Supabase/System.Threading.Channels.5.0.0/Icon.png.meta new file mode 100644 index 0000000..1d2262b --- /dev/null +++ b/Game/Assets/Supabase/System.Threading.Channels.5.0.0/Icon.png.meta @@ -0,0 +1,114 @@ +fileFormatVersion: 2 +guid: efcdfc5cb1d5b3e40a55ad046ec4d3cb +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Threading.Channels.5.0.0/LICENSE.TXT b/Game/Assets/Supabase/System.Threading.Channels.5.0.0/LICENSE.TXT new file mode 100644 index 0000000..984713a --- /dev/null +++ b/Game/Assets/Supabase/System.Threading.Channels.5.0.0/LICENSE.TXT @@ -0,0 +1,23 @@ +The MIT License (MIT) + +Copyright (c) .NET Foundation and Contributors + +All rights reserved. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/Game/Assets/Supabase/System.Threading.Channels.5.0.0/LICENSE.TXT.meta b/Game/Assets/Supabase/System.Threading.Channels.5.0.0/LICENSE.TXT.meta new file mode 100644 index 0000000..0db41d7 --- /dev/null +++ b/Game/Assets/Supabase/System.Threading.Channels.5.0.0/LICENSE.TXT.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 388dbb1d11e4175498d9e77d6eea8879 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Threading.Channels.5.0.0/System.Threading.Channels.5.0.0.nupkg b/Game/Assets/Supabase/System.Threading.Channels.5.0.0/System.Threading.Channels.5.0.0.nupkg new file mode 100644 index 0000000000000000000000000000000000000000..e21f829374f827d8deeca3c724501b8262684881 GIT binary patch literal 174140 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
    d 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≪);I-Z|k^;?0epG#p+l zNC{B(8$~W(hKAKoMjTdY1DStoNA7N1Ak1)7aM+Nhf!q5kPhvh!kV2TOj z%xd6d`F)|^_~)oeziVyWwJl6jCgvE7yN$lK;7n>)MwnDn1h&PAnT!KZ-?cj8dJJm6 zYZMI+yqJ%*=Y4+kWCLJ(&6c2=0WTOy_r(a60RvoUo34A;2f_eq8}*gS#p}uv-H4ao zTeiK0E6T9fG&QO!w@^``Lamb-+9K9gxIIpkS9J9=h_5UFDc5HUSAlig6!JessB;34 zWnF?6+qi^8d+=-OuJR6={ zDBjqHqO${i=6;PAwuHkW)F&gj18gssDB2J)JZD4$X6Cb?)dTSyLl zPuq~WB$tLQg7@Y3jRc#MYfcx0t=Pl25kzUYn_MdB!Ib?o*%YTUC;{bJX7Wh$mB?YI z`4|P>6ZTo6NhI@je!h5JniXzD zZ;Y+4mcbLY#@oDoN$~0$qbO1ny~Exg_el4&kG(sRIJVM7OM_b-Uev@Y=r#9f$!9`s zB0}voq%-fRsnv}NIi^p)X;z*K&JOX-Wr?&+#sOC9A*<~#lWk~DF#Vmx#uHDrAbQP; z(Sg$-@J!uSoXc%J$o)dvw}&vPjNUO)-AU5#Uas86#nm9u# z{9prPD~H3*YnluPq$9S*(t~4`pf3fgDV)d@oJR028MsvS?)ux!>-A3Ya_Fl1$vQPr ziD}esCR@_s21D7%y#U(O%t?MaMYQ76BU(CLQ2a9n69LLxicpwb;1=~5e1RaQu=mL( z0vDTY;dp@C!;z;(;Zl0~lA>MYPSoN)f7ZFF7A%- z`cnOT9pUh{!1`UM8O8dkxGp>aZ*mggfVa_h0NQp;fqx03_c*o-0D2jDAUxxb@sg@n)d+aS_yXDtaZ8^O z=400Vj21=#YUEe|Z7-AH-ZV@7-5(!Rtj((YO96nNZz9$U&OgB8Tve@1Qyu)|iV?lT z_8(gu$e-h7Io#-_8xW{LeS@v2Q92D<0pKEh2rA^WA_&+?U+{56SI?H+37!&ohqr{j zs&1LVjkR(=nmCj{#l{|AgS-%KQ^gfQAHKG6;YGy^5wZIvUS6Ig zTxGm7TW}l}Vo7hBW#(BN6u&5-cJ7+0D@cEqZK6uT&7;XlpQ=b*8GX>mdFnoWu{24_ zjin?g3t$#fgifRDvR=wbhZ@s$fz<_P#fL*=z3LVFR0G#G>*7Q3UjXYOi56Hv>y48- zlk2U9Zf3;dTe9mfhc?m<`(&}!(6enKNIRY(^c^BJq@fHcB2=p23@eamT*2yjC9BwR zh8*cln{xoI;}WPt!0P8E(d)$xSH8pbL|l-uVWtef;nrNhQV`|VSb;YaCD*>eUOaIO zJ~28=78}RO{BV=g))2U67i7Gx^`ZTWBM+l==njx&g^`EM1|3u{IbeE}_1c2ViQ=Xc#saSqVeB zbl7rE`;fTWT|++(I|OruG!l^wuQrVO+Y{>CO>EngL1ar`XP0Oz|1iXACT<3L@XKMH z4(WjJF4zKBhH;g_p?ng{T}Cqa4oCa|8C}ZXI85;geN28-W!EPnsYy&(N^TUvqV}@Y z$szy7!_$t$P%I{v0(k}1?}q<9@fC(e^$JWw;!*ZC)6bq}m>&#cVe)f{z@vp?6e6+> zVkZk52F}D7Qr;A2pbFzDj7EZH1YUV8VAZ6Kw^+$cj4|4N!CIRsGS-&?GYwf1G0gTa zCME^mG}rGf!V7)9^#s10r@&mR?#FVz(z}6LsR7{9Ke|fok;uf?WvK&nf20@iHq^J% z^c2gb>S3)TO8Mz)s*<-Niy$A-ZSq0RMdwi<##oEC7>!S{)>kXGSpe#N-4kgX{&HeB z-7usj5jiBZ%yj`llZB^YEFAd?+-ltYYmpOy zEmAU0fr@{cY#6iu42kB!qKEm2&eWF}KXS*%Qyt^zOR?&adq>&$WmVYtw-K`~6+k(t zfVc)uS@2}c>DM5%PB34tLh4ovZrK!7OKDo@lH<`Yu#!}-qD7Eld}g~Sr&<+K4gcV~ znmH%CQ&fSu$zSNyd9=DKJqT|U&fD%!B(hXVb}x5{!;C{mRT$TcYp0-NIYbVhbj_7% zQrk{LM^_9Rn(3M=)1b+PIB3A|34}>Ci#r92S~ja6K;2iNP3jQjEE`r+4K-?7y9Qg= zX>wCB#G^UMSEF@5lFWK_>Xfa9*Io^Yw_m;11W0mAb`EN#-&XV)TCvGym2Z(*WD-yG|Q`^1qa zhuH#!zFW84y&enl?t8SAu`#0WPz#L9;zQya6{j#sH~$tb{#sgZp6X?#Y7*d~1e25u z@%8AS(Icb=SOg4M(bI+p;^Fh=)`*E>5>cXumi7A1;ti_%EOpK!w0O7`wJO?7oXlb^ z5oFO#hwOH>h$dfw@}o(1)scSF40UZsqV=lAC=yrRi>Pyl%SesiOV6D8Y*-dlo!rRX zvRfwl9_oXuk=y>vk3M(*zVgYNEcIyNz!%~kq3-MbzX3UFQOIDamz%`2X-=Y`$32=c zczB6Vm%lb$fGjeH!yxmUrVSs0{9N^z^oUxdA)cR_5Aq@N@j6wxJ#EX_YLQFA^M5*Z z+aiQEx&@+W;Labx6jX64_Q4cXa4vdx!xJ6_zugMo?z`mwZ4*n927la|I(!z%!?uQP zCknD`5&p1K$Onq_ia2NBSPr7ab8r|}YYERB#WmX^7LtW-w2DM!B3bTM8*&&~*^?Q} zw?^3bGmE=sx;tBzz1SQKm*;P^hQF4CY`Asa$w4>Y!o@564$n3ektp-o9F`)^Ff&^3X zPjAGRcA+8(>31&EecXc7cvkl7+CFV2L2kD&C(|JJ8f2D57`!>t1 z(fif_4iXWQ2vhkPOz4}c_)?fU%@!tT%8$=+2ektiicf%>=zH~PKykWIh|6*zv^v7hTv$)h?ieit;( zpTRneI_R%fl-$X>00Y>;NQ@fewvhefsYlm77`ztUNKmO6#@vVHk+DKE~e^vAA! z#`lbiyK3xwqrFGZZ&JFUVqpqvLQ%-6Mz{2`Q<9x~` z>n>i^-iH9*z`k}m>*Ts|?(+|@o&~37s8lkNtq zH@^W=C7Zrfu{ORor*}uf6_0u2{MC6VsWIc*_k6*uIn}Xd`UJ{YH`|>0yK4HvnIk<3fKGt!Rg_gxn8(Ag{PCLXe^}` zO4+#JS;-~bLZj3zo}PQ7IO@j;W3P$MU2JkY&$bzyxLg$ds)g{4?RF1UI`Q@***8%X`D6ju$~BnybTcCS$gjBaw8{8;8jh` zE4Evvxhmh8`FpOjMHI`pHIuXBBbvp%Y$2NUwYIrF+m-Eg0XipzKt^{jFjU#>5inB_ z8qJ=~;|9t3eudOj>6vu+iP3}qH>_Q?QzJiTVn&lQEswh< z{+oO7PUPCodLM2W5{`|EY5I@F(&w(#dY4q;o50fmIvjGB!Vx_Cc;OH6r@LGO_#0XM z80(0!;@GQ|VwkPsSgn=fSl~zES`O>%6Y^0NTeL#?t*-v=3iQ>jr@xOr9A59d->#Je z)ca)u%ELYhMN&qQ{0wvOjGKuzrA&Sc`XhOpM)|GdLeg|0?{Bsg%wG2%zzb9yk6D_; z&)*ZnwPpH8fH4llxUM;1lm|h0eGBlqreR76t*Re{MsPaP-_mBRmramh&Obybj~_Ae zBQ}iuxKMqZRW4Zx)<4Rl6rY{jmN`{(-Tat~rxea~^m6&SIi>RdRQ-Q4+EWbD1-m)q z@;?I@c@aO`m6;^Jx3{X|zL}lYO=&yv%F%p?g!ruTH1e@Q_#Q35a%nPh-?d}8*G$Nr z1LaHRYzCg8-p6az#^icL2;|<-g1Zh(ptAQ`$&Z-ml+LVsMF?i!pP@WfCs8;DQz@Kl zc4xR-h3w=q-R^ORXkWT-4;G(jdotICUr{>QPic>sE&eHApYNW5`~!4X=ooLvd0wAl zy(>%bbDAlf;HFtkn0^ZMW}BZPy2StdN<_gVoBii1fCnq`$!$?0GCy<4IO`ZU+cQQ|L)IJNl=fY3H&VjOwmZh#jXQxRyO1uVW%W|H|j6GWN?Qq zR!>Oum~o7|!IHh(f)>J)rTIwerg~M=ky9nSXu>~W@Qu5Xz^Tmd0v!vdUh?N}rsH+t zWgm5B4n}YZG;=J8@pD8;6$Ym9l@_&Rc$TSYDO&R^VKaciQ#EOF)cu`i!d3kngKfbz z^>Z_LwNBd2Q;K7{+boff-}-67i1ro9(t+AOxia(w zx@oeDX*j5P`zQl>&=V=YL*oXVFp=IRZvnDJa|6<)yAjC=6_D$TG@5uPn|Uv6`*TNj z4{_#$A~|i4Hfv8jm<~gQ(SfRE;ap{K_=i`t`2mDtOb~vrb~<$9o&muU1;W{ zRY=L9YcW)d!g7C^)(}H+$-j={i~ACcjqAqvEnBh+`GI^-mX-sdW9w|KRs;O)=U8eU z$(Of9X3EaoOh&xA1kzN4et?bJ&8`d8HotGwCQ6di%G8zkxI6BVV>CggeSutJ-Zryw zHrGUZpeaT-R2zO?jM&|)TBMG&YT*`99pi$v+=Z=`#RX0)ec+91>1i@LP7-hU}IeDvhHM$=k}7A4-y(X^+{@hRHQ@_mjfi z;~q_WfK=i&h%h|SoN|kxLuP)TghA8lh;#zoUWQy!^UIH zX&k}YIb}7C`9c1h>>}8!=PT)};Va{-^-nprfmj2IW;g{(D*IS+(suGPrB~yiT0=E= z+4Rx^+bGjg%WBh#%kXo`wDq+KzB#rvb;IYy^t1XU`(^NjwG+2_ah(?IQIOgY(mgZ< zA}xxgifL!d8B}@@t`+;II1*+n`DJJ`bH`713Ok*B)ns2g6_^^Gtl2w0+Q|UUG+x_N zDTd9ccHcuc=@~)));&P36p0%}>@Kp&4d6E76M~-WMX7JKsTOeY=?}o_&^Pj3a+;Fg z3Nb3#0v&Sr4?j{rEza#?_@2jk(nq04sZu2o)Lja5ft?J|2WU84U!jB!fLiHG1PAVH z42qm*SYS}XLVPbZiGf_mvd%xuDa;(tk_N>J0qu*H8e$1@S-M!3tQp)p=khaj=zqLS z*!oDG(jvJ-dElME6=&J(eRyM)1-?jtUWI>Ds!D$yYXtdWiB6_H`KQVV^tx?;(L&~J z99OX~?Icxu$#Z{qh7UEwQ^18=&Wpe|W&V$DlWzn%K;?Vg3O8){vp>$qxAJuQlLL~sKq%C8s5br35H zI9iOVcy3Ppjn>m}>V#jYF)82ADQUkcg^~#Hl;RXXw=4=!I}ZhrR(S+imEshLR`CN+ zm8$5FWP-R)(*(-163^T7P?#Mj$HWs`;yU++ zwrx+pcj>#p?sT9{Y5(0WiiM67We=i({7Z~OP zp9se=XfVn?2r-6nU|!V62-Z6bQI>unT+}@WQI>U}TvXjKh$*UW3c?I?ABTv07vdCi zUy{h0aR7~|YYpNRWB+f^QqQ-c_JYrW)vrP^ub5O2BDmeQ1zzXVR3eOG<~l*DPr_u(b><<<_Ar7J26*V@?^6Klo;GhuDoae4f* ztQ9`m7(?fX9#74HUOm1Z%4|iMjdQBXTS|&2R(G;(90a5TbV4L7CfW+)2o90N;TAMD zx>#IZk_byAcK1z%K8sO`+R|I}5e2He`ZY}J?6n;km<0r;q}2ubYKK%;PQ{31tD527 zc_C#RoiT25v~F$Z&Y!#}C%qwqII;sHp6F+ln~H*qh!0OUn>ZK0^{J2GYbN1}D2Qay zp)sND^A|8jFsjUh7d5Yn5!RKZ31y;JYrE*&`vZBsmeoRHnVS3ec2oizLjQRUmYZX7 z!p<@D$nBp8!`@C>J?5jxgop~tCi8$%Ep>cRW_RyGuz|24h+HoRTxFvA22tmWfB--7 zFvQXT{8FHKKf>fW5Oi`7BBBL9_EvoJUgJ=9lUOWE3=f;?CZ{-oi~zh!mslhbqX^O% zx?F8;7jF-X`}aeUbC??HvMP(ni6KV8iAfR6bYgbZh=pWc@kFho@@kjH1)uiQj?3+x z3`qv;6{Qo%m?D1F@(~9X-lnW5DmBsKHqrdJFGB4Dz4B>&?28~olS0Q*_muY14z)Lv zeZ*ddAu$z)z{sNDfjug;&dQ03?lCp(;E|P-)YYZcH!DiZz#+%MEJPD2TW2}p0CJ+8 zf~n4g!3WC#qlyY)#EAFp5Fc#yxhxR}o~oJ^rS>Ho2t@_H6sfRV8%czKoI< z0L`7fdwKIRu?TSF$>P6{#}f`0lQw+*QS=Y7#S5skMWe6w|btSCwupo`UHFOUHk29nWd0;o$)clRt8r(-P*T zpW){1lU(NZ>GKouQ2|9aRi-nG;mX=xf)_IU0XesMIh_}a(cIP5B?%`f4QG2(3K`wp z9HkEkK@hLx5~nTe%OSZ@CrwcST3c~XMY#>Dto6?RS`aa!`46RaHdKK0A}UV0aNtsu z7X_F$)ruo-4NTBV=bn&)cN%~HGTT11U^ri5B&}-@f{ET~WvP8qm9>pb&?!&h4f>grM_=!gMG%wGrsKrK35<{2eA7RF@4hDdphJVitf zqe45ZFZIYkC)3gMg)`Om7iw3pQBR&p4qz#vLo#E%1ZB!q^zbN*WIf%Ph6GPw#|Xw0 zp{PesEMu5(M#hm-r&XFNop6@M0;tA+7`?k%jdh3=hnHv_mHMCrQ1yWeUEFMi5p_lS z)}+twVZ6)RXRi-nLbCLU1_05B9L7TB!3M?p4)IBF7Z8;j<^megdZf{ zAJitOx=$A%b|Tqc?W3K{+ThPB>eSq8w=PMxhOj8Ae+uNv)!XM}qSJM7W#Pns7vNdP zFCXT}n*{Z3f8$5BM!&TcHVM?s1z`T%;I>COeNuL_z?w-O?Q@p2lnku)q(*ymwipIy zO>m~9cnSKB1`)~)O4>~yT+|g6j2Bx+vY2L@=l=#ZFpgZp zmV&k=G1FF6muIQ!bv`%~8h};6OVO7=mV8>Ftt_p)skv6=hR|oU6H;4TNn!v>( zTf@)&VLZx4A!Xl@0}(Zyreq98-8XNK-3!`?7{*mS0_aCzSUvNS?5{$?ka#%N4>ugD zFgC+d_dq=%!rBkwmz`+s8qw33PDHI%TSTMnUsBLxnbtbEH<(q>>O`gl84@h( zL;@w_nj594^l@4U!W>ty!_r6t3RKivLu!VSGkey;6a({&-8*ia<>hS&yb+o^`r=zO zvy+Vp^Yz1dQ5Ev)*{ax7ljlfVx!7793g-5X?2@;(Q(agFdim-Gatw@?rK@9^8QmC2 z!oIniMEO;Pn*pv1HO+v#rp8zDr34K;JWRkD*QmH^-GzY)7K3x`O7>12nz`qcikh-f zD@;|rcAyuYpH0xWn4OS!(myb-I%F~idSI0w@BA-q>_e<3{#s0lLKZd7K3Te|ENbjf z*Eox>h%)dw>;?Sm&Zmms*DD2_#Vm^{LTHl^(b`$x?2jbpx2UA_Zw(9^8;e`lmpwU@ zHueX>MlyO9Txqbr#1ye*&HtPr$so#&Atl1|Uz6y+CJ`p{f6ENfC36VLu95^*KCvN+ z0oN(tUKu!!bc+U#5GMMKaED{3xd=CKBl_^nD932qav)eS@gR1@fIPGTRpun+eNVq> zf?;)lB})kS&l8BVMDt-ObV+7xz{k80T)Orv5Q0ZX^R{$02%B77Fpl>ix)1e7)RhD{ zWFODmE{l^8y7wYZ_fO^)(1fL7NE|lJBW5MZCmv`uA3?;JIj< zC#QBa`Qb|R=@3T@v}J}5Jg)#ODSZZF?Kbx6 zoAP^b^mU28W!?~ws@yWFgQK64xB531}Hg3!bOynVVP5f%NhICALz~C&jya1Ka1r8|GhkUpDSnetHKes*a>L zutBJ;6TC=1%DU=-qrYBJ{~}`OIU*vl`2uwxGQkL}l6nJ5GF_P@&{1Ar*bGNs z_z9NvMrQ+4MZsDIF+fGenEI_Fz!UFdxsD2C)eh(VZ8ggMv=RA4snr4DlcLRaIVQqU zVbvOOKj)CeW5&Qafk@{T{3s|V8F+pTOCo|6D;|MkiJ-4yq_FOl_HJu!$Bv23EUTqg z_^#5Gedxp(_EwmAGu)h=m=9FCG2=(5GHj@i#ZX@MI}nOM=Ep`xt9RqFf0)nZ z$iIRFrV#Iq!_g~z-Nfp+ZiMMNnIrx5$Uc%wE+3&va&f)W^Er;(lh-wR9b4H|rxJom za4B2x`sA_GpKz-_$0bapZ#BeoS5-IZ{ykHEMmr;eXu8o?^XN8sCOLe83ka0>0>b!^ zS+Y{>BJbzKWRm$V^q|CK?4z_ntZXo&Brkv|U>-8(ywS6_Jl%}^k+M>-y($&Ojoa$_6#oONW`*25G7L5u6WF#A^ z9Vc7_Rb~o{5*2$wkzz>Ze*X))cwyhKd7SS1q*T>Ez-tB2Kcmet3){chcZiXD>Fsj|f|cu`oVIwXpl(8AcS2|nH2vf13& zP9oYYO-;cZaZ*W(?R(`(Y3Y>fa!6GEq<+A*sbH~XY5r?aG8jAMV0I;{HS*<-0ZB~f zOwnFb_cs(Z%@>Tz*)LhME4UjewdLcl9eH*u=JIZ(v8l3v+}h(4(36wxY)A_%-(Qp_ zcBxed%xGY!+azWq*fs^Ml@7U~tc(}I9cL8PL2_^hh8~4Psw!7+>S0-8-KrlJOV>ut zmA+2eO2NNnIW0}3HcG-!*NOcuKxDD^b=*?WMrUN%qv74rN@I_?uQ@@H@>IiE@>t1< ziszU(_OyO9c~t3u@sbS=zIhW=1uIS8IQjk;W7AN0P0_r=cP`OLS9~5*81d3lv zqI4sjz6UUOD=&v4;|mhqz#6D!5-nu}V0iIHB8o)U^y9(=zcEXMrajAbQg=fv{cc>n z$p|SfY;%s}Z;n9f*< zDfa$FzY&c|{|gb`H{g4sC>^L9^y&hHhI$p_hK!(BxfodFo28UCn8e2!V;(JW2zKGd zGSJDKBXlT(lS0%P|5_?gP*2hq*O0kXwE|*u=mJ0T$E^5d$@_hIl;q%!+3MLe=n3)WZ5h1lhyI&pr1U zJ27d(eYIYOx>7_gXRAlhL`HfbDfg>sLNV=92`NHSZ3y~hrL+scpV9#9lKc-!RHU0! z5b*c`$PuY;6*T0K30)P`CjFjfO!e{$<6BjDwb7O**adkKA1c0x z$ou$;dI@xLhjtZ+r<#Q|XonD%EG~gI7&*1b%wQhYi7m2C4G5a6^+=JwZxjFXQ^}49n*@s2x zTBhIs$Ia&S6%!*z3z|#62+L86^W?~*&eMVGM$ujHDu%~idco1byQa4lCh&82rqPAoS2w^~R34~jaT z{3o$ZJ($S*#@CmB8 z4@+2WWH$>a1{6c5sZa*`oQmtdm1^S_mPtM=HT^1-n>m_}^2i5$Q`i=On;SCHpxB!j zj~_Wu89}fdJqT}q)=tJwd%fQ6>JG%BnW1uTh?L~cm=|F<2n96lI~XUxk7E%@Ob4Wo z;*J7H-&B%khku4R{rYL(m{UMOs@a+oHgxS;OHZ!p{oAq8bYEDdder!<+H5(rhS8%w zPAhY3nA9=6dx-ADH8yR$2@*O5;q$MWs@A@AF1n9$vta#!G-V|NBG8b*N}DKZoO8(R-dqkd+5$;1sBRgMm;{c0Gr8Mg+c!$?d z^e6}Cnj+y33^${q`II7EcJtxUcrt|GQ3?QhWA7G2Q@uqb7?YFxH*k7FI+*0WJr zE!-+EslR*^Vy(;Ifb5C%h!4jTd-8B$bY>&rV$&a-&~j>FFVlI*i}vJbJ-3+Gm)~xF z5)5X1u$_Kte#?>O4Rg@86Oy;8#c|^^!E*0W`LVjv+$HEFlp&|FBe7!auxzw&Q!nB3 zrkuG*5&}PkE8bA@^HDJ0IvX{O(2Wu~)bY|q@Vs@i?gyjWvJCcQ8WMV(G)N5G_{wOF6jfD1*%$a^g1Ttbq4)+CD}4=VRyvvycnydI64@YK}z zr0w^WH%~V#AJXwo-4^@O6~@x>+`w17c`OeL7bft)8Azpw+9(H(#|P`+w(w_*@rZsT zq&;{T)1NDq63$QV*l5nNP-r$~6`vJa&-c6eYQu1okM4StRTl7_-4r&>wm7<+h~2kh>CAU}@bFmZ zrBOb2-cgb9a=6x$*{l8P;p2IdOZ|TQ(O4$V=)G4*?3-kTH;Rk!o{>lGSJ(#Vv1cro zd-pE2-OVl6)-UqLgP){L=1fGt*H35+^!l7HC!)w|Cq9g{g%UT}v7hwOjdlj=43nS7 zF^yK)O03{Du`?Y63x3fUZC|u>2^{s>hG;-iMiBYl1%!r#eUY=Ll_JlU!eMyGtC$0m zVB>kH!$82k8vGK9&nJ`fDfH%J26e~j3tt4aqxyvfTHI^DM8djHI*q40iF~>f+DK1V zH^V3&ao(o|m|DH1_OMF}k|ntf{Nj)<@-vrNwvG=Ef{XRm`whD$)zCk3nfZcpnWeLP zxk#P@!%TGAWoNIyTi+6hos%V;-s9emF*SGB64S-vc$&KoXDeHysnFh@Zz~uz4~!Qp z6L>2QWCTlJogUrOLoZt_Av0f=T=&9Uh+6=_yer{jow@w!4V5yP@N_5 zAeJet)jLnkgqe%u%O}-M!k#uN@~;Oq-0Y)O207|WLpDO7ZuPe%8_mG@%`f!hPANu_cMlFOlEUJEL%bB>VUfTI zni^d^8%#3<`EILE#+#IG5~1(Y_nyQSIPr60ymeqCbOMR+tWLd`MTy^6H}tU(v%RQD z@W~N1yt(AX-Q`d0dvi;Ez99gFa@wq#MuAB)%;O`1;{2Mq35hKD!&4q^fHcm|e_fOl z(@~O4DsvRoH4Jm*CCtLSZ=2i06W^21ou;UdvZ!*P zg;lxeazcaNdXP^S4Yt$bf_9jIdf_Wc?^HU`I)*ubJSc6ZG7w>wXE{BO?xoS8t}@W- z(_YGfBvMXSgJlYNZSoH}jX=6Kt#^t&rT$Dya)904T#3=c8d*%pei#3Vd> zSC`b2+XwXB){a9PkWb=v1^a2FH=2QcC2h*uy-}J)7zx~!BnDp$X0dQZSV8xq?Va*1$Fw$ zj*BlqLJa!Grw=O>=)h@17N&WEKLTT7uaagT_ ze#^^q5i|VBg4klrrbTapDpIX@A`(e1zomZrA}DD$`|ZS!RQ}V{DGuxKcg!Y7&0BRc zw;PWQG8-sqOHL!cc6Tl%68zk|>GM7ha+;~`KN?V$Z}kUf+=7vtn~Ul%PwC3|Y!^iy zYA+dinC+6BCOtB+tv#zodq`~N=XPp;L}Fpbw~QZNSdV(y&HmV#x$?YkI2pY^f!NPq zC`i;&zS!tECxKBvyL~V_na#KixjU&SL1Jw2^5*rApX%A1HOtfWryne3v=G z!{%Z#uKlpjZ`77h=g=h;n7FOwvSEaUQrcv4w}k}hW7nq9a1^vT>+S7%Sz2+Vl&&GB=k= zfkXw{d6B`#W5fQHvy2K9cT4f1>D8pswx;dmae4k)qInJHtK+cRw<}y5t!Ay*s&AHN zJNfVF9s02ro!c(P72R3~lHI$NIlMW}SK1si9wv_q&l6Wc8CDxl&ln|B+ls6#wr@wN zpAH+&lXpI9pFLjs@93N#D>)rZcnm9Jaoj#m@EbpdB=f6i9glk%MCMx&9^hhnt-17* zc-!7MQCn51sJk;-)QpVqpP#q2j`&#p=yOrk8oxeNx|r0s^0~OFB+4!*xC^iBM$w)( z%64$=4C)*;2BotKM2WZbTI(McLwP7Yj2{^-SG!3q=;iNOwUp>I;}pnGi^Dz}+t`CSg!w_-gan{jIDCof9`=dDg)KT~6^UU@FL zR4KNx)p@a9eH)J0arC(Af~||VzwDWwmG-b5ze*(H!mYWTjG4JBf2ZkD{A5v1$i;IQ zL3Px6f1mF5ZkAsCR)6@>WsgJ$w`P>xcn9J^;VNeo?M% zj~4RWRO|A#av#s$=9A?y)z7G_=;5i+B!YQ}9Bd0UYnvUKJhCM|luMT;4R1{?@W=6W zLM9rZ9W)us%NPZ&rUCQOtY0malpr!fy!Y1}V?)fbG37UF&flnB@YE9dgJ_}jfQ8DBiFBG>0ywe}WHQ8Hv!9vo*o zS*X4E&M)hkJg|=T&o}G0PkJ+6f75cBx^p{f1EkLcKT9*N1&X+E_JCFa#y zrMaKFpd5bsQhJ#$B(~aMX`rObb&ox`mRRPxY+T~kANnFkE}+z>Kr5UZ7J;%Tf7kK# zNOJ_|4%P=?8O_xqj= zLwZ#9GK=g+i@8YMJ+A_$i#J|%S!nv-L!&jL>n-U|>3@My&9+z7a}xw-a>fZ_aAwh@ zDl5_pTb|R=ICw+1Tz-7jG_xeyVUjenw5#sWVlm7nNVR2N#>nE}Kk9Ip5Thu!_1dxY=msPit_E5B>T`6F&u!aCcRSo z2gb>%*W9iNguFQvd|yhYl!KEU7oDtfl?<~#`vhgNim=kY%Mc8-PI-AxYm>vec&rp_ z7_8iL;RPRJEG%?3Z9#!GdZ*SAUOl{($1B3=H((-y4MT}}lNw7$-;uVogkY0ysZ`*H zBhV$R{J~uO!NAcl=5c9omz2>Z0qpQi2AUHvcuDk=P;FMklC!-;mVXNi!sP2JMG@`V z9cm}9FBOxnMj~n6+F0KBD@aWI-AxI_~ zueSz)kKS)XNeG+|X(h(KPkovg9mMI`Jw8f{mrV41G3Q&@-mX~YT=8l-5t)Fn*`EWW z@6sq{`zm8fAnr2*7H?lw(I~PM%NdVlW`WF%rOa8yn{OAID)-F$`DSNnjGtsS-6K1_jI0~6i_SnNYob48iajxW}xC>=|COO0pYeZ4-bV?}s> zdnkab4%P!(70GIWS(zU4U0xhV;S3&Mg)R=Wy#GfRf^LqrMSdS-iU#s(Py%#rmGie` zpV75Su47C7Pm}zbAM}Lby2}>&{A$m(5t}p&pk;(N{fVRU-sErf?k)R9n`VuTQ%{p+ z$U(W4qNqm<1z|!A76V(o7%tEJBg011WC~|o^AiQ1YCBlK)Xg+!FewvXgv-ST&p;Ju zI_2ivpl%Nn&Y1L2M7#J-pgUmXmE(EJK6&PO#>nd`i*nYQa>s@XxN02+)U{OMT=JY> z&(HC(Gq8Wa(~~BYk!TybzYY}=K~SlrW;(pY+cVDp;_4#x3ce)$nsr);3k4V^Ysj(rwpnvD^l2H6q(xM>U-g9af-LrX{hTSDi7D2*bf6CSb1 zJdAkW@e?5HU9_7j%#9s;^bLi8VfytThOxVGoaWVES2 zEKICnPoU7Up=(RIul<=hQ#itqD+J`;Jc7vzFdn=w#o9k8I(n3Ibb25BT_I)NtFk=E z#Qwr5c}K;vMD9BJOAB|$M@w-tFv8@0l4E3?FJh7^+B4|y*RrDK={q)f-f#%)UY8Fg z`?M>;L%z{*-eR}wNCP_peIt|L%#4751_B?KOTr4z3|itH!#jp^MuFo&*3H{eaSYpt zK+1Z#(P@7hhZarjXh8(hj%@+@$u{W0kjy1}YJ;%3F!q;ueUa@q^G~2KzL{|J{)b?b zW?F);qC92q6JQb-v&JiN17&FZSE`cl+xBz#w|Ehvz~AO0`b%3<7LNe01H}@guYRb$ zR%eA4b8#ys)oFG90?Nq)V&S8Fi&VqhnKkMkDv5#Y=3}DDm%McDl-#pqVzSi~9GY`z z^rY@)mOI1NH>e0K_^^!NFf5KbvmLm!Kdy@r^5lmF;ght?RWT82FpI>K8rd?F9_*2w zHowJRi`Ss<(_zS6+acYhlRYV|L=SZbD_Xz7-Np~1X>F4HsC2J3)bYWKR@8k{rE)rn zLYAdApukL5dMHji-EW=+{w#?!9~ds5^F#Jb!ck;=N}=wR)cWY+M=hOLR0N*&)bfK2 zCE^>s3B7b)&%?miiyxQQ@3`S__rbi59>?Q{%E1|_=g3PmI_9J2g%$77psSorIMo;jMVZ3wXKcK-Dw zZncZ}7&W-kwd{;cI4t5tEQlitWiqjTdE{ECC6gKoEr#<)rszq95^XX*XM1F>5) zp+*cb;yM|a%%rjn#y~>9Rt~cd8s_yWC(uMs zZYU%R!3F85zSrVJh;K_uLQXh7mK)t~nF512=seXFur6@FeCW;^v}c+;<3H8QEFr7f#u2Trg%S?gproHN_hD;JaB`dGuxtFJf5O(! zwEM%T^PSkq$DuP0bj?D*Y*_GuWk=_m|()xtDV{c;cZf8y5v6oN{k=2P0Tx8t@}!Kn64B`kDiehRhOGiN$TL4-?pFWQuNZR)`M?mf(`hA}AW z>*|E6`x{LPHBw1}@s8+?0`^AAr=@dEA!q+<*Ww_^|D)Bg1R4SO}+tr{m zgm+N_8AJ27nTa5Ym$_*ph^k++B%=GSH}~q8%ex&0CfLVh?Nl8E%jB1*!Vc{EWkGDa33vKGXo0Toy$&y+VYY?>${qoyKmhR6MZ1&#H)?u`UK|% zm;Eje38gjl;mM579tutOqHs-V9WhQ0SrQvw;Z1z|2i>wJSUz!2*+5JYE$<$>SZI4@ z2tKA`n^t41h&F2pk+oo{SHXH3V*`!Jz)~(cX^N_DD%-4u z-c)&W8c9O<`i+i}Nb<`Xv&oM#z|p;qmeYYm<6IKAcR|Hki{DpqIaczP3DpW^Fh$P; zoe2XqJNxl%B`ScmV`x7CUHnCsQq zQ;{3;f33ixANT3S@$UUNP>8~?oLfBGljKsv%iCTXF~!K|@YSuAg}pkWA&i_CgVb|H z0Sq(nWiu>X4%ix-K%xJMowjF~5%Lyat3$+|0EEPL&<9T$#4CR&<0iKHd@>e+ zJ!hlG9HW)9U;E6~X&|7bKdp_>9Zdyy5Y^Dz#x&44LNRLd3VF=<8`+M@zSuY*T)7~q z5qGfdrn+P95~_A)`*J*PaO$v8oUA#9s(;!dHCEM}@oc@Fy<6ZRd)AVwtJvL6qHC`s@&^>{8be?zU2cx^`Jp z3$uNO_@%SU7i?x6o$H ze^xKW`^%(sQtsgGrEya_lxk7$@zXU`l)Fz#4%eG)T0MiK!2$fQQH?Kxdl)Bh-a5B6 zwG=I)K(L#OS|8B786C01)w|Su389qt*6lLefSB;c_8780xY*s1EDKDMYzO(XRnJuU z*d0}<+v_4nUy~5a;lXatZMGSVZdzCQWul5Z(O0cBc`sE_A~8 z@!$uFjg!BrD&4JUujP`Gs&aI%@t-j6*)MMFTP<$X0|c)%gbrt}7Q8@@{qzJ0_7BSa zJSp^0nlI?e1}ZQ%VB<0Zup6eXfnEZAryvbNhuOl1C%cE3Pq1fvZq#mXxie&#J)?a9ri* zq28k?KEV23>g;3_Z$}r4DNN2Ew=oD)#q%?`o$@c8kY|F09 zlA;8vvm+|JcfmIaJ z;yCbaO=>QcRXF>#I%o%z<8%VCU!B(EZBgPs6fx;zKH_6UeM@?%XFN@13c0i!Vz&w` z4Xz2qZYk+Gs99DO_44)Jk=31@xAf^t-$5v<>c%iUQ)YY|&s>hAJ9W7U;|HyhKd&P& zFnVt@`E-&FT4V_@u%G`xH5eVtOsw@Bo$QSmZ8;nOeiHC7FJ1+S2VEh7!$M^GiQfVI z#IGR0A%Q3WB$yYvLE_*>kWdid&|m<=e^dm|RE1JjF|v0sv$5s|!o!2o2eLDAvH}=^ zj6eX8k%f_!5p;_|T+hLj+g-xkk&_N!1(0X9G&NU}vti^M`#7`gRBGiL1bh?LV!a+pd#*k+rpU>eT>}Fy(c&Za6OOf_Ys3b zgT`e9L;$>ifmDWq!GKU!1Y!X&o-g1r5QWW5%!ELjf>grV0Eh>`dA^N+f$HMo!e|I8 zG5{4Z8rWC?DFNiqMUWT-f3y&EZ~)DaA*qBgse+A-BdL%efEWh}zzzfg0l)pI;~=qs zuKu|E?;3_5IQgF^0Q6!Y{lHPc0Dj=`5Psm`V5P`dBb!3+H7kP8>U3}H(DTZcUdDwK zpO0LSa?z;iB3{2=D8hKUCMw*^v7|Jj4BD;aZ}U;2E4jNNn&Pq9$H!E zDa<}Hzau+U&|A$Qoh4bXn194IoIuymxlzMqYZe>MV!yHQnfk)X*G|wG&N4s8g!@Q? zQdQtT(`haIRgWzJ`|(|Bn6uUFNwyRc-4lZSLb~qQ$0)WQSLI;RtkEqi_&y0wU=oWZ z`S;*4X7%hw3_r9(E}XPvZu_k5+uZqS9H3KKpci==Ke%YnC5>BO#log4PM0?!@|WtE ze3hz}%EZIsg5$dGLjHK{v8SwreK;Llm$wj*;9%f61^_((GU%lep@4%wK|z5QQV;;; z`5NQ-8X5oz`UN0*zJUyd4TUMPpIv?)Gw26okPj;;AWJ*5>O%pLJQq_y;R3MV|N9Dm zU5B9801lRo+`PJec)Vfn;BFY#c4coo$GrK*Nxv+3|8#nOMWrfZXatj{0Vz>e6J1(u zbCTCzLPRZ*%?!U#Y)_@f?KAqEiEqHF&kLTo?fRGWq%FKvG#{>Xp2*h|14zCb9R+_| zZ8wpq(%P?l@oN9&p=+xbKiyf~OExQ=58$;D8X4fwpFZPrg8aR8|K7U)f8M�DvD9?(b3;>IE)=&UBNplcG?KO}rf3pM?&> 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 literal 0 HcmV?d00001 diff --git a/Game/Assets/Supabase/System.Threading.Channels.5.0.0/System.Threading.Channels.5.0.0.nupkg.meta b/Game/Assets/Supabase/System.Threading.Channels.5.0.0/System.Threading.Channels.5.0.0.nupkg.meta new file mode 100644 index 0000000..481f9e1 --- /dev/null +++ b/Game/Assets/Supabase/System.Threading.Channels.5.0.0/System.Threading.Channels.5.0.0.nupkg.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 467d27d52ff518940b75ec15c9013790 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Threading.Channels.5.0.0/THIRD-PARTY-NOTICES.TXT b/Game/Assets/Supabase/System.Threading.Channels.5.0.0/THIRD-PARTY-NOTICES.TXT new file mode 100644 index 0000000..111dcf5 --- /dev/null +++ b/Game/Assets/Supabase/System.Threading.Channels.5.0.0/THIRD-PARTY-NOTICES.TXT @@ -0,0 +1,884 @@ +.NET Runtime uses third-party libraries or other resources that may be +distributed under licenses different than the .NET Runtime software. + +In the event that we accidentally failed to list a required notice, please +bring it to our attention. Post an issue or email us: + + dotnet@microsoft.com + +The attached notices are provided for information only. + +License notice for ASP.NET +------------------------------- + +Copyright (c) .NET Foundation. All rights reserved. +Licensed under the Apache License, Version 2.0. + +Available at +https://github.com/aspnet/AspNetCore/blob/master/LICENSE.txt + +License notice for Slicing-by-8 +------------------------------- + +http://sourceforge.net/projects/slicing-by-8/ + +Copyright (c) 2004-2006 Intel Corporation - All Rights Reserved + + +This software program is licensed subject to the BSD License, available at +http://www.opensource.org/licenses/bsd-license.html. + + +License notice for Unicode data +------------------------------- + +https://www.unicode.org/license.html + +Copyright © 1991-2020 Unicode, Inc. All rights reserved. +Distributed under the Terms of Use in https://www.unicode.org/copyright.html. + +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Unicode data files and any associated documentation +(the "Data Files") or Unicode software and any associated documentation +(the "Software") to deal in the Data Files or Software +without restriction, including without limitation the rights to use, +copy, modify, merge, publish, distribute, and/or sell copies of +the Data Files or Software, and to permit persons to whom the Data Files +or Software are furnished to do so, provided that either +(a) this copyright and permission notice appear with all copies +of the Data Files or Software, or +(b) this copyright and permission notice appear in associated +Documentation. + +THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE +WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT OF THIRD PARTY RIGHTS. +IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS +NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL +DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THE DATA FILES OR SOFTWARE. + +Except as contained in this notice, the name of a copyright holder +shall not be used in advertising or otherwise to promote the sale, +use or other dealings in these Data Files or Software without prior +written authorization of the copyright holder. + +License notice for Zlib +----------------------- + +https://github.com/madler/zlib +http://zlib.net/zlib_license.html + +/* zlib.h -- interface of the 'zlib' general purpose compression library + version 1.2.11, January 15th, 2017 + + Copyright (C) 1995-2017 Jean-loup Gailly and Mark Adler + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. + + Jean-loup Gailly Mark Adler + jloup@gzip.org madler@alumni.caltech.edu + +*/ + +License notice for Mono +------------------------------- + +http://www.mono-project.com/docs/about-mono/ + +Copyright (c) .NET Foundation Contributors + +MIT License + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the Software), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +License notice for International Organization for Standardization +----------------------------------------------------------------- + +Portions (C) International Organization for Standardization 1986: + Permission to copy in any form is granted for use with + conforming SGML systems and applications as defined in + ISO 8879, provided this notice is included in all copies. + +License notice for Intel +------------------------ + +"Copyright (c) 2004-2006 Intel Corporation - All Rights Reserved + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation +and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +License notice for Xamarin and Novell +------------------------------------- + +Copyright (c) 2015 Xamarin, Inc (http://www.xamarin.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +Copyright (c) 2011 Novell, Inc (http://www.novell.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +Third party notice for W3C +-------------------------- + +"W3C SOFTWARE AND DOCUMENT NOTICE AND LICENSE +Status: This license takes effect 13 May, 2015. +This work is being provided by the copyright holders under the following license. +License +By obtaining and/or copying this work, you (the licensee) agree that you have read, understood, and will comply with the following terms and conditions. +Permission to copy, modify, and distribute this work, with or without modification, for any purpose and without fee or royalty is hereby granted, provided that you include the following on ALL copies of the work or portions thereof, including modifications: +The full text of this NOTICE in a location viewable to users of the redistributed or derivative work. +Any pre-existing intellectual property disclaimers, notices, or terms and conditions. If none exist, the W3C Software and Document Short Notice should be included. +Notice of any changes or modifications, through a copyright statement on the new code or document such as "This software or document includes material copied from or derived from [title and URI of the W3C document]. Copyright © [YEAR] W3C® (MIT, ERCIM, Keio, Beihang)." +Disclaimers +THIS WORK IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE OR DOCUMENT WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS. +COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR DOCUMENT. +The name and trademarks of copyright holders may NOT be used in advertising or publicity pertaining to the work without specific, written prior permission. Title to copyright in this work will at all times remain with copyright holders." + +License notice for Bit Twiddling Hacks +-------------------------------------- + +Bit Twiddling Hacks + +By Sean Eron Anderson +seander@cs.stanford.edu + +Individually, the code snippets here are in the public domain (unless otherwise +noted) — feel free to use them however you please. The aggregate collection and +descriptions are © 1997-2005 Sean Eron Anderson. The code and descriptions are +distributed in the hope that they will be useful, but WITHOUT ANY WARRANTY and +without even the implied warranty of merchantability or fitness for a particular +purpose. + +License notice for Brotli +-------------------------------------- + +Copyright (c) 2009, 2010, 2013-2016 by the Brotli Authors. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +compress_fragment.c: +Copyright (c) 2011, Google Inc. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +""AS IS"" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +decode_fuzzer.c: +Copyright (c) 2015 The Chromium Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +""AS IS"" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." + +License notice for Json.NET +------------------------------- + +https://github.com/JamesNK/Newtonsoft.Json/blob/master/LICENSE.md + +The MIT License (MIT) + +Copyright (c) 2007 James Newton-King + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +License notice for vectorized base64 encoding / decoding +-------------------------------------------------------- + +Copyright (c) 2005-2007, Nick Galbreath +Copyright (c) 2013-2017, Alfred Klomp +Copyright (c) 2015-2017, Wojciech Mula +Copyright (c) 2016-2017, Matthieu Darbois +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + +- Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + +- Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS +IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED +TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +License notice for RFC 3492 +--------------------------- + +The punycode implementation is based on the sample code in RFC 3492 + +Copyright (C) The Internet Society (2003). All Rights Reserved. + +This document and translations of it may be copied and furnished to +others, and derivative works that comment on or otherwise explain it +or assist in its implementation may be prepared, copied, published +and distributed, in whole or in part, without restriction of any +kind, provided that the above copyright notice and this paragraph are +included on all such copies and derivative works. However, this +document itself may not be modified in any way, such as by removing +the copyright notice or references to the Internet Society or other +Internet organizations, except as needed for the purpose of +developing Internet standards in which case the procedures for +copyrights defined in the Internet Standards process must be +followed, or as required to translate it into languages other than +English. + +The limited permissions granted above are perpetual and will not be +revoked by the Internet Society or its successors or assigns. + +This document and the information contained herein is provided on an +"AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING +TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING +BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION +HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF +MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + +License notice for Algorithm from Internet Draft document "UUIDs and GUIDs" +--------------------------------------------------------------------------- + +Copyright (c) 1990- 1993, 1996 Open Software Foundation, Inc. +Copyright (c) 1989 by Hewlett-Packard Company, Palo Alto, Ca. & +Digital Equipment Corporation, Maynard, Mass. +To anyone who acknowledges that this file is provided "AS IS" +without any express or implied warranty: permission to use, copy, +modify, and distribute this file for any purpose is hereby +granted without fee, provided that the above copyright notices and +this notice appears in all source code copies, and that none of +the names of Open Software Foundation, Inc., Hewlett-Packard +Company, or Digital Equipment Corporation be used in advertising +or publicity pertaining to distribution of the software without +specific, written prior permission. Neither Open Software +Foundation, Inc., Hewlett-Packard Company, Microsoft, nor Digital Equipment +Corporation makes any representations about the suitability of +this software for any purpose. + +Copyright(C) The Internet Society 1997. All Rights Reserved. + +This document and translations of it may be copied and furnished to others, +and derivative works that comment on or otherwise explain it or assist in +its implementation may be prepared, copied, published and distributed, in +whole or in part, without restriction of any kind, provided that the above +copyright notice and this paragraph are included on all such copies and +derivative works.However, this document itself may not be modified in any +way, such as by removing the copyright notice or references to the Internet +Society or other Internet organizations, except as needed for the purpose of +developing Internet standards in which case the procedures for copyrights +defined in the Internet Standards process must be followed, or as required +to translate it into languages other than English. + +The limited permissions granted above are perpetual and will not be revoked +by the Internet Society or its successors or assigns. + +This document and the information contained herein is provided on an "AS IS" +basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE +DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO +ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY +RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A +PARTICULAR PURPOSE. + +License notice for Algorithm from RFC 4122 - +A Universally Unique IDentifier (UUID) URN Namespace +---------------------------------------------------- + +Copyright (c) 1990- 1993, 1996 Open Software Foundation, Inc. +Copyright (c) 1989 by Hewlett-Packard Company, Palo Alto, Ca. & +Digital Equipment Corporation, Maynard, Mass. +Copyright (c) 1998 Microsoft. +To anyone who acknowledges that this file is provided "AS IS" +without any express or implied warranty: permission to use, copy, +modify, and distribute this file for any purpose is hereby +granted without fee, provided that the above copyright notices and +this notice appears in all source code copies, and that none of +the names of Open Software Foundation, Inc., Hewlett-Packard +Company, Microsoft, or Digital Equipment Corporation be used in +advertising or publicity pertaining to distribution of the software +without specific, written prior permission. Neither Open Software +Foundation, Inc., Hewlett-Packard Company, Microsoft, nor Digital +Equipment Corporation makes any representations about the +suitability of this software for any purpose." + +License notice for The LLVM Compiler Infrastructure +--------------------------------------------------- + +Developed by: + + LLVM Team + + University of Illinois at Urbana-Champaign + + http://llvm.org + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal with +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimers. + + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimers in the + documentation and/or other materials provided with the distribution. + + * Neither the names of the LLVM Team, University of Illinois at + Urbana-Champaign, nor the names of its contributors may be used to + endorse or promote products derived from this Software without specific + prior written permission. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE +SOFTWARE. + +License notice for Bob Jenkins +------------------------------ + +By Bob Jenkins, 1996. bob_jenkins@burtleburtle.net. You may use this +code any way you wish, private, educational, or commercial. It's free. + +License notice for Greg Parker +------------------------------ + +Greg Parker gparker@cs.stanford.edu December 2000 +This code is in the public domain and may be copied or modified without +permission. + +License notice for libunwind based code +---------------------------------------- + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +License notice for Printing Floating-Point Numbers (Dragon4) +------------------------------------------------------------ + +/****************************************************************************** + Copyright (c) 2014 Ryan Juckett + http://www.ryanjuckett.com/ + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + + 3. This notice may not be removed or altered from any source + distribution. +******************************************************************************/ + +License notice for Printing Floating-point Numbers (Grisu3) +----------------------------------------------------------- + +Copyright 2012 the V8 project authors. All rights reserved. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +License notice for xxHash +------------------------- + +xxHash Library +Copyright (c) 2012-2014, Yann Collet +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or + other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +License notice for Berkeley SoftFloat Release 3e +------------------------------------------------ + +https://github.com/ucb-bar/berkeley-softfloat-3 +https://github.com/ucb-bar/berkeley-softfloat-3/blob/master/COPYING.txt + +License for Berkeley SoftFloat Release 3e + +John R. Hauser +2018 January 20 + +The following applies to the whole of SoftFloat Release 3e as well as to +each source file individually. + +Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 The Regents of the +University of California. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, + this list of conditions, and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions, and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + 3. Neither the name of the University nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY +EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE +DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +License notice for Xorshift RNGs +-------------------------------- + +George Marsaglia +2003-07-04 +Journal of Statistical Software +License: http://creativecommons.org/licenses/by/3.0/ + +https://www.jstatsoft.org/article/view/v008i14 +https://www.jstatsoft.org/index.php/jss/article/view/v008i14/xorshift.pdf + +License notice for Xorshift (Wikipedia) +--------------------------------------- + +https://en.wikipedia.org/wiki/Xorshift +License: https://en.wikipedia.org/wiki/Wikipedia:Text_of_Creative_Commons_Attribution-ShareAlike_3.0_Unported_License + +License for fastmod (https://github.com/lemire/fastmod) +-------------------------------------- + + Copyright 2018 Daniel Lemire + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +License notice for The C++ REST SDK +----------------------------------- + +C++ REST SDK + +The MIT License (MIT) + +Copyright (c) Microsoft Corporation + +All rights reserved. + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +License notice for MessagePack-CSharp +------------------------------------- + +MessagePack for C# + +MIT License + +Copyright (c) 2017 Yoshifumi Kawai + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +License notice for lz4net +------------------------------------- + +lz4net + +Copyright (c) 2013-2017, Milosz Krajewski + +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + +Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + +Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +License notice for Nerdbank.Streams +----------------------------------- + +The MIT License (MIT) + +Copyright (c) Andrew Arnott + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +License notice for RapidJSON +---------------------------- + +Tencent is pleased to support the open source community by making RapidJSON available. + +Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved. + +Licensed under the MIT License (the "License"); you may not use this file except +in compliance with the License. You may obtain a copy of the License at + +http://opensource.org/licenses/MIT + +Unless required by applicable law or agreed to in writing, software distributed +under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR +CONDITIONS OF ANY KIND, either express or implied. See the License for the +specific language governing permissions and limitations under the License. + +License notice for DirectX Math Library +--------------------------------------- + +https://github.com/microsoft/DirectXMath/blob/master/LICENSE + + The MIT License (MIT) + +Copyright (c) 2011-2020 Microsoft Corp + +Permission is hereby granted, free of charge, to any person obtaining a copy of this +software and associated documentation files (the "Software"), to deal in the Software +without restriction, including without limitation the rights to use, copy, modify, +merge, publish, distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice shall be included in all copies +or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF +CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE +OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +License notice for ldap4net +--------------------------- + +The MIT License (MIT) + +Copyright (c) 2018 Alexander Chermyanin + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +License notice for vectorized sorting code +------------------------------------------ + +MIT License + +Copyright (c) 2020 Dan Shechter + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + diff --git a/Game/Assets/Supabase/System.Threading.Channels.5.0.0/THIRD-PARTY-NOTICES.TXT.meta b/Game/Assets/Supabase/System.Threading.Channels.5.0.0/THIRD-PARTY-NOTICES.TXT.meta new file mode 100644 index 0000000..e77d4db --- /dev/null +++ b/Game/Assets/Supabase/System.Threading.Channels.5.0.0/THIRD-PARTY-NOTICES.TXT.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: db90f86e84740d04a8f5b8834055f516 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Threading.Channels.5.0.0/lib.meta b/Game/Assets/Supabase/System.Threading.Channels.5.0.0/lib.meta new file mode 100644 index 0000000..6a279a2 --- /dev/null +++ b/Game/Assets/Supabase/System.Threading.Channels.5.0.0/lib.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 97b3f620010e6b34e8f7d9ebba7be3db +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Threading.Channels.5.0.0/lib/net461.meta b/Game/Assets/Supabase/System.Threading.Channels.5.0.0/lib/net461.meta new file mode 100644 index 0000000..e6c08a8 --- /dev/null +++ b/Game/Assets/Supabase/System.Threading.Channels.5.0.0/lib/net461.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d7e8f1505062669498f63f013f568a7e +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Threading.Channels.5.0.0/lib/net461/System.Threading.Channels.dll b/Game/Assets/Supabase/System.Threading.Channels.5.0.0/lib/net461/System.Threading.Channels.dll new file mode 100644 index 0000000..10945ac --- /dev/null +++ b/Game/Assets/Supabase/System.Threading.Channels.5.0.0/lib/net461/System.Threading.Channels.dll @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0571ab259b76bff8b6a895b73aa255031e0093b985f8e7a6a11fb43209119c5d +size 50056 diff --git a/Game/Assets/Supabase/System.Threading.Channels.5.0.0/lib/net461/System.Threading.Channels.dll.meta b/Game/Assets/Supabase/System.Threading.Channels.5.0.0/lib/net461/System.Threading.Channels.dll.meta new file mode 100644 index 0000000..6af1c43 --- /dev/null +++ b/Game/Assets/Supabase/System.Threading.Channels.5.0.0/lib/net461/System.Threading.Channels.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: 4441896b9bfe4754981c01fbce9b365f +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Threading.Channels.5.0.0/lib/net461/System.Threading.Channels.xml b/Game/Assets/Supabase/System.Threading.Channels.5.0.0/lib/net461/System.Threading.Channels.xml new file mode 100644 index 0000000..a792839 --- /dev/null +++ b/Game/Assets/Supabase/System.Threading.Channels.5.0.0/lib/net461/System.Threading.Channels.xml @@ -0,0 +1,225 @@ + + + + System.Threading.Channels + + + +

    Specifies the behavior to use when writing to a bounded channel that is already full. + + + Removes and ignores the newest item in the channel in order to make room for the item being written. + + + Removes and ignores the oldest item in the channel in order to make room for the item being written. + + + Drops the item being written. + + + Waits for space to be available in order to complete the write operation. + + + Provides options that control the behavior of bounded instances. + + + Initializes the options. + The maximum number of items the bounded channel may store. + + + Gets or sets the maximum number of items the bounded channel may store. + + + Gets or sets the behavior incurred by write operations when the channel is full. + + + Provides static methods for creating channels. + + + Creates a channel with the specified maximum capacity. + The maximum number of items the channel may store. + Specifies the type of data in the channel. + The created channel. + + + Creates a channel with the specified maximum capacity. + Options that guide the behavior of the channel. + Specifies the type of data in the channel. + The created channel. + + + Creates an unbounded channel usable by any number of readers and writers concurrently. + The type of data in the channel. + The created channel. + + + Creates an unbounded channel subject to the provided options. + Options that guide the behavior of the channel. + Specifies the type of data in the channel. + The created channel. + + + Provides a base class for channels that support reading and writing elements of type . + Specifies the type of data readable and writable in the channel. + + + Initializes an instance of the class. + + + Provides a base class for channels that support reading elements of type and writing elements of type . + Specifies the type of data that may be written to the channel. + Specifies the type of data that may be read from the channel. + + + Initializes an instance of the class. + + + Implicit cast from a to its readable half. + The being cast. + The readable half. + + + Implicit cast from a to its writable half. + The being cast. + The writable half. + + + Gets the readable half of this channel. + + + Gets the writable half of this channel. + + + Exception thrown when a channel is used after it's been closed. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class. + The exception that is the cause of this exception. + + + Initializes a new instance of the class with serialized data. + The object that holds the serialized object data. + The contextual information about the source or destination. + + + Initializes a new instance of the class. + The message that describes the error. + + + Initializes a new instance of the class. + The message that describes the error. + The exception that is the cause of this exception. + + + Provides options that control the behavior of channel instances. + + + Initializes an instance of the class. + + + + if operations performed on a channel may synchronously invoke continuations subscribed to + notifications of pending async operations; if all continuations should be invoked asynchronously. + + + + readers from the channel guarantee that there will only ever be at most one read operation at a time; + if no such constraint is guaranteed. + + + + if writers to the channel guarantee that there will only ever be at most one write operation + at a time; if no such constraint is guaranteed. + + + Provides a base class for reading from a channel. + Specifies the type of data that may be read from the channel. + + + Initializes an instance of the class. + + + Creates an that enables reading all of the data from the channel. + The cancellation token to use to cancel the enumeration. + The created async enumerable. + + + Asynchronously reads an item from the channel. + A used to cancel the read operation. + A that represents the asynchronous read operation. + + + Attempts to read an item from the channel. + The read item, or a default value if no item could be read. + + if an item was read; otherwise, . + + + Returns a that will complete when data is available to read. + A used to cancel the wait operation. + + A that will complete with a result when data is available to read + or with a result when no further data will ever be available to be read due to the channel completing successfully. + If the channel completes with an exception, the task will also complete with an exception. + + + + Gets a value that indicates whether is available for use on this instance. + + + Gets a that completes when no more data will ever + be available to be read from this channel. + + + Gets the current number of items available from this channel reader. + Counting is not supported on this instance. + + + Provides a base class for writing to a channel. + Specifies the type of data that may be written to the channel. + + + Initializes an instance of the class. + + + Mark the channel as being complete, meaning no more items will be written to it. + Optional Exception indicating a failure that's causing the channel to complete. + The channel has already been marked as complete. + + + Attempts to mark the channel as being completed, meaning no more data will be written to it. + An indicating the failure causing no more data to be written, or null for success. + + if this operation successfully completes the channel; otherwise, if the channel could not be marked for completion, + for example due to having already been marked as such, or due to not supporting completion. + . + + + Attempts to write the specified item to the channel. + The item to write. + + if the item was written; otherwise, . + + + Returns a that will complete when space is available to write an item. + A used to cancel the wait operation. + A that will complete with a result when space is available to write an item + or with a result when no further writing will be permitted. + + + Asynchronously writes an item to the channel. + The value to write to the channel. + A used to cancel the write operation. + A that represents the asynchronous write operation. + + + Provides options that control the behavior of unbounded instances. + + + Initializes a new instance of the class. + + + \ No newline at end of file diff --git a/Game/Assets/Supabase/System.Threading.Channels.5.0.0/lib/net461/System.Threading.Channels.xml.meta b/Game/Assets/Supabase/System.Threading.Channels.5.0.0/lib/net461/System.Threading.Channels.xml.meta new file mode 100644 index 0000000..84d8dde --- /dev/null +++ b/Game/Assets/Supabase/System.Threading.Channels.5.0.0/lib/net461/System.Threading.Channels.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 6e57466c404d4044a8bfb1d1d7f850a4 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Threading.Channels.5.0.0/lib/netcoreapp3.0.meta b/Game/Assets/Supabase/System.Threading.Channels.5.0.0/lib/netcoreapp3.0.meta new file mode 100644 index 0000000..dd2aa0b --- /dev/null +++ b/Game/Assets/Supabase/System.Threading.Channels.5.0.0/lib/netcoreapp3.0.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 94f26a5ab39c07a47aeeeb022c059924 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Threading.Channels.5.0.0/lib/netcoreapp3.0/System.Threading.Channels.dll b/Game/Assets/Supabase/System.Threading.Channels.5.0.0/lib/netcoreapp3.0/System.Threading.Channels.dll new file mode 100644 index 0000000..b810dc3 --- /dev/null +++ b/Game/Assets/Supabase/System.Threading.Channels.5.0.0/lib/netcoreapp3.0/System.Threading.Channels.dll @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cc29bda6ca22ebb6ac91fdf526a439ea7b64391cc0e4b7326bc2bd3d689ffdff +size 51592 diff --git a/Game/Assets/Supabase/System.Threading.Channels.5.0.0/lib/netcoreapp3.0/System.Threading.Channels.dll.meta b/Game/Assets/Supabase/System.Threading.Channels.5.0.0/lib/netcoreapp3.0/System.Threading.Channels.dll.meta new file mode 100644 index 0000000..5b5dc13 --- /dev/null +++ b/Game/Assets/Supabase/System.Threading.Channels.5.0.0/lib/netcoreapp3.0/System.Threading.Channels.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: 76b6df5b476c72548838510628c35329 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Threading.Channels.5.0.0/lib/netcoreapp3.0/System.Threading.Channels.xml b/Game/Assets/Supabase/System.Threading.Channels.5.0.0/lib/netcoreapp3.0/System.Threading.Channels.xml new file mode 100644 index 0000000..a792839 --- /dev/null +++ b/Game/Assets/Supabase/System.Threading.Channels.5.0.0/lib/netcoreapp3.0/System.Threading.Channels.xml @@ -0,0 +1,225 @@ + + + + System.Threading.Channels + + + + Specifies the behavior to use when writing to a bounded channel that is already full. + + + Removes and ignores the newest item in the channel in order to make room for the item being written. + + + Removes and ignores the oldest item in the channel in order to make room for the item being written. + + + Drops the item being written. + + + Waits for space to be available in order to complete the write operation. + + + Provides options that control the behavior of bounded instances. + + + Initializes the options. + The maximum number of items the bounded channel may store. + + + Gets or sets the maximum number of items the bounded channel may store. + + + Gets or sets the behavior incurred by write operations when the channel is full. + + + Provides static methods for creating channels. + + + Creates a channel with the specified maximum capacity. + The maximum number of items the channel may store. + Specifies the type of data in the channel. + The created channel. + + + Creates a channel with the specified maximum capacity. + Options that guide the behavior of the channel. + Specifies the type of data in the channel. + The created channel. + + + Creates an unbounded channel usable by any number of readers and writers concurrently. + The type of data in the channel. + The created channel. + + + Creates an unbounded channel subject to the provided options. + Options that guide the behavior of the channel. + Specifies the type of data in the channel. + The created channel. + + + Provides a base class for channels that support reading and writing elements of type . + Specifies the type of data readable and writable in the channel. + + + Initializes an instance of the class. + + + Provides a base class for channels that support reading elements of type and writing elements of type . + Specifies the type of data that may be written to the channel. + Specifies the type of data that may be read from the channel. + + + Initializes an instance of the class. + + + Implicit cast from a to its readable half. + The being cast. + The readable half. + + + Implicit cast from a to its writable half. + The being cast. + The writable half. + + + Gets the readable half of this channel. + + + Gets the writable half of this channel. + + + Exception thrown when a channel is used after it's been closed. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class. + The exception that is the cause of this exception. + + + Initializes a new instance of the class with serialized data. + The object that holds the serialized object data. + The contextual information about the source or destination. + + + Initializes a new instance of the class. + The message that describes the error. + + + Initializes a new instance of the class. + The message that describes the error. + The exception that is the cause of this exception. + + + Provides options that control the behavior of channel instances. + + + Initializes an instance of the class. + + + + if operations performed on a channel may synchronously invoke continuations subscribed to + notifications of pending async operations; if all continuations should be invoked asynchronously. + + + + readers from the channel guarantee that there will only ever be at most one read operation at a time; + if no such constraint is guaranteed. + + + + if writers to the channel guarantee that there will only ever be at most one write operation + at a time; if no such constraint is guaranteed. + + + Provides a base class for reading from a channel. + Specifies the type of data that may be read from the channel. + + + Initializes an instance of the class. + + + Creates an that enables reading all of the data from the channel. + The cancellation token to use to cancel the enumeration. + The created async enumerable. + + + Asynchronously reads an item from the channel. + A used to cancel the read operation. + A that represents the asynchronous read operation. + + + Attempts to read an item from the channel. + The read item, or a default value if no item could be read. + + if an item was read; otherwise, . + + + Returns a that will complete when data is available to read. + A used to cancel the wait operation. + + A that will complete with a result when data is available to read + or with a result when no further data will ever be available to be read due to the channel completing successfully. + If the channel completes with an exception, the task will also complete with an exception. + + + + Gets a value that indicates whether is available for use on this instance. + + + Gets a that completes when no more data will ever + be available to be read from this channel. + + + Gets the current number of items available from this channel reader. + Counting is not supported on this instance. + + + Provides a base class for writing to a channel. + Specifies the type of data that may be written to the channel. + + + Initializes an instance of the class. + + + Mark the channel as being complete, meaning no more items will be written to it. + Optional Exception indicating a failure that's causing the channel to complete. + The channel has already been marked as complete. + + + Attempts to mark the channel as being completed, meaning no more data will be written to it. + An indicating the failure causing no more data to be written, or null for success. + + if this operation successfully completes the channel; otherwise, if the channel could not be marked for completion, + for example due to having already been marked as such, or due to not supporting completion. + . + + + Attempts to write the specified item to the channel. + The item to write. + + if the item was written; otherwise, . + + + Returns a that will complete when space is available to write an item. + A used to cancel the wait operation. + A that will complete with a result when space is available to write an item + or with a result when no further writing will be permitted. + + + Asynchronously writes an item to the channel. + The value to write to the channel. + A used to cancel the write operation. + A that represents the asynchronous write operation. + + + Provides options that control the behavior of unbounded instances. + + + Initializes a new instance of the class. + + + \ No newline at end of file diff --git a/Game/Assets/Supabase/System.Threading.Channels.5.0.0/lib/netcoreapp3.0/System.Threading.Channels.xml.meta b/Game/Assets/Supabase/System.Threading.Channels.5.0.0/lib/netcoreapp3.0/System.Threading.Channels.xml.meta new file mode 100644 index 0000000..16c9c2f --- /dev/null +++ b/Game/Assets/Supabase/System.Threading.Channels.5.0.0/lib/netcoreapp3.0/System.Threading.Channels.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 6d573905284d8b2409076c6fa96c94d3 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Threading.Channels.5.0.0/lib/netstandard1.3.meta b/Game/Assets/Supabase/System.Threading.Channels.5.0.0/lib/netstandard1.3.meta new file mode 100644 index 0000000..458d13f --- /dev/null +++ b/Game/Assets/Supabase/System.Threading.Channels.5.0.0/lib/netstandard1.3.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: cf34b38cc3b2f4049b2fd3a3f1017e8f +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Threading.Channels.5.0.0/lib/netstandard1.3/System.Threading.Channels.dll b/Game/Assets/Supabase/System.Threading.Channels.5.0.0/lib/netstandard1.3/System.Threading.Channels.dll new file mode 100644 index 0000000..68d70a1 --- /dev/null +++ b/Game/Assets/Supabase/System.Threading.Channels.5.0.0/lib/netstandard1.3/System.Threading.Channels.dll @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6494dec5354a37d1b6ea8d4ed53eb44fc051ad3f21bef204c28ebf1516117a36 +size 50056 diff --git a/Game/Assets/Supabase/System.Threading.Channels.5.0.0/lib/netstandard1.3/System.Threading.Channels.dll.meta b/Game/Assets/Supabase/System.Threading.Channels.5.0.0/lib/netstandard1.3/System.Threading.Channels.dll.meta new file mode 100644 index 0000000..7ec28b2 --- /dev/null +++ b/Game/Assets/Supabase/System.Threading.Channels.5.0.0/lib/netstandard1.3/System.Threading.Channels.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: e8d349588a9c40e43880e020caba977a +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Threading.Channels.5.0.0/lib/netstandard1.3/System.Threading.Channels.xml b/Game/Assets/Supabase/System.Threading.Channels.5.0.0/lib/netstandard1.3/System.Threading.Channels.xml new file mode 100644 index 0000000..a792839 --- /dev/null +++ b/Game/Assets/Supabase/System.Threading.Channels.5.0.0/lib/netstandard1.3/System.Threading.Channels.xml @@ -0,0 +1,225 @@ + + + + System.Threading.Channels + + + + Specifies the behavior to use when writing to a bounded channel that is already full. + + + Removes and ignores the newest item in the channel in order to make room for the item being written. + + + Removes and ignores the oldest item in the channel in order to make room for the item being written. + + + Drops the item being written. + + + Waits for space to be available in order to complete the write operation. + + + Provides options that control the behavior of bounded instances. + + + Initializes the options. + The maximum number of items the bounded channel may store. + + + Gets or sets the maximum number of items the bounded channel may store. + + + Gets or sets the behavior incurred by write operations when the channel is full. + + + Provides static methods for creating channels. + + + Creates a channel with the specified maximum capacity. + The maximum number of items the channel may store. + Specifies the type of data in the channel. + The created channel. + + + Creates a channel with the specified maximum capacity. + Options that guide the behavior of the channel. + Specifies the type of data in the channel. + The created channel. + + + Creates an unbounded channel usable by any number of readers and writers concurrently. + The type of data in the channel. + The created channel. + + + Creates an unbounded channel subject to the provided options. + Options that guide the behavior of the channel. + Specifies the type of data in the channel. + The created channel. + + + Provides a base class for channels that support reading and writing elements of type . + Specifies the type of data readable and writable in the channel. + + + Initializes an instance of the class. + + + Provides a base class for channels that support reading elements of type and writing elements of type . + Specifies the type of data that may be written to the channel. + Specifies the type of data that may be read from the channel. + + + Initializes an instance of the class. + + + Implicit cast from a to its readable half. + The being cast. + The readable half. + + + Implicit cast from a to its writable half. + The being cast. + The writable half. + + + Gets the readable half of this channel. + + + Gets the writable half of this channel. + + + Exception thrown when a channel is used after it's been closed. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class. + The exception that is the cause of this exception. + + + Initializes a new instance of the class with serialized data. + The object that holds the serialized object data. + The contextual information about the source or destination. + + + Initializes a new instance of the class. + The message that describes the error. + + + Initializes a new instance of the class. + The message that describes the error. + The exception that is the cause of this exception. + + + Provides options that control the behavior of channel instances. + + + Initializes an instance of the class. + + + + if operations performed on a channel may synchronously invoke continuations subscribed to + notifications of pending async operations; if all continuations should be invoked asynchronously. + + + + readers from the channel guarantee that there will only ever be at most one read operation at a time; + if no such constraint is guaranteed. + + + + if writers to the channel guarantee that there will only ever be at most one write operation + at a time; if no such constraint is guaranteed. + + + Provides a base class for reading from a channel. + Specifies the type of data that may be read from the channel. + + + Initializes an instance of the class. + + + Creates an that enables reading all of the data from the channel. + The cancellation token to use to cancel the enumeration. + The created async enumerable. + + + Asynchronously reads an item from the channel. + A used to cancel the read operation. + A that represents the asynchronous read operation. + + + Attempts to read an item from the channel. + The read item, or a default value if no item could be read. + + if an item was read; otherwise, . + + + Returns a that will complete when data is available to read. + A used to cancel the wait operation. + + A that will complete with a result when data is available to read + or with a result when no further data will ever be available to be read due to the channel completing successfully. + If the channel completes with an exception, the task will also complete with an exception. + + + + Gets a value that indicates whether is available for use on this instance. + + + Gets a that completes when no more data will ever + be available to be read from this channel. + + + Gets the current number of items available from this channel reader. + Counting is not supported on this instance. + + + Provides a base class for writing to a channel. + Specifies the type of data that may be written to the channel. + + + Initializes an instance of the class. + + + Mark the channel as being complete, meaning no more items will be written to it. + Optional Exception indicating a failure that's causing the channel to complete. + The channel has already been marked as complete. + + + Attempts to mark the channel as being completed, meaning no more data will be written to it. + An indicating the failure causing no more data to be written, or null for success. + + if this operation successfully completes the channel; otherwise, if the channel could not be marked for completion, + for example due to having already been marked as such, or due to not supporting completion. + . + + + Attempts to write the specified item to the channel. + The item to write. + + if the item was written; otherwise, . + + + Returns a that will complete when space is available to write an item. + A used to cancel the wait operation. + A that will complete with a result when space is available to write an item + or with a result when no further writing will be permitted. + + + Asynchronously writes an item to the channel. + The value to write to the channel. + A used to cancel the write operation. + A that represents the asynchronous write operation. + + + Provides options that control the behavior of unbounded instances. + + + Initializes a new instance of the class. + + + \ No newline at end of file diff --git a/Game/Assets/Supabase/System.Threading.Channels.5.0.0/lib/netstandard1.3/System.Threading.Channels.xml.meta b/Game/Assets/Supabase/System.Threading.Channels.5.0.0/lib/netstandard1.3/System.Threading.Channels.xml.meta new file mode 100644 index 0000000..ca379ee --- /dev/null +++ b/Game/Assets/Supabase/System.Threading.Channels.5.0.0/lib/netstandard1.3/System.Threading.Channels.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 3de5879744f26964093f996086996e8b +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Threading.Channels.5.0.0/lib/netstandard2.0.meta b/Game/Assets/Supabase/System.Threading.Channels.5.0.0/lib/netstandard2.0.meta new file mode 100644 index 0000000..2c1da44 --- /dev/null +++ b/Game/Assets/Supabase/System.Threading.Channels.5.0.0/lib/netstandard2.0.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8d094e41cd2e6b94891171993fa10797 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Threading.Channels.5.0.0/lib/netstandard2.0/System.Threading.Channels.dll b/Game/Assets/Supabase/System.Threading.Channels.5.0.0/lib/netstandard2.0/System.Threading.Channels.dll new file mode 100644 index 0000000..916aa26 --- /dev/null +++ b/Game/Assets/Supabase/System.Threading.Channels.5.0.0/lib/netstandard2.0/System.Threading.Channels.dll @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:36d45db7a36cfe3d3f3c6ffed904ccb033da9967d3411cd710395c073e5e2e96 +size 50048 diff --git a/Game/Assets/Supabase/System.Threading.Channels.5.0.0/lib/netstandard2.0/System.Threading.Channels.dll.meta b/Game/Assets/Supabase/System.Threading.Channels.5.0.0/lib/netstandard2.0/System.Threading.Channels.dll.meta new file mode 100644 index 0000000..2274935 --- /dev/null +++ b/Game/Assets/Supabase/System.Threading.Channels.5.0.0/lib/netstandard2.0/System.Threading.Channels.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: 0815bb036c6939d4a8202e516161e95f +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Threading.Channels.5.0.0/lib/netstandard2.0/System.Threading.Channels.xml b/Game/Assets/Supabase/System.Threading.Channels.5.0.0/lib/netstandard2.0/System.Threading.Channels.xml new file mode 100644 index 0000000..a792839 --- /dev/null +++ b/Game/Assets/Supabase/System.Threading.Channels.5.0.0/lib/netstandard2.0/System.Threading.Channels.xml @@ -0,0 +1,225 @@ + + + + System.Threading.Channels + + + + Specifies the behavior to use when writing to a bounded channel that is already full. + + + Removes and ignores the newest item in the channel in order to make room for the item being written. + + + Removes and ignores the oldest item in the channel in order to make room for the item being written. + + + Drops the item being written. + + + Waits for space to be available in order to complete the write operation. + + + Provides options that control the behavior of bounded instances. + + + Initializes the options. + The maximum number of items the bounded channel may store. + + + Gets or sets the maximum number of items the bounded channel may store. + + + Gets or sets the behavior incurred by write operations when the channel is full. + + + Provides static methods for creating channels. + + + Creates a channel with the specified maximum capacity. + The maximum number of items the channel may store. + Specifies the type of data in the channel. + The created channel. + + + Creates a channel with the specified maximum capacity. + Options that guide the behavior of the channel. + Specifies the type of data in the channel. + The created channel. + + + Creates an unbounded channel usable by any number of readers and writers concurrently. + The type of data in the channel. + The created channel. + + + Creates an unbounded channel subject to the provided options. + Options that guide the behavior of the channel. + Specifies the type of data in the channel. + The created channel. + + + Provides a base class for channels that support reading and writing elements of type . + Specifies the type of data readable and writable in the channel. + + + Initializes an instance of the class. + + + Provides a base class for channels that support reading elements of type and writing elements of type . + Specifies the type of data that may be written to the channel. + Specifies the type of data that may be read from the channel. + + + Initializes an instance of the class. + + + Implicit cast from a to its readable half. + The being cast. + The readable half. + + + Implicit cast from a to its writable half. + The being cast. + The writable half. + + + Gets the readable half of this channel. + + + Gets the writable half of this channel. + + + Exception thrown when a channel is used after it's been closed. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class. + The exception that is the cause of this exception. + + + Initializes a new instance of the class with serialized data. + The object that holds the serialized object data. + The contextual information about the source or destination. + + + Initializes a new instance of the class. + The message that describes the error. + + + Initializes a new instance of the class. + The message that describes the error. + The exception that is the cause of this exception. + + + Provides options that control the behavior of channel instances. + + + Initializes an instance of the class. + + + + if operations performed on a channel may synchronously invoke continuations subscribed to + notifications of pending async operations; if all continuations should be invoked asynchronously. + + + + readers from the channel guarantee that there will only ever be at most one read operation at a time; + if no such constraint is guaranteed. + + + + if writers to the channel guarantee that there will only ever be at most one write operation + at a time; if no such constraint is guaranteed. + + + Provides a base class for reading from a channel. + Specifies the type of data that may be read from the channel. + + + Initializes an instance of the class. + + + Creates an that enables reading all of the data from the channel. + The cancellation token to use to cancel the enumeration. + The created async enumerable. + + + Asynchronously reads an item from the channel. + A used to cancel the read operation. + A that represents the asynchronous read operation. + + + Attempts to read an item from the channel. + The read item, or a default value if no item could be read. + + if an item was read; otherwise, . + + + Returns a that will complete when data is available to read. + A used to cancel the wait operation. + + A that will complete with a result when data is available to read + or with a result when no further data will ever be available to be read due to the channel completing successfully. + If the channel completes with an exception, the task will also complete with an exception. + + + + Gets a value that indicates whether is available for use on this instance. + + + Gets a that completes when no more data will ever + be available to be read from this channel. + + + Gets the current number of items available from this channel reader. + Counting is not supported on this instance. + + + Provides a base class for writing to a channel. + Specifies the type of data that may be written to the channel. + + + Initializes an instance of the class. + + + Mark the channel as being complete, meaning no more items will be written to it. + Optional Exception indicating a failure that's causing the channel to complete. + The channel has already been marked as complete. + + + Attempts to mark the channel as being completed, meaning no more data will be written to it. + An indicating the failure causing no more data to be written, or null for success. + + if this operation successfully completes the channel; otherwise, if the channel could not be marked for completion, + for example due to having already been marked as such, or due to not supporting completion. + . + + + Attempts to write the specified item to the channel. + The item to write. + + if the item was written; otherwise, . + + + Returns a that will complete when space is available to write an item. + A used to cancel the wait operation. + A that will complete with a result when space is available to write an item + or with a result when no further writing will be permitted. + + + Asynchronously writes an item to the channel. + The value to write to the channel. + A used to cancel the write operation. + A that represents the asynchronous write operation. + + + Provides options that control the behavior of unbounded instances. + + + Initializes a new instance of the class. + + + \ No newline at end of file diff --git a/Game/Assets/Supabase/System.Threading.Channels.5.0.0/lib/netstandard2.0/System.Threading.Channels.xml.meta b/Game/Assets/Supabase/System.Threading.Channels.5.0.0/lib/netstandard2.0/System.Threading.Channels.xml.meta new file mode 100644 index 0000000..7d16900 --- /dev/null +++ b/Game/Assets/Supabase/System.Threading.Channels.5.0.0/lib/netstandard2.0/System.Threading.Channels.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: e03d387920c645947bd037a282c2ea42 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Threading.Channels.5.0.0/lib/netstandard2.1.meta b/Game/Assets/Supabase/System.Threading.Channels.5.0.0/lib/netstandard2.1.meta new file mode 100644 index 0000000..21361f7 --- /dev/null +++ b/Game/Assets/Supabase/System.Threading.Channels.5.0.0/lib/netstandard2.1.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 36aa3d200758a994fafdb7f9d74a8084 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Threading.Channels.5.0.0/lib/netstandard2.1/System.Threading.Channels.dll b/Game/Assets/Supabase/System.Threading.Channels.5.0.0/lib/netstandard2.1/System.Threading.Channels.dll new file mode 100644 index 0000000..f5106eb --- /dev/null +++ b/Game/Assets/Supabase/System.Threading.Channels.5.0.0/lib/netstandard2.1/System.Threading.Channels.dll @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6d55fc91c681561294a6dfa17fcdb2ddf9e6d8df457f180c0ac58dfb85cf6987 +size 51592 diff --git a/Game/Assets/Supabase/System.Threading.Channels.5.0.0/lib/netstandard2.1/System.Threading.Channels.dll.meta b/Game/Assets/Supabase/System.Threading.Channels.5.0.0/lib/netstandard2.1/System.Threading.Channels.dll.meta new file mode 100644 index 0000000..70c44ba --- /dev/null +++ b/Game/Assets/Supabase/System.Threading.Channels.5.0.0/lib/netstandard2.1/System.Threading.Channels.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: 11e5d30b1abb8ee4595c58284b36ffa3 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Threading.Channels.5.0.0/lib/netstandard2.1/System.Threading.Channels.xml b/Game/Assets/Supabase/System.Threading.Channels.5.0.0/lib/netstandard2.1/System.Threading.Channels.xml new file mode 100644 index 0000000..a792839 --- /dev/null +++ b/Game/Assets/Supabase/System.Threading.Channels.5.0.0/lib/netstandard2.1/System.Threading.Channels.xml @@ -0,0 +1,225 @@ + + + + System.Threading.Channels + + + + Specifies the behavior to use when writing to a bounded channel that is already full. + + + Removes and ignores the newest item in the channel in order to make room for the item being written. + + + Removes and ignores the oldest item in the channel in order to make room for the item being written. + + + Drops the item being written. + + + Waits for space to be available in order to complete the write operation. + + + Provides options that control the behavior of bounded instances. + + + Initializes the options. + The maximum number of items the bounded channel may store. + + + Gets or sets the maximum number of items the bounded channel may store. + + + Gets or sets the behavior incurred by write operations when the channel is full. + + + Provides static methods for creating channels. + + + Creates a channel with the specified maximum capacity. + The maximum number of items the channel may store. + Specifies the type of data in the channel. + The created channel. + + + Creates a channel with the specified maximum capacity. + Options that guide the behavior of the channel. + Specifies the type of data in the channel. + The created channel. + + + Creates an unbounded channel usable by any number of readers and writers concurrently. + The type of data in the channel. + The created channel. + + + Creates an unbounded channel subject to the provided options. + Options that guide the behavior of the channel. + Specifies the type of data in the channel. + The created channel. + + + Provides a base class for channels that support reading and writing elements of type . + Specifies the type of data readable and writable in the channel. + + + Initializes an instance of the class. + + + Provides a base class for channels that support reading elements of type and writing elements of type . + Specifies the type of data that may be written to the channel. + Specifies the type of data that may be read from the channel. + + + Initializes an instance of the class. + + + Implicit cast from a to its readable half. + The being cast. + The readable half. + + + Implicit cast from a to its writable half. + The being cast. + The writable half. + + + Gets the readable half of this channel. + + + Gets the writable half of this channel. + + + Exception thrown when a channel is used after it's been closed. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class. + The exception that is the cause of this exception. + + + Initializes a new instance of the class with serialized data. + The object that holds the serialized object data. + The contextual information about the source or destination. + + + Initializes a new instance of the class. + The message that describes the error. + + + Initializes a new instance of the class. + The message that describes the error. + The exception that is the cause of this exception. + + + Provides options that control the behavior of channel instances. + + + Initializes an instance of the class. + + + + if operations performed on a channel may synchronously invoke continuations subscribed to + notifications of pending async operations; if all continuations should be invoked asynchronously. + + + + readers from the channel guarantee that there will only ever be at most one read operation at a time; + if no such constraint is guaranteed. + + + + if writers to the channel guarantee that there will only ever be at most one write operation + at a time; if no such constraint is guaranteed. + + + Provides a base class for reading from a channel. + Specifies the type of data that may be read from the channel. + + + Initializes an instance of the class. + + + Creates an that enables reading all of the data from the channel. + The cancellation token to use to cancel the enumeration. + The created async enumerable. + + + Asynchronously reads an item from the channel. + A used to cancel the read operation. + A that represents the asynchronous read operation. + + + Attempts to read an item from the channel. + The read item, or a default value if no item could be read. + + if an item was read; otherwise, . + + + Returns a that will complete when data is available to read. + A used to cancel the wait operation. + + A that will complete with a result when data is available to read + or with a result when no further data will ever be available to be read due to the channel completing successfully. + If the channel completes with an exception, the task will also complete with an exception. + + + + Gets a value that indicates whether is available for use on this instance. + + + Gets a that completes when no more data will ever + be available to be read from this channel. + + + Gets the current number of items available from this channel reader. + Counting is not supported on this instance. + + + Provides a base class for writing to a channel. + Specifies the type of data that may be written to the channel. + + + Initializes an instance of the class. + + + Mark the channel as being complete, meaning no more items will be written to it. + Optional Exception indicating a failure that's causing the channel to complete. + The channel has already been marked as complete. + + + Attempts to mark the channel as being completed, meaning no more data will be written to it. + An indicating the failure causing no more data to be written, or null for success. + + if this operation successfully completes the channel; otherwise, if the channel could not be marked for completion, + for example due to having already been marked as such, or due to not supporting completion. + . + + + Attempts to write the specified item to the channel. + The item to write. + + if the item was written; otherwise, . + + + Returns a that will complete when space is available to write an item. + A used to cancel the wait operation. + A that will complete with a result when space is available to write an item + or with a result when no further writing will be permitted. + + + Asynchronously writes an item to the channel. + The value to write to the channel. + A used to cancel the write operation. + A that represents the asynchronous write operation. + + + Provides options that control the behavior of unbounded instances. + + + Initializes a new instance of the class. + + + \ No newline at end of file diff --git a/Game/Assets/Supabase/System.Threading.Channels.5.0.0/lib/netstandard2.1/System.Threading.Channels.xml.meta b/Game/Assets/Supabase/System.Threading.Channels.5.0.0/lib/netstandard2.1/System.Threading.Channels.xml.meta new file mode 100644 index 0000000..ff4f701 --- /dev/null +++ b/Game/Assets/Supabase/System.Threading.Channels.5.0.0/lib/netstandard2.1/System.Threading.Channels.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 96df9d16d5e1d964e88aa95cc4a81668 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Threading.Channels.5.0.0/useSharedDesignerContext.txt b/Game/Assets/Supabase/System.Threading.Channels.5.0.0/useSharedDesignerContext.txt new file mode 100644 index 0000000..e69de29 diff --git a/Game/Assets/Supabase/System.Threading.Channels.5.0.0/useSharedDesignerContext.txt.meta b/Game/Assets/Supabase/System.Threading.Channels.5.0.0/useSharedDesignerContext.txt.meta new file mode 100644 index 0000000..0d561db --- /dev/null +++ b/Game/Assets/Supabase/System.Threading.Channels.5.0.0/useSharedDesignerContext.txt.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: a322e9ca7834d2b4fa9d1a880e17b76f +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Threading.Channels.5.0.0/version.txt b/Game/Assets/Supabase/System.Threading.Channels.5.0.0/version.txt new file mode 100644 index 0000000..0a6d216 --- /dev/null +++ b/Game/Assets/Supabase/System.Threading.Channels.5.0.0/version.txt @@ -0,0 +1 @@ +cf258a14b70ad9069470a108f13765e0e5988f51 diff --git a/Game/Assets/Supabase/System.Threading.Channels.5.0.0/version.txt.meta b/Game/Assets/Supabase/System.Threading.Channels.5.0.0/version.txt.meta new file mode 100644 index 0000000..91053c1 --- /dev/null +++ b/Game/Assets/Supabase/System.Threading.Channels.5.0.0/version.txt.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: e48ced6a835b75147829403ddbb625df +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4.meta b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4.meta new file mode 100644 index 0000000..31983c2 --- /dev/null +++ b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8b80988a87a61ab438dc4875c69b487b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/.signature.p7s b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/.signature.p7s new file mode 100644 index 0000000000000000000000000000000000000000..e0ee9f435e686515a6d1ea60ac92d591352b314f GIT binary patch literal 18703 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 Zomhdj_WxFNO#DIHMJMl~m673;{|6~(JsAK1 literal 0 HcmV?d00001 diff --git a/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/LICENSE.TXT b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/LICENSE.TXT new file mode 100644 index 0000000..984713a --- /dev/null +++ b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/LICENSE.TXT @@ -0,0 +1,23 @@ +The MIT License (MIT) + +Copyright (c) .NET Foundation and Contributors + +All rights reserved. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/LICENSE.TXT.meta b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/LICENSE.TXT.meta new file mode 100644 index 0000000..cda926c --- /dev/null +++ b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/LICENSE.TXT.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 53a09e121bcfd3d4c9a94c9dfb09acce +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/System.Threading.Tasks.Extensions.4.5.4.nupkg b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/System.Threading.Tasks.Extensions.4.5.4.nupkg new file mode 100644 index 0000000000000000000000000000000000000000..a608bc53b86d1884af17171f9e0b0c424b0311c2 GIT binary patch literal 89582 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 literal 0 HcmV?d00001 diff --git a/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/System.Threading.Tasks.Extensions.4.5.4.nupkg.meta b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/System.Threading.Tasks.Extensions.4.5.4.nupkg.meta new file mode 100644 index 0000000..3b90315 --- /dev/null +++ b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/System.Threading.Tasks.Extensions.4.5.4.nupkg.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 368dadcc0f80c7f4fab6a49d26b9ad96 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/THIRD-PARTY-NOTICES.TXT b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/THIRD-PARTY-NOTICES.TXT new file mode 100644 index 0000000..db542ca --- /dev/null +++ b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/THIRD-PARTY-NOTICES.TXT @@ -0,0 +1,309 @@ +.NET Core uses third-party libraries or other resources that may be +distributed under licenses different than the .NET Core software. + +In the event that we accidentally failed to list a required notice, please +bring it to our attention. Post an issue or email us: + + dotnet@microsoft.com + +The attached notices are provided for information only. + +License notice for Slicing-by-8 +------------------------------- + +http://sourceforge.net/projects/slicing-by-8/ + +Copyright (c) 2004-2006 Intel Corporation - All Rights Reserved + + +This software program is licensed subject to the BSD License, available at +http://www.opensource.org/licenses/bsd-license.html. + + +License notice for Unicode data +------------------------------- + +http://www.unicode.org/copyright.html#License + +Copyright © 1991-2017 Unicode, Inc. All rights reserved. +Distributed under the Terms of Use in http://www.unicode.org/copyright.html. + +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Unicode data files and any associated documentation +(the "Data Files") or Unicode software and any associated documentation +(the "Software") to deal in the Data Files or Software +without restriction, including without limitation the rights to use, +copy, modify, merge, publish, distribute, and/or sell copies of +the Data Files or Software, and to permit persons to whom the Data Files +or Software are furnished to do so, provided that either +(a) this copyright and permission notice appear with all copies +of the Data Files or Software, or +(b) this copyright and permission notice appear in associated +Documentation. + +THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE +WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT OF THIRD PARTY RIGHTS. +IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS +NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL +DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THE DATA FILES OR SOFTWARE. + +Except as contained in this notice, the name of a copyright holder +shall not be used in advertising or otherwise to promote the sale, +use or other dealings in these Data Files or Software without prior +written authorization of the copyright holder. + +License notice for Zlib +----------------------- + +https://github.com/madler/zlib +http://zlib.net/zlib_license.html + +/* zlib.h -- interface of the 'zlib' general purpose compression library + version 1.2.11, January 15th, 2017 + + Copyright (C) 1995-2017 Jean-loup Gailly and Mark Adler + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. + + Jean-loup Gailly Mark Adler + jloup@gzip.org madler@alumni.caltech.edu + +*/ + +License notice for Mono +------------------------------- + +http://www.mono-project.com/docs/about-mono/ + +Copyright (c) .NET Foundation Contributors + +MIT License + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the Software), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +License notice for International Organization for Standardization +----------------------------------------------------------------- + +Portions (C) International Organization for Standardization 1986: + Permission to copy in any form is granted for use with + conforming SGML systems and applications as defined in + ISO 8879, provided this notice is included in all copies. + +License notice for Intel +------------------------ + +"Copyright (c) 2004-2006 Intel Corporation - All Rights Reserved + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation +and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +License notice for Xamarin and Novell +------------------------------------- + +Copyright (c) 2015 Xamarin, Inc (http://www.xamarin.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +Copyright (c) 2011 Novell, Inc (http://www.novell.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +Third party notice for W3C +-------------------------- + +"W3C SOFTWARE AND DOCUMENT NOTICE AND LICENSE +Status: This license takes effect 13 May, 2015. +This work is being provided by the copyright holders under the following license. +License +By obtaining and/or copying this work, you (the licensee) agree that you have read, understood, and will comply with the following terms and conditions. +Permission to copy, modify, and distribute this work, with or without modification, for any purpose and without fee or royalty is hereby granted, provided that you include the following on ALL copies of the work or portions thereof, including modifications: +The full text of this NOTICE in a location viewable to users of the redistributed or derivative work. +Any pre-existing intellectual property disclaimers, notices, or terms and conditions. If none exist, the W3C Software and Document Short Notice should be included. +Notice of any changes or modifications, through a copyright statement on the new code or document such as "This software or document includes material copied from or derived from [title and URI of the W3C document]. Copyright © [YEAR] W3C® (MIT, ERCIM, Keio, Beihang)." +Disclaimers +THIS WORK IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE OR DOCUMENT WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS. +COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR DOCUMENT. +The name and trademarks of copyright holders may NOT be used in advertising or publicity pertaining to the work without specific, written prior permission. Title to copyright in this work will at all times remain with copyright holders." + +License notice for Bit Twiddling Hacks +-------------------------------------- + +Bit Twiddling Hacks + +By Sean Eron Anderson +seander@cs.stanford.edu + +Individually, the code snippets here are in the public domain (unless otherwise +noted) — feel free to use them however you please. The aggregate collection and +descriptions are © 1997-2005 Sean Eron Anderson. The code and descriptions are +distributed in the hope that they will be useful, but WITHOUT ANY WARRANTY and +without even the implied warranty of merchantability or fitness for a particular +purpose. + +License notice for Brotli +-------------------------------------- + +Copyright (c) 2009, 2010, 2013-2016 by the Brotli Authors. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +compress_fragment.c: +Copyright (c) 2011, Google Inc. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +""AS IS"" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +decode_fuzzer.c: +Copyright (c) 2015 The Chromium Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +""AS IS"" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." + diff --git a/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/THIRD-PARTY-NOTICES.TXT.meta b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/THIRD-PARTY-NOTICES.TXT.meta new file mode 100644 index 0000000..c0cf38e --- /dev/null +++ b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/THIRD-PARTY-NOTICES.TXT.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 36ed1341acc18f54994936ce8cce300e +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib.meta b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib.meta new file mode 100644 index 0000000..999c173 --- /dev/null +++ b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: cb24ebe8e8a5a144295e336f90a2077f +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/MonoAndroid10.meta b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/MonoAndroid10.meta new file mode 100644 index 0000000..cc9069c --- /dev/null +++ b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/MonoAndroid10.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 4620c46c88e829345989c3e4f3a98d46 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/MonoAndroid10/_._ b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/MonoAndroid10/_._ new file mode 100644 index 0000000..e69de29 diff --git a/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/MonoAndroid10/_._.meta b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/MonoAndroid10/_._.meta new file mode 100644 index 0000000..3b300ad --- /dev/null +++ b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/MonoAndroid10/_._.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: a31b1d8168f130f46b609ce0cb7e7599 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/MonoTouch10.meta b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/MonoTouch10.meta new file mode 100644 index 0000000..4dae1d8 --- /dev/null +++ b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/MonoTouch10.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9305cb57c7d90f54e8fdbd07ad99b1b8 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/MonoTouch10/_._ b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/MonoTouch10/_._ new file mode 100644 index 0000000..e69de29 diff --git a/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/MonoTouch10/_._.meta b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/MonoTouch10/_._.meta new file mode 100644 index 0000000..b6e4b04 --- /dev/null +++ b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/MonoTouch10/_._.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 80de3e49a408a814593182ca0358752e +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/net461.meta b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/net461.meta new file mode 100644 index 0000000..7146e31 --- /dev/null +++ b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/net461.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d682a971176b99a458ece357d095afe5 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/net461/System.Threading.Tasks.Extensions.dll b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/net461/System.Threading.Tasks.Extensions.dll new file mode 100644 index 0000000..e124727 --- /dev/null +++ b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/net461/System.Threading.Tasks.Extensions.dll @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4f81ffd0dc7204db75afc35ea4291769b07c440592f28894260eea76626a23c6 +size 25984 diff --git a/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/net461/System.Threading.Tasks.Extensions.dll.meta b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/net461/System.Threading.Tasks.Extensions.dll.meta new file mode 100644 index 0000000..052a0c0 --- /dev/null +++ b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/net461/System.Threading.Tasks.Extensions.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: 8dec35795dcca384499a6ccd271c5ed7 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/net461/System.Threading.Tasks.Extensions.xml b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/net461/System.Threading.Tasks.Extensions.xml new file mode 100644 index 0000000..5e02a99 --- /dev/null +++ b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/net461/System.Threading.Tasks.Extensions.xml @@ -0,0 +1,166 @@ + + + System.Threading.Tasks.Extensions + + + + + + + + + + + + + + + + + + + Provides a value type that wraps a and a TResult, only one of which is used. + The result. + + + Initializes a new instance of the class using the supplied task that represents the operation. + The task. + The task argument is null. + + + Initializes a new instance of the class using the supplied result of a successful operation. + The result. + + + Retrieves a object that represents this . + The object that is wrapped in this if one exists, or a new object that represents the result. + + + Configures an awaiter for this value. + true to attempt to marshal the continuation back to the captured context; otherwise, false. + The configured awaiter. + + + Creates a method builder for use with an async method. + The created builder. + + + Determines whether the specified object is equal to the current object. + The object to compare with the current object. + true if the specified object is equal to the current object; otherwise, false. + + + Determines whether the specified object is equal to the current object. + The object to compare with the current object. + true if the specified object is equal to the current object; otherwise, false. + + + Creates an awaiter for this value. + The awaiter. + + + Returns the hash code for this instance. + The hash code for the current object. + + + Gets a value that indicates whether this object represents a canceled operation. + true if this object represents a canceled operation; otherwise, false. + + + Gets a value that indicates whether this object represents a completed operation. + true if this object represents a completed operation; otherwise, false. + + + Gets a value that indicates whether this object represents a successfully completed operation. + true if this object represents a successfully completed operation; otherwise, false. + + + Gets a value that indicates whether this object represents a failed operation. + true if this object represents a failed operation; otherwise, false. + + + Compares two values for equality. + The first value to compare. + The second value to compare. + true if the two values are equal; otherwise, false. + + + Determines whether two values are unequal. + The first value to compare. + The seconed value to compare. + true if the two values are not equal; otherwise, false. + + + Gets the result. + The result. + + + Returns a string that represents the current object. + A string that represents the current object. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/net461/System.Threading.Tasks.Extensions.xml.meta b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/net461/System.Threading.Tasks.Extensions.xml.meta new file mode 100644 index 0000000..00993a2 --- /dev/null +++ b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/net461/System.Threading.Tasks.Extensions.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: f5c5bfaf3c0a7624bab4a1c0eb6933fa +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/netcoreapp2.1.meta b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/netcoreapp2.1.meta new file mode 100644 index 0000000..477bfec --- /dev/null +++ b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/netcoreapp2.1.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b3b655f13c5c25b47af2c452def1e8a8 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/netcoreapp2.1/_._ b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/netcoreapp2.1/_._ new file mode 100644 index 0000000..e69de29 diff --git a/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/netcoreapp2.1/_._.meta b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/netcoreapp2.1/_._.meta new file mode 100644 index 0000000..29379cc --- /dev/null +++ b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/netcoreapp2.1/_._.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: ede282205fb7c64489cd00d27bd333ca +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/netstandard1.0.meta b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/netstandard1.0.meta new file mode 100644 index 0000000..ece9450 --- /dev/null +++ b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/netstandard1.0.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e67609cf4b2f1ab4b9d82ee5d2e43965 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/netstandard1.0/System.Threading.Tasks.Extensions.dll b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/netstandard1.0/System.Threading.Tasks.Extensions.dll new file mode 100644 index 0000000..30c93b4 --- /dev/null +++ b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/netstandard1.0/System.Threading.Tasks.Extensions.dll @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bb890d79b384cd094eb6fdf992d51b4ed1a0666d29d49772f7685a3bcbc9e11c +size 25984 diff --git a/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/netstandard1.0/System.Threading.Tasks.Extensions.dll.meta b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/netstandard1.0/System.Threading.Tasks.Extensions.dll.meta new file mode 100644 index 0000000..2230bb6 --- /dev/null +++ b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/netstandard1.0/System.Threading.Tasks.Extensions.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: 04c8e454b30987e4ebc775ef8b4233e2 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/netstandard1.0/System.Threading.Tasks.Extensions.xml b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/netstandard1.0/System.Threading.Tasks.Extensions.xml new file mode 100644 index 0000000..5e02a99 --- /dev/null +++ b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/netstandard1.0/System.Threading.Tasks.Extensions.xml @@ -0,0 +1,166 @@ + + + System.Threading.Tasks.Extensions + + + + + + + + + + + + + + + + + + + Provides a value type that wraps a and a TResult, only one of which is used. + The result. + + + Initializes a new instance of the class using the supplied task that represents the operation. + The task. + The task argument is null. + + + Initializes a new instance of the class using the supplied result of a successful operation. + The result. + + + Retrieves a object that represents this . + The object that is wrapped in this if one exists, or a new object that represents the result. + + + Configures an awaiter for this value. + true to attempt to marshal the continuation back to the captured context; otherwise, false. + The configured awaiter. + + + Creates a method builder for use with an async method. + The created builder. + + + Determines whether the specified object is equal to the current object. + The object to compare with the current object. + true if the specified object is equal to the current object; otherwise, false. + + + Determines whether the specified object is equal to the current object. + The object to compare with the current object. + true if the specified object is equal to the current object; otherwise, false. + + + Creates an awaiter for this value. + The awaiter. + + + Returns the hash code for this instance. + The hash code for the current object. + + + Gets a value that indicates whether this object represents a canceled operation. + true if this object represents a canceled operation; otherwise, false. + + + Gets a value that indicates whether this object represents a completed operation. + true if this object represents a completed operation; otherwise, false. + + + Gets a value that indicates whether this object represents a successfully completed operation. + true if this object represents a successfully completed operation; otherwise, false. + + + Gets a value that indicates whether this object represents a failed operation. + true if this object represents a failed operation; otherwise, false. + + + Compares two values for equality. + The first value to compare. + The second value to compare. + true if the two values are equal; otherwise, false. + + + Determines whether two values are unequal. + The first value to compare. + The seconed value to compare. + true if the two values are not equal; otherwise, false. + + + Gets the result. + The result. + + + Returns a string that represents the current object. + A string that represents the current object. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/netstandard1.0/System.Threading.Tasks.Extensions.xml.meta b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/netstandard1.0/System.Threading.Tasks.Extensions.xml.meta new file mode 100644 index 0000000..855661e --- /dev/null +++ b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/netstandard1.0/System.Threading.Tasks.Extensions.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: b744c84cb16028245b0d3c84be89a59d +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/netstandard2.0.meta b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/netstandard2.0.meta new file mode 100644 index 0000000..1020428 --- /dev/null +++ b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/netstandard2.0.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d7c1ac27842b2e14796090f26417e206 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/netstandard2.0/System.Threading.Tasks.Extensions.dll b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/netstandard2.0/System.Threading.Tasks.Extensions.dll new file mode 100644 index 0000000..8349b0e --- /dev/null +++ b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/netstandard2.0/System.Threading.Tasks.Extensions.dll @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:09901f63ebc4b8f0897b0128fb230c146529aee5c5cc90d7a7872e66a976bb5f +size 25984 diff --git a/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/netstandard2.0/System.Threading.Tasks.Extensions.dll.meta b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/netstandard2.0/System.Threading.Tasks.Extensions.dll.meta new file mode 100644 index 0000000..adb2d8c --- /dev/null +++ b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/netstandard2.0/System.Threading.Tasks.Extensions.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: e3e88c53ba51f2b4d906e4d4a542db8d +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/netstandard2.0/System.Threading.Tasks.Extensions.xml b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/netstandard2.0/System.Threading.Tasks.Extensions.xml new file mode 100644 index 0000000..5e02a99 --- /dev/null +++ b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/netstandard2.0/System.Threading.Tasks.Extensions.xml @@ -0,0 +1,166 @@ + + + System.Threading.Tasks.Extensions + + + + + + + + + + + + + + + + + + + Provides a value type that wraps a and a TResult, only one of which is used. + The result. + + + Initializes a new instance of the class using the supplied task that represents the operation. + The task. + The task argument is null. + + + Initializes a new instance of the class using the supplied result of a successful operation. + The result. + + + Retrieves a object that represents this . + The object that is wrapped in this if one exists, or a new object that represents the result. + + + Configures an awaiter for this value. + true to attempt to marshal the continuation back to the captured context; otherwise, false. + The configured awaiter. + + + Creates a method builder for use with an async method. + The created builder. + + + Determines whether the specified object is equal to the current object. + The object to compare with the current object. + true if the specified object is equal to the current object; otherwise, false. + + + Determines whether the specified object is equal to the current object. + The object to compare with the current object. + true if the specified object is equal to the current object; otherwise, false. + + + Creates an awaiter for this value. + The awaiter. + + + Returns the hash code for this instance. + The hash code for the current object. + + + Gets a value that indicates whether this object represents a canceled operation. + true if this object represents a canceled operation; otherwise, false. + + + Gets a value that indicates whether this object represents a completed operation. + true if this object represents a completed operation; otherwise, false. + + + Gets a value that indicates whether this object represents a successfully completed operation. + true if this object represents a successfully completed operation; otherwise, false. + + + Gets a value that indicates whether this object represents a failed operation. + true if this object represents a failed operation; otherwise, false. + + + Compares two values for equality. + The first value to compare. + The second value to compare. + true if the two values are equal; otherwise, false. + + + Determines whether two values are unequal. + The first value to compare. + The seconed value to compare. + true if the two values are not equal; otherwise, false. + + + Gets the result. + The result. + + + Returns a string that represents the current object. + A string that represents the current object. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/netstandard2.0/System.Threading.Tasks.Extensions.xml.meta b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/netstandard2.0/System.Threading.Tasks.Extensions.xml.meta new file mode 100644 index 0000000..b949f92 --- /dev/null +++ b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/netstandard2.0/System.Threading.Tasks.Extensions.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 945faa17babbace44b702249ef5f27a2 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/portable-net45+win8+wp8+wpa81.meta b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/portable-net45+win8+wp8+wpa81.meta new file mode 100644 index 0000000..a2cc89e --- /dev/null +++ b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/portable-net45+win8+wp8+wpa81.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5a4d52d3d6a35034ab57b41d8a67f87f +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/portable-net45+win8+wp8+wpa81/System.Threading.Tasks.Extensions.dll b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/portable-net45+win8+wp8+wpa81/System.Threading.Tasks.Extensions.dll new file mode 100644 index 0000000..30c93b4 --- /dev/null +++ b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/portable-net45+win8+wp8+wpa81/System.Threading.Tasks.Extensions.dll @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bb890d79b384cd094eb6fdf992d51b4ed1a0666d29d49772f7685a3bcbc9e11c +size 25984 diff --git a/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/portable-net45+win8+wp8+wpa81/System.Threading.Tasks.Extensions.dll.meta b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/portable-net45+win8+wp8+wpa81/System.Threading.Tasks.Extensions.dll.meta new file mode 100644 index 0000000..03a3a8c --- /dev/null +++ b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/portable-net45+win8+wp8+wpa81/System.Threading.Tasks.Extensions.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: a352b524e30549648a7e2dfa8cd6b3d9 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/portable-net45+win8+wp8+wpa81/System.Threading.Tasks.Extensions.xml b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/portable-net45+win8+wp8+wpa81/System.Threading.Tasks.Extensions.xml new file mode 100644 index 0000000..5e02a99 --- /dev/null +++ b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/portable-net45+win8+wp8+wpa81/System.Threading.Tasks.Extensions.xml @@ -0,0 +1,166 @@ + + + System.Threading.Tasks.Extensions + + + + + + + + + + + + + + + + + + + Provides a value type that wraps a and a TResult, only one of which is used. + The result. + + + Initializes a new instance of the class using the supplied task that represents the operation. + The task. + The task argument is null. + + + Initializes a new instance of the class using the supplied result of a successful operation. + The result. + + + Retrieves a object that represents this . + The object that is wrapped in this if one exists, or a new object that represents the result. + + + Configures an awaiter for this value. + true to attempt to marshal the continuation back to the captured context; otherwise, false. + The configured awaiter. + + + Creates a method builder for use with an async method. + The created builder. + + + Determines whether the specified object is equal to the current object. + The object to compare with the current object. + true if the specified object is equal to the current object; otherwise, false. + + + Determines whether the specified object is equal to the current object. + The object to compare with the current object. + true if the specified object is equal to the current object; otherwise, false. + + + Creates an awaiter for this value. + The awaiter. + + + Returns the hash code for this instance. + The hash code for the current object. + + + Gets a value that indicates whether this object represents a canceled operation. + true if this object represents a canceled operation; otherwise, false. + + + Gets a value that indicates whether this object represents a completed operation. + true if this object represents a completed operation; otherwise, false. + + + Gets a value that indicates whether this object represents a successfully completed operation. + true if this object represents a successfully completed operation; otherwise, false. + + + Gets a value that indicates whether this object represents a failed operation. + true if this object represents a failed operation; otherwise, false. + + + Compares two values for equality. + The first value to compare. + The second value to compare. + true if the two values are equal; otherwise, false. + + + Determines whether two values are unequal. + The first value to compare. + The seconed value to compare. + true if the two values are not equal; otherwise, false. + + + Gets the result. + The result. + + + Returns a string that represents the current object. + A string that represents the current object. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/portable-net45+win8+wp8+wpa81/System.Threading.Tasks.Extensions.xml.meta b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/portable-net45+win8+wp8+wpa81/System.Threading.Tasks.Extensions.xml.meta new file mode 100644 index 0000000..923891e --- /dev/null +++ b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/portable-net45+win8+wp8+wpa81/System.Threading.Tasks.Extensions.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: b071db21858dfd144a46babcce916c0e +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/xamarinios10.meta b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/xamarinios10.meta new file mode 100644 index 0000000..c3d93eb --- /dev/null +++ b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/xamarinios10.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 404a51c73735c4f46b75e40febe09f9a +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/xamarinios10/_._ b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/xamarinios10/_._ new file mode 100644 index 0000000..e69de29 diff --git a/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/xamarinios10/_._.meta b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/xamarinios10/_._.meta new file mode 100644 index 0000000..52b581d --- /dev/null +++ b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/xamarinios10/_._.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: d3e767aacd3bf964795179bd35293169 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/xamarinmac20.meta b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/xamarinmac20.meta new file mode 100644 index 0000000..2041368 --- /dev/null +++ b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/xamarinmac20.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 64301ed26328f584cb4f7d31a929fe0b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/xamarinmac20/_._ b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/xamarinmac20/_._ new file mode 100644 index 0000000..e69de29 diff --git a/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/xamarinmac20/_._.meta b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/xamarinmac20/_._.meta new file mode 100644 index 0000000..6e47929 --- /dev/null +++ b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/xamarinmac20/_._.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: ae7358f29abc0b44c84b98ef73d8bbbc +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/xamarintvos10.meta b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/xamarintvos10.meta new file mode 100644 index 0000000..4bde813 --- /dev/null +++ b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/xamarintvos10.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 49fafd01a49b0cb43842a97d2e358e8b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/xamarintvos10/_._ b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/xamarintvos10/_._ new file mode 100644 index 0000000..e69de29 diff --git a/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/xamarintvos10/_._.meta b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/xamarintvos10/_._.meta new file mode 100644 index 0000000..e9dfe12 --- /dev/null +++ b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/xamarintvos10/_._.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 5c16799b7fd06014996ea82d1a1efb48 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/xamarinwatchos10.meta b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/xamarinwatchos10.meta new file mode 100644 index 0000000..45f2cfb --- /dev/null +++ b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/xamarinwatchos10.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d94e7025b7a42594f8210f7561ffb1c5 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/xamarinwatchos10/_._ b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/xamarinwatchos10/_._ new file mode 100644 index 0000000..e69de29 diff --git a/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/xamarinwatchos10/_._.meta b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/xamarinwatchos10/_._.meta new file mode 100644 index 0000000..5f95e58 --- /dev/null +++ b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/lib/xamarinwatchos10/_._.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: c58c8d458e568a347bb4ac47720d5d86 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/ref.meta b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/ref.meta new file mode 100644 index 0000000..10edf66 --- /dev/null +++ b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/ref.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e1fb51d758b0d6c42b6ff5c36c97420e +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/ref/MonoAndroid10.meta b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/ref/MonoAndroid10.meta new file mode 100644 index 0000000..74e61ad --- /dev/null +++ b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/ref/MonoAndroid10.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 05311f5b18c894045be17d3c0e717ed8 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/ref/MonoAndroid10/_._ b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/ref/MonoAndroid10/_._ new file mode 100644 index 0000000..e69de29 diff --git a/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/ref/MonoAndroid10/_._.meta b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/ref/MonoAndroid10/_._.meta new file mode 100644 index 0000000..b0ae434 --- /dev/null +++ b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/ref/MonoAndroid10/_._.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 4984215d6dd5d18409fbf2494940c003 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/ref/MonoTouch10.meta b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/ref/MonoTouch10.meta new file mode 100644 index 0000000..fc682c4 --- /dev/null +++ b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/ref/MonoTouch10.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 634d7ae9a34853f4db07eeb7331aa23f +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/ref/MonoTouch10/_._ b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/ref/MonoTouch10/_._ new file mode 100644 index 0000000..e69de29 diff --git a/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/ref/MonoTouch10/_._.meta b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/ref/MonoTouch10/_._.meta new file mode 100644 index 0000000..b1a128b --- /dev/null +++ b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/ref/MonoTouch10/_._.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 39672470348b25e41b71a48db9ad6751 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/ref/netcoreapp2.1.meta b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/ref/netcoreapp2.1.meta new file mode 100644 index 0000000..8425829 --- /dev/null +++ b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/ref/netcoreapp2.1.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 84fadfbf8644e1040846eac4d0c77644 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/ref/netcoreapp2.1/_._ b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/ref/netcoreapp2.1/_._ new file mode 100644 index 0000000..e69de29 diff --git a/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/ref/netcoreapp2.1/_._.meta b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/ref/netcoreapp2.1/_._.meta new file mode 100644 index 0000000..c3c451c --- /dev/null +++ b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/ref/netcoreapp2.1/_._.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 020b09d58dbcc984fb35fb56489118ce +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/ref/xamarinios10.meta b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/ref/xamarinios10.meta new file mode 100644 index 0000000..df19e33 --- /dev/null +++ b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/ref/xamarinios10.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 00d80846d2c9a634db4f1bb8ff9b5d24 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/ref/xamarinios10/_._ b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/ref/xamarinios10/_._ new file mode 100644 index 0000000..e69de29 diff --git a/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/ref/xamarinios10/_._.meta b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/ref/xamarinios10/_._.meta new file mode 100644 index 0000000..7c35927 --- /dev/null +++ b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/ref/xamarinios10/_._.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: ccaa54bc7e31d644caecb3873f4a96b9 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/ref/xamarinmac20.meta b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/ref/xamarinmac20.meta new file mode 100644 index 0000000..156e357 --- /dev/null +++ b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/ref/xamarinmac20.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c06248ac4089f064d8e57c2df2ef7baa +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/ref/xamarinmac20/_._ b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/ref/xamarinmac20/_._ new file mode 100644 index 0000000..e69de29 diff --git a/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/ref/xamarinmac20/_._.meta b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/ref/xamarinmac20/_._.meta new file mode 100644 index 0000000..cd01bc4 --- /dev/null +++ b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/ref/xamarinmac20/_._.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 0e4c78253eaa8ad468efbba041808590 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/ref/xamarintvos10.meta b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/ref/xamarintvos10.meta new file mode 100644 index 0000000..fc22fa6 --- /dev/null +++ b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/ref/xamarintvos10.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 55825b0f00ffc9a4cac2bef878382c47 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/ref/xamarintvos10/_._ b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/ref/xamarintvos10/_._ new file mode 100644 index 0000000..e69de29 diff --git a/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/ref/xamarintvos10/_._.meta b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/ref/xamarintvos10/_._.meta new file mode 100644 index 0000000..c619598 --- /dev/null +++ b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/ref/xamarintvos10/_._.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: e0c5192e6beecdb4a9ee51734085f03d +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/ref/xamarinwatchos10.meta b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/ref/xamarinwatchos10.meta new file mode 100644 index 0000000..d419aae --- /dev/null +++ b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/ref/xamarinwatchos10.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f1fa47b89a5bb1c42ad5c5bdd6ca09e1 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/ref/xamarinwatchos10/_._ b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/ref/xamarinwatchos10/_._ new file mode 100644 index 0000000..e69de29 diff --git a/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/ref/xamarinwatchos10/_._.meta b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/ref/xamarinwatchos10/_._.meta new file mode 100644 index 0000000..4c41e3b --- /dev/null +++ b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/ref/xamarinwatchos10/_._.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: d62de2c1078d6e94e91338f69c38ad8f +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/useSharedDesignerContext.txt b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/useSharedDesignerContext.txt new file mode 100644 index 0000000..e69de29 diff --git a/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/useSharedDesignerContext.txt.meta b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/useSharedDesignerContext.txt.meta new file mode 100644 index 0000000..80bdbb0 --- /dev/null +++ b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/useSharedDesignerContext.txt.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 9a93e7f2cc364ee4992f814f8d073f90 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/version.txt b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/version.txt new file mode 100644 index 0000000..8d6cdd6 --- /dev/null +++ b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/version.txt @@ -0,0 +1 @@ +7601f4f6225089ffb291dc7d58293c7bbf5c5d4f diff --git a/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/version.txt.meta b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/version.txt.meta new file mode 100644 index 0000000..55e5146 --- /dev/null +++ b/Game/Assets/Supabase/System.Threading.Tasks.Extensions.4.5.4/version.txt.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 2d1285e7c3a1aa94e97066f40e112af3 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/Websocket.Client.4.6.1.meta b/Game/Assets/Supabase/Websocket.Client.4.6.1.meta new file mode 100644 index 0000000..3aee4c4 --- /dev/null +++ b/Game/Assets/Supabase/Websocket.Client.4.6.1.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c15dcc4c1a4c6fe4281542dd7686cef8 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/Websocket.Client.4.6.1/.signature.p7s b/Game/Assets/Supabase/Websocket.Client.4.6.1/.signature.p7s new file mode 100644 index 0000000000000000000000000000000000000000..e06832004d1d7434307a136a05598ceef7dd6ee1 GIT binary patch literal 11512 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 + Log.Information($"Reconnection happened, type: {info.Type}")); + + client.MessageReceived.Subscribe(msg => Log.Information($"Message received: {msg}")); + client.Start(); + + Task.Run(() => client.Send("{ message }")); + + exitEvent.WaitOne(); +} +``` + +More usage examples: +* integration tests ([link](test_integration/Websocket.Client.Tests.Integration)) +* console sample ([link](test_integration/Websocket.Client.Sample/Program.cs)) +* .net framework sample ([link](test_integration/Websocket.Client.Sample.NetFramework)) +* blazor sample ([link](test_integration/Websocket.Client.Sample.Blazor)) + + +**Pull Requests are welcome!** + +### Advanced configuration + +To set some advanced configurations, which are available on the native `ClientWebSocket` class, +you have to provide the factory method as a second parameter to WebsocketClient. +That factory method will be called on every reconnection to get a new instance of the `ClientWebSocket`. + +```csharp +var factory = new Func(() => new ClientWebSocket +{ + Options = + { + KeepAliveInterval = TimeSpan.FromSeconds(5), + Proxy = ... + ClientCertificates = ... + } +}); + +var client = new WebsocketClient(url, factory); +client.Start(); +``` + +Also, you can access the current native class via `client.NativeClient`. +But use it with caution, on every reconnection there will be a new instance. + +#### Change URL on the fly + +It is possible to change the remote server URL dynamically. Example: + +```chsarp +client.Url = new Uri("wss://my_new_url");; +await client.Reconnect(); +``` + + +### Reconnecting + +A built-in reconnection invokes after 1 minute (default) of not receiving any messages from the server. +It is possible to configure that timeout via `communicator.ReconnectTimeout`. +Also, a stream `ReconnectionHappened` sends information about a type of reconnection. +However, if you are subscribed to low-rate channels, you will likely encounter that timeout - higher it to a few minutes or implement `ping-pong` interaction on your own every few seconds. + +In the case of a remote server outage, there is a built-in functionality that slows down reconnection requests +(could be configured via `client.ErrorReconnectTimeout`, the default is 1 minute). + +Beware that you **need to resubscribe to channels** after reconnection happens. You should subscribe to `ReconnectionHappened` stream and send subscription requests. + + +### Multi-threading + +Observables from Reactive Extensions are single threaded by default. It means that your code inside subscriptions is called synchronously and as soon as the message comes from websocket API. It brings a great advantage of not to worry about synchronization, but if your code takes a longer time to execute it will block the receiving method, buffer the messages and may end up losing messages. For that reason consider to handle messages on the other thread and unblock receiving thread as soon as possible. I've prepared a few examples for you: + +#### Default behavior + +Every subscription code is called on a main websocket thread. Every subscription is synchronized together. No parallel execution. It will block the receiving thread. + +```csharp +client + .MessageReceived + .Where(msg => msg.Text != null) + .Where(msg => msg.Text.StartsWith("{")) + .Subscribe(obj => { code1 }); + +client + .MessageReceived + .Where(msg => msg.Text != null) + .Where(msg => msg.Text.StartsWith("[")) + .Subscribe(arr => { code2 }); + +// 'code1' and 'code2' are called in a correct order, according to websocket flow +// ----- code1 ----- code1 ----- ----- code1 +// ----- ----- code2 ----- code2 code2 ----- +``` + +#### Parallel subscriptions + +Every single subscription code is called on a separate thread. Every single subscription is synchronized, but different subscriptions are called in parallel. + +```csharp +client + .MessageReceived + .Where(msg => msg.Text != null) + .Where(msg => msg.Text.StartsWith("{")) + .ObserveOn(TaskPoolScheduler.Default) + .Subscribe(obj => { code1 }); + +client + .MessageReceived + .Where(msg => msg.Text != null) + .Where(msg => msg.Text.StartsWith("[")) + .ObserveOn(TaskPoolScheduler.Default) + .Subscribe(arr => { code2 }); + +// 'code1' and 'code2' are called in parallel, do not follow websocket flow +// ----- code1 ----- code1 ----- code1 ----- +// ----- code2 code2 ----- code2 code2 code2 +``` + + #### Parallel subscriptions with synchronization + +In case you want to run your subscription code on the separate thread but still want to follow websocket flow through every subscription, use synchronization with gates: + +```csharp +private static readonly object GATE1 = new object(); +client + .MessageReceived + .Where(msg => msg.Text != null) + .Where(msg => msg.Text.StartsWith("{")) + .ObserveOn(TaskPoolScheduler.Default) + .Synchronize(GATE1) + .Subscribe(obj => { code1 }); + +client + .MessageReceived + .Where(msg => msg.Text != null) + .Where(msg => msg.Text.StartsWith("[")) + .ObserveOn(TaskPoolScheduler.Default) + .Synchronize(GATE1) + .Subscribe(arr => { code2 }); + +// 'code1' and 'code2' are called concurrently and follow websocket flow +// ----- code1 ----- code1 ----- ----- code1 +// ----- ----- code2 ----- code2 code2 ---- +``` + +### Async/Await integration + +Using `async/await` in your subscribe methods is a bit tricky. Subscribe from Rx.NET doesn't `await` tasks, +so it won't block stream execution and cause sometimes undesired concurrency. For example: + +```csharp +client + .MessageReceived + .Subscribe(async msg => { + // do smth 1 + await Task.Delay(5000); // waits 5 sec, could be HTTP call or something else + // do smth 2 + }); +``` + +That `await Task.Delay` won't block stream and subscribe method will be called multiple times concurrently. +If you want to buffer messages and process them one-by-one, then use this: + +```csharp +client + .MessageReceived + .Select(msg => Observable.FromAsync(async () => { + // do smth 1 + await Task.Delay(5000); // waits 5 sec, could be HTTP call or something else + // do smth 2 + })) + .Concat() // executes sequentially + .Subscribe(); +``` + +If you want to process them concurrently (avoid synchronization), then use this + +```csharp +client + .MessageReceived + .Select(msg => Observable.FromAsync(async () => { + // do smth 1 + await Task.Delay(5000); // waits 5 sec, could be HTTP call or something else + // do smth 2 + })) + .Merge() // executes concurrently + // .Merge(4) you can limit concurrency with a parameter + // .Merge(1) is same as .Concat() (sequentially) + // .Merge(0) is invalid (throws exception) + .Subscribe(); +``` + +More info on [Github issue](https://github.com/dotnet/reactive/issues/459). + +Don't worry about websocket connection, those sequential execution via `.Concat()` or `.Merge(1)` has no effect on receiving messages. +It won't affect receiving thread, only buffers messages inside `MessageReceived` stream. + +But beware of [producer-consumer problem](https://en.wikipedia.org/wiki/Producer%E2%80%93consumer_problem) when the consumer will be too slow. Here is a [StackOverflow issue](https://stackoverflow.com/questions/11010602/with-rx-how-do-i-ignore-all-except-the-latest-value-when-my-subscribe-method-is/15876519#15876519) +with an example how to ignore/discard buffered messages and always process only the last one. + + +### Available for help +I do consulting, please don't hesitate to contact me if you have a custom solution you would like me to implement ([web](http://mkotas.cz/), +) diff --git a/Game/Assets/Supabase/Websocket.Client.4.6.1/README.md.meta b/Game/Assets/Supabase/Websocket.Client.4.6.1/README.md.meta new file mode 100644 index 0000000..96bfca3 --- /dev/null +++ b/Game/Assets/Supabase/Websocket.Client.4.6.1/README.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 6f07317f539ae734f9bca06cfd7bdfb7 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/Websocket.Client.4.6.1/Websocket.Client.4.6.1.nupkg b/Game/Assets/Supabase/Websocket.Client.4.6.1/Websocket.Client.4.6.1.nupkg new file mode 100644 index 0000000000000000000000000000000000000000..4ed1b08cc36d18d05abb372e66df540885da19fc GIT binary patch literal 173866 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 literal 0 HcmV?d00001 diff --git a/Game/Assets/Supabase/Websocket.Client.4.6.1/Websocket.Client.4.6.1.nupkg.meta b/Game/Assets/Supabase/Websocket.Client.4.6.1/Websocket.Client.4.6.1.nupkg.meta new file mode 100644 index 0000000..9cfdd37 --- /dev/null +++ b/Game/Assets/Supabase/Websocket.Client.4.6.1/Websocket.Client.4.6.1.nupkg.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 86387a66b8b634c4db6a860bec545f4d +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/Websocket.Client.4.6.1/icon.png b/Game/Assets/Supabase/Websocket.Client.4.6.1/icon.png new file mode 100644 index 0000000..3a9f808 --- /dev/null +++ b/Game/Assets/Supabase/Websocket.Client.4.6.1/icon.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:62782b2718ddc8c4d505baac320d681e7a590dd459a6fae48b9383325c27bc85 +size 5481 diff --git a/Game/Assets/Supabase/Websocket.Client.4.6.1/icon.png.meta b/Game/Assets/Supabase/Websocket.Client.4.6.1/icon.png.meta new file mode 100644 index 0000000..4db2295 --- /dev/null +++ b/Game/Assets/Supabase/Websocket.Client.4.6.1/icon.png.meta @@ -0,0 +1,114 @@ +fileFormatVersion: 2 +guid: cc9a090c90e80a24b96382dfa0cc8c49 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/Websocket.Client.4.6.1/lib.meta b/Game/Assets/Supabase/Websocket.Client.4.6.1/lib.meta new file mode 100644 index 0000000..f172ddc --- /dev/null +++ b/Game/Assets/Supabase/Websocket.Client.4.6.1/lib.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c5dc17df597e35b4ebab2c29910ea21a +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/Websocket.Client.4.6.1/lib/net5.0.meta b/Game/Assets/Supabase/Websocket.Client.4.6.1/lib/net5.0.meta new file mode 100644 index 0000000..0c07515 --- /dev/null +++ b/Game/Assets/Supabase/Websocket.Client.4.6.1/lib/net5.0.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ec12fb67beade3a4ea7279323b2b2d37 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/Websocket.Client.4.6.1/lib/net5.0/Websocket.Client.dll b/Game/Assets/Supabase/Websocket.Client.4.6.1/lib/net5.0/Websocket.Client.dll new file mode 100644 index 0000000..24244c7 --- /dev/null +++ b/Game/Assets/Supabase/Websocket.Client.4.6.1/lib/net5.0/Websocket.Client.dll @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:33d1e1c2f354961b05bf1804f7a7a74293065efa04028d889ebbe177e2977a70 +size 77312 diff --git a/Game/Assets/Supabase/Websocket.Client.4.6.1/lib/net5.0/Websocket.Client.dll.meta b/Game/Assets/Supabase/Websocket.Client.4.6.1/lib/net5.0/Websocket.Client.dll.meta new file mode 100644 index 0000000..2574a50 --- /dev/null +++ b/Game/Assets/Supabase/Websocket.Client.4.6.1/lib/net5.0/Websocket.Client.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: 119c3eff9f0f3e44aabb69cc6cde4d56 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/Websocket.Client.4.6.1/lib/net5.0/Websocket.Client.xml b/Game/Assets/Supabase/Websocket.Client.4.6.1/lib/net5.0/Websocket.Client.xml new file mode 100644 index 0000000..cf99b33 --- /dev/null +++ b/Game/Assets/Supabase/Websocket.Client.4.6.1/lib/net5.0/Websocket.Client.xml @@ -0,0 +1,1262 @@ + + + + Websocket.Client + + + + + Custom exception that indicates bad user/client input + + + + + + + + + + + + + + Custom exception related to WebsocketClient + + + + + + + + + + + + + + A simple websocket client with built-in reconnection and error handling + + + + + Get or set target websocket url + + + + + Stream with received message (raw format) + + + + + Stream for reconnection event (triggered after the new connection) + + + + + Stream for disconnection event (triggered after the connection was lost) + + + + + Time range in ms, how long to wait before reconnecting if no message comes from server. + Set null to disable this feature. + Default: 1 minute. + + + + + Time range in ms, how long to wait before reconnecting if last reconnection failed. + Set null to disable this feature. + Default: 1 minute. + + + + + Get or set the name of the current websocket client instance. + For logging purpose (in case you use more parallel websocket clients and want to distinguish between them) + + + + + Returns true if Start() method was called at least once. False if not started or disposed + + + + + Returns true if client is running and connected to the server + + + + + Enable or disable reconnection functionality (enabled by default) + + + + + Enable or disable text message conversion from binary to string (via 'MessageEncoding' property). + Default: true + + + + + Returns currently used native websocket client. + Use with caution, on every reconnection there will be a new instance. + + + + + Sets used encoding for sending and receiving text messages. + Default: UTF8 + + + + + Start listening to the websocket stream on the background thread. + In case of connection error it doesn't throw an exception. + Only streams a message via 'DisconnectionHappened' and logs it. + + + + + Start listening to the websocket stream on the background thread. + In case of connection error it throws an exception. + Fail fast approach. + + + + + Stop/close websocket connection with custom close code. + Method doesn't throw exception, only logs it and mark client as closed. + + Returns true if close was initiated successfully + + + + Stop/close websocket connection with custom close code. + Method could throw exceptions, but client is marked as closed anyway. + + Returns true if close was initiated successfully + + + + Send message to the websocket channel. + It inserts the message to the queue and actual sending is done on an other thread + + Message to be sent + + + + Send binary message to the websocket channel. + It inserts the message to the queue and actual sending is done on an other thread + + Binary message to be sent + + + + Send binary message to the websocket channel. + It inserts the message to the queue and actual sending is done on an other thread + + Binary message to be sent + + + + Send message to the websocket channel. + It doesn't use a sending queue, + beware of issue while sending two messages in the exact same time + on the full .NET Framework platform + + Message to be sent + + + + Send binary message to the websocket channel. + It doesn't use a sending queue, + beware of issue while sending two messages in the exact same time + on the full .NET Framework platform + + Message to be sent + + + + Force reconnection. + Closes current websocket stream and perform a new connection to the server. + In case of connection error it doesn't throw an exception, but tries to reconnect indefinitely. + + + + + Force reconnection. + Closes current websocket stream and perform a new connection to the server. + In case of connection error it throws an exception and doesn't perform any other reconnection try. + + + + + Stream/publish fake message (via 'MessageReceived' observable). + Use for testing purposes to simulate a server message. + + Message to be stream + + + + Info about happened disconnection + + + + + + + + Disconnection reason + + + + + Indicates the reason why the remote endpoint initiated the close handshake + + + + + Allows the remote endpoint to describe the reason why the connection was closed + + + + + The subprotocol that was negotiated during the opening handshake + + + + + Exception that cause disconnection, can be null + + + + + Set to true if you want to cancel ongoing reconnection + + + + + Set to true if you want to cancel ongoing connection close (only when Type = ByServer) + + + + + Simple factory method + + + + + Type that specify happened disconnection + + + + + Type used for exit event, disposing of the websocket client + + + + + Type used when connection to websocket was lost in meantime + + + + + Type used when connection to websocket was lost by not receiving any message in given time-range + + + + + Type used when connection or reconnection returned error + + + + + Type used when disconnection was requested by user + + + + + Type used when disconnection was requested by server + + + + + Info about happened reconnection + + + + + + + + Reconnection reason + + + + + Simple factory method + + + + + Type that specify happened reconnection + + + + + Type used for initial connection to websocket stream + + + + + Type used when connection to websocket was lost in meantime + + + + + Type used when connection to websocket was lost by not receiving any message in given time-range + + + + + Type used after unsuccessful previous reconnection + + + + + Type used when reconnection was requested by user + + + + + Type used when reconnection was requested by server + + + + + Received message, could be Text or Binary + + + + + Received text message (only if type = WebSocketMessageType.Text) + + + + + Received text message (only if type = WebSocketMessageType.Binary) + + + + + Current message type (Text or Binary) + + + + + Return string info about the message + + + + + Create text response message + + + + + Create binary response message + + + + + Class that wraps SemaphoreSlim and enables to use locking inside 'using' blocks easily + Don't need to bother with releasing and handling SemaphoreSlim correctly + Example: + + using(await _asyncLock.LockAsync()) + { + // do your synchronized work + } + + + + + + Class that wraps SemaphoreSlim and enables to use locking inside 'using' blocks easily + Don't need to bother with releasing and handling SemaphoreSlim correctly + + + + + Use inside 'using' block + + + + + Use inside 'using' block with await + + + + + It throws if value is null or empty/white spaces + + The value to be validated + Input parameter name + + + + It throws if value is null + + The value to be validated + Input parameter name + + + + It throws if collection is null or collection is empty + + The collection to be validated + Input parameter name + + + + It throws if value is not in specified range + + The value to be validated + Input parameter name + Minimal value of input + Maximum value of input + + + + It throws if value is not in specified range + + The value to be validated + Input parameter name + Minimal value of input + Maximum value of input + + + + It throws if value is not in specified range + + The value to be validated + Input parameter name + Minimal value of input + Maximum value of input + + + + A simple websocket client with built-in reconnection and error handling + + + + + A simple websocket client with built-in reconnection and error handling + + Target websocket url (wss://) + Optional factory for native ClientWebSocket, use it whenever you need some custom features (proxy, settings, etc) + + + + A simple websocket client with built-in reconnection and error handling + + Target websocket url (wss://) + Optional factory for native creating and connecting to a websocket. The method should return a which is connected. Use it whenever you need some custom features (proxy, settings, etc) + + + + + + + Stream with received message (raw format) + + + + + Stream for reconnection event (triggered after the new connection) + + + + + Stream for disconnection event (triggered after the connection was lost) + + + + + Time range in ms, how long to wait before reconnecting if no message comes from server. + Set null to disable this feature. + Default: 1 minute + + + + + Time range in ms, how long to wait before reconnecting if last reconnection failed. + Set null to disable this feature. + Default: 1 minute + + + + + Enable or disable reconnection functionality (enabled by default) + + + + + Get or set the name of the current websocket client instance. + For logging purpose (in case you use more parallel websocket clients and want to distinguish between them) + + + + + Returns true if Start() method was called at least once. False if not started or disposed + + + + + Returns true if client is running and connected to the server + + + + + Enable or disable text message conversion from binary to string (via 'MessageEncoding' property). + Default: true + + + + + + + + + + + Terminate the websocket connection and cleanup everything + + + + + Start listening to the websocket stream on the background thread. + In case of connection error it doesn't throw an exception. + Only streams a message via 'DisconnectionHappened' and logs it. + + + + + Start listening to the websocket stream on the background thread. + In case of connection error it throws an exception. + Fail fast approach. + + + + + Stop/close websocket connection with custom close code. + Method doesn't throw exception, only logs it and mark client as closed. + + Returns true if close was initiated successfully + + + + Stop/close websocket connection with custom close code. + Method could throw exceptions, but client is marked as closed anyway. + + Returns true if close was initiated successfully + + + + Force reconnection. + Closes current websocket stream and perform a new connection to the server. + In case of connection error it doesn't throw an exception, but tries to reconnect indefinitely. + + + + + Force reconnection. + Closes current websocket stream and perform a new connection to the server. + In case of connection error it throws an exception and doesn't perform any other reconnection try. + + + + + Send text message to the websocket channel. + It inserts the message to the queue and actual sending is done on an other thread + + Text message to be sent + + + + Send binary message to the websocket channel. + It inserts the message to the queue and actual sending is done on an other thread + + Binary message to be sent + + + + Send binary message to the websocket channel. + It inserts the message to the queue and actual sending is done on an other thread + + Binary message to be sent + + + + Send text message to the websocket channel. + It doesn't use a sending queue, + beware of issue while sending two messages in the exact same time + on the full .NET Framework platform + + Message to be sent + + + + Send binary message to the websocket channel. + It doesn't use a sending queue, + beware of issue while sending two messages in the exact same time + on the full .NET Framework platform + + Message to be sent + + + + Stream/publish fake message (via 'MessageReceived' observable). + Use for testing purposes to simulate a server message. + + Message to be stream + + + + Simple interface that represent a logger. + + + + + Log a message the specified log level. + + The log level. + The message function. + An optional exception. + Optional format parameters for the message generated by the messagefunc. + true if the message was logged. Otherwise false. + + Note to implementers: the message func should not be called if the loglevel is not enabled + so as not to incur performance penalties. + To check IsEnabled call Log with only LogLevel and check the return value, no event will be written. + + + + + Represents a way to get a + + + + + Gets the specified named logger. + + Name of the logger. + The logger reference. + + + + Opens a nested diagnostics context. Not supported in EntLib logging. + + The message to add to the diagnostics context. + A disposable that when disposed removes the message from the context. + + + + Opens a mapped diagnostics context. Not supported in EntLib logging. + + A key. + A value. + Determines whether to call the destructor or not. + A disposable that when disposed removes the map from the context. + + + + Extension methods for the interface. + + + + + Check if the log level is enabled. + + The to check with. + True if the log level is enabled; false otherwise. + + + + Check if the log level is enabled. + + The to check with. + True if the log level is enabled; false otherwise. + + + + Check if the log level is enabled. + + The to check with. + True if the log level is enabled; false otherwise. + + + + Check if the log level is enabled. + + The to check with. + True if the log level is enabled; false otherwise. + + + + Check if the log level is enabled. + + The to check with. + True if the log level is enabled; false otherwise. + + + + Check if the log level is enabled. + + The to check with. + True if the log level is enabled; false otherwise. + + + + Logs a message at the log level, if enabled. + + The to use. + The message function. + + + + Logs a message at the log level, if enabled. + + The to use. + The message. + + + + Logs a message at the log level, if enabled. + + The to use. + The message. + Optional format parameters for the message. + + + + Logs an exception at the log level, if enabled. + + The to use. + The exception. + The message. + Optional format parameters for the message. + + + + Logs a message at the log level, if enabled. + + The to use. + The message. + Optional format parameters for the message. + + + + Logs an exception at the log level, if enabled. + + The to use. + The message. + The exception. + + + + Logs an exception at the log level, if enabled. + + The to use. + The message. + The exception. + Optional format parameters for the message. + + + + Logs a message at the log level, if enabled. + + The to use. + The message function. + + + + Logs a message at the log level, if enabled. + + The to use. + The message. + + + + Logs a message at the log level, if enabled. + + The to use. + The message. + Optional format parameters for the message. + + + + Logs an exception at the log level, if enabled. + + The to use. + The exception. + The message. + Optional format parameters for the message. + + + + Logs a message at the log level, if enabled. + + The to use. + The message. + Optional format parameters for the message. + + + + Logs an exception at the log level, if enabled. + + The to use. + The message. + The exception. + Optional format parameters for the message. + + + + Logs a message at the log level, if enabled. + + The to use. + The message function. + + + + Logs a message at the log level, if enabled. + + The to use. + The message. + + + + Logs a message at the log level, if enabled. + + The to use. + The message. + Optional format parameters for the message. + + + + Logs an exception at the log level, if enabled. + + The to use. + The exception. + The message. + Optional format parameters for the message. + + + + Logs a message at the log level, if enabled. + + The to use. + The message. + Optional format parameters for the message. + + + + Logs an exception at the log level, if enabled. + + The to use. + The message. + The exception. + Optional format parameters for the message. + + + + Logs a message at the log level, if enabled. + + The to use. + The message function. + + + + Logs a message at the log level, if enabled. + + The to use. + The message. + + + + Logs a message at the log level, if enabled. + + The to use. + The message. + Optional format parameters for the message. + + + + Logs an exception at the log level, if enabled. + + The to use. + The exception. + The message. + Optional format parameters for the message. + + + + Logs a message at the log level, if enabled. + + The to use. + The message. + Optional format parameters for the message. + + + + Logs an exception at the log level, if enabled. + + The to use. + The message. + The exception. + Optional format parameters for the message. + + + + Logs a message at the log level, if enabled. + + The to use. + The message function. + + + + Logs a message at the log level, if enabled. + + The to use. + The message. + + + + Logs a message at the log level, if enabled. + + The to use. + The message. + Optional format parameters for the message. + + + + Logs an exception at the log level, if enabled. + + The to use. + The exception. + The message. + Optional format parameters for the message. + + + + Logs a message at the log level, if enabled. + + The to use. + The message. + Optional format parameters for the message. + + + + Logs an exception at the log level, if enabled. + + The to use. + The message. + The exception. + Optional format parameters for the message. + + + + Logs a message at the log level, if enabled. + + The to use. + The message function. + + + + Logs a message at the log level, if enabled. + + The to use. + The message. + + + + Logs a message at the log level, if enabled. + + The to use. + The message. + Optional format parameters for the message. + + + + Logs an exception at the log level, if enabled. + + The to use. + The exception. + The message. + Optional format parameters for the message. + + + + Logs a message at the log level, if enabled. + + The to use. + The message. + Optional format parameters for the message. + + + + Logs an exception at the log level, if enabled. + + The to use. + The message. + The exception. + Optional format parameters for the message. + + + + The log level. + + + + + Trace + + + + + Debug + + + + + Info + + + + + Warn + + + + + Error + + + + + Fatal + + + + + Provides a mechanism to set the . + + + + + Sets the current log provider. + + The log provider. + + + + Gets or sets a value indicating whether this is logging is disabled. + + + true if logging is disabled; otherwise, false. + + + + + Sets an action that is invoked when a consumer of your library has called SetCurrentLogProvider. It is + important that hook into this if you are using child libraries (especially ilmerged ones) that are using + LibLog (or other logging abstraction) so you adapt and delegate to them. + + + + + + Gets a logger for the specified type. + + The type whose name will be used for the logger. + An instance of + + + + Gets a logger for the current class. + + An instance of + + + + Gets a logger for the specified type. + + The type whose name will be used for the logger. + If the type is null then this name will be used as the log name instead + An instance of + + + + Gets a logger with the specified name. + + The name. + An instance of + + + + Opens a nested diagnostics context. + + A message. + An that closes context when disposed. + + + + Opens a mapped diagnostics context. + + A key. + A value. + A optional paramater to indicate message should be destructured. + An that closes context when disposed. + + + + Exception thrown by LibLog. + + + + + Initializes a new LibLogException with the specified message. + + The message + + + + Initializes a new LibLogException with the specified message and inner exception. + + The message. + The inner exception. + + + + Some logging frameworks support structured logging, such as serilog. This will allow you to add names to structured + data in a format string: + For example: Log("Log message to {user}", user). This only works with serilog, but as the user of LibLog, you don't + know if serilog is actually + used. So, this class simulates that. it will replace any text in {curly braces} with an index number. + "Log {message} to {user}" would turn into => "Log {0} to {1}". Then the format parameters are handled using regular + .net string.Format. + + The message builder. + The format parameters. + + + + + Base class for specific log providers. + + + + + Error message should initializing the log provider fail. + + + + + Initialize an instance of the class by initializing the references + to the nested and mapped diagnostics context-obtaining functions. + + + + + Gets the specified named logger. + + Name of the logger. + The logger reference. + + + + Opens a nested diagnostics context. Not supported in EntLib logging. + + The message to add to the diagnostics context. + A disposable that when disposed removes the message from the context. + + + + Opens a mapped diagnostics context. Not supported in EntLib logging. + + A key. + A value. + Determines whether to call the destructor or not. + A disposable that when disposed removes the map from the context. + + + + Returns the provider-specific method to open a nested diagnostics context. + + A provider-specific method to open a nested diagnostics context. + + + + Returns the provider-specific method to open a mapped diagnostics context. + + A provider-specific method to open a mapped diagnostics context. + + + + Delegate defining the signature of the method opening a nested diagnostics context. + + The message to add to the diagnostics context. + A disposable that when disposed removes the message from the context. + + + + Delegate defining the signature of the method opening a mapped diagnostics context. + + A key. + A value. + Determines whether to call the destructor or not. + A disposable that when disposed removes the map from the context. + + + + Finds a type using a type name and assembly name. + + The name of the type. + The name of the assembly. + The requested type or null if it was not found. + + + + Finds a type using a type name and a list of assembly names to search. + + The name of the type. + A list of assembly names to search. + The request type or null if it was not found. + + + + The form of the Loupe Log.Write method we're using + + + + + Gets or sets a value indicating whether [provider is available override]. Used in tests. + + + true if [provider is available override]; otherwise, false. + + + + + Logger delegate. + + The log level + The message function + The exception + The format parameters + A boolean. + + + diff --git a/Game/Assets/Supabase/Websocket.Client.4.6.1/lib/net5.0/Websocket.Client.xml.meta b/Game/Assets/Supabase/Websocket.Client.4.6.1/lib/net5.0/Websocket.Client.xml.meta new file mode 100644 index 0000000..d830c61 --- /dev/null +++ b/Game/Assets/Supabase/Websocket.Client.4.6.1/lib/net5.0/Websocket.Client.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 6ed7e729dfad52d46905ef4e91a70fe4 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/Websocket.Client.4.6.1/lib/net6.0.meta b/Game/Assets/Supabase/Websocket.Client.4.6.1/lib/net6.0.meta new file mode 100644 index 0000000..c7c88bf --- /dev/null +++ b/Game/Assets/Supabase/Websocket.Client.4.6.1/lib/net6.0.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1fbcda6c0904f3d4183d8a4851c7cbf1 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/Websocket.Client.4.6.1/lib/net6.0/Websocket.Client.dll b/Game/Assets/Supabase/Websocket.Client.4.6.1/lib/net6.0/Websocket.Client.dll new file mode 100644 index 0000000..ffcba89 --- /dev/null +++ b/Game/Assets/Supabase/Websocket.Client.4.6.1/lib/net6.0/Websocket.Client.dll @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4e6fbb86aa7fdc83ac60a87c6da6055a089d8d85bcc89e4c752b8a83416d73b4 +size 77824 diff --git a/Game/Assets/Supabase/Websocket.Client.4.6.1/lib/net6.0/Websocket.Client.dll.meta b/Game/Assets/Supabase/Websocket.Client.4.6.1/lib/net6.0/Websocket.Client.dll.meta new file mode 100644 index 0000000..87d0ba1 --- /dev/null +++ b/Game/Assets/Supabase/Websocket.Client.4.6.1/lib/net6.0/Websocket.Client.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: b65624af048c5f244ac9240266d804ec +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/Websocket.Client.4.6.1/lib/net6.0/Websocket.Client.xml b/Game/Assets/Supabase/Websocket.Client.4.6.1/lib/net6.0/Websocket.Client.xml new file mode 100644 index 0000000..cf99b33 --- /dev/null +++ b/Game/Assets/Supabase/Websocket.Client.4.6.1/lib/net6.0/Websocket.Client.xml @@ -0,0 +1,1262 @@ + + + + Websocket.Client + + + + + Custom exception that indicates bad user/client input + + + + + + + + + + + + + + Custom exception related to WebsocketClient + + + + + + + + + + + + + + A simple websocket client with built-in reconnection and error handling + + + + + Get or set target websocket url + + + + + Stream with received message (raw format) + + + + + Stream for reconnection event (triggered after the new connection) + + + + + Stream for disconnection event (triggered after the connection was lost) + + + + + Time range in ms, how long to wait before reconnecting if no message comes from server. + Set null to disable this feature. + Default: 1 minute. + + + + + Time range in ms, how long to wait before reconnecting if last reconnection failed. + Set null to disable this feature. + Default: 1 minute. + + + + + Get or set the name of the current websocket client instance. + For logging purpose (in case you use more parallel websocket clients and want to distinguish between them) + + + + + Returns true if Start() method was called at least once. False if not started or disposed + + + + + Returns true if client is running and connected to the server + + + + + Enable or disable reconnection functionality (enabled by default) + + + + + Enable or disable text message conversion from binary to string (via 'MessageEncoding' property). + Default: true + + + + + Returns currently used native websocket client. + Use with caution, on every reconnection there will be a new instance. + + + + + Sets used encoding for sending and receiving text messages. + Default: UTF8 + + + + + Start listening to the websocket stream on the background thread. + In case of connection error it doesn't throw an exception. + Only streams a message via 'DisconnectionHappened' and logs it. + + + + + Start listening to the websocket stream on the background thread. + In case of connection error it throws an exception. + Fail fast approach. + + + + + Stop/close websocket connection with custom close code. + Method doesn't throw exception, only logs it and mark client as closed. + + Returns true if close was initiated successfully + + + + Stop/close websocket connection with custom close code. + Method could throw exceptions, but client is marked as closed anyway. + + Returns true if close was initiated successfully + + + + Send message to the websocket channel. + It inserts the message to the queue and actual sending is done on an other thread + + Message to be sent + + + + Send binary message to the websocket channel. + It inserts the message to the queue and actual sending is done on an other thread + + Binary message to be sent + + + + Send binary message to the websocket channel. + It inserts the message to the queue and actual sending is done on an other thread + + Binary message to be sent + + + + Send message to the websocket channel. + It doesn't use a sending queue, + beware of issue while sending two messages in the exact same time + on the full .NET Framework platform + + Message to be sent + + + + Send binary message to the websocket channel. + It doesn't use a sending queue, + beware of issue while sending two messages in the exact same time + on the full .NET Framework platform + + Message to be sent + + + + Force reconnection. + Closes current websocket stream and perform a new connection to the server. + In case of connection error it doesn't throw an exception, but tries to reconnect indefinitely. + + + + + Force reconnection. + Closes current websocket stream and perform a new connection to the server. + In case of connection error it throws an exception and doesn't perform any other reconnection try. + + + + + Stream/publish fake message (via 'MessageReceived' observable). + Use for testing purposes to simulate a server message. + + Message to be stream + + + + Info about happened disconnection + + + + + + + + Disconnection reason + + + + + Indicates the reason why the remote endpoint initiated the close handshake + + + + + Allows the remote endpoint to describe the reason why the connection was closed + + + + + The subprotocol that was negotiated during the opening handshake + + + + + Exception that cause disconnection, can be null + + + + + Set to true if you want to cancel ongoing reconnection + + + + + Set to true if you want to cancel ongoing connection close (only when Type = ByServer) + + + + + Simple factory method + + + + + Type that specify happened disconnection + + + + + Type used for exit event, disposing of the websocket client + + + + + Type used when connection to websocket was lost in meantime + + + + + Type used when connection to websocket was lost by not receiving any message in given time-range + + + + + Type used when connection or reconnection returned error + + + + + Type used when disconnection was requested by user + + + + + Type used when disconnection was requested by server + + + + + Info about happened reconnection + + + + + + + + Reconnection reason + + + + + Simple factory method + + + + + Type that specify happened reconnection + + + + + Type used for initial connection to websocket stream + + + + + Type used when connection to websocket was lost in meantime + + + + + Type used when connection to websocket was lost by not receiving any message in given time-range + + + + + Type used after unsuccessful previous reconnection + + + + + Type used when reconnection was requested by user + + + + + Type used when reconnection was requested by server + + + + + Received message, could be Text or Binary + + + + + Received text message (only if type = WebSocketMessageType.Text) + + + + + Received text message (only if type = WebSocketMessageType.Binary) + + + + + Current message type (Text or Binary) + + + + + Return string info about the message + + + + + Create text response message + + + + + Create binary response message + + + + + Class that wraps SemaphoreSlim and enables to use locking inside 'using' blocks easily + Don't need to bother with releasing and handling SemaphoreSlim correctly + Example: + + using(await _asyncLock.LockAsync()) + { + // do your synchronized work + } + + + + + + Class that wraps SemaphoreSlim and enables to use locking inside 'using' blocks easily + Don't need to bother with releasing and handling SemaphoreSlim correctly + + + + + Use inside 'using' block + + + + + Use inside 'using' block with await + + + + + It throws if value is null or empty/white spaces + + The value to be validated + Input parameter name + + + + It throws if value is null + + The value to be validated + Input parameter name + + + + It throws if collection is null or collection is empty + + The collection to be validated + Input parameter name + + + + It throws if value is not in specified range + + The value to be validated + Input parameter name + Minimal value of input + Maximum value of input + + + + It throws if value is not in specified range + + The value to be validated + Input parameter name + Minimal value of input + Maximum value of input + + + + It throws if value is not in specified range + + The value to be validated + Input parameter name + Minimal value of input + Maximum value of input + + + + A simple websocket client with built-in reconnection and error handling + + + + + A simple websocket client with built-in reconnection and error handling + + Target websocket url (wss://) + Optional factory for native ClientWebSocket, use it whenever you need some custom features (proxy, settings, etc) + + + + A simple websocket client with built-in reconnection and error handling + + Target websocket url (wss://) + Optional factory for native creating and connecting to a websocket. The method should return a which is connected. Use it whenever you need some custom features (proxy, settings, etc) + + + + + + + Stream with received message (raw format) + + + + + Stream for reconnection event (triggered after the new connection) + + + + + Stream for disconnection event (triggered after the connection was lost) + + + + + Time range in ms, how long to wait before reconnecting if no message comes from server. + Set null to disable this feature. + Default: 1 minute + + + + + Time range in ms, how long to wait before reconnecting if last reconnection failed. + Set null to disable this feature. + Default: 1 minute + + + + + Enable or disable reconnection functionality (enabled by default) + + + + + Get or set the name of the current websocket client instance. + For logging purpose (in case you use more parallel websocket clients and want to distinguish between them) + + + + + Returns true if Start() method was called at least once. False if not started or disposed + + + + + Returns true if client is running and connected to the server + + + + + Enable or disable text message conversion from binary to string (via 'MessageEncoding' property). + Default: true + + + + + + + + + + + Terminate the websocket connection and cleanup everything + + + + + Start listening to the websocket stream on the background thread. + In case of connection error it doesn't throw an exception. + Only streams a message via 'DisconnectionHappened' and logs it. + + + + + Start listening to the websocket stream on the background thread. + In case of connection error it throws an exception. + Fail fast approach. + + + + + Stop/close websocket connection with custom close code. + Method doesn't throw exception, only logs it and mark client as closed. + + Returns true if close was initiated successfully + + + + Stop/close websocket connection with custom close code. + Method could throw exceptions, but client is marked as closed anyway. + + Returns true if close was initiated successfully + + + + Force reconnection. + Closes current websocket stream and perform a new connection to the server. + In case of connection error it doesn't throw an exception, but tries to reconnect indefinitely. + + + + + Force reconnection. + Closes current websocket stream and perform a new connection to the server. + In case of connection error it throws an exception and doesn't perform any other reconnection try. + + + + + Send text message to the websocket channel. + It inserts the message to the queue and actual sending is done on an other thread + + Text message to be sent + + + + Send binary message to the websocket channel. + It inserts the message to the queue and actual sending is done on an other thread + + Binary message to be sent + + + + Send binary message to the websocket channel. + It inserts the message to the queue and actual sending is done on an other thread + + Binary message to be sent + + + + Send text message to the websocket channel. + It doesn't use a sending queue, + beware of issue while sending two messages in the exact same time + on the full .NET Framework platform + + Message to be sent + + + + Send binary message to the websocket channel. + It doesn't use a sending queue, + beware of issue while sending two messages in the exact same time + on the full .NET Framework platform + + Message to be sent + + + + Stream/publish fake message (via 'MessageReceived' observable). + Use for testing purposes to simulate a server message. + + Message to be stream + + + + Simple interface that represent a logger. + + + + + Log a message the specified log level. + + The log level. + The message function. + An optional exception. + Optional format parameters for the message generated by the messagefunc. + true if the message was logged. Otherwise false. + + Note to implementers: the message func should not be called if the loglevel is not enabled + so as not to incur performance penalties. + To check IsEnabled call Log with only LogLevel and check the return value, no event will be written. + + + + + Represents a way to get a + + + + + Gets the specified named logger. + + Name of the logger. + The logger reference. + + + + Opens a nested diagnostics context. Not supported in EntLib logging. + + The message to add to the diagnostics context. + A disposable that when disposed removes the message from the context. + + + + Opens a mapped diagnostics context. Not supported in EntLib logging. + + A key. + A value. + Determines whether to call the destructor or not. + A disposable that when disposed removes the map from the context. + + + + Extension methods for the interface. + + + + + Check if the log level is enabled. + + The to check with. + True if the log level is enabled; false otherwise. + + + + Check if the log level is enabled. + + The to check with. + True if the log level is enabled; false otherwise. + + + + Check if the log level is enabled. + + The to check with. + True if the log level is enabled; false otherwise. + + + + Check if the log level is enabled. + + The to check with. + True if the log level is enabled; false otherwise. + + + + Check if the log level is enabled. + + The to check with. + True if the log level is enabled; false otherwise. + + + + Check if the log level is enabled. + + The to check with. + True if the log level is enabled; false otherwise. + + + + Logs a message at the log level, if enabled. + + The to use. + The message function. + + + + Logs a message at the log level, if enabled. + + The to use. + The message. + + + + Logs a message at the log level, if enabled. + + The to use. + The message. + Optional format parameters for the message. + + + + Logs an exception at the log level, if enabled. + + The to use. + The exception. + The message. + Optional format parameters for the message. + + + + Logs a message at the log level, if enabled. + + The to use. + The message. + Optional format parameters for the message. + + + + Logs an exception at the log level, if enabled. + + The to use. + The message. + The exception. + + + + Logs an exception at the log level, if enabled. + + The to use. + The message. + The exception. + Optional format parameters for the message. + + + + Logs a message at the log level, if enabled. + + The to use. + The message function. + + + + Logs a message at the log level, if enabled. + + The to use. + The message. + + + + Logs a message at the log level, if enabled. + + The to use. + The message. + Optional format parameters for the message. + + + + Logs an exception at the log level, if enabled. + + The to use. + The exception. + The message. + Optional format parameters for the message. + + + + Logs a message at the log level, if enabled. + + The to use. + The message. + Optional format parameters for the message. + + + + Logs an exception at the log level, if enabled. + + The to use. + The message. + The exception. + Optional format parameters for the message. + + + + Logs a message at the log level, if enabled. + + The to use. + The message function. + + + + Logs a message at the log level, if enabled. + + The to use. + The message. + + + + Logs a message at the log level, if enabled. + + The to use. + The message. + Optional format parameters for the message. + + + + Logs an exception at the log level, if enabled. + + The to use. + The exception. + The message. + Optional format parameters for the message. + + + + Logs a message at the log level, if enabled. + + The to use. + The message. + Optional format parameters for the message. + + + + Logs an exception at the log level, if enabled. + + The to use. + The message. + The exception. + Optional format parameters for the message. + + + + Logs a message at the log level, if enabled. + + The to use. + The message function. + + + + Logs a message at the log level, if enabled. + + The to use. + The message. + + + + Logs a message at the log level, if enabled. + + The to use. + The message. + Optional format parameters for the message. + + + + Logs an exception at the log level, if enabled. + + The to use. + The exception. + The message. + Optional format parameters for the message. + + + + Logs a message at the log level, if enabled. + + The to use. + The message. + Optional format parameters for the message. + + + + Logs an exception at the log level, if enabled. + + The to use. + The message. + The exception. + Optional format parameters for the message. + + + + Logs a message at the log level, if enabled. + + The to use. + The message function. + + + + Logs a message at the log level, if enabled. + + The to use. + The message. + + + + Logs a message at the log level, if enabled. + + The to use. + The message. + Optional format parameters for the message. + + + + Logs an exception at the log level, if enabled. + + The to use. + The exception. + The message. + Optional format parameters for the message. + + + + Logs a message at the log level, if enabled. + + The to use. + The message. + Optional format parameters for the message. + + + + Logs an exception at the log level, if enabled. + + The to use. + The message. + The exception. + Optional format parameters for the message. + + + + Logs a message at the log level, if enabled. + + The to use. + The message function. + + + + Logs a message at the log level, if enabled. + + The to use. + The message. + + + + Logs a message at the log level, if enabled. + + The to use. + The message. + Optional format parameters for the message. + + + + Logs an exception at the log level, if enabled. + + The to use. + The exception. + The message. + Optional format parameters for the message. + + + + Logs a message at the log level, if enabled. + + The to use. + The message. + Optional format parameters for the message. + + + + Logs an exception at the log level, if enabled. + + The to use. + The message. + The exception. + Optional format parameters for the message. + + + + The log level. + + + + + Trace + + + + + Debug + + + + + Info + + + + + Warn + + + + + Error + + + + + Fatal + + + + + Provides a mechanism to set the . + + + + + Sets the current log provider. + + The log provider. + + + + Gets or sets a value indicating whether this is logging is disabled. + + + true if logging is disabled; otherwise, false. + + + + + Sets an action that is invoked when a consumer of your library has called SetCurrentLogProvider. It is + important that hook into this if you are using child libraries (especially ilmerged ones) that are using + LibLog (or other logging abstraction) so you adapt and delegate to them. + + + + + + Gets a logger for the specified type. + + The type whose name will be used for the logger. + An instance of + + + + Gets a logger for the current class. + + An instance of + + + + Gets a logger for the specified type. + + The type whose name will be used for the logger. + If the type is null then this name will be used as the log name instead + An instance of + + + + Gets a logger with the specified name. + + The name. + An instance of + + + + Opens a nested diagnostics context. + + A message. + An that closes context when disposed. + + + + Opens a mapped diagnostics context. + + A key. + A value. + A optional paramater to indicate message should be destructured. + An that closes context when disposed. + + + + Exception thrown by LibLog. + + + + + Initializes a new LibLogException with the specified message. + + The message + + + + Initializes a new LibLogException with the specified message and inner exception. + + The message. + The inner exception. + + + + Some logging frameworks support structured logging, such as serilog. This will allow you to add names to structured + data in a format string: + For example: Log("Log message to {user}", user). This only works with serilog, but as the user of LibLog, you don't + know if serilog is actually + used. So, this class simulates that. it will replace any text in {curly braces} with an index number. + "Log {message} to {user}" would turn into => "Log {0} to {1}". Then the format parameters are handled using regular + .net string.Format. + + The message builder. + The format parameters. + + + + + Base class for specific log providers. + + + + + Error message should initializing the log provider fail. + + + + + Initialize an instance of the class by initializing the references + to the nested and mapped diagnostics context-obtaining functions. + + + + + Gets the specified named logger. + + Name of the logger. + The logger reference. + + + + Opens a nested diagnostics context. Not supported in EntLib logging. + + The message to add to the diagnostics context. + A disposable that when disposed removes the message from the context. + + + + Opens a mapped diagnostics context. Not supported in EntLib logging. + + A key. + A value. + Determines whether to call the destructor or not. + A disposable that when disposed removes the map from the context. + + + + Returns the provider-specific method to open a nested diagnostics context. + + A provider-specific method to open a nested diagnostics context. + + + + Returns the provider-specific method to open a mapped diagnostics context. + + A provider-specific method to open a mapped diagnostics context. + + + + Delegate defining the signature of the method opening a nested diagnostics context. + + The message to add to the diagnostics context. + A disposable that when disposed removes the message from the context. + + + + Delegate defining the signature of the method opening a mapped diagnostics context. + + A key. + A value. + Determines whether to call the destructor or not. + A disposable that when disposed removes the map from the context. + + + + Finds a type using a type name and assembly name. + + The name of the type. + The name of the assembly. + The requested type or null if it was not found. + + + + Finds a type using a type name and a list of assembly names to search. + + The name of the type. + A list of assembly names to search. + The request type or null if it was not found. + + + + The form of the Loupe Log.Write method we're using + + + + + Gets or sets a value indicating whether [provider is available override]. Used in tests. + + + true if [provider is available override]; otherwise, false. + + + + + Logger delegate. + + The log level + The message function + The exception + The format parameters + A boolean. + + + diff --git a/Game/Assets/Supabase/Websocket.Client.4.6.1/lib/net6.0/Websocket.Client.xml.meta b/Game/Assets/Supabase/Websocket.Client.4.6.1/lib/net6.0/Websocket.Client.xml.meta new file mode 100644 index 0000000..2b34834 --- /dev/null +++ b/Game/Assets/Supabase/Websocket.Client.4.6.1/lib/net6.0/Websocket.Client.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 399402c395e4f2d40a65b4b7b0deabce +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/Websocket.Client.4.6.1/lib/netstandard2.0.meta b/Game/Assets/Supabase/Websocket.Client.4.6.1/lib/netstandard2.0.meta new file mode 100644 index 0000000..1d89cb2 --- /dev/null +++ b/Game/Assets/Supabase/Websocket.Client.4.6.1/lib/netstandard2.0.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5ecab82d08b925e4c954da0b8f8e9b8b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/Websocket.Client.4.6.1/lib/netstandard2.0/Websocket.Client.dll b/Game/Assets/Supabase/Websocket.Client.4.6.1/lib/netstandard2.0/Websocket.Client.dll new file mode 100644 index 0000000..1c281ef --- /dev/null +++ b/Game/Assets/Supabase/Websocket.Client.4.6.1/lib/netstandard2.0/Websocket.Client.dll @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fb1bbaf5693bd989adc01d675245ce4a7ea379089a82b4c1368603e7f2728ada +size 76288 diff --git a/Game/Assets/Supabase/Websocket.Client.4.6.1/lib/netstandard2.0/Websocket.Client.dll.meta b/Game/Assets/Supabase/Websocket.Client.4.6.1/lib/netstandard2.0/Websocket.Client.dll.meta new file mode 100644 index 0000000..db67485 --- /dev/null +++ b/Game/Assets/Supabase/Websocket.Client.4.6.1/lib/netstandard2.0/Websocket.Client.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: 57bc332aacf88ca4a8b3964cf89fab1a +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/Websocket.Client.4.6.1/lib/netstandard2.0/Websocket.Client.xml b/Game/Assets/Supabase/Websocket.Client.4.6.1/lib/netstandard2.0/Websocket.Client.xml new file mode 100644 index 0000000..cf99b33 --- /dev/null +++ b/Game/Assets/Supabase/Websocket.Client.4.6.1/lib/netstandard2.0/Websocket.Client.xml @@ -0,0 +1,1262 @@ + + + + Websocket.Client + + + + + Custom exception that indicates bad user/client input + + + + + + + + + + + + + + Custom exception related to WebsocketClient + + + + + + + + + + + + + + A simple websocket client with built-in reconnection and error handling + + + + + Get or set target websocket url + + + + + Stream with received message (raw format) + + + + + Stream for reconnection event (triggered after the new connection) + + + + + Stream for disconnection event (triggered after the connection was lost) + + + + + Time range in ms, how long to wait before reconnecting if no message comes from server. + Set null to disable this feature. + Default: 1 minute. + + + + + Time range in ms, how long to wait before reconnecting if last reconnection failed. + Set null to disable this feature. + Default: 1 minute. + + + + + Get or set the name of the current websocket client instance. + For logging purpose (in case you use more parallel websocket clients and want to distinguish between them) + + + + + Returns true if Start() method was called at least once. False if not started or disposed + + + + + Returns true if client is running and connected to the server + + + + + Enable or disable reconnection functionality (enabled by default) + + + + + Enable or disable text message conversion from binary to string (via 'MessageEncoding' property). + Default: true + + + + + Returns currently used native websocket client. + Use with caution, on every reconnection there will be a new instance. + + + + + Sets used encoding for sending and receiving text messages. + Default: UTF8 + + + + + Start listening to the websocket stream on the background thread. + In case of connection error it doesn't throw an exception. + Only streams a message via 'DisconnectionHappened' and logs it. + + + + + Start listening to the websocket stream on the background thread. + In case of connection error it throws an exception. + Fail fast approach. + + + + + Stop/close websocket connection with custom close code. + Method doesn't throw exception, only logs it and mark client as closed. + + Returns true if close was initiated successfully + + + + Stop/close websocket connection with custom close code. + Method could throw exceptions, but client is marked as closed anyway. + + Returns true if close was initiated successfully + + + + Send message to the websocket channel. + It inserts the message to the queue and actual sending is done on an other thread + + Message to be sent + + + + Send binary message to the websocket channel. + It inserts the message to the queue and actual sending is done on an other thread + + Binary message to be sent + + + + Send binary message to the websocket channel. + It inserts the message to the queue and actual sending is done on an other thread + + Binary message to be sent + + + + Send message to the websocket channel. + It doesn't use a sending queue, + beware of issue while sending two messages in the exact same time + on the full .NET Framework platform + + Message to be sent + + + + Send binary message to the websocket channel. + It doesn't use a sending queue, + beware of issue while sending two messages in the exact same time + on the full .NET Framework platform + + Message to be sent + + + + Force reconnection. + Closes current websocket stream and perform a new connection to the server. + In case of connection error it doesn't throw an exception, but tries to reconnect indefinitely. + + + + + Force reconnection. + Closes current websocket stream and perform a new connection to the server. + In case of connection error it throws an exception and doesn't perform any other reconnection try. + + + + + Stream/publish fake message (via 'MessageReceived' observable). + Use for testing purposes to simulate a server message. + + Message to be stream + + + + Info about happened disconnection + + + + + + + + Disconnection reason + + + + + Indicates the reason why the remote endpoint initiated the close handshake + + + + + Allows the remote endpoint to describe the reason why the connection was closed + + + + + The subprotocol that was negotiated during the opening handshake + + + + + Exception that cause disconnection, can be null + + + + + Set to true if you want to cancel ongoing reconnection + + + + + Set to true if you want to cancel ongoing connection close (only when Type = ByServer) + + + + + Simple factory method + + + + + Type that specify happened disconnection + + + + + Type used for exit event, disposing of the websocket client + + + + + Type used when connection to websocket was lost in meantime + + + + + Type used when connection to websocket was lost by not receiving any message in given time-range + + + + + Type used when connection or reconnection returned error + + + + + Type used when disconnection was requested by user + + + + + Type used when disconnection was requested by server + + + + + Info about happened reconnection + + + + + + + + Reconnection reason + + + + + Simple factory method + + + + + Type that specify happened reconnection + + + + + Type used for initial connection to websocket stream + + + + + Type used when connection to websocket was lost in meantime + + + + + Type used when connection to websocket was lost by not receiving any message in given time-range + + + + + Type used after unsuccessful previous reconnection + + + + + Type used when reconnection was requested by user + + + + + Type used when reconnection was requested by server + + + + + Received message, could be Text or Binary + + + + + Received text message (only if type = WebSocketMessageType.Text) + + + + + Received text message (only if type = WebSocketMessageType.Binary) + + + + + Current message type (Text or Binary) + + + + + Return string info about the message + + + + + Create text response message + + + + + Create binary response message + + + + + Class that wraps SemaphoreSlim and enables to use locking inside 'using' blocks easily + Don't need to bother with releasing and handling SemaphoreSlim correctly + Example: + + using(await _asyncLock.LockAsync()) + { + // do your synchronized work + } + + + + + + Class that wraps SemaphoreSlim and enables to use locking inside 'using' blocks easily + Don't need to bother with releasing and handling SemaphoreSlim correctly + + + + + Use inside 'using' block + + + + + Use inside 'using' block with await + + + + + It throws if value is null or empty/white spaces + + The value to be validated + Input parameter name + + + + It throws if value is null + + The value to be validated + Input parameter name + + + + It throws if collection is null or collection is empty + + The collection to be validated + Input parameter name + + + + It throws if value is not in specified range + + The value to be validated + Input parameter name + Minimal value of input + Maximum value of input + + + + It throws if value is not in specified range + + The value to be validated + Input parameter name + Minimal value of input + Maximum value of input + + + + It throws if value is not in specified range + + The value to be validated + Input parameter name + Minimal value of input + Maximum value of input + + + + A simple websocket client with built-in reconnection and error handling + + + + + A simple websocket client with built-in reconnection and error handling + + Target websocket url (wss://) + Optional factory for native ClientWebSocket, use it whenever you need some custom features (proxy, settings, etc) + + + + A simple websocket client with built-in reconnection and error handling + + Target websocket url (wss://) + Optional factory for native creating and connecting to a websocket. The method should return a which is connected. Use it whenever you need some custom features (proxy, settings, etc) + + + + + + + Stream with received message (raw format) + + + + + Stream for reconnection event (triggered after the new connection) + + + + + Stream for disconnection event (triggered after the connection was lost) + + + + + Time range in ms, how long to wait before reconnecting if no message comes from server. + Set null to disable this feature. + Default: 1 minute + + + + + Time range in ms, how long to wait before reconnecting if last reconnection failed. + Set null to disable this feature. + Default: 1 minute + + + + + Enable or disable reconnection functionality (enabled by default) + + + + + Get or set the name of the current websocket client instance. + For logging purpose (in case you use more parallel websocket clients and want to distinguish between them) + + + + + Returns true if Start() method was called at least once. False if not started or disposed + + + + + Returns true if client is running and connected to the server + + + + + Enable or disable text message conversion from binary to string (via 'MessageEncoding' property). + Default: true + + + + + + + + + + + Terminate the websocket connection and cleanup everything + + + + + Start listening to the websocket stream on the background thread. + In case of connection error it doesn't throw an exception. + Only streams a message via 'DisconnectionHappened' and logs it. + + + + + Start listening to the websocket stream on the background thread. + In case of connection error it throws an exception. + Fail fast approach. + + + + + Stop/close websocket connection with custom close code. + Method doesn't throw exception, only logs it and mark client as closed. + + Returns true if close was initiated successfully + + + + Stop/close websocket connection with custom close code. + Method could throw exceptions, but client is marked as closed anyway. + + Returns true if close was initiated successfully + + + + Force reconnection. + Closes current websocket stream and perform a new connection to the server. + In case of connection error it doesn't throw an exception, but tries to reconnect indefinitely. + + + + + Force reconnection. + Closes current websocket stream and perform a new connection to the server. + In case of connection error it throws an exception and doesn't perform any other reconnection try. + + + + + Send text message to the websocket channel. + It inserts the message to the queue and actual sending is done on an other thread + + Text message to be sent + + + + Send binary message to the websocket channel. + It inserts the message to the queue and actual sending is done on an other thread + + Binary message to be sent + + + + Send binary message to the websocket channel. + It inserts the message to the queue and actual sending is done on an other thread + + Binary message to be sent + + + + Send text message to the websocket channel. + It doesn't use a sending queue, + beware of issue while sending two messages in the exact same time + on the full .NET Framework platform + + Message to be sent + + + + Send binary message to the websocket channel. + It doesn't use a sending queue, + beware of issue while sending two messages in the exact same time + on the full .NET Framework platform + + Message to be sent + + + + Stream/publish fake message (via 'MessageReceived' observable). + Use for testing purposes to simulate a server message. + + Message to be stream + + + + Simple interface that represent a logger. + + + + + Log a message the specified log level. + + The log level. + The message function. + An optional exception. + Optional format parameters for the message generated by the messagefunc. + true if the message was logged. Otherwise false. + + Note to implementers: the message func should not be called if the loglevel is not enabled + so as not to incur performance penalties. + To check IsEnabled call Log with only LogLevel and check the return value, no event will be written. + + + + + Represents a way to get a + + + + + Gets the specified named logger. + + Name of the logger. + The logger reference. + + + + Opens a nested diagnostics context. Not supported in EntLib logging. + + The message to add to the diagnostics context. + A disposable that when disposed removes the message from the context. + + + + Opens a mapped diagnostics context. Not supported in EntLib logging. + + A key. + A value. + Determines whether to call the destructor or not. + A disposable that when disposed removes the map from the context. + + + + Extension methods for the interface. + + + + + Check if the log level is enabled. + + The to check with. + True if the log level is enabled; false otherwise. + + + + Check if the log level is enabled. + + The to check with. + True if the log level is enabled; false otherwise. + + + + Check if the log level is enabled. + + The to check with. + True if the log level is enabled; false otherwise. + + + + Check if the log level is enabled. + + The to check with. + True if the log level is enabled; false otherwise. + + + + Check if the log level is enabled. + + The to check with. + True if the log level is enabled; false otherwise. + + + + Check if the log level is enabled. + + The to check with. + True if the log level is enabled; false otherwise. + + + + Logs a message at the log level, if enabled. + + The to use. + The message function. + + + + Logs a message at the log level, if enabled. + + The to use. + The message. + + + + Logs a message at the log level, if enabled. + + The to use. + The message. + Optional format parameters for the message. + + + + Logs an exception at the log level, if enabled. + + The to use. + The exception. + The message. + Optional format parameters for the message. + + + + Logs a message at the log level, if enabled. + + The to use. + The message. + Optional format parameters for the message. + + + + Logs an exception at the log level, if enabled. + + The to use. + The message. + The exception. + + + + Logs an exception at the log level, if enabled. + + The to use. + The message. + The exception. + Optional format parameters for the message. + + + + Logs a message at the log level, if enabled. + + The to use. + The message function. + + + + Logs a message at the log level, if enabled. + + The to use. + The message. + + + + Logs a message at the log level, if enabled. + + The to use. + The message. + Optional format parameters for the message. + + + + Logs an exception at the log level, if enabled. + + The to use. + The exception. + The message. + Optional format parameters for the message. + + + + Logs a message at the log level, if enabled. + + The to use. + The message. + Optional format parameters for the message. + + + + Logs an exception at the log level, if enabled. + + The to use. + The message. + The exception. + Optional format parameters for the message. + + + + Logs a message at the log level, if enabled. + + The to use. + The message function. + + + + Logs a message at the log level, if enabled. + + The to use. + The message. + + + + Logs a message at the log level, if enabled. + + The to use. + The message. + Optional format parameters for the message. + + + + Logs an exception at the log level, if enabled. + + The to use. + The exception. + The message. + Optional format parameters for the message. + + + + Logs a message at the log level, if enabled. + + The to use. + The message. + Optional format parameters for the message. + + + + Logs an exception at the log level, if enabled. + + The to use. + The message. + The exception. + Optional format parameters for the message. + + + + Logs a message at the log level, if enabled. + + The to use. + The message function. + + + + Logs a message at the log level, if enabled. + + The to use. + The message. + + + + Logs a message at the log level, if enabled. + + The to use. + The message. + Optional format parameters for the message. + + + + Logs an exception at the log level, if enabled. + + The to use. + The exception. + The message. + Optional format parameters for the message. + + + + Logs a message at the log level, if enabled. + + The to use. + The message. + Optional format parameters for the message. + + + + Logs an exception at the log level, if enabled. + + The to use. + The message. + The exception. + Optional format parameters for the message. + + + + Logs a message at the log level, if enabled. + + The to use. + The message function. + + + + Logs a message at the log level, if enabled. + + The to use. + The message. + + + + Logs a message at the log level, if enabled. + + The to use. + The message. + Optional format parameters for the message. + + + + Logs an exception at the log level, if enabled. + + The to use. + The exception. + The message. + Optional format parameters for the message. + + + + Logs a message at the log level, if enabled. + + The to use. + The message. + Optional format parameters for the message. + + + + Logs an exception at the log level, if enabled. + + The to use. + The message. + The exception. + Optional format parameters for the message. + + + + Logs a message at the log level, if enabled. + + The to use. + The message function. + + + + Logs a message at the log level, if enabled. + + The to use. + The message. + + + + Logs a message at the log level, if enabled. + + The to use. + The message. + Optional format parameters for the message. + + + + Logs an exception at the log level, if enabled. + + The to use. + The exception. + The message. + Optional format parameters for the message. + + + + Logs a message at the log level, if enabled. + + The to use. + The message. + Optional format parameters for the message. + + + + Logs an exception at the log level, if enabled. + + The to use. + The message. + The exception. + Optional format parameters for the message. + + + + The log level. + + + + + Trace + + + + + Debug + + + + + Info + + + + + Warn + + + + + Error + + + + + Fatal + + + + + Provides a mechanism to set the . + + + + + Sets the current log provider. + + The log provider. + + + + Gets or sets a value indicating whether this is logging is disabled. + + + true if logging is disabled; otherwise, false. + + + + + Sets an action that is invoked when a consumer of your library has called SetCurrentLogProvider. It is + important that hook into this if you are using child libraries (especially ilmerged ones) that are using + LibLog (or other logging abstraction) so you adapt and delegate to them. + + + + + + Gets a logger for the specified type. + + The type whose name will be used for the logger. + An instance of + + + + Gets a logger for the current class. + + An instance of + + + + Gets a logger for the specified type. + + The type whose name will be used for the logger. + If the type is null then this name will be used as the log name instead + An instance of + + + + Gets a logger with the specified name. + + The name. + An instance of + + + + Opens a nested diagnostics context. + + A message. + An that closes context when disposed. + + + + Opens a mapped diagnostics context. + + A key. + A value. + A optional paramater to indicate message should be destructured. + An that closes context when disposed. + + + + Exception thrown by LibLog. + + + + + Initializes a new LibLogException with the specified message. + + The message + + + + Initializes a new LibLogException with the specified message and inner exception. + + The message. + The inner exception. + + + + Some logging frameworks support structured logging, such as serilog. This will allow you to add names to structured + data in a format string: + For example: Log("Log message to {user}", user). This only works with serilog, but as the user of LibLog, you don't + know if serilog is actually + used. So, this class simulates that. it will replace any text in {curly braces} with an index number. + "Log {message} to {user}" would turn into => "Log {0} to {1}". Then the format parameters are handled using regular + .net string.Format. + + The message builder. + The format parameters. + + + + + Base class for specific log providers. + + + + + Error message should initializing the log provider fail. + + + + + Initialize an instance of the class by initializing the references + to the nested and mapped diagnostics context-obtaining functions. + + + + + Gets the specified named logger. + + Name of the logger. + The logger reference. + + + + Opens a nested diagnostics context. Not supported in EntLib logging. + + The message to add to the diagnostics context. + A disposable that when disposed removes the message from the context. + + + + Opens a mapped diagnostics context. Not supported in EntLib logging. + + A key. + A value. + Determines whether to call the destructor or not. + A disposable that when disposed removes the map from the context. + + + + Returns the provider-specific method to open a nested diagnostics context. + + A provider-specific method to open a nested diagnostics context. + + + + Returns the provider-specific method to open a mapped diagnostics context. + + A provider-specific method to open a mapped diagnostics context. + + + + Delegate defining the signature of the method opening a nested diagnostics context. + + The message to add to the diagnostics context. + A disposable that when disposed removes the message from the context. + + + + Delegate defining the signature of the method opening a mapped diagnostics context. + + A key. + A value. + Determines whether to call the destructor or not. + A disposable that when disposed removes the map from the context. + + + + Finds a type using a type name and assembly name. + + The name of the type. + The name of the assembly. + The requested type or null if it was not found. + + + + Finds a type using a type name and a list of assembly names to search. + + The name of the type. + A list of assembly names to search. + The request type or null if it was not found. + + + + The form of the Loupe Log.Write method we're using + + + + + Gets or sets a value indicating whether [provider is available override]. Used in tests. + + + true if [provider is available override]; otherwise, false. + + + + + Logger delegate. + + The log level + The message function + The exception + The format parameters + A boolean. + + + diff --git a/Game/Assets/Supabase/Websocket.Client.4.6.1/lib/netstandard2.0/Websocket.Client.xml.meta b/Game/Assets/Supabase/Websocket.Client.4.6.1/lib/netstandard2.0/Websocket.Client.xml.meta new file mode 100644 index 0000000..d4bf631 --- /dev/null +++ b/Game/Assets/Supabase/Websocket.Client.4.6.1/lib/netstandard2.0/Websocket.Client.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: d82e52565c117d948b072788782e798c +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/Websocket.Client.4.6.1/lib/netstandard2.1.meta b/Game/Assets/Supabase/Websocket.Client.4.6.1/lib/netstandard2.1.meta new file mode 100644 index 0000000..27be139 --- /dev/null +++ b/Game/Assets/Supabase/Websocket.Client.4.6.1/lib/netstandard2.1.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1abdd4dc63b4f9a409cc25db9c45303d +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/Websocket.Client.4.6.1/lib/netstandard2.1/Websocket.Client.dll b/Game/Assets/Supabase/Websocket.Client.4.6.1/lib/netstandard2.1/Websocket.Client.dll new file mode 100644 index 0000000..05aa9b4 --- /dev/null +++ b/Game/Assets/Supabase/Websocket.Client.4.6.1/lib/netstandard2.1/Websocket.Client.dll @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:42548587dc252a2de7363e3e83d245917a2286bc1a4c779e646f706be56c18f0 +size 76288 diff --git a/Game/Assets/Supabase/Websocket.Client.4.6.1/lib/netstandard2.1/Websocket.Client.dll.meta b/Game/Assets/Supabase/Websocket.Client.4.6.1/lib/netstandard2.1/Websocket.Client.dll.meta new file mode 100644 index 0000000..0c33e20 --- /dev/null +++ b/Game/Assets/Supabase/Websocket.Client.4.6.1/lib/netstandard2.1/Websocket.Client.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: 1090f2615fb1bf44cab5577779102247 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/Websocket.Client.4.6.1/lib/netstandard2.1/Websocket.Client.xml b/Game/Assets/Supabase/Websocket.Client.4.6.1/lib/netstandard2.1/Websocket.Client.xml new file mode 100644 index 0000000..cf99b33 --- /dev/null +++ b/Game/Assets/Supabase/Websocket.Client.4.6.1/lib/netstandard2.1/Websocket.Client.xml @@ -0,0 +1,1262 @@ + + + + Websocket.Client + + + + + Custom exception that indicates bad user/client input + + + + + + + + + + + + + + Custom exception related to WebsocketClient + + + + + + + + + + + + + + A simple websocket client with built-in reconnection and error handling + + + + + Get or set target websocket url + + + + + Stream with received message (raw format) + + + + + Stream for reconnection event (triggered after the new connection) + + + + + Stream for disconnection event (triggered after the connection was lost) + + + + + Time range in ms, how long to wait before reconnecting if no message comes from server. + Set null to disable this feature. + Default: 1 minute. + + + + + Time range in ms, how long to wait before reconnecting if last reconnection failed. + Set null to disable this feature. + Default: 1 minute. + + + + + Get or set the name of the current websocket client instance. + For logging purpose (in case you use more parallel websocket clients and want to distinguish between them) + + + + + Returns true if Start() method was called at least once. False if not started or disposed + + + + + Returns true if client is running and connected to the server + + + + + Enable or disable reconnection functionality (enabled by default) + + + + + Enable or disable text message conversion from binary to string (via 'MessageEncoding' property). + Default: true + + + + + Returns currently used native websocket client. + Use with caution, on every reconnection there will be a new instance. + + + + + Sets used encoding for sending and receiving text messages. + Default: UTF8 + + + + + Start listening to the websocket stream on the background thread. + In case of connection error it doesn't throw an exception. + Only streams a message via 'DisconnectionHappened' and logs it. + + + + + Start listening to the websocket stream on the background thread. + In case of connection error it throws an exception. + Fail fast approach. + + + + + Stop/close websocket connection with custom close code. + Method doesn't throw exception, only logs it and mark client as closed. + + Returns true if close was initiated successfully + + + + Stop/close websocket connection with custom close code. + Method could throw exceptions, but client is marked as closed anyway. + + Returns true if close was initiated successfully + + + + Send message to the websocket channel. + It inserts the message to the queue and actual sending is done on an other thread + + Message to be sent + + + + Send binary message to the websocket channel. + It inserts the message to the queue and actual sending is done on an other thread + + Binary message to be sent + + + + Send binary message to the websocket channel. + It inserts the message to the queue and actual sending is done on an other thread + + Binary message to be sent + + + + Send message to the websocket channel. + It doesn't use a sending queue, + beware of issue while sending two messages in the exact same time + on the full .NET Framework platform + + Message to be sent + + + + Send binary message to the websocket channel. + It doesn't use a sending queue, + beware of issue while sending two messages in the exact same time + on the full .NET Framework platform + + Message to be sent + + + + Force reconnection. + Closes current websocket stream and perform a new connection to the server. + In case of connection error it doesn't throw an exception, but tries to reconnect indefinitely. + + + + + Force reconnection. + Closes current websocket stream and perform a new connection to the server. + In case of connection error it throws an exception and doesn't perform any other reconnection try. + + + + + Stream/publish fake message (via 'MessageReceived' observable). + Use for testing purposes to simulate a server message. + + Message to be stream + + + + Info about happened disconnection + + + + + + + + Disconnection reason + + + + + Indicates the reason why the remote endpoint initiated the close handshake + + + + + Allows the remote endpoint to describe the reason why the connection was closed + + + + + The subprotocol that was negotiated during the opening handshake + + + + + Exception that cause disconnection, can be null + + + + + Set to true if you want to cancel ongoing reconnection + + + + + Set to true if you want to cancel ongoing connection close (only when Type = ByServer) + + + + + Simple factory method + + + + + Type that specify happened disconnection + + + + + Type used for exit event, disposing of the websocket client + + + + + Type used when connection to websocket was lost in meantime + + + + + Type used when connection to websocket was lost by not receiving any message in given time-range + + + + + Type used when connection or reconnection returned error + + + + + Type used when disconnection was requested by user + + + + + Type used when disconnection was requested by server + + + + + Info about happened reconnection + + + + + + + + Reconnection reason + + + + + Simple factory method + + + + + Type that specify happened reconnection + + + + + Type used for initial connection to websocket stream + + + + + Type used when connection to websocket was lost in meantime + + + + + Type used when connection to websocket was lost by not receiving any message in given time-range + + + + + Type used after unsuccessful previous reconnection + + + + + Type used when reconnection was requested by user + + + + + Type used when reconnection was requested by server + + + + + Received message, could be Text or Binary + + + + + Received text message (only if type = WebSocketMessageType.Text) + + + + + Received text message (only if type = WebSocketMessageType.Binary) + + + + + Current message type (Text or Binary) + + + + + Return string info about the message + + + + + Create text response message + + + + + Create binary response message + + + + + Class that wraps SemaphoreSlim and enables to use locking inside 'using' blocks easily + Don't need to bother with releasing and handling SemaphoreSlim correctly + Example: + + using(await _asyncLock.LockAsync()) + { + // do your synchronized work + } + + + + + + Class that wraps SemaphoreSlim and enables to use locking inside 'using' blocks easily + Don't need to bother with releasing and handling SemaphoreSlim correctly + + + + + Use inside 'using' block + + + + + Use inside 'using' block with await + + + + + It throws if value is null or empty/white spaces + + The value to be validated + Input parameter name + + + + It throws if value is null + + The value to be validated + Input parameter name + + + + It throws if collection is null or collection is empty + + The collection to be validated + Input parameter name + + + + It throws if value is not in specified range + + The value to be validated + Input parameter name + Minimal value of input + Maximum value of input + + + + It throws if value is not in specified range + + The value to be validated + Input parameter name + Minimal value of input + Maximum value of input + + + + It throws if value is not in specified range + + The value to be validated + Input parameter name + Minimal value of input + Maximum value of input + + + + A simple websocket client with built-in reconnection and error handling + + + + + A simple websocket client with built-in reconnection and error handling + + Target websocket url (wss://) + Optional factory for native ClientWebSocket, use it whenever you need some custom features (proxy, settings, etc) + + + + A simple websocket client with built-in reconnection and error handling + + Target websocket url (wss://) + Optional factory for native creating and connecting to a websocket. The method should return a which is connected. Use it whenever you need some custom features (proxy, settings, etc) + + + + + + + Stream with received message (raw format) + + + + + Stream for reconnection event (triggered after the new connection) + + + + + Stream for disconnection event (triggered after the connection was lost) + + + + + Time range in ms, how long to wait before reconnecting if no message comes from server. + Set null to disable this feature. + Default: 1 minute + + + + + Time range in ms, how long to wait before reconnecting if last reconnection failed. + Set null to disable this feature. + Default: 1 minute + + + + + Enable or disable reconnection functionality (enabled by default) + + + + + Get or set the name of the current websocket client instance. + For logging purpose (in case you use more parallel websocket clients and want to distinguish between them) + + + + + Returns true if Start() method was called at least once. False if not started or disposed + + + + + Returns true if client is running and connected to the server + + + + + Enable or disable text message conversion from binary to string (via 'MessageEncoding' property). + Default: true + + + + + + + + + + + Terminate the websocket connection and cleanup everything + + + + + Start listening to the websocket stream on the background thread. + In case of connection error it doesn't throw an exception. + Only streams a message via 'DisconnectionHappened' and logs it. + + + + + Start listening to the websocket stream on the background thread. + In case of connection error it throws an exception. + Fail fast approach. + + + + + Stop/close websocket connection with custom close code. + Method doesn't throw exception, only logs it and mark client as closed. + + Returns true if close was initiated successfully + + + + Stop/close websocket connection with custom close code. + Method could throw exceptions, but client is marked as closed anyway. + + Returns true if close was initiated successfully + + + + Force reconnection. + Closes current websocket stream and perform a new connection to the server. + In case of connection error it doesn't throw an exception, but tries to reconnect indefinitely. + + + + + Force reconnection. + Closes current websocket stream and perform a new connection to the server. + In case of connection error it throws an exception and doesn't perform any other reconnection try. + + + + + Send text message to the websocket channel. + It inserts the message to the queue and actual sending is done on an other thread + + Text message to be sent + + + + Send binary message to the websocket channel. + It inserts the message to the queue and actual sending is done on an other thread + + Binary message to be sent + + + + Send binary message to the websocket channel. + It inserts the message to the queue and actual sending is done on an other thread + + Binary message to be sent + + + + Send text message to the websocket channel. + It doesn't use a sending queue, + beware of issue while sending two messages in the exact same time + on the full .NET Framework platform + + Message to be sent + + + + Send binary message to the websocket channel. + It doesn't use a sending queue, + beware of issue while sending two messages in the exact same time + on the full .NET Framework platform + + Message to be sent + + + + Stream/publish fake message (via 'MessageReceived' observable). + Use for testing purposes to simulate a server message. + + Message to be stream + + + + Simple interface that represent a logger. + + + + + Log a message the specified log level. + + The log level. + The message function. + An optional exception. + Optional format parameters for the message generated by the messagefunc. + true if the message was logged. Otherwise false. + + Note to implementers: the message func should not be called if the loglevel is not enabled + so as not to incur performance penalties. + To check IsEnabled call Log with only LogLevel and check the return value, no event will be written. + + + + + Represents a way to get a + + + + + Gets the specified named logger. + + Name of the logger. + The logger reference. + + + + Opens a nested diagnostics context. Not supported in EntLib logging. + + The message to add to the diagnostics context. + A disposable that when disposed removes the message from the context. + + + + Opens a mapped diagnostics context. Not supported in EntLib logging. + + A key. + A value. + Determines whether to call the destructor or not. + A disposable that when disposed removes the map from the context. + + + + Extension methods for the interface. + + + + + Check if the log level is enabled. + + The to check with. + True if the log level is enabled; false otherwise. + + + + Check if the log level is enabled. + + The to check with. + True if the log level is enabled; false otherwise. + + + + Check if the log level is enabled. + + The to check with. + True if the log level is enabled; false otherwise. + + + + Check if the log level is enabled. + + The to check with. + True if the log level is enabled; false otherwise. + + + + Check if the log level is enabled. + + The to check with. + True if the log level is enabled; false otherwise. + + + + Check if the log level is enabled. + + The to check with. + True if the log level is enabled; false otherwise. + + + + Logs a message at the log level, if enabled. + + The to use. + The message function. + + + + Logs a message at the log level, if enabled. + + The to use. + The message. + + + + Logs a message at the log level, if enabled. + + The to use. + The message. + Optional format parameters for the message. + + + + Logs an exception at the log level, if enabled. + + The to use. + The exception. + The message. + Optional format parameters for the message. + + + + Logs a message at the log level, if enabled. + + The to use. + The message. + Optional format parameters for the message. + + + + Logs an exception at the log level, if enabled. + + The to use. + The message. + The exception. + + + + Logs an exception at the log level, if enabled. + + The to use. + The message. + The exception. + Optional format parameters for the message. + + + + Logs a message at the log level, if enabled. + + The to use. + The message function. + + + + Logs a message at the log level, if enabled. + + The to use. + The message. + + + + Logs a message at the log level, if enabled. + + The to use. + The message. + Optional format parameters for the message. + + + + Logs an exception at the log level, if enabled. + + The to use. + The exception. + The message. + Optional format parameters for the message. + + + + Logs a message at the log level, if enabled. + + The to use. + The message. + Optional format parameters for the message. + + + + Logs an exception at the log level, if enabled. + + The to use. + The message. + The exception. + Optional format parameters for the message. + + + + Logs a message at the log level, if enabled. + + The to use. + The message function. + + + + Logs a message at the log level, if enabled. + + The to use. + The message. + + + + Logs a message at the log level, if enabled. + + The to use. + The message. + Optional format parameters for the message. + + + + Logs an exception at the log level, if enabled. + + The to use. + The exception. + The message. + Optional format parameters for the message. + + + + Logs a message at the log level, if enabled. + + The to use. + The message. + Optional format parameters for the message. + + + + Logs an exception at the log level, if enabled. + + The to use. + The message. + The exception. + Optional format parameters for the message. + + + + Logs a message at the log level, if enabled. + + The to use. + The message function. + + + + Logs a message at the log level, if enabled. + + The to use. + The message. + + + + Logs a message at the log level, if enabled. + + The to use. + The message. + Optional format parameters for the message. + + + + Logs an exception at the log level, if enabled. + + The to use. + The exception. + The message. + Optional format parameters for the message. + + + + Logs a message at the log level, if enabled. + + The to use. + The message. + Optional format parameters for the message. + + + + Logs an exception at the log level, if enabled. + + The to use. + The message. + The exception. + Optional format parameters for the message. + + + + Logs a message at the log level, if enabled. + + The to use. + The message function. + + + + Logs a message at the log level, if enabled. + + The to use. + The message. + + + + Logs a message at the log level, if enabled. + + The to use. + The message. + Optional format parameters for the message. + + + + Logs an exception at the log level, if enabled. + + The to use. + The exception. + The message. + Optional format parameters for the message. + + + + Logs a message at the log level, if enabled. + + The to use. + The message. + Optional format parameters for the message. + + + + Logs an exception at the log level, if enabled. + + The to use. + The message. + The exception. + Optional format parameters for the message. + + + + Logs a message at the log level, if enabled. + + The to use. + The message function. + + + + Logs a message at the log level, if enabled. + + The to use. + The message. + + + + Logs a message at the log level, if enabled. + + The to use. + The message. + Optional format parameters for the message. + + + + Logs an exception at the log level, if enabled. + + The to use. + The exception. + The message. + Optional format parameters for the message. + + + + Logs a message at the log level, if enabled. + + The to use. + The message. + Optional format parameters for the message. + + + + Logs an exception at the log level, if enabled. + + The to use. + The message. + The exception. + Optional format parameters for the message. + + + + The log level. + + + + + Trace + + + + + Debug + + + + + Info + + + + + Warn + + + + + Error + + + + + Fatal + + + + + Provides a mechanism to set the . + + + + + Sets the current log provider. + + The log provider. + + + + Gets or sets a value indicating whether this is logging is disabled. + + + true if logging is disabled; otherwise, false. + + + + + Sets an action that is invoked when a consumer of your library has called SetCurrentLogProvider. It is + important that hook into this if you are using child libraries (especially ilmerged ones) that are using + LibLog (or other logging abstraction) so you adapt and delegate to them. + + + + + + Gets a logger for the specified type. + + The type whose name will be used for the logger. + An instance of + + + + Gets a logger for the current class. + + An instance of + + + + Gets a logger for the specified type. + + The type whose name will be used for the logger. + If the type is null then this name will be used as the log name instead + An instance of + + + + Gets a logger with the specified name. + + The name. + An instance of + + + + Opens a nested diagnostics context. + + A message. + An that closes context when disposed. + + + + Opens a mapped diagnostics context. + + A key. + A value. + A optional paramater to indicate message should be destructured. + An that closes context when disposed. + + + + Exception thrown by LibLog. + + + + + Initializes a new LibLogException with the specified message. + + The message + + + + Initializes a new LibLogException with the specified message and inner exception. + + The message. + The inner exception. + + + + Some logging frameworks support structured logging, such as serilog. This will allow you to add names to structured + data in a format string: + For example: Log("Log message to {user}", user). This only works with serilog, but as the user of LibLog, you don't + know if serilog is actually + used. So, this class simulates that. it will replace any text in {curly braces} with an index number. + "Log {message} to {user}" would turn into => "Log {0} to {1}". Then the format parameters are handled using regular + .net string.Format. + + The message builder. + The format parameters. + + + + + Base class for specific log providers. + + + + + Error message should initializing the log provider fail. + + + + + Initialize an instance of the class by initializing the references + to the nested and mapped diagnostics context-obtaining functions. + + + + + Gets the specified named logger. + + Name of the logger. + The logger reference. + + + + Opens a nested diagnostics context. Not supported in EntLib logging. + + The message to add to the diagnostics context. + A disposable that when disposed removes the message from the context. + + + + Opens a mapped diagnostics context. Not supported in EntLib logging. + + A key. + A value. + Determines whether to call the destructor or not. + A disposable that when disposed removes the map from the context. + + + + Returns the provider-specific method to open a nested diagnostics context. + + A provider-specific method to open a nested diagnostics context. + + + + Returns the provider-specific method to open a mapped diagnostics context. + + A provider-specific method to open a mapped diagnostics context. + + + + Delegate defining the signature of the method opening a nested diagnostics context. + + The message to add to the diagnostics context. + A disposable that when disposed removes the message from the context. + + + + Delegate defining the signature of the method opening a mapped diagnostics context. + + A key. + A value. + Determines whether to call the destructor or not. + A disposable that when disposed removes the map from the context. + + + + Finds a type using a type name and assembly name. + + The name of the type. + The name of the assembly. + The requested type or null if it was not found. + + + + Finds a type using a type name and a list of assembly names to search. + + The name of the type. + A list of assembly names to search. + The request type or null if it was not found. + + + + The form of the Loupe Log.Write method we're using + + + + + Gets or sets a value indicating whether [provider is available override]. Used in tests. + + + true if [provider is available override]; otherwise, false. + + + + + Logger delegate. + + The log level + The message function + The exception + The format parameters + A boolean. + + + diff --git a/Game/Assets/Supabase/Websocket.Client.4.6.1/lib/netstandard2.1/Websocket.Client.xml.meta b/Game/Assets/Supabase/Websocket.Client.4.6.1/lib/netstandard2.1/Websocket.Client.xml.meta new file mode 100644 index 0000000..189de84 --- /dev/null +++ b/Game/Assets/Supabase/Websocket.Client.4.6.1/lib/netstandard2.1/Websocket.Client.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 0ffb6079093c46f49819308a9e7593a0 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/functions-csharp.1.3.2.meta b/Game/Assets/Supabase/functions-csharp.1.3.2.meta new file mode 100644 index 0000000..151f26c --- /dev/null +++ b/Game/Assets/Supabase/functions-csharp.1.3.2.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: cd2df28678069a443b993ee3c4ee2bde +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/functions-csharp.1.3.2/.signature.p7s b/Game/Assets/Supabase/functions-csharp.1.3.2/.signature.p7s new file mode 100644 index 0000000000000000000000000000000000000000..9311f6b1e9c3b659e7072ae6f740fc57ed4501c9 GIT binary patch literal 11513 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 literal 0 HcmV?d00001 diff --git a/Game/Assets/Supabase/functions-csharp.1.3.2/README.md b/Game/Assets/Supabase/functions-csharp.1.3.2/README.md new file mode 100644 index 0000000..84d9377 --- /dev/null +++ b/Game/Assets/Supabase/functions-csharp.1.3.2/README.md @@ -0,0 +1,35 @@ +

    + +

    + +
    + +--- + +C# Client library to interact with Supabase Functions. + +## Package made possible through the efforts of: + +Join the ranks! See a problem? Help fix it! + + + + + +Made with [contrib.rocks](https://contrib.rocks). + +## Contributing + +We are more than happy to have contributions! Please submit a PR. + +### Testing + +To run the tests locally you must have docker and docker-compose installed. Then in the root of the repository run: + +- `docker-compose up -d` +- `dotnet test` diff --git a/Game/Assets/Supabase/functions-csharp.1.3.2/README.md.meta b/Game/Assets/Supabase/functions-csharp.1.3.2/README.md.meta new file mode 100644 index 0000000..f34fb6b --- /dev/null +++ b/Game/Assets/Supabase/functions-csharp.1.3.2/README.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 6b999373a03cf8942909fbf72ec77bb8 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/functions-csharp.1.3.2/functions-csharp.1.3.2.nupkg b/Game/Assets/Supabase/functions-csharp.1.3.2/functions-csharp.1.3.2.nupkg new file mode 100644 index 0000000000000000000000000000000000000000..71ebe174439a7b1a7a71eecbf0eb0ecd75ee69f2 GIT binary patch literal 28683 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�gE9xTCT7AHU z^kt|!sYQHY&arZw3`uoEH>UUUOFYKheEYX{Ci4XG3mMCEaW7Z8{ZH^wOo=(>$M4cR zg8%OEqW|`Iia&thX$%mMNX-9qE`fkpn%LVhI@pZ2^jQ20?Br=OV)7C=8hW+%>Lw~?dscNs0 zNs@({kVY~xtMLko9o+g8l5Oe4Ms@zN@v6R>VpDq6%extS?X}?aGgB8}`qAo2347QA zXW9zx;`6h046&FfQ>i%oyx~+VN zCyAg6SQ_;B{M-s(EJPZ2FTlNlX~mWyarlf8Uc9XMW61{wD3N5N0;-WV3;Pi-b&)a; z)7&5fGlih1bsxarfIx2$KR*WfS}6dR?1x$R5zzb|7Sti=NszqAjBV_L{Kbr`(+Wx5-d*8Ed>>gp_ zsA13lPJ-2Ehv57dKJ+_RC7#^3xhHq*H>QtejHl}we%Q&bz4$rdunHy z_TXs!K+}Wqgei!idLlVYqSRCiMS;YeK-;nP+zI+81v!k;1P0%`=cq#Yi_SHt2Tuz0 z(K&209KG+?g>j=B1$m76InTFlh&L+3LgR%S-WN|>d#n=5w4sc^RN8>ZfKxjkMDP;= zP#kV4ep)JtXy=R0uP*#1u$fT$gjK)rXX(0HOKC)0Xa096R)j(OE9yc=)rZJ1N%<8r z4XXZ!`L_QxZ+WcGA>BP)7!3mlMFV*4*gz{`Y?V+#8YQ^?K!FKTFOr(D9 z&?QWH*nC_|A6{bU7;pz}UIX$1%|ky6?ERz|C}cZ!F6=-3CVFgc>47)g*(1}QQ_@&~ zPJq`{V~7@-MjX*@y)C`^SHW1-<^}Q8$n7{@>hB6=RT!4kIcwLY1qDbsiUnm~V45c_ zJQNOh`wcGjX?U}uNssPN_d2=y;81zBWAjiE5IVmFh0C$3LEi_QP6q>ubcE|>s{#7z zb3)kQ&o2#yGu4(wn4bg-7@izj25*;?LoBsGlh-{=w2E@3rGbXevMF-bhCWv!hpuC@@KbB|>NAkmh5(hNe zajK?stpYU3eVjK$rg)_rCg+YQZQS~#tlmgxU*XY9?gVp0!fa95#)2$^?p#Wh=vzI| z6yxMC#scDuUds>A!aMov2LgGTt7X4Fy5)(ya^eIqYKTJcHhF&UPY8-Qerh>QF@}t) zQ2)Z@dODSdfMUelD ziG(z6r@NAFB^)LAT?Wx_y`uc!65+FbI{6|kptL^vH_F4zD9To93}2?x?2D!tS&9cb z*%-O(FU5RBL|bCg*hskP9<{EBMxvK#BZz8claS&N{3uB89krb5%G>$xD(I|Mewj;uk zG8=xGU!p4uyzghF-cM~3eQ^*fdc{O^~bMs3oumHoRJUJqg5 zi)Jpfawgyj@^g$+>|;(693t)_rlroQxs8sqBm*N*#3U*n3fj;8Zw8*bgFD+l5Y9bk z|BNl@7bfR;E`7XhJKtM8Detg~x9II@Mj0jB&7d-A<_3U)+r#_h%uTI0Fqip2d70(Ge!Uu<&$EfKrSa&i5@(q z#mYXc^>+b;e{+!*zt9Gl(oQxa#+vc}77ke(n~x#w6(L>zZM%L)Ia&pR&m`%qcY`t% z0^qn1-WN{WP~Nur`4pV4y<)IyEPx!g3^w$G*H^#Tn!PTb#b6{pdt(c1mpb5lt+SX# z^yN=!v&oI9ri}rFCJG&j_YzPcV;hl*;0gfA0oESjnd(!Fp01RIfw^o z#EPYO{B=w{T_SR0OiRa{42_Z)ik+~BICxh}4PTObKtZ#YuG?HmHOK7JVmT{0Ptn-? z-}KyO$~g6I$@Z$1P92j`sIe_*KeYBQrzrkz%QI}%Z+{yqsKoV95=_>boNJ)$zR}PK z*$tU}P>HlPq_gLC1?02;nFF@w_oDWy$e>QN7?&0(R) zp$9T(($mJOm+-)+F42hfNfM<9;c7Ba>d*kh$4CKse=WJ9{La=$mvbo9#J&=V%;7^Lm9 zvRr2xO3|h^?KlyU{`UEH0*(w_S8D1ZS98{P&e3#%IpI2ip;6MxOaqPAR@h{SeR%xw z$CwO}@++PgIba5Ezr0hvrxzVLkKl7%5z9}Efb&Lid{}1#yrd#Hnqp?m?C?!o3S+!E zJZLN#U3rDt%~w8gjSgbTYp7FLD2hR1|p? z1%T85@~#WLeCoBc&1Atdx3B$yA}#O-c#u4|0r9;Ljv5Sm`Ui%aXqhINEtm6;#vW_| zPc`civv8RQE&{zZa_V2;$_rPVb0$@nS)4k>(!NSxo~3q5)`Uk9rI$Jcvwdh4s)&d3 z&{plg@gLOe8kr7|D&+%&U6mgh$LaEl^!!B|0~rTPi3M)&L`7}D|Lo4qOwk|y%-}bx zq4sCvD%=cMdH*rr%L?ToU#eq|92d)!5{vf4U((Fu1CBmZwJ`6WvqHT*KAP%%H(q4w z_4JZRxl1!Mw3o|J;fsnh44pi{Cq+vg@o@K-&7|cjW6G6F5nCAF_56$zgHqgvmHRdO z9+vS;RtH0t@Q@j+7Jn(E^=RPpwSCjCF6CjAnUXRRX=MA6 zfre!>e|PE#HrI>A8x;nyQN3@g!DD3JY*j%~`F2Qw(nK-|_vMtP@%mVSr9fgH6LNxI zuICgREEyevNCb~>q zo}A8Q+gRR7!^0B|Id8*t(9G0)i9yy~3sK8eF$c8$HCp2tdK$*jMd~uvj zUdS`;S0G0)QZ^rtcDoPDeKH+)AD*BR`8o6a3KpN@lRgy=4a;WAkJ5I+eZ4w^4N8E? zps6Qh2p_V;ALRI%YunSM%i)c1YS|tTq(Q39il;L&fJCQS<6WSwcXo@sbA6yteKT@+ zcCCHofzX0;1=Du2F^{i8lN5IQTbne^$mn=5F5`ZXZH1m(_qB>Je#?Y8o)2PGo733n%gs>ek7oX%y}8yr^kh^RO%4Ef1<|&E z!WNz0xVz#dt$W6X%lo=G z^-Sq`0Dkq;*6ojNl+9oDPwOm|y$fVg;~d3weIP52;a-Ko8@vD^>X&0@wmMQYiny?0 zrU#;NA1k$pej3AY5hs6RdH`_L0JSzgJx#Oz;PIY}P7vvt1AW+Ap5C@Q`NSFrj&ndejOqcFUkI z%;)cL8`?H$pv{_kM1&WIHsuBc2lgu>!uK2u#^p-EpVtNCA~~%w6>Yul#|6Q6iWEN~ zY&xIFoJaE&<{_2DElw9pd*QU22bU7#;f4qW%Wt5EP5>=Fw#_(-VZ&MH(F4`0>a?$p!-$;go+*kqR2 z3iBDT5f@)qr)|T@KEge>DYH-5DI4gOmL>JE<`-={EoV8}3pQ4Ok=Hx#w%xY(tFg`7 z!ql^LH!)@psLkPQa zW~yO4GsJHC$gRG61RnF@a;TX%32wk(Tr3ui@6HjYOdUZ>=S$DW1Ba8Zmg@f3i2F6P zLM@Qt+>b&>{v}xFwr_+clAsCfXB*D%*vk^%j+qq5XI=KXonw=k?9UTiglWRHBpqni zx4n`gXd8g~++(*y6osbjlo^Y^JQWyE4HSVd!n|lr%0*ZmJ$HP7{ z;af>$ZaJ2u@!%8%-9UEtN*EUe;G?4!;qCMVG;bNoETfm58vIWF_g)V_ zp*o@QiMxAkqI;E{zR$fc5{sr~IDa!-;t461U#E4KR3L9y`C^c0sljB+Hff=;<{|*o z0@{&^2?d4d%F$w|^{>W3{@K#B0eu zq(*jwu+dbi6nw05_$|rN(NFj%D8z{&R!zCFpFD<(n4sXBvRYq+y5B9H=8coyOB15z z17M!<8k28K`I|sdA5GJt2C2iJ(r)LETEo4HGcMk^g*?g{nGI=_BSUs)bvTYI`;*7dM7)mrhiERlK#eLWEAm~`Ga ze+$*Smt-X(EY2?9@N*-ltaVgm)lRjz%)5 zx_K>EBBdGnwuqvzkG{O`60h?IzbDSzz1VG8#lv-hVz${|x9_!zQE6XbC~-Gv>;zqE zG()_%d&*qg3a>nobe!9W<6keiR^C9Jq7f#?k*P~?12FhO;4)@y>&3SaKo*WfkzKGR zlvNdcMFJH?%s}@zvlD-V5cf#tO_eLoYGM()pnudXVNQ(2!%>%c96?TqmF6rteIp@{ zGWiwPQ2P4ptOvYN%>#x1Gxy>uxU6MFpmD0q;OS+bX$4XH&)aOWSmgQT4Cu}abGr5_ z0{;4zfHe}VGWaz}4wT?a`Ppw@VvAr_XVr;LbJqE{+jClO2X&rWn+^TszdPMtLav3lvsisyyKlrpoilwQy`e@ z_42eR;z%tM!zDkS@;%LqM~CylMSI%dM3aI0G{_yKV5_w3aSj1Vhw|3K4uZ+^ecDk8 zO%ESRtd^%3rtjBEaknLx(+p#7AyI;IUBEZb%29oN9W!=rP$AzH*qcjLSbly%;Z~jn z-lyOHyz+fIqQO-E$5p2N<0@hPUHPg=h=?mlFxr|XtIk_(F(Z33JrHpUGBzQ##BAyQ z!COdDf@L6qc_4ux-L%#f&{k3{S`_G1o-Z4~=lWlnEPkdDd zY*0O8FVWWBI{&pDFr%-y4~%<~@f8VaQ`R$$ABu`}i*76BUkp)aWXA_p40AOcwY6-# zHQfI(Gnj;ReWhS&7=c?F+rRuP@zB{2FQQ*-7vc3VwDmrJ?qsT6^D_n7+^JhV!}+~7VHNUSs>2=s&(Tvb#pXQ^;mQfQ-XKGf;wDo9 z?$5cw!z`FA0m^J%EI965X`?uVz((E9(9XT6)_)J{Ujw`)I$$Wv^f4t&1OC?)dcdAkxIDN9zM9<=3_Kaniy) zDRwr|>F$#9$YMF&2)cKi_BZAz>%;u#@uxEoe=3+w(ZLBS20+xHTIe;(v&E$G>_g|I2VNGO;!?2QWDUoZKu;0M1Od02d=uBNrnk6MH8BgM*X3 z1Hj3}^4|i0g`Js$1Hj6{X3E8G#>~RQV#2~@#ACwD!)0R1#m&s<;B0GZ;$WkqYrn{h z?t5KZ7uZy~Vu!0?Yn#wdDU54Vu>^a2wn0^GX{`J2zyJEkt(<}}RQS0)!_ezxX>|vO zPg@vCUVISxzLxpZ9aT7>LA1O<}2#Rod!qmI079Q*L<>6wi4N9Ao z^O7bzB0R70X)!8(fMhQwZ~)s6avEzI(+PCtCSXX~(dl;mz4j-hf(&EHM?yEgDK(o7 zzAt(O9Z;&uJD@R2+Ie4GXBdNnVj<8KwTX^(eaVro|CFg`A%-W%+tzu{qKqBqNsRXG z?5eP~QR8q_r~oIdV` zL+)p?gt4?cY8x`oDN@((1WZ@0-##p*S{!o|_+&6$avJ>_sCeGrAtr_XFHQWziFIwX zh7N`nHxA;3T(L6}Ydn+Tex38Ah5aB}_!(DSmu!m={5a58eUGc&R@|e0yD=P7@Ti97SIhw0mbDKMA{bW^=XP0APx8YC%n6WT>h^t%M zYyYqIzB4R}W$T(5kR&-v9CC)9A%h@E5Jd@+L`jl!7&1s05CjPZk_f_(lOzR{AVE+8 z0m(rGNg_!Q6a*B%9u!56_a5)_KHs^2?(l=D?yj2Z?%HeZy>?Z%ma{A&VLFOL5kO&A z0Vrr%IyMvng_04?zMi2SQrU@}G5yT20!U%{^}WZCLtwuw;fDbNTx?w&TuP|!SvWO7 zi760L5-HnS+bV$r9H!=E4nG3WVm2S9B=hp}60!hynS;B8%$*(K8~__;7d9osj~WU{ zBzT1^U~0-RZD(h9n34j(OiK)i!{Kn?+sBZWSOhHnDE?F3Ktb5{UjXpNV51ZRK_|W+gCdFf5O7tmcB%eASVRp2lj3+cQ zax{&QD1_EG_F7Totk2mC@KC;W(jgz0v8Nblu_3_NyHZZH!|pxHT>a@Esu@O{Q9 zV*am(-A3-1zKFRd_QYE^9ER?iaU^`E<_}L2abTMZe}OQ}sHQ}bFG%STA#K#fRUv1{*4^Hdv)cBO9iD^0v-buytkT}uw0)@K4bgyiP+Hr$KFw!% z$62Kc=Xg#0{Ui7AKWe&g5jcQAz!4bZ1x*(rxvvPg{a+CT4hVyT1w;^@9|&^xgaQJ# z4@Q)nEi7SYLF@%*3}N8p@9g+f?>)vq67mvjFTCEvaJ3^{FSd{0DwBSx{4sDQFZCs2 z&~@H3^^j0i?A8sXhV0FVK8YiPl?5v)VcA2RMI=5v(gAbb*1b=*dAXnV`mx7NUuRFa z=7rishq7By=!j^#m+^4baM(6AX|GaQM@Ag)6GUguT@irA7c-s=#~&y9IC5wHh1_R0VxjLyd0-9=hh*x4NE@(UvXNo_ED=Fx?bfxAY(}_>V9X1b|)4lv^Y=mv-fW9u>Nt*}zFY znL?$C_O-Doxt)6fc464Hj3~Ay?^6qfO+f$R=s2F-DRO0*XL~0_5Pp!@;K{)CXNa5b@ld zo#14<7K?*NiKlI8;ppsS0mlqN@GwG3)-xWemhM8%Zq_huOBZLPt-G_E5A323?6j@9 zn={hc%6;!x>_0g6Z?W}VV09R}h3`;&)v}fHJZ=tEBaV-Qzk@wH$=a5WD8V)BVAuNO z)>E)KYhT(AH$&~DUe7oXcwP4$3cTccG=7r4MZ9)q;&yn~`w?QZhuklr$LPz?7^~eK zpWKf36S2P2b28WJOHaR{x}g+Gx*o-{pQ;)Nr!`d% zSs#1rSTC$3gRjv$BbLlu{Z*>KA4%!fjv&{?)^?ckD9E}cs9h!#>`57?CDDT_bunKe zVt#r(fO7+Q*IMGw`AV-xPjHkqNTu9l0WZ9uRF1Q_W@6#_<*3!=S$5g8Vj)1cme;AX z6WIKHVUIoE+^v)l(fom}&ES=4_{C;_Yt%peq)(d7ag&|GUD6jx!jhgLmEBpmtA52{ zyr5n8`!6``^$iPM04G2!T_hbICj1i%58xU2I4*>s**6DV&>Sgf4F}=W;jh&WK)@(%awlPk1*i_0Gw^kRpLCkrGak3JIdgWuxBk-R@ai7Uar zeWQp~Im1dj@P^)UTx=KhRVrM&F#3~~gT?D}$qfmKFL+bt`!!*VwlCvm1KYVLYpShk z=%25=%14w=P~j2BI22Qr1e%c18GxBLzKUy^N=ZEoBliBu9TF5xhGvVbytbnqbj{+V9VEj=aI0PpJu}~Bcfg|9O2nmFkA-Ie%;mh7!)Qn63Gb3i zsY4&~1n)xo!O&`!bSt2bl5)903lRI|=OA!S8umT*HgmBBA7f|z4M~MPMTBjgEG)f+ z?2yh*Kyd&5jtIkpTY%suAh;d~t_8r8{SoNnzzlgI19vmKQKk={j89S?jUPO9XW8!c z%&3TZs7|-)r4K-GB;c9l{@?JLp=AG#9l=-_2L-`uOmpB&5IFszua%$``*3C1=|y}+ z+N0y2ZV&3%otuK|n_9Nco++2J(D*VmGr(%xYN^^W)E+Scnfmvc&^y?vhXS?T(w>Fz{ zN$pYrC7;pppvvrH#_eSRn=!c?*|>w94K})_&-J) zM(m;A1W@!Je=GI`r|hc^!ATE}!U>K5g2TWO{sTop%Yb9h=f~IquRrWvTn2R% z>0qZvkzq6=N`BL5^w?HomqqQR)*%5XnI_q|kYZcKbldFX!$_|kA39P5@QX!3VX8Ix z)zcBoh$y_o9<>Wo`mD4qh68;?ZDZ8t58S+B$ns`O&7EILU4BZrRF5QJe}cwkA~yJ#%G@0{KRT@TXf;j6XV76^tB7ET^&WD@+M`zR`0x? zoyfD&*H6?>+X^Q!34R>TFK3!z*i*%%!N^Vg z-znOQgHxy;S0fAcaUtttv(-t(jHDXBM0&rKybns||3&re__u&j4mkRM62LGz1So(J z0-$b)ivxcBC0+v2Wj9`ONv~JBpgSvRlAh_#AX`Z@xKXcycaRd8lcwUdX z{1Gt~J6oO72WY*R#jJkWw`HSW7>7Q18D7wda$ZJj%6|4FunA3bZhHxf7BgjpVz*c!{veblw@;x2UX>~v-q{1D)3$8OK|mEwVpAa}r!^zce$c*2+S-4}}J z9-mG_RzdR9^b3r6CLhKDDBNNYkQ2TGGM>0Z6^D-hkZREv9xFcM^ZNlABisKINQjY~ z5P%3mIm)vI>t`7F^5dINsjj zMceV=YvC$belL|3B1Zk~^nF((eA0}H+TVs++}B?9RNXKOIr7TnzRqD*8z%|Y8u=oV z^0AYbIzLKLSTB=gn>$SBv@msu6JO|m!;sf#;Vz%s;MP)ohNY~+;Iz-qU@Y=xk$}`> z_KAU&QaEM4K5qiI(8utc*fXBgx?Cw3lq*U27{yKq}g# zRjS-emCo$PeqFzkakNcwlk-fw^Wo21J8oLb9&NBOYBqLrN2+179LQE5oJ%@sAlHk1W#?XOukk5Q3ay*1 zQA9H5BiZsAx$rls$SANcnXuPbOqsvVnUGs=axXu|OyId#Xr$sXX_{$30O7$R3DtSm zIcN0D7@(+Axl_^W`LKt?{uWV>$o-D8JvcT3;rQHdlN3L-vuc`Q$J3XEk-VPC!X8m} zu-H4#oPR;&-$M35ME*^Z10V3()0aS1${w)&Lsd#)uNJ6EiT#Nx_1#&)_$sQRyD1K( zZy*gqGyvu|(nZ4%d+oS698mT4tnXkW4gl;MM1u)>U{7g-?nx4$RtH9z`x33YNdwRk zx^yn4;bx_CQob@9B*1E5h*fc-lun53G-VfXwzHmY`>CeUx<vd5hqakdZo$FEtt`;EZgofC&g;mcnJ-bb7F^*DH|kRTU$_wZFXz>IXjB_+ zg*gz7x??ilch&E1H^=)e5t@idg)4abO3tNBykh^t#MAq9^X>a2lWqQ?fK`=L z4*_Ow0j`(M)PBrIu8Kdn+4p9Z_SU&JmlcWnB&=~5jRyC&sWlDSs``~~gEVhgX;M1> zQoKTybU$?x{QgA(Qo_36ValEQtnM}a;aZ$6)EHtMCt?Mw!>DQV1$!XY;b~7O*YJv^ zr(zCoIDsnvn?U-k%cP%^64rHf_*sIs8dgd8X9l+Og_WsK&Qg*vy_AroNAs^Q4fuZs z8LJ6otb*^1bx65nEiM&bDyRPCF_RfHngc@y_(#|RLs=q#1UQxIM*txTPKN|2)P z#2-=?3=|D_DT{W`Xm*JSd@F#X3k=jsME*8R$UJ*IoGB#ce36{aJ@(gKX@fI8vqoqV zf>GfUnTftKd@0tW7pV;z^KX*pb`+G`y&~g{WWH!_+iQ>_=2|bExDclq%Lto)nk*xn zU^QhsYrAv)@c=)Ju`x03ezs=tYF9g64q($3qB!z7kbomD3q?O-S3M-tW;Aw$?(+8W zd15n%)E!sjX58eXD=k7kqzqQtQ_lwEOh%M?LqEQFx_&~?__#-c$IdG^Yyi)eBz0W01Df6G~kMCT@r=3Sxoc_u_)fV>deio~R%R>K5`iS{Gp}9lv3f4J3 zGS%K@EUz*dUwP+w34Y5`RX6n{hj0;p;-j?bFMdcl#5--#?Y^3YzH|Z6+f!ps7Dw!yt~x|Kg%U^k?=jakj3kEHvYEvJd~_z zS^>CLy)uus7OqPUY2mfSRZVK5*Q9$RL)zv2_IT+k$V=gWNznY7KA^$CFDGVN%>K+d z{vW{d{s}U_Ww)Q?mtDC`IlJ8P!UEl|mv0Hr9P6J_0}Q{h$5}uN&`3X>ekx4uPuW9N z^txteFx{&& zm17Qr6Q(KrOG~mRVjkF6`y16YnMv5Fd1WqKE1($UzPuL0d}E|ZUNX(-S-KFXH)kr} zA>UBmq)L6C*q2;-{H1HTbrM8FNuC;d54D>rQzi3*XB`zTMA>#f_=c=4_q&qf>2<0f);8K6sqUg#4UrIaDplZmHD;Ko zArjpe?RClHI6B*a%MSba*sx}WW>kq@oqEfJN()c#-B~3pm$BzbcaB70&-Y!ISU#=2 z)@sVytf#s(LVhX=@%YLcgUQO5a+@ZliUYAzwAZ@}8g!?^>WjDq6ka5YoXivNd+3%B zkmw_M!lbQfR2DJrF(7Vj81ZR6_vws=*io#yM=5*`K9JE7gM%!?ph?b50%!kEZ z+HFnyuXtW8u8GPDtq)Xs9T5Ho!q%#mGYrVeTbuR*xGKvE%quG6>^82`S5p+s;-fF1zn z&*4y6t?(n7np#OwMx6zbtxq(Lq;$#uCH2K||8U4e1RolfH((H!io2RaF@IYpFFI+0 znX4vhh4maDvA=a;I1j)DfO9u-U_I;8j!W)r&%68N^=%Zyol%h^y2-^NG$p6$llzFg zdG?#$ZjuO!#s5OA_JR1Rkc%eCpC3wId>@1^T}`RLE3H-Zsc=VTT>4##XEApATMiR+ZZ zy?LY!Q)D#BdK2fr)WM7rg@!*{w((ycgRa9e;+e zA5XYypTVRrg*%yWPPG(9URAc^z3w>MR7{Sjp%zP}+m~QDDCk7uZ3_s!%G8jh6-jj@W@q-1uD>gZUdAz74ZVav zzTzKjqj8)Cr)ZFolu@&9*d)3puwR(oJ(W7lI2l_F#mmH(m0unisj7Ch*IT$`CncT4 zK=6zCMoL^_k$fw^prc+-Z5bXcqt8zxfyBwfNql4)p}E@SU#YxG`>b^+A%4!@pS}<#c23h< zsKj;qs^%#OlnVP_zhMoWDZTs23da1~_rA4*6%W2w>{~S~tgK)qa3=o0c+1%SMt=7m zsGp4tVgCnjg*w>m!AI`>Y_^&CPn!kTQ0#B^cTaix*=!!i&u2aztaWgq(9c@8rS~lx z+F$K=Ydn5dqm}*bijRX099$IfvjJ|o{|`$fc7GlVGq8R?|9 + + + Supabase.Functions + + + + + + + + Function that can be set to return dynamic headers. + + Headers specified in the method parameters will ALWAYS take precedence over headers returned by this function. + + + + + Initializes a functions client + + + + + + Returns an response, allowing for coersion into Streams, Strings, and byte[] + + Function Name, will be appended to BaseUrl + Anon Key. + Options + + + + + Invokes a function and returns the Text content of the response. + + Function Name, will be appended to BaseUrl + Anon Key. + Options + + + + + Invokes a function and returns a JSON Deserialized object according to the supplied generic Type + + + Function Name, will be appended to BaseUrl + Anon Key. + Options + + + + + Internal request handling + + + + + + + + + + Options that can be supplied to a function invocation. + + Note: If Headers.Authorization is set, it can be later overriden if a token is supplied in the method call. + + + + + Headers to be included on the request. + + + + + Body of the Request + + + + + Timout value for HttpClient Requests, defaults to 100s. + https://learn.microsoft.com/en-us/dotnet/api/system.net.http.httpclient.timeout?view=net-8.0#remarks + + + + + A hint as to why a request failed. + + + + + A failure reason + + + + + An unknown reason + + + + + Request was not authorized + + + + + An internal error occurred, check your supabase logs. + + + + + Attempts to detect a reason given an exception. + + + + + + + An Exception thrown within + + + + + + + + + + + The Http Response + + + + + The Http response content + + + + + The Http Status code + + + + + A parsed reason for a given failure + + + + + Attempts to detect a reason for this exception + + + + + Represents a contract for a Supabase Functions Client + + + + + Invokes a function given a URL and access token. Returns the string content. + + + + + + + + + Invokes a function given a URL and access token. Returns a typed response (should be a JSON.net parsable object) + + + + + + + + + + Invokes a function given a URL and access token. Returns the raw HTTP response. + + + + + + + + + A wrapper class from which all Responses derive. + + + + + The response message + + + + + The response content. + + + + diff --git a/Game/Assets/Supabase/functions-csharp.1.3.2/lib/netstandard2.0/Supabase.Functions.xml.meta b/Game/Assets/Supabase/functions-csharp.1.3.2/lib/netstandard2.0/Supabase.Functions.xml.meta new file mode 100644 index 0000000..0db720d --- /dev/null +++ b/Game/Assets/Supabase/functions-csharp.1.3.2/lib/netstandard2.0/Supabase.Functions.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: fee39202e0908c04393b63793839d11f +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/gotrue-csharp.4.2.7.meta b/Game/Assets/Supabase/gotrue-csharp.4.2.7.meta new file mode 100644 index 0000000..70e8fc3 --- /dev/null +++ b/Game/Assets/Supabase/gotrue-csharp.4.2.7.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ec8a5bb3a0155fb4a974bbf1282e9477 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/gotrue-csharp.4.2.7/.signature.p7s b/Game/Assets/Supabase/gotrue-csharp.4.2.7/.signature.p7s new file mode 100644 index 0000000000000000000000000000000000000000..dacda38d0e4d0ce2d2d1d62c53d0aa9bc15142ae GIT binary patch literal 11513 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

    3J22RJE=*G$W;LlZV+4+WBTXmW)|$twgav z^B#8v<&G@OG_P`?BHaY3-)K~hI}S~mCiAYY%AAUR>`?7*{It`M{`TmDG6UV0EoJ2`$pQSFzkWnZg&+d-B#spTY;$ayZxcDoHkQd#e? zxWn9KU8KsR^*$|P`|=x>ss%P*AJaE zGOgh{5TDaA94w?_Vb$1L>7&}$ayY>DW^%iuB;Wd2rOy%JZy;!+YBfiPth~GHz=x%> zCeOIOZZi3LgOR1ttESR33Bi(}Q~e+8|GKZz!;nmGI__BzsivTxS6LT$K8J zs5En5Ms#w%Kv7g@Nh{#4#@V=B%{u=BnwIcxGTH0YjJ>5RH2HCBOt;_nd|2^n*}qru zc49tYiFGk{kSgZ2@Ng#fN^FQhfD+)}xB~!9I<5p);IVQ=SM;n{InRIp~$?zo-3 z${lOo89D1EoL!z4xvGdXg2~-^fO`1edVI@EWi6_T_1s0784tdTZkU6ZaRhd-e5$K_0}l+M9;~o@e%c0Gu~^-cu^M$ z__v@9Rpm=>mSP8MBqoyT8&9^9T_9F`Ce*&Ordg{avfeyAROEqQ?Nh2VJ;>I2i(-3# zd1%5#Vyl;ph-vh~ZJ8X~W|P$ld*Y(v`tkit+xCvfjI=4zXR{Vi1HENA6r*a(+if^K drzK4oiPM^LwezK8X%uUejanSv2RDc({XbWqIAZ_+ literal 0 HcmV?d00001 diff --git a/Game/Assets/Supabase/gotrue-csharp.4.2.7/README.md b/Game/Assets/Supabase/gotrue-csharp.4.2.7/README.md new file mode 100644 index 0000000..45fb651 --- /dev/null +++ b/Game/Assets/Supabase/gotrue-csharp.4.2.7/README.md @@ -0,0 +1,296 @@ +

    + +

    + +

    + + + + +

    + +--- + +## New Features + +### Unity Support + +The Client works with Unity. You can find an example of a session persistence +implementation for Unity at this [gist](https://gist.github.com/wiverson/fbb07498743dff19b72c9c58599931e9). + +```csharp + +``` + +### Offline Support + +The Client now better supports online/offline usage. The Client now has a simple boolean option "Online" +which can be set to to false. This can be combined with the NetworkStatus class to allow the client +to automatically go online & offline based on the device's network status. + +To use this new NetworkStatus, add the following: + +```csharp +// Create the client +var client = new Client(new ClientOptions { AllowUnconfirmedUserSessions = true }); +// Create the network status monitor +var status = new NetworkStatus(); +// Tell the network status monitor to update the client's online status +status.Client = client; +// Start the network status monitor +await status.StartAsync(); +// rest of the usual client configuration +``` + +Only the stateful Client supports this feature, and only for the managed user sessions. +Admin JWT methods and the stateless client are not affected. + +By default, this change will not affect existing code. + +### Updated Refresh Token Handling + +The Client now supports setting a maximum wait time before refreshing the token. This is useful +for scenarios where you want to refresh the token before it expires, but not too often. + +By default, GoTrue servers are typically set to expire the token after an hour, and the refresh +thread will refresh the token when ~20% of that time is left. + +However, you can set the expiration time to be much longer on the server (up to a week). In this +scenario, you may want to refresh the token more often than once every 5 days or so, but not every hour. + +There is now a new option `MaximumRefreshWaitTime` which allows you to specify the maximum amount +in time that the refresh thread will wait before refreshing the token. This defaults to 4 hours. +This means that if you have your server set to a one hour token expiration, nothing changes, but +if you extend the server refresh to (for example) a week, as long as the user launches the app +at least once a week, they will never have to re-authenticate. + +## BREAKING CHANGES v3.1 → v4.x + +- Exceptions have been simplified to a single `GotrueException`. A `Reason` field has been added + to `GotrueException` to clarify what happened. This should also be easier to manage as the Gotrue + server API & messages evolve. +- The session delegates for `Save`/`Load`/`Destroy` have been simplified to no longer require `async`. +- Console logging in a few places (most notable the background refresh thread) has been removed + in favor of a notification method. See `Client.AddDebugListener()` and the test cases for examples. + This will allow you to implement your own logging strategy (write to temp file, console, user visible + err console, etc). +- The client now more reliably emits AuthState changes. +- There is now a single source of truth for headers in the stateful Client - the `Options` headers. + +New feature: + +- Added a `Settings` request to the stateless API only - you can now query the server instance to + determine if it's got the settings you need. This might allow for things like a visual + component in a tool to verify the GoTrue settings are working correctly, or tests that run differently + depending on the server configuration. + +Implementation notes: + +- Test cases have been added to help ensure reliability of auth state change notifications + and persistence. +- Persistence is now managed via the same notifications as auth state change + +## BREAKING CHANGES v3.0 → 3.1 + +- We've implemented the PKCE auth flow. SignIn using a provider now returns an instance of `ProviderAuthState` rather + than a `string`. +- The provider sign in signature has moved `scopes` into `SignInOptions` + +In Short: + +```c# +# What was: +var url = await client.SignIn(Provider.Github, "scopes and things"); + +# Becomes: +var state = await client.SignIn(Provider.Github, new SignInOptions { "scopes and things" }); +// Url is now at `state.Uri` +``` + +--- + +## Getting Started + +To use this library on the Supabase Hosted service but separately from the `supabase-csharp`, you'll need to specify +your url and public key like so: + +```c# +var auth = new Supabase.Gotrue.Client(new ClientOptions +{ + Url = "https://PROJECT_ID.supabase.co/auth/v1", + Headers = new Dictionary + { + { "apikey", SUPABASE_PUBLIC_KEY } + } +}) +``` + +Otherwise, using it this library with a local instance: + +```c# +var options = new ClientOptions { Url = "https://example.com/api" }; +var client = new Client(options); +var user = await client.SignUp("new-user@example.com"); + +// Alternatively, you can use a StatelessClient and do API interactions that way +var options = new StatelessClientOptions { Url = "https://example.com/api" } +await new StatelessClient().SignUp("new-user@example.com", options); +``` + +## Persisting, Retrieving, and Destroying Sessions. + +This Gotrue client is written to be agnostic when it comes to session persistence, retrieval, and +destruction. `ClientOptions` exposes +properties that allow these to be specified. + +In the event these are specified and the `AutoRefreshToken` option is set, as the `Client` Initializes, it will also +attempt to +retrieve, set, and refresh an existing session. + +For example, using `Xamarin.Essentials` in `Xamarin.Forms`, this might look like: + +```c# +// This is a method you add your application launch/setup +async void Initialize() { + + // Specify the methods you'd like to use as persistence callbacks + var persistence = new GotrueSessionPersistence(SaveSession, LoadSession, DestroySession); + var client = new Client( + Url = GOTRUE_URL, + new ClientOptions { + AllowUnconfirmedUserSessions = true, + SessionPersistence = persistence }); + + // Specify a debug callback to listen to problems with the background token refresh thread + client.AddDebugListener(LogDebug); + + // Specify a call back to listen to changes in the user state (logged in, out, etc) + client.AddStateChangedListener(AuthStateListener); + + // Load the session from persistence + client.LoadSession(); + // Loads the session using SessionRetriever and sets state internally. + await client.RetrieveSessionAsync(); +} + +// Add callback methods for above +// Here's a quick example of using this to save session data to the user's cache folder +// You'll want to add methods for loading the file and deleting when the user logs out +internal bool SaveSession(Session session) +{ + var cacheFileName = ".gotrue.cache"; + + try + { + var cacheDir = FileSystem.CacheDirectory; + var path = Path.Join(cacheDir, cacheFileName); + var str = JsonConvert.SerializeObject(session); + + using (StreamWriter file = new StreamWriter(path)) + { + file.Write(str); + file.Dispose(); + return Task.FromResult(true); + }; + } + catch (Exception err) + { + Debug.WriteLine("Unable to write cache file."); + throw err; + } +} +``` + +## 3rd Party OAuth + +Once again, Gotrue client is written to be agnostic of platform. In order for Gotrue to sign in a user from an Oauth +callback, the PKCE flow is preferred: + +1) The Callback Url must be set in the Supabase Admin panel +2) The Application should have listener to receive that Callback +3) Generate a sign in request using: `client.SignIn(PROVIDER, options)` and setting the options to use the + PKCE `FlowType` +4) Store `ProviderAuthState.PKCEVerifier` so that the application callback can use it to verify the returned code +5) In the Callback, use stored `PKCEVerifier` and received `code` to exchange for a session. + +```c# +var state = await client.SignIn(Constants.Provider.Github, new SignInOptions +{ + FlowType = Constants.OAuthFlowType.PKCE, + RedirectTo = "http://localhost:3000/oauth/callback" +}); + +// In callback received from Supabase returning to RedirectTo (set above) +// Url is set as: http://REDIRECT_TO_URL?code=CODE +var session = await client.ExchangeCodeForSession(state.PKCEVerifier, RETRIEVE_CODE_FROM_GET_PARAMS); +``` + +## Troubleshooting + +**Q: I've created a User but while attempting to log in it throws an exception:** + +A: Provided the credentials are correct, make sure that the User has also confirmed their email. + +Adding a handler for email confirmation to a desktop or mobile application can be done, but it +requires setting up URL handlers for each platform, which can be pretty difficult to do if you +aren't really comfortable with configuring these handlers. ( +e.g. [Windows](https://learn.microsoft.com/en-us/windows/win32/search/-search-3x-wds-ph-install-registration), +[Apple](https://developer.apple.com/documentation/xcode/defining-a-custom-url-scheme-for-your-app), +[Android](https://developer.android.com/training/app-links)) +You may find it easier to create a +simple web application to handle email confirmation - that way a user can just click a link in +their email and get confirmed that way. Your desktop or mobile app should inspect the user object +that comes back and use that to see if the user is confirmed. + +You might find it easiest to do something like create and deploy a +simple [SvelteKit](https://kit.svelte.dev/) or even a very basic +pure [JavaScript](https://github.com/supabase/examples-archive/tree/main/supabase-js-v1/auth/javascript-auth) project +to handle email verification. + +## Status + +- [x] API + - [x] Sign Up with Email + - [x] Sign In with Email + - [x] Send Magic Link Email + - [x] Invite User by Email + - [x] Reset Password for Email + - [x] Signout + - [x] Get Url for Provider + - [x] Get User + - [x] Update User + - [x] Refresh Access Token + - [x] List Users (includes filtering, sorting, pagination) + - [x] Get User by Id + - [x] Create User + - [x] Update User by Id +- [x] Client + - [x] Get User + - [x] Refresh Session + - [x] Auth State Change Handler + - [x] Provider Sign In (Provides URL) +- [x] Provide Interfaces for Custom Token Persistence Functionality +- [x] Documentation +- [x] Unit Tests +- [x] Nuget Release + +## Package made possible through the efforts of: + +Join the ranks! See a problem? Help fix it! + + + + + +Made with [contrib.rocks](https://contrib.rocks). + +## Contributing + +We are more than happy to have contributions! Please submit a PR. + +### Testing + +To run the tests locally you must have docker and docker-compose installed. Then in the root of the repository run: + +- `docker-compose up -d` +- `dotnet test` diff --git a/Game/Assets/Supabase/gotrue-csharp.4.2.7/README.md.meta b/Game/Assets/Supabase/gotrue-csharp.4.2.7/README.md.meta new file mode 100644 index 0000000..427faf8 --- /dev/null +++ b/Game/Assets/Supabase/gotrue-csharp.4.2.7/README.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: d3cb1609f8fe4c44ab7e7b1402c8e0b9 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/gotrue-csharp.4.2.7/gotrue-csharp.4.2.7.nupkg b/Game/Assets/Supabase/gotrue-csharp.4.2.7/gotrue-csharp.4.2.7.nupkg new file mode 100644 index 0000000000000000000000000000000000000000..fc58cc65005b0bab255c8111ef5f8c3688d7d319 GIT binary patch literal 79731 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%0AP- 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 + + + Supabase.Gotrue + + + +

    + Admin client for interacting with the Gotrue API. Intended for use on + servers or other secure environments. + + This client does NOT manage user sessions or track any other state. + + + + + The initialized client options. + + + + + Initialize the client with a service key. + + A valid JWT. Must be a full-access API key (e.g. 'service_role' or 'supabase_admin'). + + + + + Headers sent to the API on every request. + + + + + The underlying API requests object that sends the requests + + + + + The service key used to authenticate with the API. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The REST calls to the Gotrue API. + + + + + Function that can be set to return dynamic headers. + Headers specified in the constructor will ALWAYS take precedence over headers returned by this function. + + + + + Headers to be sent with every request. These will be merged with any headers returned by GetHeaders. + + + + + Creates a new API client + + + + + + + Signs a user up using an email address and password. + + + + Optional Signup data. + + + + + Logs in an existing user using their email address. + + + + + + + + Log in a user using magiclink or a one-time password (OTP). + + If the `{{ .ConfirmationURL }}` variable is specified in the email template, a magiclink will be sent. + If the `{{ .Token }}` variable is specified in the email template, an OTP will be sent. + If you're using phone sign-ins, only an OTP will be sent. You won't be able to send a magiclink for phone sign-ins. + + Be aware that you may get back an error message that will not distinguish + between the cases where the account does not exist or, that the account + can only be accessed via social login. + + Do note that you will need to configure a Whatsapp sender on Twilio + if you are using phone sign in with the 'whatsapp' channel. The whatsapp + channel is not supported on other providers at this time. + + + + + + + Log in a user using magiclink or a one-time password (OTP). + + If the `{{ .ConfirmationURL }}` variable is specified in the email template, a magiclink will be sent. + If the `{{ .Token }}` variable is specified in the email template, an OTP will be sent. + If you're using phone sign-ins, only an OTP will be sent. You won't be able to send a magiclink for phone sign-ins. + + Be aware that you may get back an error message that will not distinguish + between the cases where the account does not exist or, that the account + can only be accessed via social login. + + Do note that you will need to configure a Whatsapp sender on Twilio + if you are using phone sign in with the 'whatsapp' channel. The whatsapp + channel is not supported on other providers at this time. + + + + + + + Creates a new anonymous user. + + + A session where the is_anonymous claim in the access token JWT set to true + + + + Allows signing in with an ID token issued by certain supported providers. + The [idToken] is verified for validity and a new session is established. + This method of signing in only supports [Provider.Google] or [Provider.Apple]. + + A supported provider (Google, Apple) + + + + + + InvalidProviderException + + + + + Sends a magic login link to an email address. + + + + + + + + Sends an invite link to an email address. + + + this token needs role 'supabase_admin' or 'service_role' + + + + + + Signs up a new user using their phone number and a password.The phone number of the user. + + The phone number of the user. + The password of the user. + Optional Signup data. + + + + + Logs in an existing user using their phone number and password. + + The phone number of the user. + The password of the user. + + + + + Sends a mobile OTP via SMS. Will register the account if it doesn't already exist + + phone The user's phone number WITH international prefix + + + + + Send User supplied Mobile OTP to be verified + + The user's phone number WITH international prefix + token that user was sent to their mobile phone + e.g. SMS or phone change + + + + + Send User supplied Email OTP to be verified + + The user's email address + token that user was sent to their mobile phone + Type of verification, e.g. invite, recovery, etc. + + + + + Sends a reset request to an email address. + + + + + + + Sends a password reset request to an email address. + + This Method supports the PKCE Flow + + + + + + + Create a temporary object with all configured headers and adds the Authorization token to be used on request methods + + JWT + + + + + Generates the relevant login URI for a third-party provider. + + + + + + + + Log in an existing user via code from third-party provider. + + Generated verifier (probably from GetUrlForProvider) + The received Auth Code Callback + + + + + Removes a logged-in session. + + + + + + + Gets User Details + + + + + + + Get User details by Id + + A valid JWT. Must be a full-access API key (e.g. service_role key). + userID + + + + + Updates the User data + + + + + + + + Lists users + + A valid JWT. Must be a full-access API key (e.g. service_role key). + A string for example part of the email + Snake case string of the given key, currently only created_at is supported + asc or desc, if null desc is used + page to show for pagination + items per page for pagination + + + + + Create a user + + A valid JWT. Must be a full-access API key (e.g. service_role key). + Additional administrative details + + + + + Update user by Id + + A valid JWT. Must be a full-access API key (e.g. service_role key). + userID + User attributes e.g. email, password, etc. + + + + + Sends a re-authentication request, used for password changes. + + See: https://github.com/supabase/gotrue#get-reauthenticate + + The user's auth token. + + + + + Delete a user + + The user uid you want to remove. + A valid JWT. Must be a full-access API key (e.g. service_role key). + + + + + Calls the GoTrue server to get the settings (for example, if email auto confirmation is turned on) + + mpose up -d + + + + + Generates email links and OTPs to be sent via a custom email provider. + + + + + + + + Generates a new Session given a user's access token and refresh token. + + + + + + + + + + + The underlying API requests object that sends the requests + + + + + Handlers for notifications of state changes. + + + + + Gets notifications if there is a failure not visible by exceptions (e.g. background thread refresh failure) + + + + + Object called to persist the session (e.g. filesystem or cookie) + + + + + Get the TokenRefresh object, if it exists + + + + + Initializes the GoTrue stateful client. + + You will likely want to at least specify a + ClientOptions.Url + + + Sessions are not automatically retrieved when this object is created. + + If you want to load the session from your persistence store, + GotrueSessionPersistence + . + + If you want to load/refresh the session, + RetrieveSessionAsync + . + + For a typical client application, you'll want to load the session from persistence + and then refresh it. If your application is listening for session changes, you'll + get two SignIn notifications if the persisted session is valid - one for the + session loaded from disk, and a second on a successful session refresh. + + + + var client = new Supabase.Gotrue.Client(options); + client.LoadSession(); + await client.RetrieveSessionAsync(); + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Parses a out of a 's Query parameters. + + + + + + + + + + + + + + Headers sent to the API on every request. + + + + + + + + Saves the session + + + + + + Clears the session + + + + + + + + + + + + + + + + + + + + + + + Class representation options available to the . + + + + + Gotrue Endpoint + + + + + Headers to be sent with subsequent requests. + + + + + Should the Client automatically handle refreshing the User's Token? + + + + + Ask the TokenRefresh system to log extra debug info + + + + + By default, the Client will attempt to refresh the token when roughly 1/5 of the + time is left before expiration (assuming AutoRefreshToken is true). + + + + The default expiration time for GoTrue servers is 3600 (1 hour), with a maximum + of 604,800 seconds (one week). + + If you set the expiration to one week, you may want to refresh the token a bit + more frequently. This setting allows you to set a custom threshold for when the + client should AutoRefreshToken. The default value is 14400 seconds (4 hours). + + In this scenario, if you set the server expiration to one week and leave this + value set to the default, as long as the user logs in at least once a week they + should stay logged in indefinitely. + + + + + Very unlikely this flag needs to be changed except in very specific contexts. + + Enables tests to be E2E tests to be run without requiring users to have + confirmed emails - mirrors the Gotrue server's configuration. + + + + + Constants used throughout the Gotrue Client + + + + + URL for the Gotrue server. Defaults to localhost:9999. + + + + + Providers available to Supabase + Ref: https://supabase.github.io/gotrue-js/modules.html#Provider + + + + + States that the Auth Client will raise events for. + + + + + Specifies the functionality expected from the `SignIn` method + + + + + Represents an OAuth Flow type + + + + + Specifies the functionality expected from the `SignUp` method + + + + + Manages the debug listeners for the Gotrue Client. You'll want to install a debug listener + to get debug information back - especially for errors from the background RefreshToken thread. + + + + + Add a debug listener to the Gotrue Client. This will be called with debug information + + + + + + Send a debug message to all debug listeners + + + + + + + Maps Supabase server errors to hints based on the status code and the contents of the error message. + + + + + Best effort guess at why the exception was thrown. + + + + + The reason for the error could not be determined. + + + + + The client is set to run offline or the network is unavailable. + + + + + The user's email address has not been confirmed. + + + + + The user's email address and password are invalid. + + + + + The user's password is invalid. + + + + + The user's login is invalid. + + + + + The user's email address is invalid. + + + + + The user's phone number is invalid. + + + + + The user's information is incomplete. + + + + + The user is already registered. + + + + + Server rejected due to number of requests + + + + + The refresh token is invalid. + + + + + The refresh token expired. + + + + + This operation requires a bearer/service key (do not include this key in a client app) + + + + + No/invalid session found + + + + + Something wrong with the URL to session transformation + + + + + Detects the reason for the error based on the status code and the contents of the error message. + + + + + + + Errors from the GoTrue server are wrapped by this exception + + + + + Something with wrong with Gotrue / Auth + + Short description of the error source + + + + Something with wrong with Gotrue / Auth + + Short description of the error source + The underlying exception + + + + Something with wrong with Gotrue / Auth + + Short description of the error source + Best effort attempt to detect the reason for the failure + + + + Something with wrong with Gotrue / Auth + + Short description of the error source + Assigned reason + + + + + The HTTP response from the server + + + + + The content of the HTTP response from the server + + + + + The HTTP status code from the server + + + + + Adds the best-effort reason for the failure + + + + + Best guess at what caused the error from the server, see + + + + + Options for Generating an Email Link + + + + + Mapping of link types that can be generated. + + + + + Generate a signup link. + + + + + Generate an invite link. + + + + + Generate a magic link. + + + + + Generate a recovery link. + + + + + Generate an email change link to be sent to the current email address. + + + + + Generate an email change link to be sent to the new email address. + + + + + The type of link being generated + + + + + The User's Email + + + + + Only required if generating a signup link. + + + + + The user's new email. Only required if type is 'email_change_current' or 'email_change_new'. + + + + + A custom data object to store the user's metadata. This maps to the `auth.users.user_metadata` column. + + The `data` should be a JSON encodable object that includes user-specific info, such as their first and last name. + + + + + The URL which will be appended to the email link generated. + + + + + Constructs options, additional properties may need to be assigned depending on + + - is required for and + - is required for + - is optional for + + + + + + + Shortcut options for + + + + + Constructs options for + + + + + is optional + + + + + Shortcut options for + + + + + Constructs options for + + + + + + + Shortcut options for + + + + + Constructs options for + + + + + + + Utility methods to assist with flow. Includes nonce generation and verification. + + + + + Generates a nonce (code verifier) + Used with PKCE flow and Apple/Google Sign in. + Paired with + + Sourced from: https://stackoverflow.com/a/65220376/3629438 + + + + + Generates a PKCE SHA256 code challenge given a nonce (code verifier) + + Paired with + + Sourced from: https://stackoverflow.com/a/65220376/3629438 + + + + + + Generates a SHA256 nonce given a rawNonce, used Apple/Google Sign in. + + + + + + + Adds query params to a given Url + + + + + + + + Helper to make a request using the defined parameters to an API Endpoint and coerce into a model. + + + + + + + + + + + Helper to make a request using the defined parameters to an API Endpoint. + + + + + + + + + + Interface for the Gotrue Admin Client (auth). + + + + + + Creates a user using the admin key (not the anonymous key). + Used in trusted server environments, not client apps. + + + + + + + Creates a user using the admin key (not the anonymous key). + Used in trusted server environments, not client apps. + + + + + + + + + Creates a user using the admin key (not the anonymous key). + Used in trusted server environments, not client apps. + + + + + Gets a user from a user's JWT. This is using the GoTrue server to validate a user's JWT. + + + + + + + Gets a user by ID from the server using the admin key (not the anonymous key). + + + + + + + Sends an email to the user. + + + + + + + + Lists users + + A string for example part of the email + Snake case string of the given key, currently only created_at is supported + asc or desc, if null desc is used + page to show for pagination + items per page for pagination + + + + + Updates a User using the service key + + + + + + + Update user by Id + + + + + + + + Generates email links and OTPs to be sent via a custom email provider. + + Options for this call. `Password` is required for , `Data` is an optional parameter for . + + + + + GoTrue stateful Client. + + This class is best used as a long-lived singleton object in your application. You can attach listeners + to be notified of changes to the user log in state, a persistence system for sessions across application + launches, and more. It includes a (optional, on by default) background thread that runs to refresh the + user's session token. + + Check out the test suite for examples of use. + + + var client = new Supabase.Gotrue.Client(options); + var user = await client.SignIn("user@email.com", "fancyPassword"); + + + + + Indicates if the client should be considered online or offline. + + In a server environment, this client would likely always be online. + + On a mobile client, you will want to pair this with a network implementation + to turn this on and off as the device goes online and offline. + + + + + The current Session as managed by this client. Does not refresh tokens or have any other side effects. + + You probably don't want to directly make changes to this object - you'll want to use other methods + on this class to make changes. + + + + + The currently logged in User. This is a local cache of the current session User. + To persist modifications to the User you'll want to use other methods. + > + + + + + The method that is called when there is a user state change. + + + + + Sets the persistence implementation for the client (e.g. file system, local storage, etc). + + + + + + Adds a listener to be notified when the user state changes (e.g. the user logs in, logs out, + the token is refreshed, etc). + + + + + + + + Removes a specified listener from event state changes. + + + + + + Clears all of the listeners from receiving event state changes. + + WARNING: The persistence handler and refresh token thread are installed as state change + listeners. Clearing the listeners will also delete these handlers. + + + + + Notifies all listeners that the current user auth state has changed. + + This is mainly used internally to fire notifications - most client applications won't need this. + + + + + + Converts a URL to a session. For client apps, this probably requires setting up URL handlers. + + + + + + + + Refreshes the currently logged in User's Session. + + + + + + Sends a reset request to an email address. + + + + + + + Sends a password reset request to an email address. + + Supports the PKCE Flow (the `verifier` from will be combined with in response) + + + + + + + Typically called as part of the startup process for the client. + + This will take the currently loaded session (e.g. from a persistence implementation) and + if possible attempt to refresh it. If the loaded session is expired or invalid, it will + log the user out. + + + + + + Sends a Magic email login link to the specified email. + + Most of the interesting configuration for this flow is done in the + Supabase/GoTrue admin panel. + + + + + + + + + Sets a new session given a user's access token and their refresh token. + + 1. Will destroy the current session (if existing) + 2. Raise a event. + 3. Decode token + 3a. If expired (or bool set), force an access token refresh. + 3b. If not expired, set the and retrieve from the server using the . + 4. Raise a ` event if successful. + + + + + + Raised when token combination is invalid. + + + + Log in an existing user, or login via a third-party provider. + + Type of Credentials being passed + An email, phone, or RefreshToken + Password to account (optional if `RefreshToken`) + A space-separated list of scopes granted to the OAuth application. + + + + + Sends a magic link login email to the specified email. + + + + + + + Signs in a User. + + + + + + + + Log in a user using magiclink or a one-time password (OTP). + + If the `{{ .ConfirmationURL }}` variable is specified in the email template, a magiclink will be sent. + If the `{{ .Token }}` variable is specified in the email template, an OTP will be sent. + If you're using phone sign-ins, only an OTP will be sent. You won't be able to send a magiclink for phone sign-ins. + + Be aware that you may get back an error message that will not distinguish + between the cases where the account does not exist or, that the account + can only be accessed via social login. + + Do note that you will need to configure a Whatsapp sender on Twilio + if you are using phone sign in with the 'whatsapp' channel. The whatsapp + channel is not supported on other providers at this time. + + Calling this method will wipe out the current session (if any) + + + + + + Log in a user using magiclink or a one-time password (OTP). + + If the `{{ .ConfirmationURL }}` variable is specified in the email template, a magiclink will be sent. + If the `{{ .Token }}` variable is specified in the email template, an OTP will be sent. + If you're using phone sign-ins, only an OTP will be sent. You won't be able to send a magiclink for phone sign-ins. + + Be aware that you may get back an error message that will not distinguish + between the cases where the account does not exist or, that the account + can only be accessed via social login. + + Do note that you will need to configure a Whatsapp sender on Twilio + if you are using phone sign in with the 'whatsapp' channel. The whatsapp + channel is not supported on other providers at this time. + + Calling this method will wipe out the current session (if any) + + + + + + Log in an existing user with an email and password or phone and password. + + + + + + + + Retrieves a to redirect to for signing in with a . + + This will likely be paired with a PKCE flow (set in SignInOptions) - after redirecting the + user to the flow, you should pair with + + + + + + + + Allows signing in with an ID token issued by certain supported providers. + The [idToken] is verified for validity and a new session is established. + This method of signing in only supports [Provider.Google] or [Provider.Apple]. + + A supported provider (Google, Apple) + Provided from External Library + Provided from External Library + Provided from External Library + Calling this method will eliminate the current session (if any). + + InvalidProviderException + + + + + Creates a new anonymous user. + + + A session where the is_anonymous claim in the access token JWT set to true + + + + Logs in an existing user via a third-party provider. + + + + + + + Signs up a user + + + Calling this method will log out the current user session (if any). + + By default, the user needs to verify their email address before logging in. To turn this off, disable confirm email in your project. + Confirm email determines if users need to confirm their email address after signing up. + - If Confirm email is enabled, a user is returned but session is null. + - If Confirm email is disabled, both a user and a session are returned. + When the user confirms their email address, they are redirected to the SITE_URL by default. You can modify your SITE_URL or add additional redirect URLs in your project. + If signUp() is called for an existing confirmed user: + - If Confirm email is enabled in your project, an obfuscated/fake user object is returned. + - If Confirm email is disabled, the error message, User already registered is returned. + To fetch the currently logged-in user, refer to . + + + + + Object containing redirectTo and optional user metadata (data) + + + + + Signs up a user by email address. + + + By default, the user needs to verify their email address before logging in. To turn this off, disable Confirm email in your project. + Confirm email determines if users need to confirm their email address after signing up. + - If Confirm email is enabled, a user is returned but session is null. + - If Confirm email is disabled, both a user and a session are returned. + When the user confirms their email address, they are redirected to the SITE_URL by default. You can modify your SITE_URL or + add additional redirect URLs in your project. + If signUp() is called for an existing confirmed user: + - If Confirm email is enabled in your project, an obfuscated/fake user object is returned. + - If Confirm email is disabled, the error message, User already registered is returned. + To fetch the currently logged-in user, refer to + User + . + + + + Object containing redirectTo and optional user metadata (data) + + + + + Used for re-authenticating a user in password changes. + + See: https://github.com/supabase/gotrue#get-reauthenticate + + + + + + + Signs out a user and invalidates the current token. + + + + + + Updates a User. + + + + + + + Log in a user given a User supplied OTP received via mobile. + + The user's phone number. + Token sent to the user's phone. + SMS or phone change + + + + + Log in a user give a user supplied OTP received via email. + + + + Defaults to MagicLink + + + + + Add a listener to get errors that occur outside of a typical Exception flow. + In particular, this is used to get errors and messages from the background thread + that automatically manages refreshing the user's token. + + Callback method for debug messages + + + + Loads the session from the persistence layer. + + + + + Retrieves the settings from the server + + + + + + Returns the client options. + + + + + Get User details by JWT. Can be used to validate a JWT. + + A valid JWT. Must be a JWT that originates from a user. + + + + + Posts messages and exceptions to the debug listener. This is particularly useful for sorting + out issues with the refresh token background thread. + + + + + + + Let all of the listeners know that the stateless client is being shutdown. + + In particular, the background thread that is used to refresh the token is stopped. + + + + + Refreshes a Token using the current session. + + + + + + Interface for a session persistence auth state handler. + + + + + The persistence implementation for the client (e.g. file system, local storage, etc). + + + + + Routes auth state changes to the persistence implementation. + + + + + + + Interface for session persistence. As a reminder, make sure you handle exceptions and + other error conditions in your implementation. + + + + + Saves the session to the persistence implementation. + + + + + + Destroys the session in the persistence implementation. Usually this means + deleting the session file or clearing local storage. + + + + + Loads the session from the persistence implementation. Returns null if there is no session. + + + + + + A Stateless Gotrue Client + + + var options = new StatelessClientOptions { Url = "https://mygotrueurl.com" }; + var user = await client.SignIn("user@email.com", "fancyPassword", options); + + + + + Create a user + + A valid JWT. Must be a full-access API key (e.g. service_role key). + + + + + + + Create a user + + A valid JWT. Must be a full-access API key (e.g. service_role key). + + + + + + + + + Deletes a User. + + + this token needs role 'supabase_admin' or 'service_role' + + + + + + Initialize/retrieve the underlying API for this client + + + + + + + Parses a out of a 's Query parameters. + + + + + + + + Get User details by JWT. Can be used to validate a JWT. + + A valid JWT. Must be a JWT that originates from a user. + + + + + + Get User details by Id + + A valid JWT. Must be a full-access API key (e.g. service_role key). + + + + + + + Sends an invite email link to the specified email. + + + this token needs role 'supabase_admin' or 'service_role' + + + + + + + Lists users + + A valid JWT. Must be a full-access API key (e.g. service_role key). + + A string for example part of the email + Snake case string of the given key, currently only created_at is supported + asc or desc, if null desc is used + page to show for pagination + items per page for pagination + + + + + Refreshes a Token + + + + + + + + + Sends a reset request to an email address. + + + + + + + + + Sends a Magic email login link to the specified email. + + + + + + + + + Retrieves a Url to redirect to for signing in with a . + + This method will need to be combined with when the + Application receives the Oauth Callback. + + + var client = Supabase.Gotrue.Client.Initialize(options); + var url = client.SignIn(Provider.Github); + + // Do Redirect User + + // Example code + Application.HasReceivedOauth += async (uri) => { + var session = await client.GetSessionFromUri(uri, true); + } + + + + + + + + + Log in an existing user, or login via a third-party provider. + + Type of Credentials being passed + An email, phone, or RefreshToken + Password to account (optional if `RefreshToken`) + + + + + + Sends a Magic email login link to the specified email. + + + + + + + + + Signs in a User with an email address and password. + + + + + + + + + Logout a User + This will revoke all refresh tokens for the user. + JWT tokens will still be valid for stateless auth until they expire. + + + + + + + + Signs up a user + + Type of signup + Phone or Email + + + Object containing redirectTo and optional user metadata (data) + + + + + Signs up a user by email address + + + + + Object containing redirectTo and optional user metadata (data) + + + + + Updates a User's attributes + + + + + + + + + Update user by Id + + A valid JWT. Must be a full-access API key (e.g. service_role key). + + + + + + + + Log in a user given a User supplied OTP received via mobile. + + The user's phone number. + Token sent to the user's phone. + + + + + + + Log in a user give a user supplied OTP received via email. + + + + + + + + + + Retrieve the current settings for the Gotrue instance. + + + + + + + A utility class that represents options for sending a User an Invitation + + + + + The URL which will be appended to the email link sent to the user's email address. Once clicked the user will end up on this URL. + + + + + A custom data object to store additional metadata about the user. This maps to the `auth.users.user_metadata` column. + + + + + A Network status system to pair with the Client. + + + https://learn.microsoft.com/en-us/dotnet/fundamentals/networking/network-info + + + + + + True if the network has been checked. + + + + + A delegate for listening to network changes. + + + + + Adds a listener to the network status system. + + + + + + Removes a listener from the network status system. + + + + + + The that this network status system is attached to. + + + + + Pings the URL in the to check if the network is online. + + https://PROJECTID.supabase.co/auth/v1/settings + + + + + Starts the network status system. This will listen to the OS for network changes, + and also does a ping check to confirm the current network status. + + + + + Removes the network status system checker from the OS. + + + + + A utility class that represents a successful response from a request to send a user + Passwordless Sign In. + + + + + PKCE Verifier generated if using the PKCE flow type. + + + + + Manages the persistence of the Gotrue Session. You'll want to install a persistence listener + to persist user sessions between app restarts. + + + + + Create a new persistence listener + + + + + + + + + If you install a persistence listener, it will be called when the user signs in and signs out. + + + + + + + + + Represents an OAuth Provider's URI and Parameters. + + For use with Provider Auth, PKCE Auth, and ID Token auth. + + + + + The Generated Provider's URI + + + + + The PKCE Verifier nonce, only set during a PKCE auth flow. + + + + + Constructor + + + + + + A utility class that represents a successful response from a request to send a user's password reset using the PKCE flow. + + + + + The Email representing the user's account whose password is being reset. + + + + + The OAuth Flow Type. + + + + + The URL to send the user to after they click the password reset link. + + + + + Verification token received when the user completes the captcha on the site. + + + + + PKCE Verifier generated if using the PKCE flow type. + + + + + Initializes a new instance of the class with the provided email. + + The email of the user account for which the password is being reset. + + + + A utility class that represents a successful response from a request to send a user's password reset using the PKCE flow. + + + + + PKCE Verifier generated if using the PKCE flow type. + + + + + A wrapper class from which all Responses derive. + + + + + The HTTP response message. + + + + + The HTTP response content as a string. + + + + + An extended user response returned when generating a link. + + + + + The email link to send to the user. + The action_link follows the following format: auth/v1/verify?type={verification_type}&token={hashed_token}&redirect_to={redirect_to} + + + + + The raw email OTP. + You should send this in the email if you want your users to verify using an OTP instead of the action link. + + + + + The hashed token appended to the action link. + + + + + The URL appended to the action link. + + + + + The verification type that the email link is associated to. + + + + + Represents a Gotrue Session + + + + + The expiration date of this session, in UTC time. + + + + + + Returns true if the session has expired + + + + + + Settings data retrieved from the GoTrue server. + + + + + A custom data object to store the user's metadata. This maps to the `auth.users.raw_user_meta_data` column. + + The `data` should be a JSON serializable object that includes user-specific info, such as their first and last name. + + + + + Verification token received when the user completes the captcha on the site. + + + + + Options used for signing in a user. + + + + + A URL or mobile address to send the user to after they are confirmed. + + + + + A space-separated list of scopes granted to the OAuth application. + + + + + An object of key-value pairs containing query parameters granted to the OAuth application. + + + + + Represents an OAuth Flow type, defaults to `Implicit` + + PKCE is recommended for mobile and server-side applications. + + + + + Options used for signing in a user with passwordless Options + + + + + A custom data object to store the user's metadata. This maps to the `auth.users.user_metadata` column. + + The `data` should be a JSON serializable object that includes user-specific info, such as their first and last name. + + + + + Verification token received when the user completes the captcha on the site. + + + + + If set to false, this method will not create a new user. Defaults to true. + + + + + + + + The user's email address. + + + + + The redirect url embedded in the email link. + + + + + Represents an OAuth Flow type, defaults to `Implicit` + + PKCE is recommended for mobile and server-side applications. + + + + The user's email address. + + + + + + + Represents a messaging channel to use for sending the OTP. + + + + + SMS + + + + + + + + + + The user's phone number + + + + + Messaging channel to use (e.g. whatsapp or sms), Defaults to SMS. + + + + The user's phone number + + + + Options used for signing up a user. + + + + + Optional user metadata. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Class representation options available to the . + + + + + Gotrue Endpoint + + + + + Headers to be sent with subsequent requests. + + + + + Very unlikely this flag needs to be changed except in very specific contexts. + + Enables tests to be E2E tests to be run without requiring users to have + confirmed emails - mirrors the Gotrue server's configuration. + + + + + Manages the auto-refresh of the Gotrue Session. + + + + + Internal timer reference for token refresh + + AutoRefreshToken + + + + + + Turn on debug logging for the TokenRefresh + + + + + Sets up the TokenRefresh class, bound to a specific client + + + + + + Turns the auto-refresh timer on or off based on the current auth state + + The Client and Session data + + + + + + Sets up the auto-refresh timer + + + + + The timer calls this method at the configured interval to refresh the token. + + If the user is offline, it won't try to refresh the token. + + + + + Create a new refresh timer. + + + We pass to ensure the handler only runs once. + We create a new timer after each refresh so that each refresh runs in a new thread. + This keeps the refresh going if a thread crashes. + Creating a thread each refresh is not so expensive when the refresh interval is an hour or longer. + + + + + Interval should be t - (1/5(n)) (i.e. if session time (t) 3600s, attempt refresh at 2880s or 720s (1/5) seconds before expiration) + + + + + Represents a Gotrue User + Ref: https://supabase.github.io/gotrue-js/interfaces/User.html + + + + + Ref: https://supabase.github.io/gotrue-js/interfaces/AdminUserAttributes.html + + + + + A custom data object for app_metadata that. Can be any JSON serializable data. + Only a service role can modify + + Note: GoTrue does not yest support creating a user with app metadata + (see: https://github.com/supabase/gotrue-js/blob/d7b334a4283027c65814aa81715ffead262f0bfa/test/GoTrueApi.test.ts#L45) + + + + + A custom data object for user_metadata. Can be any JSON serializable data. + Only a service role can modify. + + + + + Sets if a user has confirmed their email address. + Only a service role can modify + + + + + Sets if a user has confirmed their phone number. + Only a service role can modify + + + + + Ref: https://supabase.github.io/gotrue-js/interfaces/UserAttributes.html + + + + + A custom data object for user_metadata that a user can modify.Can be any JSON. + + + + + Ref: https://supabase.github.io/gotrue-js/interfaces/VerifyEmailOTPParams.html + + + + + Ref: https://supabase.github.io/gotrue-js/interfaces/UserIdentity.html + + + + diff --git a/Game/Assets/Supabase/gotrue-csharp.4.2.7/lib/netstandard2.0/Supabase.Gotrue.xml.meta b/Game/Assets/Supabase/gotrue-csharp.4.2.7/lib/netstandard2.0/Supabase.Gotrue.xml.meta new file mode 100644 index 0000000..da7bcc2 --- /dev/null +++ b/Game/Assets/Supabase/gotrue-csharp.4.2.7/lib/netstandard2.0/Supabase.Gotrue.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 6e176d20125264d49bb521b5ca38251e +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/postgrest-csharp.3.5.1.meta b/Game/Assets/Supabase/postgrest-csharp.3.5.1.meta new file mode 100644 index 0000000..c5ce249 --- /dev/null +++ b/Game/Assets/Supabase/postgrest-csharp.3.5.1.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9c9188790b9943144a01212011a5b170 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/postgrest-csharp.3.5.1/.signature.p7s b/Game/Assets/Supabase/postgrest-csharp.3.5.1/.signature.p7s new file mode 100644 index 0000000000000000000000000000000000000000..aec7105299e1c6efda2602a069d444a9ea36e09b GIT binary patch literal 11513 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 literal 0 HcmV?d00001 diff --git a/Game/Assets/Supabase/postgrest-csharp.3.5.1/README.md b/Game/Assets/Supabase/postgrest-csharp.3.5.1/README.md new file mode 100644 index 0000000..d6afe5d --- /dev/null +++ b/Game/Assets/Supabase/postgrest-csharp.3.5.1/README.md @@ -0,0 +1,360 @@ +

    + +

    + +

    + + + + +

    + +--- + +## Now supporting (many) LINQ expressions! + +```c# +await client.Table() + .Select(x => new object[] { x.Id, x.Name, x.Tags, x.ReleaseDate }) + .Where(x => x.Tags.Contains("Action") || x.Tags.Contains("Adventure")) + .Order(x => x.ReleaseDate, Ordering.Descending) + .Get(); + +await client.Table() + .Set(x => x.WatchedAt, DateTime.Now) + .Where(x => x.Id == "11111-22222-33333-44444") + // Or .Filter(x => x.Id, Operator.Equals, "11111-22222-33333-44444") + .Update(); + +``` + +--- + +Documentation can be found [here](https://supabase-community.github.io/postgrest-csharp/api/Postgrest.html). + +Postgrest-csharp is written primarily as a helper library +for [supabase/supabase-csharp](https://github.com/supabase/supabase-csharp), however, it should be easy enough to use +outside of the supabase ecosystem. + +The bulk of this library is a translation and c-sharp-ification of +the [supabase/postgrest-js](https://github.com/supabase/postgrest-js) library. + +## Getting Started + +Postgrest-csharp is _heavily_ dependent on Models deriving from `BaseModel`. To interact with the API, one must have the +associated +model specified. + +To use this library on the Supabase Hosted service but separately from the `supabase-csharp`, you'll need to specify +your url and public key like so: + +```c# +var auth = new Supabase.Gotrue.Client(new ClientOptions +{ + Url = "https://PROJECT_ID.supabase.co/auth/v1", + Headers = new Dictionary + { + { "apikey", SUPABASE_PUBLIC_KEY }, + { "Authorization", $"Bearer {SUPABASE_USER_TOKEN}" } + } +}) +``` + +Leverage `Table`,`PrimaryKey`, and `Column` attributes to specify names of classes/properties that are different from +their C# Versions. + +```c# +[Table("messages")] +public class Message : BaseModel +{ + [PrimaryKey("id")] + public int Id { get; set; } + + [Column("username")] + public string UserName { get; set; } + + [Column("channel_id")] + public int ChannelId { get; set; } + + public override bool Equals(object obj) + { + return obj is Message message && + Id == message.Id; + } + + public override int GetHashCode() + { + return HashCode.Combine(Id); + } +} +``` + +Utilizing the client is then just a matter of instantiating it and specifying the Model one is working with. + +```c# +void Initialize() +{ + var client = new Client("http://localhost:3000"); + + // Get All Messages + var response = await client.Table().Get(); + List models = response.Models; + + // Insert + var newMessage = new Message { UserName = "acupofjose", ChannelId = 1 }; + await client.Table().Insert(); + + // Update + var model = response.Models.First(); + model.UserName = "elrhomariyounes"; + await model.Update(); + + // Delete + await response.Models.Last().Delete(); +} +``` + +## Foreign Keys, Join Tables, and Relationships + +The Postgrest server does introspection on relationships between tables and supports returning query data from +tables with these included. **Foreign key constrains are required for postgrest to detect these relationships.** + +This library implements the attribute, `Reference` to specify on a model when a relationship should be included in a +query. + +- [One-to-one Relationships](https://postgrest.org/en/stable/api.html#one-to-one-relationships): One-to-one + relationships are detected if there’s an unique constraint on a foreign key. +- [One-to-many Relationships](https://postgrest.org/en/stable/api.html#one-to-many-relationships): The inverse + one-to-many relationship between two tables is detected based on the foreign key reference. +- [Many-to-many Relationships](https://postgrest.org/en/stable/api.html#many-to-many-relationships): Many-to-many + relationships are detected based on the join table. The join table must contain foreign keys to other two tables and + they must be part of its composite key. + +Given the following schema: + +![example schema](.github/postgrest-relationship-example.drawio.png) + +We can define the following models: + +```c# +[Table("movie")] +public class Movie : BaseModel +{ + [PrimaryKey("id")] + public int Id { get; set; } + + [Column("name")] + public string Name { get; set; } + + [Reference(typeof(Person))] + public List Persons { get; set; } + + [Column("created_at")] + public DateTime CreatedAt { get; set; } +} + +[Table("person")] +public class Person : BaseModel +{ + [PrimaryKey("id")] + public int Id { get; set; } + + [Column("first_name")] + public string FirstName { get; set; } + + [Column("last_name")] + public string LastName { get; set; } + + [Reference(typeof(Profile))] + public Profile Profile { get; set; } + + [Column("created_at")] + public DateTime CreatedAt { get; set; } +} + +[Table("profile")] +public class Profile : BaseModel +{ + [Column("email")] + public string Email { get; set; } +} +``` + +**Note that each related model should inherit `BaseModel` and specify its `Table` and `Column` attributes as usual.** + +The `Reference` Attribute by default will include the referenced model in all GET queries on the table (this can be +disabled +in its constructor). + +As such, a query on the `Movie` model (given the above) would return something like: + +```js +[ + { + id: 1, + created_at: "2022-08-20T00:29:45.400188", + name: "Top Gun: Maverick", + person: [ + { + id: 1, + created_at: "2022-08-20T00:30:02.120528", + first_name: "Tom", + last_name: "Cruise", + profile: { + profile_id: 1, + email: "tom.cruise@supabase.io", + created_at: "2022-08-20T00:30:33.72443" + } + }, + { + id: 3, + created_at: "2022-08-20T00:30:33.72443", + first_name: "Bob", + last_name: "Saggett", + profile: { + profile_id: 3, + email: "bob.saggett@supabase.io", + created_at: "2022-08-20T00:30:33.72443" + } + } + ] + }, + // ... +] +``` + +### Circular References + +Circular relations can be added between models, however, circular relations should only be parsed one level deep for +models. For example, given the +models [here](https://github.com/supabase-community/postgrest-csharp/blob/master/PostgrestTests/Models/LinkedModels.cs), +a raw response would look like the following (note that the `Person` object returns the root `Movie` and +the `Person->Profile` returns its root `Person` object). + +If desired, this can be avoided by making specific join models that do not have the circular references. + +```json +[ + { + "id": "68722a22-6a6b-4410-a955-b4eb8ca7953f", + "created_at": "0001-01-01T05:51:00", + "name": "Supabase in Action", + "person": [ + { + "id": "6aa849d8-dd09-4932-bc6f-6fe3b585e87f", + "first_name": "John", + "last_name": "Doe", + "created_at": "0001-01-01T05:51:00", + "movie": [ + { + "id": "68722a22-6a6b-4410-a955-b4eb8ca7953f", + "name": "Supabase in Action", + "created_at": "0001-01-01T05:51:00" + } + ], + "profile": { + "person_id": "6aa849d8-dd09-4932-bc6f-6fe3b585e87f", + "email": "john.doe@email.com", + "created_at": "0001-01-01T05:51:00", + "person": { + "id": "6aa849d8-dd09-4932-bc6f-6fe3b585e87f", + "first_name": "John", + "last_name": "Doe", + "created_at": "0001-01-01T05:51:00" + } + } + }, + { + "id": "07abc67f-bf7d-4865-b2c0-76013dc2811f", + "first_name": "Jane", + "last_name": "Buck", + "created_at": "0001-01-01T05:51:00", + "movie": [ + { + "id": "68722a22-6a6b-4410-a955-b4eb8ca7953f", + "name": "Supabase in Action", + "created_at": "0001-01-01T05:51:00" + } + ], + "profile": { + "person_id": "07abc67f-bf7d-4865-b2c0-76013dc2811f", + "email": "jane.buck@email.com", + "created_at": "0001-01-01T05:51:00", + "person": { + "id": "07abc67f-bf7d-4865-b2c0-76013dc2811f", + "first_name": "Jane", + "last_name": "Buck", + "created_at": "0001-01-01T05:51:00" + } + } + } + ] + } +] +``` + +### Top Level Filtering + +**By default** relations expect to be used as top level filters on a query. If following the models above, this would +mean that a `Movie` with no `Person` relations on it would not return on a query **unless** the `Relation` +has `useInnerJoin` set to `false`: + +The following model would return any movie, even if there are no `Person` models associated with it: + +```c# +[Table("movie")] +public class Movie : BaseModel +{ + [PrimaryKey("id")] + public string Id { get; set; } + + [Column("name")] + public string? Name { get; set; } + + [Reference(typeof(Person), useInnerJoin: false)] + public List People { get; set; } = new(); +} +``` + +**Further Notes**: + +- Postgrest _does not support nested inserts or upserts_. Relational keys on models will be ignored when attempting to + insert or upsert on a root model. +- The `Relation` attribute uses reflection to only select the attributes specified on the Class Model (i.e. + the `Profile` model has a property only for `email`, only the property will be requested in the query). + +## Status + +- [x] Connects to PostgREST Server +- [x] Authentication +- [x] Basic Query Features + - [x] CRUD + - [x] Single + - [x] Range (to & from) + - [x] Limit + - [x] Limit w/ Foreign Key + - [x] Offset + - [x] Offset w/ Foreign Key +- [x] Advanced Query Features + - [x] Filters + - [x] Ordering +- [ ] Custom Serializers + - [ ] [Postgres Range](https://www.postgresql.org/docs/9.3/rangetypes.html) + - [x] `int4range`, `int8range` + - [ ] `numrange` + - [ ] `tsrange`, `tstzrange`, `daterange` +- [x] Models + - [x] `BaseModel` to derive from + - [x] Coercion of data into Models +- [x] Unit Testing +- [x] Nuget Package and Release + +## Package made possible through the efforts of: + +| | | +|:----------------------------------------------------------------------:|:---------------------------------------------------------------------------:| +| [acupofjose](https://github.com/acupofjose) | [elrhomariyounes](https://github.com/elrhomariyounes) | + +## Contributing + +We are more than happy to have contributions! Please submit a PR. diff --git a/Game/Assets/Supabase/postgrest-csharp.3.5.1/README.md.meta b/Game/Assets/Supabase/postgrest-csharp.3.5.1/README.md.meta new file mode 100644 index 0000000..74d5f89 --- /dev/null +++ b/Game/Assets/Supabase/postgrest-csharp.3.5.1/README.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 4e0bb45b5cd668e4fa48d4d44cd64bd5 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/postgrest-csharp.3.5.1/icon.png b/Game/Assets/Supabase/postgrest-csharp.3.5.1/icon.png new file mode 100644 index 0000000..9ac2a0b --- /dev/null +++ b/Game/Assets/Supabase/postgrest-csharp.3.5.1/icon.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5521a79b4acd1013574150313315a0ec9093eca0072a4b1f6052ac1ef0c988c9 +size 5771 diff --git a/Game/Assets/Supabase/postgrest-csharp.3.5.1/icon.png.meta b/Game/Assets/Supabase/postgrest-csharp.3.5.1/icon.png.meta new file mode 100644 index 0000000..7bce115 --- /dev/null +++ b/Game/Assets/Supabase/postgrest-csharp.3.5.1/icon.png.meta @@ -0,0 +1,114 @@ +fileFormatVersion: 2 +guid: e836363d6cc7e8d4c9056e84a17bb488 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/postgrest-csharp.3.5.1/lib.meta b/Game/Assets/Supabase/postgrest-csharp.3.5.1/lib.meta new file mode 100644 index 0000000..348298a --- /dev/null +++ b/Game/Assets/Supabase/postgrest-csharp.3.5.1/lib.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e589e01162bc5324d96284b7b3773bfa +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/postgrest-csharp.3.5.1/lib/netstandard2.0.meta b/Game/Assets/Supabase/postgrest-csharp.3.5.1/lib/netstandard2.0.meta new file mode 100644 index 0000000..8cb992d --- /dev/null +++ b/Game/Assets/Supabase/postgrest-csharp.3.5.1/lib/netstandard2.0.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1ea14adfe1c0d794baef8dceb291150f +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/postgrest-csharp.3.5.1/lib/netstandard2.0/Supabase.Postgrest.dll b/Game/Assets/Supabase/postgrest-csharp.3.5.1/lib/netstandard2.0/Supabase.Postgrest.dll new file mode 100644 index 0000000..b993c0c --- /dev/null +++ b/Game/Assets/Supabase/postgrest-csharp.3.5.1/lib/netstandard2.0/Supabase.Postgrest.dll @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:07b21702d181a41c2373fdfcdf0376eb63b80c8549da61f8c1d9f648f2f28a5b +size 76800 diff --git a/Game/Assets/Supabase/postgrest-csharp.3.5.1/lib/netstandard2.0/Supabase.Postgrest.dll.meta b/Game/Assets/Supabase/postgrest-csharp.3.5.1/lib/netstandard2.0/Supabase.Postgrest.dll.meta new file mode 100644 index 0000000..3c52589 --- /dev/null +++ b/Game/Assets/Supabase/postgrest-csharp.3.5.1/lib/netstandard2.0/Supabase.Postgrest.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: 7453b2329af9f1f4688901e0e79966ad +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/postgrest-csharp.3.5.1/lib/netstandard2.0/Supabase.Postgrest.xml b/Game/Assets/Supabase/postgrest-csharp.3.5.1/lib/netstandard2.0/Supabase.Postgrest.xml new file mode 100644 index 0000000..a2dacdf --- /dev/null +++ b/Game/Assets/Supabase/postgrest-csharp.3.5.1/lib/netstandard2.0/Supabase.Postgrest.xml @@ -0,0 +1,1879 @@ + + + + Supabase.Postgrest + + + + + Used to map a C# property to a Postgrest Column. + + + + class User : BaseModel { + [ColumnName("firstName")] + public string FirstName {get; set;} + } + + + + + + The name in postgres of this column. + + + + + Specifies what should be serialized in the event this column's value is NULL + + + + + If the performed query is an Insert or Upsert, should this value be ignored? + + + + + If the performed query is an Update, should this value be ignored? + + + + + + + + Used to map a C# property to a Postgrest PrimaryKey. + + + + class User : BaseModel { + [PrimaryKey("id")] + public string Id {get; set;} + } + + + + + + Would be set to false in the event that the database handles the generation of this property. + + + + + Used to specify that a foreign key relationship exists in PostgreSQL + + See: https://postgrest.org/en/stable/api.html#resource-embedding + + + + + Specifies the Join type on this reference. PostgREST only allows for a LEFT join and an INNER join. + + + + + INNER JOIN: returns rows when there is a match on both the source and the referenced tables. + + + + + LEFT JOIN: returns all rows from the source table, even if there are no matches in the referenced table + + + + + Type of the model referenced + + + + + Column this attribute references as specified in Postgres, DOES NOT need to be set if is set. + + + + + The explicit SQL defined foreign key that this references. + + + + + Table name of model + + + + + Columns that exist on the model we will select from. + + + + + If the performed query is an Insert or Upsert, should this value be ignored? (DEFAULT TRUE) + + + + + If the performed query is an Update, should this value be ignored? (DEFAULT TRUE) + + + + + If Reference should automatically be included in queries on this reference. (DEFAULT TRUE) + + + + + As to whether the query will filter top-level rows. + + See: https://postgrest.org/en/stable/api.html#resource-embedding + + + + Establishes a reference between two tables + Model referenced + Should referenced be included in queries? + Specifies the join type for this relationship + Column this attribute references as specified in Postgres, DOES NOT need to be set if <see cref="ForeignKey"/> is set. + Foreign Key this attribute references as specified in Postgres (only required if the model references the same table multiple times) + + + + Establishes a reference between two tables + Model referenced + Should referenced be included in queries? + As to whether the query will filter top-level rows. + Column this attribute references as specified in Postgres, DOES NOT need to be set if is set. + Foreign Key this attribute references as specified in Postgres (only required if the model references the same table multiple times) + + + + + + + + Parses relationships that exist on this model. Called by + + + + + + Used to map a C# Model to a Postgres Table. + + + + [Table("user")] + class User : BaseModel { + [ColumnName("firstName")] + public string FirstName {get; set;} + } + + + + + + + + + Custom Serializer resolvers and converters that will be used for encoding and decoding Postgrest JSON responses. + + By default, Postgrest seems to use a date format that C# and Newtonsoft do not like, so this initial + configuration handles that. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Function that can be set to return dynamic headers. + + Headers specified in the constructor options will ALWAYS take precedence over headers returned by this function. + + + + + Should be the first call to this class to initialize a connection with a Postgrest API Server + + Api Endpoint (ex: "http://localhost:8000"), no trailing slash required. + Optional client configuration. + + + + + + + + + + + + + + + + + Options that can be passed to the Client configuration + + + + + See: https://postgrest.org/en/v7.0.0/api.html?highlight=operators#operators + + + + + See: https://postgrest.org/en/v7.0.0/api.html?highlight=nulls%20first#ordering + + + + + See: https://postgrest.org/en/v7.0.0/api.html?highlight=count#estimated-count + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Used by Newtonsoft.Json to convert a C# range into a Postgrest range. + + + + + A Singleton used for debug notifications + + + + + Returns the Singleton Instance. + + + + + Adds a debug listener + + + + + + Removes a debug handler. + + + + + + Clears debug handlers. + + + + + Notifies debug listeners. + + + + + + + + https://postgrest.org/en/v10.2/errors.html?highlight=exception#http-status-codes + + + + + Errors from Postgrest are wrapped by this exception + + + + + + + + + + + The response object from Postgrest + + + + + The content of the response object from Postgrest + + + + + The HTTP status code of the response object from Postgrest + + + + + Postgres client's best effort at decoding the error from the GoTrue server. + + + + + Attempts to decode the error from the GoTrue server. + + + + + Adds functionality to get a typed Attribute attached to an enum value. + + + + + Gets a typed Attribute attached to an enum value. + + + + + + + + Adds functionality to transform a C# Range to a Postgrest String. + + + https://www.postgresql.org/docs/14/rangetypes.html + + + + + + Transforms a C# Range to a Postgrest String. + + + + + + + Pull the instance info out of the Uri + + + + + Pull the instance info out of the Uri + + + + + + + Helper to make a request using the defined parameters to an API Endpoint and coerce into a model. + + + + + + + + + + + + + + + Helper to make a request using the defined parameters to an API Endpoint. + + + + + + + + + + + + + Prepares the request with appropriate HTTP headers expected by Postgrest. + + + + + + + + + + + Delegate representing the request to be sent to the remote server. + + + + + A internal singleton used for hooks applied to and + + + + + Returns the Singleton Instance. + + + + + Adds a handler that is called prior to a request being sent. + + + + + + Removes an handler. + + + + + + Clears all handlers. + + + + + Notifies all listeners. + + + + + + + + + + + + A caching provider than can be used by postgrest to store requests. + + + + + Gets an item from a caching solution, should coerce into a datatype. + + This will most likely be a JSON deserialization approach. + + A reproducible key for a defined query. + + + + + + Sets an item within a caching solution, should store in a way that the data can be retrieved and coerced into a generic type by + + This will most likely be a JSON serialization approach. + + A reproducible key for a defined query. + An object of serializable data. + + + + + Clear an item within a caching solution by a key. + + A reproducible key for a defined query. + + + + + An empty/clear cache implementation. + + + + + + Client interface for Postgrest + + + + + API Base Url for subsequent calls. + + + + + The Options was initialized with. + + + + + Adds a handler that is called prior to a request being sent. + + + + + + Removes an handler. + + + + + + Clears all handlers. + + + + + Adds a debug handler + + + + + + Removes a debug handler + + /// + + + + Clears debug handlers + + + + + Perform a stored procedure call. + + The function name to call + The parameters to pass to the function call + + + + + Perform a stored procedure call. + + The function name to call + The parameters to pass to the function call + A type used for hydrating the HTTP response content (hydration through JSON.NET) + A hydrated model + + + + Returns a Table Query Builder instance for a defined model - representative of `USE $TABLE` + + Custom Model derived from `BaseModel` + + + + + Returns a Table Query Builder instance with a Cache Provider for a defined model - representative of `USE #$TABLE` + + + + + + + + Interface for getting debug info from Postgrest + + + + + + + + Adds a debug handler + + + + + + Removes a debug handler + + + + + + Clears debug handlers + + + + + Logs a message + + + + + + + + Client interface for Postgrest + + + + + + API Base Url for subsequent calls. + + + + + Name of the Table parsed by the Model. + + + + + Generates the encoded URL with defined query parameters that will be sent to the Postgrest API. + + + + + Adds an AND Filter to the current query args. + + + + + + + Clears currently defined query values. + + + + + By using the columns query parameter it’s possible to specify the payload keys that will be inserted and ignore the rest of the payload. + + The rest of the JSON keys will be ignored. + Using this also has the side-effect of being more efficient for Bulk Insert since PostgREST will not process the JSON and it’ll send it directly to PostgreSQL. + + See: https://postgrest.org/en/stable/api.html#specifying-columns + + + + + + + By using the columns query parameter it’s possible to specify the payload keys that will be inserted and ignore the rest of the payload. + + The rest of the JSON keys will be ignored. + Using this also has the side-effect of being more efficient for Bulk Insert since PostgREST will not process the JSON and it’ll send it directly to PostgreSQL. + + See: https://postgrest.org/en/stable/api.html#specifying-columns + + + + + + + Returns ONLY a count from the specified query. + + See: https://postgrest.org/en/v7.0.0/api.html?highlight=count + + The kind of count. + + + + + + Executes a delete request using the defined query params on the current instance. + + + + + + Executes a delete request using the model's primary key as the filter for the request. + + + + + + + + + Add a Filter to a query request + + Column Name in Table. + Operation to perform. + Value to filter with, must be a `string`, `List<object>`, `Dictionary<string, object>`, `FullTextSearchConfig`, or `Range` + + + + + Add a filter to a query request using a predicate to select column. + + Expects a columns from the Model to be returned + Operation to perform. + Value to filter with, must be a `string`, `List<object>`, `Dictionary<string, object>`, `FullTextSearchConfig`, or `Range` + + + + + + Executes the query using the defined filters on the current instance. + + + + + + + Executes a BULK INSERT query using the defined query params on the current instance. + + + + + A typed model response from the database. + + + + Executes an INSERT query using the defined query params on the current instance. + + + + + A typed model response from the database. + + + + Sets a limit with an optional foreign table reference. + + + + + + + + Finds all rows whose columns match the specified `query` object. + + The object to filter with, with column names as keys mapped to their filter values. + + + + + Fills in query parameters based on a given model's primary key(s). + + A model with a primary key column + + + + + Adds a NOT filter to the current query args. + + + + + + + Adds a NOT filter to the current query args. + + + + + + + + + Adds a NOT filter to the current query args. + + Expects a column from the model to be returned. + + + + + + + Adds a NOT filter to the current query args. + Allows queries like: + + await client.Table<User>().Not("status", Operators.In, new List<string> {"AWAY", "OFFLINE"}).Get(); + + + + + + + + + + Adds a NOT filter to the current query args. + Allows queries like: + + await client.Table<User>().Not("status", Operators.In, new List<string> {"AWAY", "OFFLINE"}).Get(); + + + Expects a column from the model to be returned. + + + + + + + Adds a NOT filter to the current query args. + + Allows queries like: + + await client.Table<User>().Not("status", Operators.Equal, "OFFLINE").Get(); + + + + + + + + + + Adds a NOT filter to the current query args. + + Allows queries like: + + await client.Table<User>().Not("status", Operators.Equal, "OFFLINE").Get(); + + + Expects a column from the model to be returned. + + + + + + + Sets an offset with an optional foreign table reference. + + + + + + + + By specifying the onConflict query parameter, you can make UPSERT work on a column(s) that has a UNIQUE constraint. + + + + + + + Set an onConflict query parameter for UPSERTing on a column that has a UNIQUE constraint using a linq predicate. + + Expects a column from the model to be returned. + + + + + Adds a OR Filter to the current query args. + + + + + + + Adds an ordering to the current query args. + + NOTE: If multiple orderings are required, chain this function with another call to + Order(Expression{Func{T,object}},Ordering,NullPosition) + + . + + Column Name + + + + + + + Adds an ordering to the current query args using a predicate function. + + NOTE: If multiple orderings are required, chain this function with another call to + Order(Expression{Func{T,object}},Ordering,NullPosition) + + . + + + >Expects a columns from the Model to be returned + + + + + + Adds an ordering to the current query args. + + NOTE: If multiple orderings are required, chain this function with another call to + Order(Expression{Func{T,object}},Ordering,NullPosition) + + . + + + + + + + + + + Sets a FROM range, similar to a `StartAt` query. + + + + + + + Sets a bounded range to the current query. + + + + + + + + Select columns for query. + + + + + + + Select columns using a predicate function. + + For example: + `Table<Movie>().Select(x => new[] { x.Id, x.Name, x.CreatedAt }).Get();` + + Expects an array of columns from the Model to be returned. + + + + + Filter a query based on a predicate function. + + Note: Chaining multiple calls will + be parsed as an "AND" query. + + Examples: + `Table<Movie>().Where(x => x.Name == "Top Gun").Get();` + `Table<Movie>().Where(x => x.Name == "Top Gun" || x.Name == "Mad Max").Get();` + `Table<Movie>().Where(x => x.Name.Contains("Gun")).Get();` + `Table<Movie>().Where(x => x.CreatedAt <= new DateTime(2022, 08, 21)).Get();` + `Table<Movie>().Where(x => x.Id > 5 && x.Name.Contains("Max")).Get();` + + + + + + + Executes a query that expects to have a single object returned, rather than returning list of models + it will return a single model. + + + + + + + Specifies a key and value to be updated. Should be combined with filters/where clauses. + + Can be called multiple times to set multiple values. + + + + + + + + Specifies a KeyValuePair to be updated. Should be combined with filters/where clauses. + + Can be called multiple times to set multiple values. + + + + + + + + Calls an Update function after `Set` has been called. + + + + + + + + + Executes an UPDATE query using the defined query params on the current instance. + + + + + A typed response from the database. + + + + Executes an UPSERT query using the defined query params on the current instance. + + By default the new record is returned. Set QueryOptions.ReturnType to Minimal if you don't need this value. + By specifying the QueryOptions.OnConflict parameter, you can make UPSERT work on a column(s) that has a UNIQUE constraint. + QueryOptions.DuplicateResolution.IgnoreDuplicates Specifies if duplicate rows should be ignored and not inserted. + + + + + + + + + Executes an UPSERT query using the defined query params on the current instance. + + By default the new record is returned. Set QueryOptions.ReturnType to Minimal if you don't need this value. + By specifying the QueryOptions.OnConflict parameter, you can make UPSERT work on a column(s) that has a UNIQUE constraint. + QueryOptions.DuplicateResolution.IgnoreDuplicates Specifies if duplicate rows should be ignored and not inserted. + + + + + + + + + Client interface for Postgrest + + + + + + Performs a Get request, returning a which populates from the cache, if applicable. + + + + + + Represent a type can be used to index a collection either from the start or the end. + + Index is used by the C# compiler to support the new index syntax + + int[] someArray = new int[5] { 1, 2, 3, 4, 5 } ; + int lastElement = someArray[^1]; // lastElement = 5 + + + + + Construct an Index using a value and indicating if the index is from the start or from the end. + The index value. it has to be zero or positive number. + Indicating if the index is from the start or from the end. + + If the Index constructed from the end, index value 1 means pointing at the last element and index value 0 means pointing at beyond last element. + + + + Create an Index pointing at first element. + + + Create an Index pointing at beyond last element. + + + Create an Index from the start at the position indicated by the value. + The index value from the start. + + + Create an Index from the end at the position indicated by the value. + The index value from the end. + + + Returns the index value. + + + Indicates whether the index is from the start or the end. + + + Calculate the offset from the start using the giving collection length. + The length of the collection that the Index will be used with. length has to be a positive value + + For performance reason, we don't validate the input length parameter and the returned offset value against negative values. + we don't validate either the returned offset is greater than the input length. + It is expected Index will be used with collections which always have non negative length/count. If the returned offset is negative and + then used to index a collection will get out of range exception which will be same affect as the validation. + + + + Indicates whether the current Index object is equal to another object of the same type. + An object to compare with this object + + + Indicates whether the current Index object is equal to another Index object. + An object to compare with this object + + + Returns the hash code for this instance. + + + Converts integer number to an Index. + + + Converts the value of the current Index object to its equivalent string representation. + + + Represent a range has start and end indexes. + + Range is used by the C# compiler to support the range syntax. + + int[] someArray = new int[5] { 1, 2, 3, 4, 5 }; + int[] subArray1 = someArray[0..2]; // { 1, 2 } + int[] subArray2 = someArray[1..^0]; // { 2, 3, 4, 5 } + + + + + Represent the inclusive start index of the Range. + + + Represent the exclusive end index of the Range. + + + Construct a Range object using the start and end indexes. + Represent the inclusive start index of the range. + Represent the exclusive end index of the range. + + + Indicates whether the current Range object is equal to another object of the same type. + An object to compare with this object + + + Indicates whether the current Range object is equal to another Range object. + An object to compare with this object + + + Returns the hash code for this instance. + + + Converts the value of the current Range object to its equivalent string representation. + + + Create a Range object starting from start index to the end of the collection. + + + Create a Range object starting from first element in the collection to the end Index. + + + Create a Range object starting from first element to the end. + + + Calculate the start offset and length of range object using a collection length. + The length of the collection that the range will be used with. length has to be a positive value. + + For performance reason, we don't validate the input length parameter against negative values. + It is expected Range will be used with collections which always have non negative length/count. + We validate the range is inside the length scope though. + + + + + Helper class for parsing Select linq queries. + + + + + The columns that have been selected from this linq expression. + + + + + The root call that will be looped through to populate . + + Called like: `Table<Movies>().Select(x => new[] { x.Id, x.Name, x.CreatedAt }).Get()` + + + + + + + A Member Node, representing a property on a BaseModel. + + + + + + + A Unary Node, delved into to represent a property on a BaseModel. + + + + + + + Gets a column name from property based on it's supplied attributes. + + + + + + + Helper class for parsing Set linq queries. + + + + + The column that have been selected from this linq expression. + + + + + The Column's type that value should be checked against. + + + + + Value to be updated. + + + + + A Unary Node, delved into to represent a property on a BaseModel. + + + + + + + A Member Node, representing a property on a BaseModel. + + + + + + + Called when visiting a the expected new KeyValuePair(). + + + + + + + + Gets a column name from property based on it's supplied attributes. + + + + + + + Helper class for parsing Where linq queries. + + + + + The filter resulting from this Visitor, capable of producing nested filters. + + + + + An entry point that will be used to populate . + + Invoked like: + `Table<Movies>().Where(x => x.Name == "Top Gun").Get();` + + + + + + + + Called when evaluating a method + + + + + + + + + A constant expression parser (i.e. x => x.Id == 5 <- where '5' is the constant) + + + + + + + + A member expression parser (i.e. => x.Id == Example.Id <- where both `x.Id` and `Example.Id` are parsed as 'members') + + + + + + + + A unary expression parser (i.e. => x.Id == 1 <- where both `1` is considered unary) + + + + + + + + An instantiated class parser (i.e. x => x.CreatedAt <= new DateTime(2022, 08, 20) <- where `new DateTime(...)` is an instantiated expression. + + + + + + + + Gets a column name (postgrest) from a Member Expression (used on BaseModel) + + + + + + + Get the value from a MemberExpression, which includes both fields and properties. + + + + + + + Creates map between linq and + + + + + + + Gets arguments from a method call expression, (i.e. x => x.Name.Contains("Top")) <- where `Top` is the argument on the called method `Contains` + + + + + + + Abstract class that must be implemented by C# Postgrest Models. + + + + + Gets the values of the PrimaryKey columns (there can be multiple) on a model's instance as defined by the [PrimaryKey] attributes on a property on the model. + + + + + Represents a cacheable model + + + + + + The stored Models + + + + + Cache time in UTC. + + + + + A custom resolver that handles mapping column names and property names as well + as handling the conversion of Postgrest Ranges to a C# `Range`. + + + + + Sets the state of the contract resolver to either insert, update, or upsert. + + + + + + + + + + + Allow for the expression of a query filter with linq expressions. + + + + + + + + + + + + + + + + Allows the creation of a Query Filter using a LINQ expression. + + + + + + + + + + + + String value to be substituted for a null criterion + + + + + + + + + + + + + + Contractor to use single value filtering. + + Column name + Operation: And, Equals, GreaterThan, LessThan, GreaterThanOrEqual, LessThanOrEqual, NotEqual, Is, Adjacent, Not, Like, ILike + + + + + Constructor for Full Text Search. + + Column Name + Operation: FTS, PHFTS, PLFTS, WFTS + + + + + Constructor for Range Queries. + + + Operator: Overlap, StrictlyLeft, StrictlyRight, NotRightOf, NotLeftOf, Adjacent + + + + + Constructor to enable `AND` and `OR` Queries by allowing nested QueryFilters. + + Operation: And, Or + + + + + Constructor to enable `NOT` functionality + + Operation: Not. + + + + + Configuration Object for Full Text Search. + API Reference: http://postgrest.org/en/v7.0.0/api.html?highlight=full%20text%20search#full-text-search + + + + + Query Text + + + + + Defaults to english + + + + + Constructor for Full Text Search. + + + + + + + By default the new record is returned. Set this to 'Minimal' if you don't need this value. + + + + + Specifies if duplicate rows should be ignored and not inserted. + + + + + Count algorithm to use to count rows in a table. + + + + + If the record should be upserted + + + + + /// By specifying the onConflict query parameter, you can make UPSERT work on a column(s) that has a UNIQUE constraint. + + + + + Represents a Request that is backed by a caching strategy. + + + + + + Handler for when Remote Models have been populated + + + + + The Async action that represents the Remote Request + + + + + The Postgrest Table Instance + + + + + The Cache lookup key - a Base64 encoded reproducible URL for this request configuration. + + + + + The Caching provider. + + + + + The Models returned either by Cache Hit or Remote Response + + + + + The response (if applicable) from + + + + + If the cache was hit for this request. + + + + + If the response was stored in cache. + + + + + The stored cache time in UTC. + + + + + + + + Invoked when Remote Models have been populated on this object. + + + + + Constructs a Cache Backed Request that automatically populates itself using the Cache provider (if possible). + + + + + + + + Attempts to load a model from the cache. + + + + + Invokes the stored + + + + + Caches a modeled response using the + + + + + + Raises a property change event. + + + + + + Sets a field within this instance and raises + + + + + + + + + + A wrapper class from which all Responses derive. + + + + + A representation of a successful Postgrest response that transforms the string response into a C# Modelled response. + + + + + + The first model in the response. + + + + + A list of models in the response. + + + + + + + + Class created from a model derived from `BaseModel` that can generate query requests to a Postgrest Endpoint. + + Representative of a `USE $TABLE` command. + + Model derived from `BaseModel`. + + + + + + + + + + + + + Typically called from the Client `new Client.Table<ModelType>` + + Api Endpoint (ex: "http://localhost:8000"), no trailing slash required. + + Optional client configuration. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Generates the encoded URL with defined query parameters that will be sent to the Postgrest API. + + + + + + Transforms an object into a string mapped list/dictionary using `JsonSerializerSettings`. + + + + + + + + + + Transforms the defined filters into the expected Postgrest format. + + See: http://postgrest.org/en/v7.0.0/api.html#operators + + + + + + + + + + Performs an INSERT Request. + + + + + + + + + Represents a table constructed with a + + + + + + Represents a caching provider to be used with Get Requests. + + + + + + + + + + + + + + + Slices the specified array using the specified range. + + + + diff --git a/Game/Assets/Supabase/postgrest-csharp.3.5.1/lib/netstandard2.0/Supabase.Postgrest.xml.meta b/Game/Assets/Supabase/postgrest-csharp.3.5.1/lib/netstandard2.0/Supabase.Postgrest.xml.meta new file mode 100644 index 0000000..925a139 --- /dev/null +++ b/Game/Assets/Supabase/postgrest-csharp.3.5.1/lib/netstandard2.0/Supabase.Postgrest.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 9dec0299e2b75f9409289982778360b0 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/postgrest-csharp.3.5.1/postgrest-csharp.3.5.1.nupkg b/Game/Assets/Supabase/postgrest-csharp.3.5.1/postgrest-csharp.3.5.1.nupkg new file mode 100644 index 0000000000000000000000000000000000000000..6da57d95740a391dd8efbedbd43ed475e1dfa921 GIT binary patch literal 69499 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 EAN9}e5&!@I literal 0 HcmV?d00001 diff --git a/Game/Assets/Supabase/postgrest-csharp.3.5.1/postgrest-csharp.3.5.1.nupkg.meta b/Game/Assets/Supabase/postgrest-csharp.3.5.1/postgrest-csharp.3.5.1.nupkg.meta new file mode 100644 index 0000000..1adfe40 --- /dev/null +++ b/Game/Assets/Supabase/postgrest-csharp.3.5.1/postgrest-csharp.3.5.1.nupkg.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 4a0616a048f854446af585fdfc866c5a +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/realtime-csharp.6.0.4.meta b/Game/Assets/Supabase/realtime-csharp.6.0.4.meta new file mode 100644 index 0000000..9aa69f1 --- /dev/null +++ b/Game/Assets/Supabase/realtime-csharp.6.0.4.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 16c4fd6b9e4781244b20596641b0ea62 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/realtime-csharp.6.0.4/.signature.p7s b/Game/Assets/Supabase/realtime-csharp.6.0.4/.signature.p7s new file mode 100644 index 0000000000000000000000000000000000000000..f5a1dd83018667ba2a8037b2c9214300c70eb348 GIT binary patch literal 11512 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 literal 0 HcmV?d00001 diff --git a/Game/Assets/Supabase/realtime-csharp.6.0.4/README.md b/Game/Assets/Supabase/realtime-csharp.6.0.4/README.md new file mode 100644 index 0000000..9fde2dd --- /dev/null +++ b/Game/Assets/Supabase/realtime-csharp.6.0.4/README.md @@ -0,0 +1,298 @@ +

    + +

    +

    + + + + +

    + +--- + +## BREAKING CHANGES MOVING FROM v5.x.x to v6.x.x + +- The realtime client now takes a "fail-fast" approach. On establishing an initial connection, client will throw + a `RealtimeException` in `ConnectAsync()` if the socket server is unreachable. After an initial connection has been + established, the **client will continue attempting reconnections indefinitely until disconnected.** +- [Major, New] C# `EventHandlers` have been changed to `delegates`. This should allow for cleaner event data access over + the previous subclassed `EventArgs` setup. Events are scoped accordingly. For example, the `RealtimeSocket` error + handlers will receive events regarding socket connectivity; whereas the `RealtimeChannel` error handlers will receive + events according to `Channel` joining/leaving/etc. This is implemented with the following methods prefixed by ( + Add/Remove/Clear): + - `RealtimeBroadcast.AddBroadcastEventHandler` + - `RealtimePresence.AddPresenceEventHandler` + - `RealtimeSocket.AddStateChangedHandler` + - `RealtimeSocket.AddMessageReceivedHandler` + - `RealtimeSocket.AddHeartbeatHandler` + - `RealtimeSocket.AddErrorHandler` + - `RealtimeClient.AddDebugHandler` + - `RealtimeClient.AddStateChangedHandler` + - `RealtimeChannel.AddPostgresChangeHandler` + - `RealtimeChannel.AddMessageReceivedHandler` + - `RealtimeChannel.AddErrorHandler` + - `Push.AddMessageReceivedHandler` +- [Major, new] `ClientOptions.Logger` has been removed in favor of `Client.AddDebugHandler()` which allows for + implementing custom logging solutions if desired. + - A simple logger can be set up with the following: + ```c# + client.AddDebugHandler((sender, message, exception) => Debug.WriteLine(message)); + ``` +- [Major] `Connect()` has been marked `Obsolete` in favor of `ConnectAsync()` +- Custom reconnection logic has been removed in favor of using the built-in logic from `Websocket.Client@4.6.1`. +- Exceptions that are handled within this library have been marked as `RealtimeException`s. +- The local, docker-composed test suite has been brought back (as opposed to remotely testing on live supabase servers) + to test against. +- Comments have been added throughout the entire codebase and an `XML` file is now generated on build. + +--- + +**See realtime-csharp in action [here](https://multiplayer-csharp.azurewebsites.net/).** + +`realtime-csharp` is written as a client library for [supabase/realtime](https://github.com/supabase/realtime). + +Documentation can be +found [here](https://supabase-community.github.io/realtime-csharp/api/Supabase.Realtime.Client.html). + +The bulk of this library is a translation and c-sharp-ification of +the [supabase/realtime-js](https://github.com/supabase/realtime-js) library. + +**The Websocket-sharp implementation that Realtime-csharp is dependent on does _not_ support TLS1.3** + +## Getting Started + +Care was had to make this API as _easytm_ to interact with as possible. `Connect()` and `Subscribe()` +have `await`-able signatures +which allow Users to be assured that a connection exists prior to interacting with it. + +```c# +var endpoint = "ws://realtime-dev.localhost:4000/socket"; +client = new Client(endpoint); + +await client.ConnectAsync(); + +// Shorthand for registering a postgres_changes subscription +var channel = client.Channel("realtime", "public", "todos"); + +// Listen to Updates +channel.AddPostgresChangeHandler(ListenType.Updates, (_, change) => +{ + var model = change.Model(); + var oldModel = change.OldModel(); +}); +await channel.Subscribe(); +``` + +Leveraging `Postgrest.BaseModel`s, one ought to be able to coerce SocketResponse Records into their associated models by +calling: + +```c# +// ... +var channel = client.Channel("realtime", "public", "users"); + +channel.AddPostgresChangeHandler(ListenType.Inserts, (_, change) => +{ + var model = change.Model(); +}); + +await channel.Subscribe(); +``` + +## Broadcast + +"Broadcast follows the publish-subscribe pattern where a client publishes messages to a channel with a unique +identifier. For example, a user could send a message to a channel with id room-1. + +Other clients can elect to receive the message in real-time by subscribing to the channel with id room-1. If these +clients are online and subscribed then they will receive the message. + +Broadcast works by connecting your client to the nearest Realtime server, which will communicate with other servers to +relay messages to other clients. + +A common use-case is sharing a user's cursor position with other clients in an online game." + +[Find more information here](https://supabase.com/docs/guides/realtime#broadcast) + +**Given the following model (`CursorBroadcast`):** + +```c# +class MouseBroadcast : BaseBroadcast { } +class MouseStatus +{ + [JsonProperty("mouseX")] + public float MouseX { get; set; } + + [JsonProperty("mouseY")] + public float MouseY { get; set; } + + [JsonProperty("userId")] + public string UserId { get; set; } +} +``` + +**Listen for typed broadcast events**: + +```c# +var channel = supabase.Realtime.Channel("cursor"); + +var broadcast = channel.Register(false, true); +broadcast.AddBroadcastEventHandler((sender, _) => +{ + // Retrieved typed model. + var state = broadcast.Current(); + + Debug.WriteLine($"{state.Payload}: {state.Payload.MouseX}:{state.Payload.MouseY}"); +}); +await channel.Subscribe(); +``` + +**Broadcast an event**: + +```c# +var channel = supabase.Realtime.Channel("cursor"); +var data = new CursorBroadcast { Event = "cursor", Payload = new MouseStatus { MouseX = 123, MouseY = 456 } }; +channel.Send(ChannelType.Broadcast, data); +``` + +## Presence + +"Presence utilizes an in-memory conflict-free replicated data type (CRDT) to track and synchronize shared state in an +eventually consistent manner. It computes the difference between existing state and new state changes and sends the +necessary updates to clients via Broadcast. + +When a new client subscribes to a channel, it will immediately receive the channel's latest state in a single message +instead of waiting for all other clients to send their individual states. + +Clients are free to come-and-go as they please, and as long as they are all subscribed to the same channel then they +will all have the same Presence state as each other. + +The neat thing about Presence is that if a client is suddenly disconnected (for example, they go offline), their state +will be automatically removed from the shared state. If you've ever tried to build an “I'm online” feature which handles +unexpected disconnects, you'll appreciate how useful this is." + +[Find more information here](https://supabase.com/docs/guides/realtime#presence) + +**Given the following model: (`UserPresence`)** + +```c# +class UserPresence: BasePresence +{ + [JsonProperty("lastSeen")] + public DateTime LastSeen { get; set; } +} +``` + +**Listen for typed presence events**: + +```c# +var presenceId = Guid.NewGuid().ToString(); + +var channel = supabase.Realtime.Channel("last-seen"); +var presence = channel.Register(presenceId); + +presence.AddPresenceEventHandler(EventType.Sync, (sender, type) => +{ + foreach (var state in presence.CurrentState) + { + var userId = state.Key; + var lastSeen = state.Value.First().LastSeen; + Debug.WriteLine($"{userId}: {lastSeen}"); + } +}); +await channel.Subscribe(); +``` + +**Track a user presence event**: + +```c# +var presenceId = Guid.NewGuid().ToString(); +var channel = supabase.Realtime.Channel("last-seen"); + +var presence = channel.Register(presenceId); +presence.Track(new UserPresence { LastSeen = DateTime.Now }); +``` + +## Postgres Changes + +"Postgres Changes enable you to listen to database changes and have them broadcast to authorized clients based +on [Row Level Security (RLS)](https://supabase.com/docs/guides/auth/row-level-security) policies. + +This works by Realtime polling your database's logical replication slot for changes, passing those changes to +the [apply_rls](https://github.com/supabase/walrus#reading-wal) SQL function to determine which clients have permission, +and then using Broadcast to send those changes to clients. + +Realtime requires a publication called `supabase_realtime` to determine which tables to poll. You must add tables to +this publication prior to clients subscribing to channels that want to listen for database changes. + +We strongly encourage you to enable RLS on your database tables and have RLS policies in place to prevent unauthorized +parties from accessing your data." + +[Find More Information here](https://supabase.com/docs/guides/realtime#postgres-changes) + +**Using the new `Register` method:** + +```c# +var channel = supabase.Realtime.Channel("public-users"); +channel.Register(new PostgresChangesOptions("public", "users")); +channel.AddPostgresChangeHandler(ListenType.All, (sender, change) => +{ + switch (change.Event) + { + case EventType.Insert: + // User has been created + break; + case EventType.Update: + // User has been updated + break; + case EventType.Delete: + // User has been deleted + break; + } +}); +await channel.Subscribe(); +``` + +## Status + +- [x] Client Connects to Websocket +- [x] Socket Event Handlers + - [x] Open + - [x] Close - when channel is explicitly closed by server or by calling `Channel.Unsubscribe()` + - [x] Error +- [x] Realtime Event Handlers + - [x] `INSERT` + - [x] `UPDATE` + - [x] `DELETE` + - [x] `*` +- [x] Join channels of format: + - [x] `{database}` + - [x] `{database}:{schema}` + - [x] `{database}:{schema}:{table}` + - [x] `{database}:{schema}:{table}:{col}.eq.{val}` +- [x] Responses supply a Generically Typed Model derived from `BaseModel` +- [x] Ability to remove subscription to Realtime Events +- [x] Ability to disconnect from socket. +- [x] Socket reconnects when possible +- [x] Unit Tests +- [x] Documentation +- [x] Nuget Release + +## Package made possible through the efforts of: + +Join the ranks! See a problem? Help fix it! + + + + + +Made with [contrib.rocks](https://contrib.rocks/preview?repo=supabase-community%2Frealtime-csharp). + +## Contributing + +We are more than happy to have contributions! Please submit a PR. + +## Testing + +Note that the latest versions of `supabase/realtime` expect to be able to access a subdomain matching the tenant. For +the case of testing, this means that `realtime-dev.localhost:4000` should be available. To have tests run locally, +please add a hosts entry on your system for: `127.0.0.1 realtime-dev.localhost` diff --git a/Game/Assets/Supabase/realtime-csharp.6.0.4/README.md.meta b/Game/Assets/Supabase/realtime-csharp.6.0.4/README.md.meta new file mode 100644 index 0000000..2fc928d --- /dev/null +++ b/Game/Assets/Supabase/realtime-csharp.6.0.4/README.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 187960a0541490a4abd6f6804dd1aabd +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/realtime-csharp.6.0.4/icon.png b/Game/Assets/Supabase/realtime-csharp.6.0.4/icon.png new file mode 100644 index 0000000..9ac2a0b --- /dev/null +++ b/Game/Assets/Supabase/realtime-csharp.6.0.4/icon.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5521a79b4acd1013574150313315a0ec9093eca0072a4b1f6052ac1ef0c988c9 +size 5771 diff --git a/Game/Assets/Supabase/realtime-csharp.6.0.4/icon.png.meta b/Game/Assets/Supabase/realtime-csharp.6.0.4/icon.png.meta new file mode 100644 index 0000000..5acca42 --- /dev/null +++ b/Game/Assets/Supabase/realtime-csharp.6.0.4/icon.png.meta @@ -0,0 +1,114 @@ +fileFormatVersion: 2 +guid: 9f385b45abeae4c4c85774aa8c67747b +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/realtime-csharp.6.0.4/lib.meta b/Game/Assets/Supabase/realtime-csharp.6.0.4/lib.meta new file mode 100644 index 0000000..86cdcb1 --- /dev/null +++ b/Game/Assets/Supabase/realtime-csharp.6.0.4/lib.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 42c2811bf336dfc4883a45375dda0e93 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/realtime-csharp.6.0.4/lib/netstandard2.0.meta b/Game/Assets/Supabase/realtime-csharp.6.0.4/lib/netstandard2.0.meta new file mode 100644 index 0000000..cb10a29 --- /dev/null +++ b/Game/Assets/Supabase/realtime-csharp.6.0.4/lib/netstandard2.0.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: bbcc298e1389a744c8623f726d802848 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/realtime-csharp.6.0.4/lib/netstandard2.0/Supabase.Realtime.dll b/Game/Assets/Supabase/realtime-csharp.6.0.4/lib/netstandard2.0/Supabase.Realtime.dll new file mode 100644 index 0000000..643d151 --- /dev/null +++ b/Game/Assets/Supabase/realtime-csharp.6.0.4/lib/netstandard2.0/Supabase.Realtime.dll @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eea77d2f229eae018a06ce7ae03ad7e8e415ead96546586263a6ab0f8903f73c +size 70144 diff --git a/Game/Assets/Supabase/realtime-csharp.6.0.4/lib/netstandard2.0/Supabase.Realtime.dll.meta b/Game/Assets/Supabase/realtime-csharp.6.0.4/lib/netstandard2.0/Supabase.Realtime.dll.meta new file mode 100644 index 0000000..327f564 --- /dev/null +++ b/Game/Assets/Supabase/realtime-csharp.6.0.4/lib/netstandard2.0/Supabase.Realtime.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: 5db106827d33d2d4aba80dd284de4298 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/realtime-csharp.6.0.4/lib/netstandard2.0/Supabase.Realtime.xml b/Game/Assets/Supabase/realtime-csharp.6.0.4/lib/netstandard2.0/Supabase.Realtime.xml new file mode 100644 index 0000000..6fc6eff --- /dev/null +++ b/Game/Assets/Supabase/realtime-csharp.6.0.4/lib/netstandard2.0/Supabase.Realtime.xml @@ -0,0 +1,2676 @@ + + + + Supabase.Realtime + + + + + Options + + + + + self option enables client to receive message it broadcast + + + + + ack option instructs server to acknowledge that broadcast message was received + + + + + Initializes broadcast options + + + + + + + Channel Options + + + + + A function that returns the current access token. + + + + + Parameters that are sent to the channel when opened (JSON Serializable) + + + + + The Client Options + + + + + The Serializer Settings + + + + + The Channel Options (typically only called from within the ) + + + + + + + + Class representation of a single request sent to the Socket server. + + `Push` also adds additional functionality for retrying, timeouts, and listeners + for its associated response from the server. + + + + + Flag representing the `sent` state of a request. + + + + + Invoked when this `Push` has not been responded to within the timeout interval. + + + + + Accessor for the returned Socket Response + + + + + The associated channel. + + + + + The event requested. + + + + + Payload of data to be sent. + + + + + Represents the Pushed (sent) Message + + + + + Ref Of this Message + + + + + Handlers for notifications of message events. + + + + + Initializes a single request that will be `Pushed` to the Socket server. + + + + + + + + + + + Resends a `Push` request. + + + + + + Sends a `Push` request and initializes the Timeout. + + + + + Keeps an internal timer for raising an event if this message is not responded to. + + + + + Handles when a socket message is received for this push. + + + + + + + Adds a listener to be notified when a message is received. + + + + + + Removes a specified listener from messages received. + + + + + + Notifies all listeners that the socket has received a message + + + + + + Clears all of the listeners from receiving event state changes. + + + + + Singleton that represents a Client connection to a Realtime Server. + + It maintains a singular Websocket with asynchronous listeners (RealtimeChannels). + + + client = Client.Instance + + + + + Exposes all Realtime RealtimeChannel Subscriptions for R/O public consumption + + + + + The backing Socket class. + + Most methods of the Client act as proxies to the Socket class. + + + + + Client Options - most of which are regarding Socket connection Options + + + + + Custom Serializer resolvers and converters that will be used for encoding and decoding Postgrest JSON responses. + + By default, Postgrest seems to use a date format that C# and Newtonsoft do not like, so this initial + configuration handles that. + + + + + JWT Access token for WALRUS security + + + + + Handlers for notifications of state changes. + + + + + + Initializes a Client instance, this method should be called prior to any other method. + + The connection url (ex: "ws://localhost:4000/socket" - no trailing slash required) + + Client + + + + Attempts to connect to the Socket. + + Returns when socket has successfully connected. + + + + + + Attempts to connect to the socket. + + Provides a callback for `Task` driven returns. + + + + + + + Adds a listener to be notified when the socket state changes. + + + + + Removes a specified listener from socket state changes. + + + + + Clears all of the listeners from receiving socket state changes. + + + + + Notifies all listeners that the current user auth state has changed. + + This is mainly used internally to fire notifications - most client applications won't need this. + + + + + + Adds a debug handler, likely used within a logging solution of some kind. + + + + + + Removes a debug handler + + + + + + Clears debug handlers; + + + + + Sets the current Access Token every heartbeat (see: https://github.com/supabase/realtime-js/blob/59bd47956ebe4e23b3e1a6c07f5fe2cfe943e8ad/src/RealtimeClient.ts#L437) + + + + + Disconnects from the socket server (if connected). + + Status Code + Reason for disconnect + + + + + Sets the JWT access token used for channel subscription authorization and Realtime RLS. + Ref: https://github.com/supabase/realtime-js/pull/117 | https://github.com/supabase/realtime-js/pull/117 + + + + + + Adds a RealtimeChannel subscription - if a subscription exists with the same signature, the existing subscription will be returned. + + The name of the Channel to join (totally arbitrary) + + + + + + Adds a RealtimeChannel subscription - if a subscription exists with the same signature, the existing subscription will be returned. + + Database to connect to, with Supabase this will likely be `realtime`. + Postgres schema, usually `public` + Postgres table name + Postgres column name + Value the specified column should have + + + + + + Removes a channel subscription. + + + + + + The default socket message encoder, used to serialize messages to the socket + server. + + It is unlikely that this will be overriden by the developer. + + + + + + + The default socket message decoder, used to deserialize messages from the socket server. + Ref: + + It is unlikely that this will be overriden by the developer. + + + + + + + Options used when initializing a + + + + + The function to encode outgoing messages. Defaults to JSON + + + + + The function to decode incoming messages. + + + + + The Websocket Transport, for example WebSocket. + + + + + The default timeout in milliseconds to trigger push timeouts. + + + + + @todo Presently unused: Limit the number of events that can be sent per second. + + + + + The interval to send a heartbeat message + + + + + The interval to reconnect + + + + + Request headers to be appended to the connection string. + + + + + The optional params to pass when connecting + + + + + Datetime Style for JSON Deserialization of Models + + + + + Datetime format for JSON Deserialization of Models (Postgrest style) + + + + + Shared constants for Realtime + + + + + The Current Socket state, used in + + + + + Socket Open + + + + + Socket Closed + + + + + Socket is Reconnecting + + + + + Socket has errored + + + + + Mapping of channel states, used with + + + + + Channel is closed + + + + + Channel has errored + + + + + Channel is joined + + + + + Channel is joining + + + + + Channel is leaving + + + + + A channel event type used and parsed in a + + + + + postgres_changes `Insert` event + + + + + postgres_changes `Update` event + + + + + postgres_changes `Delete` event + + + + + A broadcast event + + + + + A presence `state` or `sync` event + + + + + A presence `leave` or `join` event + + + + + The catchall event for `postgres_changes`, parsed into a more specific `Insert`, `Update` or `Delete` + + + + + A system event (likely unused by the developer) + + + + + An internal event (likely unused by the developer) + + + + + A presently unknown event, if this is seen, please open an issue at https://github.com/supabase-community/realtime-csharp + + + + + Map of Presence listener types, used with: + + + + + A sync event (either join or leave) + + + + + A join event + + + + + A leave event + + + + + Mapping for event names that can be used with to send arbitrary data. + This is unlikely to be used by the developer. + + + + + The broadcast event + + + + + The Presence event + + + + + A postgres_changes event + + + + + Timeout interval for requests (used in Socket and Push) + + + + + Phoenix Socket Server Event: CLOSE + + + + + Phoenix Socket Server Event: ERROR + + + + + Phoenix Socket Server Event: JOIN + + + + + Phoenix Socket Server Event: REPLY + + + + + Phoenix Socket Server Event: SYSTEM + + + + + Phoenix Socket Server Event: LEAVE + + + + + Phoenix Server Event: OK + + + + + Phoenix Server Event: POSTGRES_CHANGES + + + + + Phoenix Server Event: BROADCAST + + + + + Phoenix Server Event: PRESENCE_STATE + + + + + Phoenix Server Event: PRESENCE_DIFF + + + + + Phoenix Server Event: ERROR + + + + + The transport type, used with Phoenix server implementations and appended on the + + + + + The event name used to send an access_token to the Phoenix server + + + + + An int array converter that specifically parses Postgrest styled arrays `{1,2,3}` and `[1,2,3]` from strings + into a . + + + + + + + + + + + + + + + + + + + + An string array converter that specifically parses Postgrest styled arrays `{big,string,array}` and `[1,2,3]` + from strings into a . + + + + + + + + + + + + + + + + + + + + A custom resolver that handles mapping column names and property names as well + as handling the conversion of Postgrest Ranges to a C# `Range`. + + + + + A Singleton used for debug notifications + + + + + Returns the Singleton Instance. + + + + + Adds a debug listener + + + + + + Removes a debug handler. + + + + + + Clears debug handlers. + + + + + Notifies debug listeners. + + + + + + + + A failure hint + + + + + Reasons for a failure + + + + + Catchall for any kind of failure that is presently untyped. + + + + + A push timeout + + + + + Channel is not open + + + + + Channel cannot be joined + + + + + Socket has errored, either in connection or reconnection. + + + + + Connection has been lost + + + + + No message has been received, usually given by server. + If seen, please open an issue. + + + + + Parses a Failure reason from a + + + + + + + An Exception thrown within + + + + + + + + + + + A specific reason for this exception, as provided by this library. + + + + + Creates exception from a instance. + + + + + + + A contract representing a realtime broadcast + + + + + A delegate for broadcast events + + + + + Adds a broadcast event handler + + + + + + Removes a broadcast event handler + + + + + + Clears all broadcast event handlers + + + + + Sends a broadcast to a given event name with an arbitrary, serializable payload. + + + + + + + + + An internal trigger used for notifying event delegates. + + + + + + A contract representing a realtime channel + + + + + Delegate for messages received on this channel + + + + + Delegate for channel state changes + + + + + Delegate for postgres changes + + + + + Delegate for errors on this channel + + + + + If this channel has been successfully joined (and thus, should be rejoined on a failure) + + + + + Is channel closed? + + + + + Is channel erroring? + + + + + Is channel joined? + + + + + Is channel being joined? + + + + + Is channel leaving? + + + + + The Channel's initialization options + + + + + The Channel's broadcast options (used prior to ) + + + + + The Channel's presence options (used prior to ) + + + + + The Channel's postgres_changes options (used prior to ) + + + + + The Channel's current state + + + + + A string representing this channel's topic, used for identifying/repeat access to this channel. + + + + + Add a state changed listener + + + + + + Remove a state changed handler + + + + + + Clear state changed handlers + + + + + Add a message received handler + + + + + + Remove a message received handler. + + + + + + Clear message received handlers. + + + + + Add a postgres_changes handler + + + + + + + Remove a postgres_changes handler + + + + + + + Clear postgres_changes handlers + + + + + Add an error handler + + + + + + Remove an error handler + + + + + + Clear error handlers. + + + + + Get the helper + + + + + + Get the helper. + + + + + + Push an arbitrary event to a subscribed channel. + + + + + + + + + + Rejoin a channel. + + + + + + Send an arbitrary event with an awaitable task. + + + + + + + + + + Register broadcast options, must be called to use , and prior to + + + + + + + + + Register presence options, must be called to use , and prior to + + + + + + + + Register postgres_changes options, must be called to use , and + prior to + + + + + + + Subscribes to a channel. + + + + + + + Unsubscribes from a channel. + + + + + + Contract representing a Realtime Client + + + + + + + The options initializing this client. + + + + + Json serializer settings + + + + + The connected realtime socket + + + + + A collection of channels ordered by topic name + + + + + Delegate for handling a socket state event, this can be seen as synonymous with the Client's state. + + + + + Add a Socket State listener + + + + + + Remove a Socket State listener + + + + + + Clear socket state listeners + + + + + Adds a debug handler, likely used within a logging solution of some kind. + + + + + + Removes a debug handler + + + + + + Clears debug handlers; + + + + + Initialize a new channel with an arbitrary channel name. + + + + + + + Shorthand initialization of a channel with postgres_changes options already set. + + + + + + + + + + + + Connect to the + + + + + + + Connect to the + + + + + + Disconnect from the + + + + + + + + Remove an initialized + + + + + + Sets the authentication JWT to be passed into all realtime channels. Used for WALRUS permissions. + + + + + + Contract representing an internal debugger. + + + + + A debug event handler + + + + + Adds a debug listener + + + + + + Removes a debug handler. + + + + + + Clears debug handlers. + + + + + Notifies debug listeners + + + + + + + + Contract representing a Realtime Presence class + + + + + Delegate for a presence event. + + + + + Mapping of presence event types + + + + + Sync event (both join and leave) + + + + + Join event + + + + + Leave event + + + + + Send an arbitrary payload as a presence event, MUST be called once to register this client as an active presence. + + + + + + + Add a presence event handler + + + + + + + Remove a presence event handler + + + + + + + Clear presence events. + + + + + + Contract representing a "Push" or an outgoing message to the socket server + + + + + + + Delegate for a message event. + + + + + Add a message received handler + + + + + + Remove a message received handler + + + + + + Clear Message received handlers. + + + + + The calling or parent channel + + + + + The event name this push is registered under. + + + + + Is push sent? + + + + + The wrapped SocketRequest + + + + + The payload (present in ) + + + + + A unique ID representing this push. + + + + + The server's response + + + + + A timeout event handler. + + + + + Resend this push, only called on a failed push attempt. + + + + + + Send this push. + + + + + Contract for a realtime socket. + + + + + Is this socket connected? + + + + + Delegate for errors on this socket + + + + + Delegate for handling socket state changes. + + + + + Delegate for handling message received events. + + + + + Delegate for handling a heartbeat event. + + + + + Add a state changed handler. + + + + + + Remove a state changed handler. + + + + + + Clear state changed handlers. + + + + + Add a message received handler. + + + + + + Remove a message received handler. + + + + + + Clear message received handlers. + + + + + Add a heartbeat handler. + + + + + + Remove heartbeat handler. + + + + + + Clear heartbeat handlers. + + + + + Add an error handler + + + + + + Remove an error handler + + + + + + Clear error handlers. + + + + + Gets the roundtrip time of a single message between client and server. + + + + + + Connects to a socket + + + + + + Disconnects from a socket + + + + + + + Generates a Message ref, used in + + + + + + Push a to the + + + + + + The phoenix specific reply event name for a message. + + + + + + + Contract for a socket response + + + + + The raw event name + + + + + The parsed event type + + + + + The opinionated payload matching a + + + + + The unique id of this response + + + + + The topic. + + + + + Represents a Broadcast response with a modeled payload. + + + + + + The typed payload. + + + + + Represents an arbitrary Broadcast response. + + + + + The event. + + + + + The payload. + + + + + Represents an arbitrary Presence response. + + + + + The ref for this event. (can be used to establish sequence) + + + + + The previous ref for this presence event (can be used to establish sequence) + + + + + Disables serialization of phoenix_ref + + + + + + Disables serialization of phoenix_prev_ref + + + + + + Handles a `postgres_changes` channel + + For Example in the js client: + + const databaseFilter = { + schema: 'public', + table: 'messages', + filter: `room_id=eq.${channelId}`, + event: 'INSERT', + } + + Would translate to: + + new PostgresChangesOptions("public", "messages", $"room_id=eq.{channelId}"); + + + + + Mapping of postgres changes listener types + + + + + All event + + + + + INSERT events + + + + + UPDATE events + + + + + DELETE events + + + + + The schema for this listener, likely: `public` + + + + + The table for this listener, can be: `*` matching all tables in schema. + + + + + The filter for this listener + + + + + The parameters passed to the server + + + + + The stringified event listener type + + + + + Postgres changes options. + + + + + + + + + + + + + + + + A postgres changes event. + + + + + + + + Hydrates the referenced record into a Model (if possible). + + + + + + + Hydrates the old_record into a Model (if possible). + + NOTE: If you want to receive the "previous" data for updates and deletes, you will need to set `REPLICA IDENTITY to FULL`, like this: `ALTER TABLE your_table REPLICA IDENTITY FULL`; + + + + + + + The payload. + + + + + + The payload data. + + + + + Options used to initialize Realtime Presence + + + + + key option is used to track presence payload across clients + + + + + Presence options. + + + + + + Represents a presence_diff response + + + + + + + + + a Presence Diff payload + + + + + + The joining presences. + + + + + The leaving presences. + + + + + A presence diff payload + + + + + + The metas containing current presences + + + + + + + + + + + A presence state payload response + + + + + + The metas containing joins and leaves + + + + + Represents a realtime broadcast client. + + Broadcast follows the publish-subscribe pattern where a client publishes messages to a channel with a unique identifier. + Other clients can elect to receive the message in real-time by subscribing to the channel with the same unique identifier. If these clients are online and subscribed then they will receive the message. + + Broadcast works by connecting your client to the nearest Realtime server, which will communicate with other servers to relay messages to other clients. + A common use-case is sharing a user's cursor position with other clients in an online game. + + A model representing expected payload. + + + + The last received broadcast. + + + + + Initializes a realtime broadcast helper class. + + + + + + + + Adds a broadcast event listener. + + + + + + Removes a broadcast event listener. + + + + + + Clears all broadcast event listeners + + + + + Called by when a broadcast event is received, then parsed/typed here. + + + + + + + Broadcasts an arbitrary payload + + + + + + + + Class representation of a channel subscription + + + + + As to whether this Channel is Closed + + + + + As to if this Channel has Errored + + + + + As to if this Channel is currently Joined + + + + + As to if this Channel is currently Joining + + + + + As to if this channel is currently leaving + + + + + The channel's topic (identifier) + + + + + The Channel's current state. + + + + + Options passed to this channel instance. + + + + + The saved Broadcast Options, set in + + + + + The saved Presence Options, set in + + + + + The saved Postgres Changes Options, set in + + + + + Flag stating whether a channel has been joined once or not. + + + + + Flag stating if a channel is currently subscribed. + + + + + Returns the instance. + + + + + + Returns a typed instance. + + + + + + + Returns the instance. + + + + + + Returns a typed instance. + + Model representing a Presence payload + + + + + The initial request to join a channel (repeated on channel disconnect) + + + + + Buffer of Pushes held because of Socket availability + + + + + Initializes a Channel - must call `Subscribe()` to receive events. + + + + + Handles socket state changes, specifically when a socket reconnects this channel (if previously subscribed) + should also rejoin. + + + + + + + Registers a instance - allowing broadcast responses to be parsed. + + + enables client to receive message it has broadcast + instructs server to acknowledge that broadcast message was received + + + + + + Registers a instance - allowing presence responses to be parsed and state to be tracked. + + The model representing a presence payload. + used to track presence payload across clients + + Thrown if called multiple times. + + + + Registers a state changed listener relative to this channel. Called when channel state changes. + + + + + + Removes a channel state changed listener + + + + + + Clears all channel state changed listeners + + + + + Notifies registered listeners that a channel state has changed. + + + + + + + Registers a message received listener, called when a socket message is received for this channel. + + + + + + Removes a message received listener. + + + + + + Clears message received listeners. + + + + + Notifies registered listeners that a channel message has been received. + + + + + + Add a postgres changes listener. Should be paired with . + + The type of event this callback should process. + + + + + Removes a postgres changes listener. + + The type of event this callback was registered to process. + + + + + Clears all postgres changes listeners. + + + + + Adds an error event handler. + + + + + + Removes an error event handler + + + + + + + Clears Error Event Handlers + + + + + Notifies listeners of a postgres change message being received. + + + + + + + Registers postgres_changes options, can be called multiple times. + + Should be paired with + + + + + + + Subscribes to the channel given supplied Options/params. + + + + + + Unsubscribes from the channel. + + + + + Sends a `Push` request under this channel. + + Maintains a buffer in the event push is called prior to the channel being joined. + + + + + + + + + Sends an arbitrary payload with a given payload type () + + + + + + + + + Rejoins the channel. + + + + + + Enqueues a message. + + + + + + Generates the Join Push message by merging broadcast, presence, and postgres_changes options. + + + + + + Generates an auth push. + + + + + + If the channel errors internally (phoenix error, not transport) attempt rejoining. + + + + + + + Sends the phoenix server a join message. + + + + + + Handles a received join response (received after sending on subscribe/reconnection) + + + + + + + Called when a socket message is received, parses the correct event handler to pass to. + + + + + + Represents a realtime presence client. + + When a client subscribes to a channel, it will immediately receive the channel's latest state in a single message. + Clients are free to come-and-go as they please, and as long as they are all subscribed to the same channel then they will all have the same Presence state as each other. + If a client is suddenly disconnected (for example, they go offline), their state will be automatically removed from the shared state. + + A model representing expected payload. + + + + The Last State of this Presence instance. + + + + + The Current State of this Presence instance. + + + + + Initializes a realtime presence helper class. + + + + + + + + Add presence event handler for a given event type. + + + + + + + Remove an event handler + + + + + + + Clears all event handlers for a given type (if specified) or clears all handlers. + + + + + + Notifies listeners of state changes + + + + + + Called in two cases: + - By `RealtimeChannel` when it receives a `presence_state` initializing message. + - By `RealtimeChannel` When a diff has been received and a new response is saved. + + + + + + Triggers a diff comparison and emits events accordingly. + + + + + + + "Tracks" an event, used with . + + + + + + + Untracks an event. + + + + + Sets the internal Presence State from the + + + + + Socket connection handler. + + + + + Returns whether or not the connection is alive. + + + + + The Socket Endpoint + + + + + Initializes this Socket instance. + + + + + + + Connects to a socket server and registers event listeners. + + + + + Disconnects from the socket server. + + + + + + + Adds a listener to be notified when the socket state changes. + + + + + + Removes a specified listener from socket state changes. + + + + + + Notifies all listeners that the socket state has changed. + + + + + + Clears all of the listeners from receiving event state changes. + + + + + Adds a listener to be notified when a message is received. + + + + + + Removes a specified listener from messages received. + + + + + + Notifies all listeners that the socket has received a message + + + + + + Clears all of the listeners from receiving event state changes. + + + + + Adds a listener to be notified when a message is received. + + + + + + Removes a specified listener from messages received. + + + + + + Notifies all listeners that the socket has received a heartbeat + + + + + + Clears all of the listeners from receiving event state changes. + + + + + Adds an error event handler. + + + + + + Removes an error event handler + + + + + + + Clears Error Event Handlers + + + + + Pushes formatted data to the socket server. + + If the connection is not alive, the data will be placed into a buffer to be sent when reconnected. + + + + + + Returns the latency (in millis) of roundtrip time from socket to server and back. + + + + + + Maintains a heartbeat connection with the socket server to prevent disconnection. + + + + + Called when the socket opens, registers the heartbeat thread and cancels the reconnection timer. + + + + + The socket has reconnected (or connected) + + + + + + The socket has disconnected, called either through a socket closing or erroring. + + + + + + Parses a received socket message into a non-generic type. + + + + + + Handles socket errors, increments reconnection count if a connection has been established at least once. + + + + + + + Begins the reconnection thread with a progressively increasing interval. + + + + + Generates an incrementing identifier for message references - this reference is used + to coordinate requests with their responses. + + + + + + Returns the expected reply event name based off a generated message ref. + + + + + + + Dispose of the web socket connection. + + + + + Flushes `Push` requests added while a socket was disconnected. + + + + + A generic, internal phoenix server response + + + + + The response. + + + + + The status. + + + + + Options to initialize a socket. + + + + + A user token (used for WALRUS permissions) + + + + + A Supabase hosted public key + + + + + Representation of a Socket Request, used by + + + + + The type + + + + + The topic being sent to + + + + + The Event name + + + + + The json serializable payload + + + + + The unique ref for this request. + + + + + The join ref (if applicable) + + + + + A SocketResponse with support for Generically typed Payload + + + + + + + + + The typed payload response + + + + + Representation of a Socket Response. + + + + + Represents a socket response + + + + + + The internal realtime topic. + + + + + The internal, raw event given by the socket + + + + + The typed, parsed event given by this library. + + + + + The payload/response. + + + + + An internal reference to this particular feedback loop. + + + + + The raw JSON string of the received data. + + + + + + + + The record referenced. + + + + + The previous state of the referenced record. + + + + + A socket response payload. + + + + + Displays Column information from the Database. + + Will always be an array but can be empty + + + + + The timestamp of the commit referenced. + + Will either be a string or null + + + + + The record referenced. + + Will always be an object but can be empty. + + + + + The previous state of the referenced record. + + Will always be an object but can be empty. + + + + + The Schema affected. + + + + + The Table affected. + + + + + The action type performed (INSERT, UPDATE, DELETE, etc.) + + + + + The parsed type. + + + + + Status of response + + + + + The unparsed response object + + + + + Either null or an array of errors. + See: https://github.com/supabase/walrus/#error-states + + + + + Presence joins (parsed later) + + + + + Presence leaves (parsed later) + + + + + The channel (system) + + + + + The extension (system) + + + + + The message (system) + + + + + Simple method to form a query string (albeit poorly) from a dictionary. + + + + + + + Generates a Channel topic string of format: `realtime{:schema?}{:table?}{:col.eq.:val?}` + + + + + + + + + + diff --git a/Game/Assets/Supabase/realtime-csharp.6.0.4/lib/netstandard2.0/Supabase.Realtime.xml.meta b/Game/Assets/Supabase/realtime-csharp.6.0.4/lib/netstandard2.0/Supabase.Realtime.xml.meta new file mode 100644 index 0000000..2cc24af --- /dev/null +++ b/Game/Assets/Supabase/realtime-csharp.6.0.4/lib/netstandard2.0/Supabase.Realtime.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: c6bfd8cf892cf6b449c3f8dc73f077cc +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/realtime-csharp.6.0.4/realtime-csharp.6.0.4.nupkg b/Game/Assets/Supabase/realtime-csharp.6.0.4/realtime-csharp.6.0.4.nupkg new file mode 100644 index 0000000000000000000000000000000000000000..98409a4d44cb41db078176d15751a8c10bbce59e GIT binary patch literal 68425 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

    YH|K)jml7+ta7cOVXD3&ZL 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 literal 0 HcmV?d00001 diff --git a/Game/Assets/Supabase/realtime-csharp.6.0.4/realtime-csharp.6.0.4.nupkg.meta b/Game/Assets/Supabase/realtime-csharp.6.0.4/realtime-csharp.6.0.4.nupkg.meta new file mode 100644 index 0000000..cd12842 --- /dev/null +++ b/Game/Assets/Supabase/realtime-csharp.6.0.4/realtime-csharp.6.0.4.nupkg.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 25bf578ee5be37f468f2032f59dbcfd5 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/supabase-core.0.0.3.meta b/Game/Assets/Supabase/supabase-core.0.0.3.meta new file mode 100644 index 0000000..d9e0279 --- /dev/null +++ b/Game/Assets/Supabase/supabase-core.0.0.3.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 775f0496d3a0fa94c9de446e2a24fbc8 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/supabase-core.0.0.3/.signature.p7s b/Game/Assets/Supabase/supabase-core.0.0.3/.signature.p7s new file mode 100644 index 0000000000000000000000000000000000000000..050ac15a83621362c27fc6f0ec8bf6b3693cdb34 GIT binary patch literal 11511 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 literal 0 HcmV?d00001 diff --git a/Game/Assets/Supabase/supabase-core.0.0.3/README.md b/Game/Assets/Supabase/supabase-core.0.0.3/README.md new file mode 100644 index 0000000..7085808 --- /dev/null +++ b/Game/Assets/Supabase/supabase-core.0.0.3/README.md @@ -0,0 +1,25 @@ +

    + +

    +

    + + + + +

    + +This repo contains shared resources for the [supabase-csharp](https://github.com/supabase-community/supabase-csharp) repo and its dependent libraries. + +## Package made possible through the efforts of: + +Join the ranks! See a problem? Help fix it! + + + + + +Made with [contrib.rocks](https://contrib.rocks/preview?repo=supabase-community%core-csharp). + +## Contributing + +We are more than happy to have contributions! Please submit a PR. diff --git a/Game/Assets/Supabase/supabase-core.0.0.3/README.md.meta b/Game/Assets/Supabase/supabase-core.0.0.3/README.md.meta new file mode 100644 index 0000000..0a55e2b --- /dev/null +++ b/Game/Assets/Supabase/supabase-core.0.0.3/README.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: cb02336db98c99b49a21b27464d7eb36 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/supabase-core.0.0.3/icon.png b/Game/Assets/Supabase/supabase-core.0.0.3/icon.png new file mode 100644 index 0000000..9ac2a0b --- /dev/null +++ b/Game/Assets/Supabase/supabase-core.0.0.3/icon.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5521a79b4acd1013574150313315a0ec9093eca0072a4b1f6052ac1ef0c988c9 +size 5771 diff --git a/Game/Assets/Supabase/supabase-core.0.0.3/icon.png.meta b/Game/Assets/Supabase/supabase-core.0.0.3/icon.png.meta new file mode 100644 index 0000000..305c143 --- /dev/null +++ b/Game/Assets/Supabase/supabase-core.0.0.3/icon.png.meta @@ -0,0 +1,114 @@ +fileFormatVersion: 2 +guid: 367685d8c77f2b54896fc8563bcb0d98 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/supabase-core.0.0.3/lib.meta b/Game/Assets/Supabase/supabase-core.0.0.3/lib.meta new file mode 100644 index 0000000..90a7ea4 --- /dev/null +++ b/Game/Assets/Supabase/supabase-core.0.0.3/lib.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 465c20c7bd02bc149936ad330797abc0 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/supabase-core.0.0.3/lib/netstandard2.0.meta b/Game/Assets/Supabase/supabase-core.0.0.3/lib/netstandard2.0.meta new file mode 100644 index 0000000..6e3cc48 --- /dev/null +++ b/Game/Assets/Supabase/supabase-core.0.0.3/lib/netstandard2.0.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 61dfecf8deddee343b4c9a17e3af8824 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/supabase-core.0.0.3/lib/netstandard2.0/Supabase.Core.dll b/Game/Assets/Supabase/supabase-core.0.0.3/lib/netstandard2.0/Supabase.Core.dll new file mode 100644 index 0000000..65ef96b --- /dev/null +++ b/Game/Assets/Supabase/supabase-core.0.0.3/lib/netstandard2.0/Supabase.Core.dll @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:23227753b81ab47ab7f8dddc2693d67b38c2075c71176aeaaebe8f2e87f66e15 +size 7680 diff --git a/Game/Assets/Supabase/supabase-core.0.0.3/lib/netstandard2.0/Supabase.Core.dll.meta b/Game/Assets/Supabase/supabase-core.0.0.3/lib/netstandard2.0/Supabase.Core.dll.meta new file mode 100644 index 0000000..a551889 --- /dev/null +++ b/Game/Assets/Supabase/supabase-core.0.0.3/lib/netstandard2.0/Supabase.Core.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: 7adcc52f30e3b754c8059cb7a073b832 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/supabase-core.0.0.3/lib/netstandard2.0/Supabase.Core.xml b/Game/Assets/Supabase/supabase-core.0.0.3/lib/netstandard2.0/Supabase.Core.xml new file mode 100644 index 0000000..1db8fa5 --- /dev/null +++ b/Game/Assets/Supabase/supabase-core.0.0.3/lib/netstandard2.0/Supabase.Core.xml @@ -0,0 +1,13 @@ + + + + Supabase.Core + + + + + Used internally to add a string value to a C# field. + + + + diff --git a/Game/Assets/Supabase/supabase-core.0.0.3/lib/netstandard2.0/Supabase.Core.xml.meta b/Game/Assets/Supabase/supabase-core.0.0.3/lib/netstandard2.0/Supabase.Core.xml.meta new file mode 100644 index 0000000..c27f9da --- /dev/null +++ b/Game/Assets/Supabase/supabase-core.0.0.3/lib/netstandard2.0/Supabase.Core.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 089088b2eab389f4cad0d5caaf722d36 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/supabase-core.0.0.3/supabase-core.0.0.3.nupkg b/Game/Assets/Supabase/supabase-core.0.0.3/supabase-core.0.0.3.nupkg new file mode 100644 index 0000000000000000000000000000000000000000..515a58a5e37188489e185435993cf5736ff0db3d GIT binary patch literal 23835 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 literal 0 HcmV?d00001 diff --git a/Game/Assets/Supabase/supabase-core.0.0.3/supabase-core.0.0.3.nupkg.meta b/Game/Assets/Supabase/supabase-core.0.0.3/supabase-core.0.0.3.nupkg.meta new file mode 100644 index 0000000..5cecd24 --- /dev/null +++ b/Game/Assets/Supabase/supabase-core.0.0.3/supabase-core.0.0.3.nupkg.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: fa9c0b1d5fce98d458d0a9932ef6a28a +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/supabase-csharp.0.16.2.meta b/Game/Assets/Supabase/supabase-csharp.0.16.2.meta new file mode 100644 index 0000000..12598d8 --- /dev/null +++ b/Game/Assets/Supabase/supabase-csharp.0.16.2.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ea785b8accce6784ca430ab730f1122b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/supabase-csharp.0.16.2/.signature.p7s b/Game/Assets/Supabase/supabase-csharp.0.16.2/.signature.p7s new file mode 100644 index 0000000000000000000000000000000000000000..dbaeb0d76200b3ad68fdc422885ee920df65dd5f GIT binary patch literal 11525 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 literal 0 HcmV?d00001 diff --git a/Game/Assets/Supabase/supabase-csharp.0.16.2/README.md b/Game/Assets/Supabase/supabase-csharp.0.16.2/README.md new file mode 100644 index 0000000..1759e17 --- /dev/null +++ b/Game/Assets/Supabase/supabase-csharp.0.16.2/README.md @@ -0,0 +1,68 @@ +

    + +

    +

    + + + + +

    + +Documentation can be found [below](#getting-started), on the [Supabase Developer Documentation](https://supabase.com/docs/reference/csharp/introduction) and additionally in the [Generated API Docs](https://supabase-community.github.io/supabase-csharp/api/Supabase.Client.html). + +[**CHANGELOG is available in the repository root.**](https://github.com/supabase-community/supabase-csharp/blob/master/CHANGELOG.md) + +## Features + +- [x] Integration with [Supabase.Realtime](https://github.com/supabase-community/realtime-csharp) + - Realtime listeners for database changes +- [x] Integration with [Postgrest](https://github.com/supabase-community/postgrest-csharp) + - Access your database using a REST API generated from your schema & database functions +- [x] Integration with [Gotrue](https://github.com/supabase-community/gotrue-csharp) + - User authentication, including OAuth, email/password, and native sign-in +- [x] Integration with [Supabase Storage](https://github.com/supabase-community/storage-csharp) + - Store files in S3 with additional managed metadata +- [x] Integration with [Supabase Edge Functions](https://github.com/supabase-community/functions-csharp) + - Run serverless functions on the edge +- [x] [Nuget Release](https://www.nuget.org/packages/supabase-csharp) + +## Quickstart + +1. To get started, create a new project in the [Supabase Admin Panel](https://app.supabase.io). +2. Grab your Supabase URL and Supabase Public Key from the Admin Panel (Settings -> API Keys). +3. Initialize the client! + +_Reminder: `supabase-csharp` has some APIs that require the `service_key` rather than the `public_key` (for instance: the administration of users, bypassing database roles, etc.). If you are using the `service_key` **be sure it is not exposed client side.** Additionally, if you need to use both a service account and a public/user account, please do so using a separate client instance for each._ + +## Documentation + +- [Getting Started](https://github.com/supabase-community/supabase-csharp/wiki#getting-started) +- [Unity](https://github.com/supabase-community/supabase-csharp/wiki/Unity) +- [Desktop/Mobile Clients (e.g. Xamarin, MAUI, etc.)](https://github.com/supabase-community/supabase-csharp/wiki/Desktop-Clients) +- [Server-Side Applications](https://github.com/supabase-community/supabase-csharp/wiki/Server-Side-Applications) +- [Release Notes/Breaking Changes](https://github.com/supabase-community/supabase-csharp/wiki/Release-Notes) +- [Using the Client](https://github.com/supabase-community/supabase-csharp/wiki#using-the-client) +- [Examples](https://github.com/supabase-community/supabase-csharp/wiki/Examples) + +### Specific Features + +- [Offline Support](https://github.com/supabase-community/supabase-csharp/wiki/Authorization-with-Gotrue#offline-support) +- [Refresh Token Thread](https://github.com/supabase-community/supabase-csharp/wiki/Authorization-with-Gotrue#updated-refresh-token-handling) +- [Native Sign in with Apple]([Documentation/NativeSignInWithApple.md](https://github.com/supabase-community/supabase-csharp/wiki/Authorization-with-Gotrue#native-sign-in-with-apple)) + +### Troubleshooting + +- [Troubleshooting](https://github.com/supabase-community/supabase-csharp/wiki/Troubleshooting) +- [Discussion Forum](https://github.com/supabase-community/supabase-csharp/discussions) + +## Package made possible through the efforts of: + + + + + +Join the ranks! See a problem? Help fix it! + +## Contributing + +We are more than happy to have contributions! Please submit a PR. diff --git a/Game/Assets/Supabase/supabase-csharp.0.16.2/README.md.meta b/Game/Assets/Supabase/supabase-csharp.0.16.2/README.md.meta new file mode 100644 index 0000000..115993d --- /dev/null +++ b/Game/Assets/Supabase/supabase-csharp.0.16.2/README.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: e9e435418beaea1488cec0ae29141b90 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/supabase-csharp.0.16.2/icon.png b/Game/Assets/Supabase/supabase-csharp.0.16.2/icon.png new file mode 100644 index 0000000..9ac2a0b --- /dev/null +++ b/Game/Assets/Supabase/supabase-csharp.0.16.2/icon.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5521a79b4acd1013574150313315a0ec9093eca0072a4b1f6052ac1ef0c988c9 +size 5771 diff --git a/Game/Assets/Supabase/supabase-csharp.0.16.2/icon.png.meta b/Game/Assets/Supabase/supabase-csharp.0.16.2/icon.png.meta new file mode 100644 index 0000000..8274a11 --- /dev/null +++ b/Game/Assets/Supabase/supabase-csharp.0.16.2/icon.png.meta @@ -0,0 +1,114 @@ +fileFormatVersion: 2 +guid: 051963b18ed636947a43fd8d6e66e892 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/supabase-csharp.0.16.2/lib.meta b/Game/Assets/Supabase/supabase-csharp.0.16.2/lib.meta new file mode 100644 index 0000000..bd658fe --- /dev/null +++ b/Game/Assets/Supabase/supabase-csharp.0.16.2/lib.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0eb57e9c42a949e40b9c4a38e58d7680 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/supabase-csharp.0.16.2/lib/netstandard2.0.meta b/Game/Assets/Supabase/supabase-csharp.0.16.2/lib/netstandard2.0.meta new file mode 100644 index 0000000..7c880ce --- /dev/null +++ b/Game/Assets/Supabase/supabase-csharp.0.16.2/lib/netstandard2.0.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 85060a35db3d8264bb4edcc76bb39b7b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/supabase-csharp.0.16.2/lib/netstandard2.0/Supabase.dll b/Game/Assets/Supabase/supabase-csharp.0.16.2/lib/netstandard2.0/Supabase.dll new file mode 100644 index 0000000..c1878e7 --- /dev/null +++ b/Game/Assets/Supabase/supabase-csharp.0.16.2/lib/netstandard2.0/Supabase.dll @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9b50124fe903098edb6282017dfd7107d4e6727a2ddc55ece6bb8d11e470375c +size 20480 diff --git a/Game/Assets/Supabase/supabase-csharp.0.16.2/lib/netstandard2.0/Supabase.dll.meta b/Game/Assets/Supabase/supabase-csharp.0.16.2/lib/netstandard2.0/Supabase.dll.meta new file mode 100644 index 0000000..49bd27d --- /dev/null +++ b/Game/Assets/Supabase/supabase-csharp.0.16.2/lib/netstandard2.0/Supabase.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: d332b9a41d044a046b93537c96034fe1 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/supabase-csharp.0.16.2/lib/netstandard2.0/Supabase.xml b/Game/Assets/Supabase/supabase-csharp.0.16.2/lib/netstandard2.0/Supabase.xml new file mode 100644 index 0000000..eccf6f1 --- /dev/null +++ b/Game/Assets/Supabase/supabase-csharp.0.16.2/lib/netstandard2.0/Supabase.xml @@ -0,0 +1,370 @@ + + + + Supabase + + + + + A singleton class representing a Supabase Client. + + + + + Supabase Auth allows you to create and manage user sessions for access to data that is secured by access policies. + + + + + Returns a Stateless Gotrue Admin client given a service_key JWT. This should really only be accessed from a + server environment where a private service_key would remain secure. + + + + + + + Supabase Realtime allows for realtime feedback on database changes. + + + + + Supabase Edge functions allow you to deploy and invoke edge functions. + + + + + Supabase Postgrest allows for strongly typed REST interactions with the your database. + + + + + Supabase Storage allows you to manage user-generated content, such as photos or videos. + + + + + Constructor supplied for dependency injection support. + + + + + + + + + + + Creates a new Supabase Client. + + + + + + + + Attempts to retrieve the session from Gotrue (set in ) and connects to realtime (if `options.AutoConnectRealtime` is set) + + + + + Gets the Postgrest client to prepare for a query. + + + + + + + + + + + + + Represents the default session handler for Gotrue - it does nothing by default. + + + + + Default Session Save (does nothing by default) + + + + + + Default Session Destroyer (does nothing by default) + + + + + Default Session Loader (does nothing by default) + + + + + + Contract for what a SupabaseClient should implement + + Model representing User + Model representing Session + Class that conforms to + Class that conforms to + Model representing + Model representing + + + + The Gotrue Auth Instance + + + + + Creates a Gotrue Admin Auth Client + + + + + + + The Supabase Functions Client + + + + + The Postgrest Client + + + + + The Realtime Client + + + + + The Storage Client + + + + + Used for interacting with a Postgrest Table + Model. Provides helpers + to be able to add realtime listeners and queries. + + + + + + + Initializes a supabase client according to the provided . + If option is enabled: + - Will connect to realtime instance + - Will restore session using a specified in + + + + + + Perform a stored procedure call. + + The function name to call + The parameters to pass to the function call + + + + + Perform a stored procedure call. + + The function name to call + The parameters to pass to the function call + A type used for hydrating the HTTP response content (hydration through JSON.NET) + A hydrated model + + + + Contract representing a wrapper client. + + + + + Invoke a supabase function + + + + String content from invoke + + + + Invoke a supabase function and deserialize data to a provided model. + + + + Model representing data that is compatible with + The deserialized Model + + + + Invoke a supabase function and return the for the developer to parse. + + + + The HTTP Content + + + + Contract representing a supabase wrapped postgrest + + Model that inherits from that represents this Table + Class that implements + + + + Add a realtime listener to this table. + + + + + + + + A Static class representing a Supabase Client. + + + + + Returns an instance of given a provided url and key. + + + + + + + + + Returns an instance of for a given supabase key. + + + + + + + + Supabase Storage allows you to manage user-generated content, such as photos or videos. + + + + + + + + + Supabase Edge functions allow you to deploy and invoke edge functions. + + + + + + + + + Gets the Postgrest client to prepare for a query. + + + + + + + Runs a remote procedure. + + + + + + + + + + + Depreciated + + + + + Options available for Supabase Client Configuration + + + + + Schema to be used in Postgres / Realtime + + + + + Should the Client automatically handle refreshing the User's Token? + + + + + Should the Client automatically connect to Realtime? + + + + + Functions passed to Gotrue that handle sessions. + + **By default these do nothing for persistence.** + + + + + Headers that allow manual specifications of an "Authorization" to be passed to the supabase client. + This is unlikely to be used. + + + + + Specifies Options passed to the StorageClient. + + + + + The Supabase Auth Url Format + + + + + The Supabase Postgrest Url Format + + + + + The Supabase Realtime Url Format + + + + + The Supabase Storage Url Format + + + + + The Supabase Functions Url Format + + + + + A Supabase wrapper for a Postgrest Table. + + Model that implements + + + + A Supabase wrapper for a Postgrest table. + + + + + + + + + + diff --git a/Game/Assets/Supabase/supabase-csharp.0.16.2/lib/netstandard2.0/Supabase.xml.meta b/Game/Assets/Supabase/supabase-csharp.0.16.2/lib/netstandard2.0/Supabase.xml.meta new file mode 100644 index 0000000..c400ec4 --- /dev/null +++ b/Game/Assets/Supabase/supabase-csharp.0.16.2/lib/netstandard2.0/Supabase.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 72119bf3a9b0d344f95e9ce8be75bbc6 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/supabase-csharp.0.16.2/supabase-csharp.0.16.2.nupkg b/Game/Assets/Supabase/supabase-csharp.0.16.2/supabase-csharp.0.16.2.nupkg new file mode 100644 index 0000000000000000000000000000000000000000..622c4bb152b4b128eec6a2bbe9241a3af1d99cd4 GIT binary patch literal 33169 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 T+|7AJ$iHWh#T)0|H>v*v+nbhw literal 0 HcmV?d00001 diff --git a/Game/Assets/Supabase/supabase-csharp.0.16.2/supabase-csharp.0.16.2.nupkg.meta b/Game/Assets/Supabase/supabase-csharp.0.16.2/supabase-csharp.0.16.2.nupkg.meta new file mode 100644 index 0000000..7213f33 --- /dev/null +++ b/Game/Assets/Supabase/supabase-csharp.0.16.2/supabase-csharp.0.16.2.nupkg.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: bc65d1afa2889c04d969a48bb4ac12a1 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/supabase-storage-csharp.1.4.0.meta b/Game/Assets/Supabase/supabase-storage-csharp.1.4.0.meta new file mode 100644 index 0000000..ea258d1 --- /dev/null +++ b/Game/Assets/Supabase/supabase-storage-csharp.1.4.0.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 2e8fdec9b45a8744cb35d589b8218a54 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/supabase-storage-csharp.1.4.0/.signature.p7s b/Game/Assets/Supabase/supabase-storage-csharp.1.4.0/.signature.p7s new file mode 100644 index 0000000000000000000000000000000000000000..a4c3e63c5be2874db715ca19a95cdd2f609d64a8 GIT binary patch literal 11513 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 a%G8>TMOQ4UHnr@zSg$RdCmoxp!T$%GK`wd# literal 0 HcmV?d00001 diff --git a/Game/Assets/Supabase/supabase-storage-csharp.1.4.0/README.md b/Game/Assets/Supabase/supabase-storage-csharp.1.4.0/README.md new file mode 100644 index 0000000..920663e --- /dev/null +++ b/Game/Assets/Supabase/supabase-storage-csharp.1.4.0/README.md @@ -0,0 +1,66 @@ +

    + +

    +

    + + + + +

    + +Integrate your [Supabase](https://supabase.io) projects with C#. + +**NOTICE, As of v1.1.0** +**API Change [Breaking/Minor] Library no longer uses `WebClient` and instead leverages `HttpClient`. Progress events on `Upload` and `Download` are now handled with `EventHandler` instead of `WebClient` EventHandlers.** + +## Examples (using supabase-csharp) + +```c# +public async void Main() +{ + // Make sure you set these (or similar) + var url = Environment.GetEnvironmentVariable("SUPABASE_URL"); + var key = Environment.GetEnvironmentVariable("SUPABASE_KEY"); + + await Supabase.Client.InitializeAsync(url, key); + + // The Supabase Instance can be accessed at any time using: + // Supabase.Client.Instance {.Realtime|.Auth|etc.} + // For ease of readability we'll use this: + var instance = Supabase.Client.Instance; + + // Interact with Supabase Storage + var storage = Supabase.Client.Instance.Storage + await storage.CreateBucket("testing") + + var bucket = storage.From("testing"); + + var basePath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().CodeBase).Replace("file:", ""); + var imagePath = Path.Combine(basePath, "Assets", "supabase-csharp.png"); + + await bucket.Upload(imagePath, "supabase-csharp.png"); + + // If bucket is public, get url + bucket.GetPublicUrl("supabase-csharp.png"); + + // If bucket is private, generate url + await bucket.CreateSignedUrl("supabase-csharp.png", 3600)); + + // Download it! + await bucket.Download("supabase-csharp.png", Path.Combine(basePath, "testing-download.png")); +} +``` + +## Package made possible through the efforts of: + +Join the ranks! See a problem? Help fix it! + + + + + +Made with [contrib.rocks](https://contrib.rocks/preview?repo=supabase-community%storage-csharp). + +## Contributing + +We are more than happy to have contributions! Please submit a PR. diff --git a/Game/Assets/Supabase/supabase-storage-csharp.1.4.0/README.md.meta b/Game/Assets/Supabase/supabase-storage-csharp.1.4.0/README.md.meta new file mode 100644 index 0000000..4842a24 --- /dev/null +++ b/Game/Assets/Supabase/supabase-storage-csharp.1.4.0/README.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: a4889ef72c1a91740b148b1aca4da90f +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/supabase-storage-csharp.1.4.0/icon.png b/Game/Assets/Supabase/supabase-storage-csharp.1.4.0/icon.png new file mode 100644 index 0000000..9ac2a0b --- /dev/null +++ b/Game/Assets/Supabase/supabase-storage-csharp.1.4.0/icon.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5521a79b4acd1013574150313315a0ec9093eca0072a4b1f6052ac1ef0c988c9 +size 5771 diff --git a/Game/Assets/Supabase/supabase-storage-csharp.1.4.0/icon.png.meta b/Game/Assets/Supabase/supabase-storage-csharp.1.4.0/icon.png.meta new file mode 100644 index 0000000..f88b4f2 --- /dev/null +++ b/Game/Assets/Supabase/supabase-storage-csharp.1.4.0/icon.png.meta @@ -0,0 +1,114 @@ +fileFormatVersion: 2 +guid: cc2b44ca8b4e1084c821d2182e537cdc +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/supabase-storage-csharp.1.4.0/lib.meta b/Game/Assets/Supabase/supabase-storage-csharp.1.4.0/lib.meta new file mode 100644 index 0000000..8bc9a54 --- /dev/null +++ b/Game/Assets/Supabase/supabase-storage-csharp.1.4.0/lib.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e6dd47520debaad468ea2119c16f6661 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/supabase-storage-csharp.1.4.0/lib/netstandard2.0.meta b/Game/Assets/Supabase/supabase-storage-csharp.1.4.0/lib/netstandard2.0.meta new file mode 100644 index 0000000..e8d3f68 --- /dev/null +++ b/Game/Assets/Supabase/supabase-storage-csharp.1.4.0/lib/netstandard2.0.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ebfa5db7d4bd406419733747a307577e +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/supabase-storage-csharp.1.4.0/lib/netstandard2.0/Supabase.Storage.dll b/Game/Assets/Supabase/supabase-storage-csharp.1.4.0/lib/netstandard2.0/Supabase.Storage.dll new file mode 100644 index 0000000..29eeee8 --- /dev/null +++ b/Game/Assets/Supabase/supabase-storage-csharp.1.4.0/lib/netstandard2.0/Supabase.Storage.dll @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0703cba3b6f14a506d56d7499a1bf58e7837ca299179ac268122edf2fcd6a27b +size 52224 diff --git a/Game/Assets/Supabase/supabase-storage-csharp.1.4.0/lib/netstandard2.0/Supabase.Storage.dll.meta b/Game/Assets/Supabase/supabase-storage-csharp.1.4.0/lib/netstandard2.0/Supabase.Storage.dll.meta new file mode 100644 index 0000000..01b36a0 --- /dev/null +++ b/Game/Assets/Supabase/supabase-storage-csharp.1.4.0/lib/netstandard2.0/Supabase.Storage.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: 08898b31497d45f40ae0e51c1b0f8cac +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/supabase-storage-csharp.1.4.0/lib/netstandard2.0/Supabase.Storage.xml b/Game/Assets/Supabase/supabase-storage-csharp.1.4.0/lib/netstandard2.0/Supabase.Storage.xml new file mode 100644 index 0000000..551b787 --- /dev/null +++ b/Game/Assets/Supabase/supabase-storage-csharp.1.4.0/lib/netstandard2.0/Supabase.Storage.xml @@ -0,0 +1,435 @@ + + + + Supabase.Storage + + + + + The visibility of the bucket. Public buckets don't require an authorization token to download objects, + but still require a valid token for all other operations. By default, buckets are private. + + + + + Specifies the file size limit that this bucket can accept during upload. + + Expects a string value following a format like: '1kb', '50mb', '150kb', etc. + + + + + Specifies the allowed mime types that this bucket can accept during upload. + + Expects a List of values such as: ['image/jpeg', 'image/png', etc] + + + + + The visibility of the bucket. Public buckets don't require an authorization token to download objects, + but still require a valid token for all other operations. By default, buckets are private. + + + + + Specifies the file size limit that this bucket can accept during upload. + + Expects a string value following a format like: '1kb', '50mb', '150kb', etc. + + + + + Specifies the allowed mime types that this bucket can accept during upload. + + Expects a List of values such as: ['image/jpeg', 'image/png', etc] + + + + + Perform a file operation in a bucket + + Bucket Id + + + + + Options that can be passed into the Storage Client + + + + + The timespan to wait before an HTTP Upload Timesout + See: https://learn.microsoft.com/en-us/dotnet/api/system.net.http.httpclient.timeout?view=net-7.0 + + + + + The timespan to wait before an HTTP Upload Timesout + See: https://learn.microsoft.com/en-us/dotnet/api/system.net.http.httpclient.timeout?view=net-7.0 + + + + + The timespan to wait before an HTTP Client request times out. + See: https://learn.microsoft.com/en-us/dotnet/api/system.net.http.httpclient.timeout?view=net-7.0 + + + + + Adapted from: https://gist.github.com/dalexsoto/9fd3c5bdbe9f61a717d47c5843384d11 + + + + + Transforms options into a NameValueCollecto to be used with a + + + + + + + Flag representing if this object is a folder, all properties will be null but the name + + + + + Initializes HttpClients with their appropriate timeouts. Called at the initialization of StorageBucketApi. + + + + + + Helper to make a request using the defined parameters to an API Endpoint and coerce into a model. + + + + + + + + + + + Helper to make a request using the defined parameters to an API Endpoint. + + + + + + + + + + + Number of files to be returned + + + + + Starting position of query + + + + + The search string to filter files by + + + + + Column to sort by. Can be any colum inside of a + + + + + Function that can be set to return dynamic headers. + + Headers specified in the constructor will ALWAYS take precendece over headers returned by this function. + + + + + Retrieves the details of all Storage buckets within an existing product. + + + + + + Retrieves the details of an existing Storage bucket. + + + + + + + Creates a new Storage bucket + + + + Bucket Id + + + + Updates a Storage bucket + + + + + + + + Removes all objects inside a single bucket. + + + + + + + Deletes an existing bucket. A bucket can't be deleted with existing objects inside it. + You must first + + + + + + + A simple convenience function to get the URL for an asset in a public bucket.If you do not want to use this function, you can construct the public URL by concatenating the bucket URL with the path to the asset. + This function does not verify if the bucket is public. If a public URL is created for a bucket which is not public, you will not be able to download the asset. + + + + + + + + Create signed url to download file without requiring permissions. This URL can be valid for a set number of seconds. + + The file path to be downloaded, including the current file name. For example `folder/image.png`. + The number of seconds until the signed URL expires. For example, `60` for a URL which is valid for one minute. + + + + + + Create signed URLs to download files without requiring permissions. These URLs can be valid for a set number of seconds. + + paths The file paths to be downloaded, including the current file names. For example [`folder/image.png`, 'folder2/image2.png']. + The number of seconds until the signed URLs expire. For example, `60` for URLs which are valid for one minute. + + + + + Lists all the files within a bucket. + + + + + + + + Uploads a file to an existing bucket. + + File Source Path + The relative file path. Should be of the format `folder/subfolder/filename.png`. The bucket must already exist before attempting to upload. + + + + + + + + Uploads a byte array to an existing bucket. + + + The relative file path. Should be of the format `folder/subfolder/filename.png`. The bucket must already exist before attempting to upload. + + + + + + + + Uploads a file to using a pre-generated Signed Upload Url + + File Source Path + + + + + + + + + Uploads a byte array using a pre-generated Signed Upload Url + + + + + + + + + + + Replaces an existing file at the specified path with a new one. + + File source path. + The relative file path. Should be of the format `folder/subfolder/filename.png`. The bucket must already exist before attempting to upload. + HTTP headers. + + + + + + Replaces an existing file at the specified path with a new one. + + + The relative file path. Should be of the format `folder/subfolder/filename.png`. The bucket must already exist before attempting to upload. + HTTP headers. + + + + + + Moves an existing file, optionally renaming it at the same time. + + The original file path, including the current file name. For example `folder/image.png`. + The new file path, including the new file name. For example `folder/image-copy.png`. + + + + + Downloads a file from a private bucket. For public buckets, use + + + + + + + + + + Downloads a file from a private bucket. For public buckets, use + + + + + + + + + Downloads a byte array from a private bucket to be used programmatically. For public buckets + + + + + + + + + Downloads a byte array from a private bucket to be used programmatically. For public buckets + + + + + + + + Downloads a public file to the filesystem. This method DOES NOT VERIFY that the file is actually public. + + + + + + + + + + Downloads a byte array from a private bucket to be used programmatically. This method DOES NOT VERIFY that the file is actually public. + + + + + + + + + Deletes file within the same bucket + + A path to delete, for example `folder/image.png`. + + + + + Deletes files within the same bucket + + An array of files to be deletes, including the path and file name. For example [`folder/image.png`]. + + + + + Creates an upload signed URL. Use it to upload a file straight to the bucket without credentials + + The file path, including the current file name. For example `folder/image.png`. + + + + + The resize mode can be cover, contain or fill. Defaults to cover. + - Cover resizes the image to maintain it's aspect ratio while filling the entire width and height. + - Contain resizes the image to maintain it's aspect ratio while fitting the entire image within the width and height. + - Fill resizes the image to fill the entire width and height.If the object's aspect ratio does not match the width and height, the image will be stretched to fit. + + + + + The width of the image in pixels. + + + + + The height of the image in pixels. + + + + + The resize mode can be cover, contain or fill. Defaults to cover. + - Cover resizes the image to maintain it's aspect ratio while filling the entire width and height. + - Contain resizes the image to maintain it's aspect ratio while fitting the entire image within the width and height. + - Fill resizes the image to fill the entire width and height.If the object's aspect ratio does not match the width and height, the image will be stretched to fit. + + + + + Set the quality of the returned image, this is percentage based, default 80 + + + + + Specify the format of the image requested. + + When using 'origin' we force the format to be the same as the original image, + bypassing automatic browser optimisation such as webp conversion + + + + + Represents a Generated Upload Signed Url - can be used to upload a file without needing a logged in token or user. + + + + + The Full Signed Url + + + + + The generated token + + + + + The Key that can be uploaded to (the supabase filename) + + + + diff --git a/Game/Assets/Supabase/supabase-storage-csharp.1.4.0/lib/netstandard2.0/Supabase.Storage.xml.meta b/Game/Assets/Supabase/supabase-storage-csharp.1.4.0/lib/netstandard2.0/Supabase.Storage.xml.meta new file mode 100644 index 0000000..110d7fa --- /dev/null +++ b/Game/Assets/Supabase/supabase-storage-csharp.1.4.0/lib/netstandard2.0/Supabase.Storage.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 903e65393b4ffdc41b9ac989e4ee50b0 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/supabase-storage-csharp.1.4.0/supabase-storage-csharp.1.4.0.nupkg b/Game/Assets/Supabase/supabase-storage-csharp.1.4.0/supabase-storage-csharp.1.4.0.nupkg new file mode 100644 index 0000000000000000000000000000000000000000..a6241ca464fcde9c5dfdf681b367adfe79f1ef82 GIT binary patch literal 46488 zcmZs>bx>SS&^C$&f)m^m2=4A|fS|$M-QC^!;TGK8J-EB;;x3E3F0eQs@B7_9?yb62 z=R7^9r)y4k*E3Z;)uZqS77iN<3JMX*#*hPBR2 zthQgjE^OqZvXo)e+Jx83OOJTW7&oi%Dh0DlWaxRU<9=E)Jh;Tp0$4(=zEH5bliFlN zGvN~`6Hpx%dnIE1O8{qtXn)aVMr<2M7zhg^Qz%q*I37-;H?Qg3XT(IF_85q6^n!~{ zA~s3;{*bh@I#Kw0l%@S|jX9DzfsY;VSXl9v@6LspjwwgK-EGzNqJ~~udWDSSjh>1f zQdN0=~yO4Gv?Zq9U_~Sd2bWF2cwY+jJ@uNr@g}@#UZv zlWf9No#WmOqS7qZ#@J0>v$9FQoco!kj}KTVh5t_?(a$A(Og@t+3=aiG`f1_p>R@PO z=xoa9>|*a^Xl}}A>}+A^g-@@oTaiZx50wpdqmHmzD6Am%h2eOsG!xPq_|^x zf`D(%#mdushJ1c&?R!jpkH@EJ?ykHbUCbPBb~qW~JMH1;_o0}@%r8dT>uKpCh2D_$ zZKi)giJLOU(D6DnN8LN*U^j>R7e=+O)H=qw_Hd^~{+`fTk;8DN*yw*J8vW$Z{Nw0x zntuH*ceuZs?>MU;5NY`kI}ZaP(4qA;K8>#_-aOZRJg>8X*NpDX1{#0zcA^&zxu$M| zZ2MJE*l5ZQVZWwRCj=Gy^k3s^?fJM`3aq3|iV>-LkYnMPxt}fYGZk<~2_0XtTJ~2N zWY!ECl5%#Y8Cgi9pmmF#fTFPT1a%Ohxf~etv>Xm@2K}o`-I8yARxu=Drz{0tx#le{ z9%Tlh9&GpNXIFR)2=H+g`IH#L{$Q^$+#4q4^B`B)cu&;a%tJM*Y;rwB`;Fhg#nyP^ zX8XP*iPBzXs!?~85{u~eK{$VdkcE2G@S8}G2M%t=vXh)YT}~dTmz$mQa!UiG?rdlX zbIL$#Gp_DKrnWsU-4F8d5Hm5yagiK&A!bGXrj?a!E-Lz8LOAV8D}WWrSY3|GR?_II z-w@GruO+xs{?!ff<#pKCx^uAK$^oNRQp$x+usqdD>g&4RQc%s!fi(Vm$k=eY#aHPF zHGikhV2QoUKN-6Io#}fDiyMm)k09aYf znM`bKCf~mLBrPr?#O5BQ`?95*P`$wX#4z~&;~X(aas>|lH*~U9$PWU8?6D5DJmP5mDO61pk1}5WVP*fJi4{h%I4;!CA9_$}MsP))U}#ts=Y<;+xKj2M1>HOOwRb0M829}olEPx_dx z3jPwczKwSL9mlex-U)o~%@b!4{q@5^`AK%)XPyDp=jo_m5ihdhb^EEg=laU6*_)iU zW6|#PqjoqC!+-OJZ}yfM6RR})g75t)UGJ|Lx7*L@6O10nv7?|!^R_0H8g~i%iP>gX4i{jqr}Tu3G41kX4*Dl!Ih2Egsc2X2g}fPqgKuVV^)ETohE#} zscTJ?T(d{UPDKgm6NGp z%(mLJ_&bDOL=epQCqBX#fWlrYlXeVN6_yZ!W5Ivwq7CyRk9Ir ztY=tBt;8HGa@&c_zJ{J?ENe!$3uO#2_BmAZ_8UddM91SA7nu!y1_YV`TdvufPlUsuj*3E$t4+#@16D5B!S@(rYpZ;!qMG7|EI`)4LRY^}d_9Ffs z7>wBL!$kir3l68I51xjUoT%lrcMN{aZb!@F(rfh25v@+FV3$NKYT-IhfF!HgM{Zjr zmUm9t(SQn^u1WtL)3kK!khFseu_v{+Wbwb?q`J6T}Bqx8w@Tn82)L;`Jm+9D^=Y9k< zZG)+~n9k#6<;x1nE)Op4>w`s1bm@vq% zV$(IxG>^H;d9EEkt(nC&dj`h#Emz(9bchJ(ZfYv>%0rfly_8KDioE!N5lE|VAuj&g zb8or@FE1sRSLBsFf2!Y^rcbYk+Iwm%-?0fM)ZcuK^WJY={nbz2YZl&o)gkU7i`$T@ z_wK~S?Su9n`~R^*u6$=AE9?1pdG*rXLw5S^cKlw`@ca_ExP7nrrd#>aA%0&vsu6g4 zrPa|>>*0ZU(00k_GPcTm9_uS=ChPwomL{Y2hHbHJH`9GF*S%TR&Z{Tz82^x`?wL2L zk$?NEY=vAGK&mrP_j8v(Isa%U_jz*QnT_$WHSW8G*A8fC*MP!X`#d7MbP1gsbU0>@e#Vx^6K>eVX0eEOzVE%aBlpl2p~qmWP0q)Nl} z7P;ehwUD$6nYRns%O|>$#cB8oWGs#_yON<-3Skq_EBe0H>ys6?$CbL0$)5`4%=!wL z-rrPK3FXZA3e-F+m{h6U-~5&%t5;7t5%Md2@sNYm=|gU`7yZ)H-eb7ltWCAz>)1@S z%2tqAeLD&MNcqZhRAp;5uSqSb@k?EGB{B}1Or;sImRJlc;_lH*rCG5C*sz2#gpA6N z4e17+5Q~(aa7mn9o!n+OH(xSgg1^cZm6Teyt7RCvvIN)1HmV7YyH=qcYjo8Z-y@Jz zE?4=yDvBLqe_gBOv#2f0qg7(sI^)FQXY7bW+8pt2kAt|9U7ZTOTixH_nOYRz-So7_ zxvP*xVsD>uQc6&th*nehJmER2Cz($77VO=Q^W91=X;GX>CLf!0ugMSGHfX&(kzE{7 zuL1on0Ux$cPjyaTmj8S#`1uvRs+d$MJ<%q$>+LRHx#-d7X1(EzNhKy@eV53rA=KQD zG?rg^*I3RliY{O+?!EUK5W;A61q+%i!eCL>IdCP=hWp# z`!?1ov0TcXq#j@&&Qx&n-MA;ID$QUf>Sh%n^ME}6P%A|qKz1A!bXy))qDRgfRDGAd z;b>JD4b;V{0!TPR_%`Yd-Uz3B8N)gxodN&al+*b`09cJhgN;9f>4WYUGx*03pXr0| zw{8u(G{<2{Dq?S*yXUF8JSLm1?3(rP4>h8BGgz06CKsbUabZWXyPJKrxE}ECIxBWP zRVU){$!|8+s9bk!H4Ydv{o>$Et);&;H<4U3^fqqPIryq6NtnPHHBeR(ALcEHh3P;@ zty9p@$7h8so)0)kIa;zAWm}Eqq~5H10(3F|o3y>X*ZeBqNZ0VY#fbk%vbzP5M;(f+ zCs^#VjK5j-9LO=j@PgSw{9iSiN6f*P{>QVlvo)Sp+IqWzpF*r>OO|(#6IPYb)qNy+ z9Pd86DXJPdDeoqnKJ&Eci;>{-h9$_XA#Ur9Uv)4os{mW44xB84lj}aN)4DuylSITK zY`>bd&T7%-9!y{S7vLJmi3*;oc496y>}pfJya5#mH0z%3U{jv#Q~0RHQ}0@);oTH5 zCFOgbA&7O=)gqrF|MqnvM7>=W`&JzV4;eq9<2gK7F5H@{ds4hIFAg?!x{YUgtN?&? z^3yAndnTU@4wW>KJu6)j-Pbytvh}#$RNBB*!~zw$!2?s(1=ag?6aN7bAO_DgOed2E zb0au31Z@(F|8#t{VZ$|Hujwh+R)ZCL2qX1TLuyHaD5~mS&GPE9xZ&RDnfKAs7}$le zO%z!ORd81Si%e2Ui#J#7Or{Vj_NKPj1ahV4T2 z&pzf*46G8vl`pOu=c!xDD|nb*_hW9aM**FjW}LkxJCqdR;4UqUjj`VAIVVj}a5vUb zcM&gyJfF2@*GvB=w)S`Rdt)664`m*Z#@E_XV*hHcFNfBkZsK*+y{;31l7Ohf^~^<=df}p`VskigE1S z{bcFN>x=2S7s>ThjzX>D7Ul61M_|^sFi-bP9`MSC&#PyaC-Bz%=bo3IbZX6t>vZQn zlp^C{@kaS>e^REV=N4wCY<5un18=_JleU=@6AoQxpwke;eNO0-tpS8a^< z2*0MW+Hua`f>{b}ootZ`r+*;M*vRxI)nqZ?bD<~$fiTUyPp!KqDB~)hiBSx)97oW>PRHe3DAa*43A3+ z-;TZhEm*fHHwY9N6x200=4n+w>kFQKUd|C66zip=8DWlnbfDjDZ99v2gY%4QCF1jt zcrE91X4sY42ozNwOid24G6~dl-8IkU`0c}o*&br@eF(X1VI+I^;$phZq{x>kqLuQG zpVWwE^9QE?xw%^kaWmk-SrCvxRqh+hZL3B5G`99p^%`ToRoC|Phr-{T_i4iX331=P zVSHOHxkopA9k&aYF|o-48I4{09K22wYwwq5=-Dx8x)EFN)S+1ofSA<+GHqc6q%Irw z&i=jCy}VQbUOo(J0Y~56&^7A7GerNf|AxcE{MG@+><9%YX23%p_9%+l4Q*)KJQ>E2{83v zGcDaHEO5UJ?|sX(Egw}z*x)3iA=OvEX+??k7acKqVX5#UDvXzKQ9k6Md6Om=x6zh}$DbvKy{S z45KW!K0i1#9Azi};MzB$=d6zFT*j154M5`7XOE57W_1m`gN=>-_wVpsN#^{=n+BnK zzR5t+5j*M=W=!z|+e;^5H1w7(V;m-H7L-&!l%8*+O%gV?Ei0&Hyg4!3h zi1)zkW3oG`J2dK9z(T~9chPVCLaZ*VogOu6uPV7ax$NWYwuo*j?pgjXa(A4~V_CoX z&jY7<38q!$?Q&|1g^se~G`NsFFI7Feg%6&z=ls4Iy;XHp|F9UC_y1*ZAeCeGN)k=P zC_bG|z3ay0@Q-Ai9=cqj>f&0F+NaBlzw>MGbNm+Ch}5GTYs*$q%RnYZw->!nmleN{ zOuxFBeRx;%*DVaPmVtwRZ%$EKMh4aH5P)T^J3u5l$HnLl*)?XGwOw=QSgq+D2r0L=NH!yyIr+(v%b^E=tV-tY^-f+*QHy%*P=Wv=ii_;ay8ZN zmf4GX&iQ7xj*EBD@bI1FbJv|^ab~wrSx2`RME5ujKf-7p6>nNa15}M=P6q6{w3Qg- zG4JahG^mGe|K0WQLe7^Wx?ywPHK@G`gdiLFSiTZ=9B#@V&Op2MU(;#OTNAS^(CpYF6={NB{XlNuR7{o35Y`XFw7?$LT0^)}reRB=FGc2?c+l146D zyxewgd&lZ|g0k0!r&tj(IXDSUm|H+DvhS$~{RqZk+*LK6(kV?PBL-bHk{rUmUS0g+ zxA8w8+IYIt9R0WZ%0Bo+X>Kp&m_>wfqJA>;o4W&TNmIiY1Z zK|=NK1YvnRy)+Iif$_JEke<6mox$la}eR7T-&F( z6Q)OYz(|sbcf<9VR(m;z@Utpz-B%n&bJlI;VK#05y-vzr=`ME(NYj5;2h{7yIVQ3v z8|lEjd2fn@T&Z-{4yEOskzKv1bwbdwueR52-Y<@Z)+_ferXpL2E%hBwAC`+Q@dV?9 zcS$hfXqjDhBk~*$%x1xDeZxc)q;UNA2;=Q757z5QxxDBrm@X^tD}7nup?T(2?=yRh z2EaGc)e3ITN2@2w9XpPeE(SwT5V^TaFo4$SLZ*$Eqj;PvBEBFz2M@ZEdT_Ipzh(%HGm zT(8aPY+Fp^Zt=Q(NC7e3gD&8GgC~;TKvNrDzk(D}p0PB6>*vTYsvos~+rN8Y{TMi- z^bvMwT=4JsVZ~?cKU;TIL2(YPt8By3b%X`*QPq?A>ejr zY%=dlItgD8c#hya-t=o(JJuSSol958yAPX)9F*R8!8qR52DJ=x+Lsk~Rv?};^hDw3 z8ntvK5CuLlcN99)B+gO-?!MkKpf&p89+81Gv!rX;lUm?ADQNxL;`aUFJO4bN?0H-L zJ$U#IZht>VVFM<)SDos=(8Ex}cs@Uxqc|x|e+L^~MUCYNu)JaI>d&^$YV*Fa|EJL@ zD#-mCCqMF;dCs%6?OxtN(Teq6{pJ#uHJNNG?oHNH-OxLA`@VTkx0_aC?0H!()SaAW z_bjMohor-nXX{|(J(e()=~j}y z18g^VpG$_syr>tm*DR-Vxw7xh^``q*~EeM$TYE2Oc8`|D$DhwHERT- z{xc?vzhAhQl(mJ`*wR#!nVcThfjER)4h@(3XY5t)w~0BHwEay z8@xbW{h?<1Mawf)~4rj&cOq&C$pw!Pq2hPeCoB%@*> zHH25n{*RX3o>~*$n)XHscDHS zvj_EbIKh{#{zszcL_O}TrD8X8}sN^nys96}$0eQ>lxx2@HwN&@Cdt(C+6u z!Ut=1hvZtJkDbSH_1uwhs&uXvB=s7h4`}(gW;HmE)7YD7vPo{(fv8U1UGqWjyTn`) zp;xb%HI{8fQ%Im~+OhC*B7E@H9o-ol z>P>r&7kA}&9H&QsZM~mE$}DhI+@Ir`>zS-bc}wZ8^frd#yqN5y>yCZ!D%XoSo08Iv zc=#=S>knXJ^AF&(Bh@c*OX#A()bDvn`%uDbLg3t^SKBPnBhQ9-N&9eTgArW#0Zw_c z%w+`6Gq11#hJrK)ym6P;B`UUrnz~}(7GG#pVWsb*XqUh(iT8w_cn3oMiG;~bRU4D# zv;GNhIb#MdBcV?6VmVE6zpBTzGqvNI)N=F8R<5ju`$Mbf4$Uc@O+6LnG?!k{X~iuo zpm40Yr-1!k#aj~zgo z(;_bB%m0>6@g!$xA22H0TMlN^IeRs4o+?JOwQ@GSUGEG8ezEVZIAhRt9<&fk6;;hn zKd{}L_+S9k{mAG#e_RcH52=6MdODYi*(0Qm&E(PZ14)xwnYJcTut!fE3%_smSr7j+ zB{?x!=kpv$l-sk8!4sU+u8SV7R_;L{bK8gvsgiC;^ZQFZ_;0nkoO3$IEQ@bn!V@|t z{LbFEpmT<)YvQW@2|N6#w9^ffpYjSBGcLyiCvTJLmiFof>*~b?cSj4+wy29(!IU>K z*M-|MU4lZ`n$+21E3m2d#&3g*@MxNw&|A$P@V41T)m6&bnH#rJVpky$XF*@5J` zCBPox99{>;5C3s5A9dql{I7%|)%;k_eyNT=XM@J5?}~^sL6=?fUWMVSHdP&&q2+Y6k}e zylXzZ--_B)Avm5V33-y-*aG?o#enY>{tVh$hs8wDEjY+W_JJ`til=YYL05A1qR4VPWwvc6pRfLD`@o z92g|>)~-@!l_9>l;qBR`AZn3v3au78N33x9S7E?Hs4R8Xjwc&xT%U1)ru!P})I3CF zab8-1JAhC^O2J>eL(1iAnaS@m%R&Ax%D}@5Ce1$Q2d}lUJMUylfxXy#G6iPkWunOE zA7xRpVw(jtj2$?}JYAhlF7V3e1BWlk)y2?z_-hh^4E+3b^{aRE3X7_!rXqr<`r^2p zN%w5`C~X>C*@<9X(z7e!YL~A~|LMU{y0>>v6neui)Cy-y)dtdWhFIkT0@kA3h>pM0 zz-E}w66L)kTCsP19glOyOX`zmR>0t^j~>MSsIuh{_`^i4%?qHIMr|Ds-WrF5l7K%%vew{79VKMtbZ#;tdUf-T@rHY(fz;>uNWJFQ+0y+nZY` zz@7{2xiToH_%0UK*FN)Q=cm>d>6!U7f5f2xLj7PIgh6cvm~UmbpFLBANfr(Zq@v_4 zgt30W1M)jINEcLv);W-2Ua&m@rT@?c%wik1F7G(kI>b&wMtSdT##YCv_ltJiiV>g;dI@6@ z*yc~zSqWf|Z16?x^r}IOI84~hW$y$y5DXAesIxJ+`NtXl=*%{;Iik;re#)AdCCg2% zEMJT4PNfnnb=KdT{OtB}6>kSJOd2C67yrS(l!&Dwpf-PU=G#La&uCJyd{|6}P`V6G z1IW=u+GB6_ki@`yb1^eArj|Lz*0`zC#Sz`dI%&mVlDkLI_1I!(Q2_ADU?mu=LJ&y)^%2i(E&P!WXs1?+Dov&NPRXbz* zWU7|cKbS17K#ojD+U!k!dbQO}rF3Vdl2FEX&r(;cvZ}n(+gmsKZL^X}`RC1M+buUN zgcg@GXgq9B-5wQEoLbA)PP~23p6jYz$#j>76qNl^ADrN`JrKp$Q}f`N$lx})$z__H zXgHkJ)$sIiMb&h+YSa973MhRnyGqdfsMj2u^HSFxtrLiJY$6mOqA{63{|z6>c~TdD zznt+c#(R=B`eWS(gCZOE+XTC48`#&r2&4KitX@z>h=`;1N@f|8XRG0-i!`LuDG>eO z>ju8ow*(DFWXnt~@U|E#aj}FT3_3PaC+&9!_qN`!O2XTe@uBa&U9Z3DvO47&%AHrY z-7@(`wP%){Oj2pbuO2qcu7&c-1>(++01FFYed{QRc1sJTeIi1AoB8GTc-v;J$9l55 z+B&00ZCx49MX%OBxCM*L4Ti*I-qe&4G!FAqIq&_R#ALei%lRPUv7iqttEv}%;uv(! zMFr2yokDpI&W8HGwc&zIkr9TrNBUerX?AK$7vSHdOMudZ#X%tzJjz&oo6)UY4uoBly8%wYb13!&o#S!MDdB zSVM3UeFb+)auRKixyd(2uucA)USi@Cb>b&G_J})Qn315_`Crab(&R4X-K!*hyZZiT zh)v~Whs=fLtOu*J@#|pu{7Q}{%G-w5`QzFQzP7v6r_%Wi#Yn4~XWjR7mzWZ{TjKG! zME^#yH+p}@?85RWil?2JJM&CJLc3C&`^XH^48qGIwM@ProgvNEbQ=HYHpG~%D#jXq zymD4p|0}DxhUb_rVM6xLo^CAPx*l4nC_f4&>fbJyusyB6ZaG1d#le1McqMrrEFneG z7egLCz7fko_K&N9Sro-u1y-KubGeEQ0uMU+53&VZ~Wq zh*<1hEcwO?T{RDLMKFZ;`(tI#;Q8wHRFwg;B>-La=0l;Hj6R>w%r=n%iulvW+6#vl$-n=3&!Z+1nF|K<};iemJg_mO{_cDj@n}`xF+!VYe!XYdb ze=>0dJTy);i_?n&%#eX-YHBStr1I$%du4Xrff#k{gC4fpI)|d0FJ;KD{9r29`mVUV$yke!AVGA%$$^!4-k)&mGk%5F}j!! zr%^Pl>x@UcblJmLBw+@3PWk0nY*pX2yt4_a_!EZ&*DxZ<#pp2pq6B}vc%f-Kg*69X z34eXv@FhX4P1OwuMS^P@pL;$&hTUw+#bht0hxBZ8nCKL6T4{n69ZDs^)t5HAKT1W& zZpL39FDB%Cpj98Wiw-NFp(gL z!sV$i7oQT5;9A6QnTeNWKaF)anU9tl;jb@@`6KsfLd5@x^D$CUB&#mQmqrp?10Jps z6q$yd9fR>C#td4gqp_^h8mFUXgqzg7_36W=)S6A!Gj+p|U%J19jfHpWhP$YFFU$xw zOL;yqHFtM3BidZf*+h1@vXr-eRs7{7)~4BU>qO4qIXX&C{cX&*met? z<3r$tD6HGqojmak7&+z_C)qHDf3ND}0J#zFvyN0{pQ$qMa zDELWSS-Yz=r0!yvZ=uyqa3>Wg8HH4wd}>W=v>qSUd7$BLp~`I?*4`88@E+tKO>2 zD>1znUvb$}J_oG5=mzf&1GDiY5-PkpDwSMvm{ckgj~h*^!+=IjK2Y}<^vCo~Ympop z$5q9)2foFt^tS#dTax-GFO(Wl(phWtHT8L4<#n{2ndu&a=@M^9@MpElvNXkD=7o_n z?%oQ3m9JktKdyQqf1bg<`;=txPYn?TuOtUoX)a{-NA+KP3S(4u2L`IbeY&W}vYl z6oIzPK>jCZOSfaS;R9X}$_6<1PhEvR+pFx3pBCH+xdUz>`_!x5eR5;gG^(En^3)p+ zbYV!SN*t?Di9`@qO!DEu?8zkW)cha@CVK{b3jX}$ZRCMCeN|Jx7JZd#z&x}Z0uQFK zZ}Qwn4koKw7`9(<-Q3^N4QUA8#_(h3smNMr^ZJY%(V88CIX};OUmIN3pWaWX>}^B( zgjMKiGzYhU2IMSV&^e4bH%~|3Dym#>7D@XuN?QNdv>w_G^Q|#bA@eP(QRVP(T4TV( z?;7YU5e_f>kCwLW$Fgu8W`as&*qW#*3FHc0baHFQJr4AvWuHoqB9=IqH(4kknDMrR7qxK$_ud*j?>~(LOmF>FN zu)%n@zPqtX&AqZe6`if4l>ra0t8v3}6G^J+IEYbiwhjz{1dj$nB${JGT{_3iYV!ilJ4VB*& z#1YVdic8p=Yx3Iss0>8egB~`=XPdMA*NK|a(s!%VsQX{@`m7t~nqAnTo5d#xgCByN zyV$HR4O;Tyq9wJ+c!{>Uy zGi;4*i2sAcWa*~={nao1j+td9PAgHfsXxQkmleH!DNFEZB3^%szg%#c)NBs@qy0xD zbRLS{u`}>z*kq~7VGLiNjZehr$O^*O3>FrX0NFM-b6!JN!OQ$c=OX(L$V_myp$_*@ zcgPrMt^t1U1<&}9>cPvL&>K)`0t}?}$z}iwixmF|Kh`h4E@i0j(mz%>+BsNWQyPaJ zsW_;y-r-i8w*H_~c*xLlwrK+8k8@btq1t{GKfymWZN<3m2v~;MLiC^q#X$oMj*m23 zgKy&c#<=0spqStUzB<4gBp9Z(UvCedKp!df(&J~`>F%XQLxP+scv^y-xp^RgU<@Al zKrjQ(OP?odR&c--v>((lEBqIzKTrtJOE9r8StvZH|Gqkq8hmp=289IR!RkRj>h_jG z0iZZ^j^Q0J3>ZQ9y_NwZP}8tFh^_sUtOBTy(jfCzJEPV$SAOSRrU;EWO3Zb*Y(ZSv?AfDb){9+AY?w>Ji(drS-4QesoX*!r)m}!F zFl9<#PL9Z$pM{jfIkJO zx@uLU8)2?1AWq~+QIagUsZ_(<>)H;xbw@LRz>(dIbJ>*N4i!m}$d!9IEnk9s2YsXdC(U%kef;wk~KJ@l|c9r`!nL zg;eY+F6aXv1bw{?^?~Yu=D5B*u?6?u{KJ!4*+r*h#XY?r0`+B*{vY+rpH0=v`;QA@uC3&b2mMh*na+pPWjA1I#wL^lI*p^4wEf2gbSD%a z-Y>5oprH~Kb><@OUtX|}+%Q|?bNXuMfiBFT!t2-1w7~jAy6TnjK%EHpa_51mitHQi z;&Apw7@^yB=AuSIMq6u&(CMvuYvGB}-f0fK>C6M?_Y-*M2D4aAooC!gU2xf`mD&jT z9DB_qGk@5+jcv$7ecoLKjgubhfWB=rL4AnyMj4jk%@NID*y@ps&>q zeJY*MuO*;!jiwiq5dz5Wdd)%hP~B5=y2<+?M*&Q|guS2q2xx%HggSz%`4a6tbi{LQ z)?1WnZt;H?>l8KZg5N^+fCZ8Eeo_#I6iNW`G4ysEp%!XW=%(k32P23jSEB~jAD2fq zz!^#%b{JaQXV?6H9JvsRc#;EoLqVQR+|FS?Fb4dS+TN6SIp5DtswJz*91S`J*5G_N z4T%2@p}+KcL$wszGG7Y@yyQ7UJqiPs1dkP% zGzcM(ENEd=RNpfk$KcZptgsFm?6Vw8M05|Hhm~V?#!b3_{eXHz=qtq#$NaYO*%fc< z&4k+fVYvw7=YH&^g|Ug|L%p{-t9N{E_!@Yu2SR|3@zI#To67L{O{IUn5Xg?4wHV-N z;Rd_?bp?5v$>I{)oSEmPm-jCK8{<7#-f%|&zYy^cvn)z#@)T;6AF_e_qu2A#H7s#C zf?TZyqR^vgciaop_lkPh=xr4j#Ag);!7ddO>~IoyXz{)*1xMS!#*CrIn<3fWy#U6U z6Iu-Z^}s8W?5IeHh!@7cW{f69nmHd}l1f0PlEB=_C*LuK(2!zT5D*@K*2y2_1=Wq^!F;VdvkE)C6@J%& zo&^h1z^;oaNTu0d5Ym+he=2LYS&A8?F|iqxeT5b28q{cRMLw#Mj1kT5PP75+#I|DuVA`cG)}{$ zP29Pp|8jm7ryddeEiJz*jO-&;0Epd+bgv~!cS@0Z0WC?=99{vCl*j{J5HZ{lhC?Ar z7t~U+lut$gkP*xBf7W|o^U$VxyQJMiV%SusG7o@__OHEzx(=Qxa_Wn5+OH&jg82-g z-RZV)AsvsYg?whH>{%NDE;_4SsM3PsfgZR#WOC)2Ym2DS*j{&GbNd6>#yT6a>)>d6roxKcKg_D=Ga;szbkW5~T`E7k{x%0}qkcB* z^?C(C=kVRNNCdSB$+;DV4TLx4xSw1!4Ti9=u24-gd%OO7q3uM8Zb+Ep1p|koV{Iaq+G` zzN!!-4n-1jF9W>YLb`c*6|ChB;#6Sni{A>h!N*hK7mGmDlbk zcCh*({bBB;&obPyPwI})J`+UdzUt0rSsAnm>RNk=b^lj8)v^wWwXg3P=%KlO>21w> zb({MG{Z2-vMU#6=GpRu^AWfG?M^_~LSZtCMx}zRHq#{qr5i4y;ZY^8jlrfnhp~xv) z{NvHO8%rSSpiLvE_X-agMLlcq+Wr8By1l30!L9h(U&HAzAd8+n2*`xpTJcEV++;{P zQgSM`s`3DV-B#^R+4-)q5~Mbw5)pzb?D1{GVsAtp>Aeyu&>kCcM4$0v@%gX}WL}us zUXK>q_3w~=yWc^7^$GSi*TNi32!9zJe>&(belf}xIpS8g zS=Ll`ClbJMXB?VOH}cVg{nn}Q&eV+D<{VGkV`#7eoY|Lo9_^hMNNgbZ{-nJFJxtkh ziySO4jGUIB?|R5iYB&yh#T|9lFWFy)!yNvT&c-t$7M~OqBbs<-@>hWSAdI;&_g1aa#Kic=LUn6k&+ z^I4F(AWa#+s)SNio2-BF4at`(O?@)O>(H#0Ja-y5l$8Dzz)?SO#2h~MkLmC)g zG|^9%VAy|Prs$|ld8@|2V$R-@eXqyZVh-FGa)XDzG$S9ah;qg96AUo!Ou01jq1haG zRA^7VF?0d!4IB#(pB)+^k|eAMs? zyQ#Zl+S@z!9Uht0Cm@seH}(y~Kc&QjAWLFAi=pEB723a;a!$ra76431-HBoDh-Ry_IiZ%p&N@cs7( zjrZt1pvSum2>AP5X1B?LO~MArKXw!Z0-uWh}Z$u(U5(j8MBCx&1ZFW@Wkefzrz zb359+zRvwH^XC0}C!g{v9@ymbtdElo8o7Dc?->A9sW&d!~AIM&@K=%W%u2WsEu7 zo|-A`bd398CfomE?3|i3VWMT-?rGb$ZF}0bZB5&@ZQHhO>uuY%b-r`8W8dwF`UO=h zDk4{8KB>KtX(}<+oRC$Rty@y@a0+1$ynI!TC#ddNCFb%j83L2s?=f##!s;CPK!6%{!8xl zNCe4w)5Y4$WM^|$u@qd%Yw_itxV5r9t|ra`0B@N9up*e#78g6IVm3C4l~(qST9zCO zP5e03<_>QnU_@dj>Lm3Ty{3kA6s%30WGis~LPJG|)5+~XO@x4~5-`J#jA zl!R%@+hh71jQdNz7#*u3-i;>7%Qc|W%EPo86;YWLp(a94Ts3HDjQp9roqdj;<0o6` z>bgNe6_gZf@{f6jldFNsg}roic;dT~M4f+xTGf>Qw%k!%wkr3Bra=_NvwS;i|+`n;9=cHU>ui2y|vWF+|myQ_^|3@j3%{ae9Vw0GSbk}R5#Nuqz;K)2l2Dblw@wJ ze4i#(n}OEA#um;@WOj5yCPy35%9?Vck{@cX1vcELDOBFE&5;8%!po;4+9bnXG%TqQ zLUmQX6_ll6=q~rh=QIiIwbLvL+@+_etv57zr^nH3Gu}3aBW#_NvNp6)@Sse64Mz(g z!=D;oM4KXoVCW=WSX~~jhoRsdeUA?AbJKbJl?7_drJaA_eM5b$i%yJh&x&&d5*fzzKM^B)G~JR4G3&^>(f%;Hy!SbWuPyVrEYJ8{+%s$#IA}K zwid31M$V21j;5cO4Mm!7aF}*GlyhLPZgB!dvz40!Y73x&Le9DR6EnMH3(E^k!cmP( z2-FHOTfv1d6;EYvpq~iq)dw3qi{=TJOUOM2DLW~6libyOQymv^#7ilB3&splPoSSh zl}_WA)F1DipAQ!KizBY>1^s?yZ{NzMnhI<*Qpeoe#g zf8-2+dRiqJlLV^_XQ(wK%Fvqr^r2B6_Nwhe zZ_Sl`4$CoCyz$WK684S+H~H*nwiTYiEe`f8X7PMp9(f{1w|RJK8}my$J_f(^oKWSCv!xd~2QNF$bO z_-XNCWe1vga|={Y-$wI}qm9;FCck+k|H03f$GJ1L4{1#_ox-}L!p(&6r8PbA2t~<# zl^T&8=JZzZm9dGf1>hy(zyH8iE6Kt#p<p@*$S;*l)Y70YJ8tT(%H56 zkePVef0}qlpT~*ygdE^pt4%?cydssi*mU)%)M6=nnR+}CtK*ti_)m1|&=P<4i&cH$ zM8(s17arvtToPY5YbehRzKm}O#_3nDgj0Th#7%I2u(d_w?MQUXQj85#s>5idz4vBn-TluzN69c>#7&i)b4mEvTryFqK!C52?A-5 zNWxJ;!rej&80FD^|4^^hGU3Q)gYT@TTQ8W^1E`>}9_Bx4A6{0AY(6~m@|h$)2(M;? z5QF|5)2IzDa(QmYc5xL8Y+>Koq32|9Zd}qPh3^ZbjVWV^Na990r^^g@CJ-lWd7(iq zbLS_lVCg2TsW@@3Ld7d@K~G$$N+<%2?#i3PaEa8Is-laJMeW@Hmq6gODS!!qvR5p$ z#VeXxk{~k|VQB+_2kGE~j_d}3?3ER8EgLqAlS4ebC&T>dFF^;q+y5GLH`B%pv8oO<+7rtGi%7Lc{qIkgcCnkSAVZCr)(u z?xzQACJyTDx5SX!aW$XRMv5Kh>2Y;A9%n7(D1}NHil};G5m;^UC|q5$+h0sNW-l3% z(E9fugd`wbjJ$;DHe*TGM|tu^9wdi}Qc2m}{v9b<^I)5fEJ-KmsGgPlp^TFhv0-}R)-cVa&n)Lb5g^&A3+5BkeR3`7&QxM zbbe@@K(EixG|tM3uCtbQKw~p!luspd2ez7c(kHKvtd4n{Abzb*B^lQpu2G(D6#cj| zY2D&3Izs_rSaY17H8@+xa1IxQFUr#fEL7L2zqFZLt@f%sOXEDEzhUl*?H=m@N)goTbS#&fA9Aq&%6wXX5~kjQ+nb&9^-Mv;j^S zj8PHHiqc`!s4-K-mitzlP365bu}!2}ur7xSh08C6^cOZ!-`}fEOhYu`fQcNjm=8}a zJWkf!i9vO;>m|{s5$*Bg$SS-jqSQt>uGRDU6tT(?m@Er+Y5hRc&Gf2RP9M@LfOZXX z&Gkc!F2-u;1yI2)NV!O`7_CjyLUPa`2H1*Oi*~qf!NphhMCWDdMCWhgZX=&MZSGOOWG28o~0vk z;>?oyAZ=``Wy8~gp&?FQr2}wNa9#dYh~~d)uY<(iZlxd|@%Mro*^0wTVGlo@n~$PPSe~5}bty zOBF68aPmb|YzjXwb8kqpGu(^(hGn@L)H2eR1!t?$=jcbnfD$}s*qZ!f*1XYq6=o1y z+WjK>1cuoMv%<Iou=2yMDv;*`t?V{Rm#)iAmdCnXcXqVX(%wt=#YH(L7eH-b|=fXUO zd&wfdg5kR8mC8NZRCM#opz=i7g&lNGqdUgV)@>a&g97gIL>bXKgI{F@L*LfA93{ z(5rj73dQiMvCMgmKcz)dEj>VTYYptGUa0B(bdQU%HPn5zwdBCr7|HAdmKo^}%Z14D zX0X|+69fsE3!`6tG-eff{x<22rtiXET5Ed7b{8(peX8Lhy!2L{k84t<&(IyzgV$A& z8qJi~GMT8#W%g-LgiDOh8unHW8;_Td*VHg!X1Lpniq<9F!_vAjQh4#xC0C=FGCr_6 zp*Vy1wFg495R%}P>yF9O)tvE6%F0MjQzqgeGzb=bT(}mJE7`P=addffKMpX&ioY&V z6nXG;&Jg0!bz*Kh@0*tW_f$o1t0Wz#26r=_+)~n5!r9nZc~dnbj&RLM*iGECvVCCP zx@9K$MhbM+@uBSFE655%yKHyWs?g*DJpHT=q^3(Gn#vvte6^h3sUuVadN`(_WkIo6 zlAzKb+S}2Em*cITrzlItb9KMRgO@+`d-^A%ezJt>a9B6kLw8=7qEcXRpt@HK5v}P9 z2NpqXq@5e#=r9}`$7pLlbdLa>1qk^V%itjeO5!w*#q)iu%jwt8=)`d;k_S}|Eb^!T zCwX$~T+`611tD|6=FYB|fup5eJNxEOqa_^no)!KQZ1jZ~TIjn6Dh;If9&Dx_-(Aij zMrcj!W*Km+a?%YSq9{IolEt2Fgky`>lHB}w585qj%B34@>Vw)Mz7`o#Xx$S7Y?&ZI z1a^q5fqdz6L;t|~O|yjV6RhjVr|5%%&>~&_SV1H-EW13UntQ~1AYRg#uPY^1dIuB% zdZj}Hsjc=u-O|f~g9f@Ffa89K*97fOxUQhT&Xr#t1V3Z@Fe0baXFA|tnY`(O;!JmS zz<%QBeZXIMd$(Y{DF3ZHyZm=SzR>r&0&XFE!yFgDF5%PW6zI1~#EWEh!FPK4Z^3`^ zQyCy{h3;N}c0s)f?tJ?5z;9)%Tc_n`6D^+{Yjekxfe+|c+(imI|> z&_yPODCH6VhfYIqr<*RL;o+QREvbfq#7W4vlx(5GvXk$xyVS8#_9>9g`=Oto8SG4G zo8Oxt0w3Wl{Z}Vi8gBM6=-Y~S{nHSwy291gq3yGM>P-bnD{kVHVZs(J(;;k6HC<=_}r}DxJb2nFU)H zan>%GuCMry;|YP#{sVO0E`e?_h!$QffJ!pwrd!TUuZ*XzX%le2Z1)7-UX!^z=|3tq z^f&K-;YZ)Cu4Qrf!C-k1?^xJYN3r{_J6fsLJyp>knEEvw;vpqIjAXm&NKu)Uh;%CoBWebBvbzkC1Qf71gZ*C6Zkk}KQ9G9jIdoh? zh}Tr&hJ|C^EV(8A>{6No*6VT0jf5o|ak)dZWc93n?dUaJuAgzJY1v4(69q4DkKn48 z1XZrx><^w5XnK1cq~|M5m*Cd6o&ya7)bf=nhkPkHLin3%wJF)`b9dgS&+35rd|Fj| z?1J@P5CKm=O1FXuEkk#Q2IynH87~A~aFT6;e;7XKfw{Ta4ZZ2AQVd4l?ei2Rv-Duk zjT0|l@P%IgqPrD7Wf)L;uy8BQ*$j_O4_1!A3l zgXmuF5+Y-KCV3#CQ{7VAAU#C)p<{_J(-}XRrX91?RsRKov)R2Jwbix^q856I0>k>z^Avm1_+lrI-zBK3fKH~fR zxJy?R;gDOqNbMU9S3li;Ly34e>C*l&%lXtT%G9g2GxYJV zcJ(M4`C1>$>-egG@@R_n*JFL`>PfgcJ-X}A@Am?(W5dm(*EH0p*1Co01_UUL(}>>1 z^CuMMf&2DkVSGN_$7URVX%6R=q}J0P&2YDebZbsIwH60#PEV#n8)wURU>JFK+zdCv z%C~r1*2f>Gp0R#r-v_3`J(S-=UJLaQ9(w5Y!?eD5G0!7lKDj${29|PAPRIFlK6!u0 zkWGtRsdYj6i8Ia-K2tzoAz)vm!9;uBH9>SN-o33fM|-moE=lMzGn!30r;vUybzwqH zN=hHo27?O65Vz-aA}2V7^!}wfN#Y_Hm4=36OM#dw(0Ng?RFK0j1K84=CnEU!HZWnZ zpFnGYHbaQhZD-VGdDD`pp@po#H*<)WbBq{ebX?>Qj1jTTxf7>`RdcCN2iLHq;B<-A zhNV#$ujJe<8x1Jo_p%?v(bFxeRW}6&S2JdtHGRnTUMq0>y6D0~vz}P2i8}J5C?H&nk+x?l{9@D9S-ZjZ2}y6drf(MMnQ~%@$*&*~}qU z?F+iL@*?Ua^Ey2FIbsgrwTfEUT*zwd(^bq-EnK8L#bhmy`xj54&D|b{x>-tcLbIem zSv;wsGcJxe&nDf$+rq*3?pUFX`LqvB*_qtuaUNwi)bOq30^N?f@2wv4sGHFuq#ix^ zlb*XElir&S9mF&0l!WCgbOK$D#K)#>w5~i+mifuYG=V0952iAr8=ofpRIBgnM)eCZ zrPQ=V%g2Uiub=n~=J)>LY~?h1cj*#F3=#4)G;|E*5iX_-TWO)gZ2!*u4R0Rgd%2(9 zM8O(soV9QCxy}5Ig4JEGVLu;!sGK4C`H^WlbIGI4Gh36<0Q^+#?qu#|Rf8BaQz6R| zAq?>@C)Z4VkOB5XUvGUscq}T8#ad8dHd~)r+$`wJ7#x-hB%!G?*~P;bKEroM`SLcL~BS_Ab? z!I|7MJfsEtk*&IbWYG-{EOk7FrusxwdzIF43fPXQdiM6IZO5qZ?H>E`lcHsLgX_UP zifNNI?y3Sy801=p9PU!79*2FoB7=W!{952DVO$0${SLFGt!^-Aec>2PH%-F3wDZ`oIJRZ+bV@HhO$M3jo-T_ywAMccnBQtQUYwow+m zs)LUfoMN$ADC?&v9?n-*^FA5r5Qt+o^KUQ^%PW;z<@}mw7NjGd!!LU9l7Qh#_Fs7~ z^Z5f-#F6_pSF|`iu(*+xpnTbsm8e2M=*Wtz+qwi2gLRf`8@(*bB3&c?@=z`~f-i`? z*CTECrQ+R*Y6Rh*z=IWV#of<7$xJhv$kmq=QWlR44i<(a=fN-Ldo(Yh_OjxpP&5m{ zHB}H*ZM1n2u-ia|Q6$?CV?_9rgTGWpM!?YEcP$8H5_Yt0wE}CU6&H!D*I^GTSoaUq ziidEX9w~bK*=-}8HOX>E^Z$}l@iskvPqrVgx8qX8+svu+di%Vo*{fS`TdM0BRLaTt zgs0}q%C_{n@FCXAJGM1^jklTc1Zkc-5#1PT_}WVI*9lLp&ZpO%Od{`02T%j5JPI}Z zwmrYzzmmSYUKZLG^2hZ_rhyoh3MuilsXhy~&sD%tUp#9GT9XGuzqn`rHr}LeMdrhnj^x2jsvpd!X6r~sOV4lQI5GNQ*xR4l1aGw`Ak2jrr%h_<|)0s&4*anvn zd>*A6J!F-HzWLu6&t@?b90nAhQ$vc7^`=j<1`&B6Jc-aOAV|fZK35JPgAx4`lp6o% zvkim@|1W6%AAyIXGHi+jhSRIX5Aa3%1U}mn+7ufgyaXsc7__%|j-CAse~e+?Q_2tP zOOgO+)T)rmU+n&@uz`XFZRDo`n7I8;oAGGXMix3F6LDjHAh`zHAX0B~)KZRZN*XEZ z$OqF2lIj^5#P_V&>a&d(X8Gvw+0_lXrfSe@)u06S%6MsBJHM`c(&K)KyG?zc8aIL4Vkn0+3%CP?Ll;Dy8TN^oJ9+EJp%U z0>ajP;`LE+T*(*2|3)|WSD%t1!2toSY5(8RxbC(#*E+ZMo9rk*y?ue>Y0myM9G9JT zVyQ&3No*Q^CM`{dm=MXS7FkuKR-`GzI6J@JJ%@^oWSb3FYqd=!1d9>{S0j4f+#31^Ejcq-hFQOg?id|%m@NdI66l?8lhf?2-{=i^2oK~D{b2a z2I`CBxzQzfOe^N-J5S~Kf6?B>hlo>dv`a_yJC+0Qlkd0SQ&Rn$U^p48_@Ta_j%$}R z?!zl~@`#&DRV^FSw9Trc4;^H$BFC5?(4JDvaDOTVk!MuMo2z!fu8zaS3g;fzTBR~L zz4I(RMr!_4e%s2syw%GB(Z`)-M2m_4(Cv(iZeZ6t#hd2H1UE8-IK;mcK$zu2qZ{Mh z#U3J9ddq8syN4Ex(?&VcEdfulfHiDXS)r71U>(2!VPEnC<2qSLk2G|Sn#Wp@&nwXi zL}1wb?kU^%jlAUXNpAf@&gHga42BBT$X|-yVvZm!XlMLsLUzxlHh^00zoK-iTaDbs zv7~L>1-3|^7$Q160sr*TC!bGx$;-ebGAbH*e%y4z$*E%1+Meb-w_Z!8g2!yg}H{n`vZbggBo0Ec1Sm`KS4H z@e;kRe_M7{ld|a$dE9MnUC%Yvz)vc>YsF8jt)raC4&@f~oD}f+fP*fU?=S6M0~Kpv ztJoCmk3VDmJp_VFXQEtr&~?g$h(&6mFE$BPB(;m>KI;i1{8&6bA@eGa0WpHeuD4A>NByV|VFxN>C zzB^e^;d_qD!YX;7$&X%LlB05Zfd~5muc@_HA^H_`IW2Fm1Lmc4vIsUPK=P<4y-r~SAW?OUZ9DRUA8Fo@9`IX zX}ZFq(ySRv-F(g63i|-uS$vR~c!=H_N*eU!8Jw0_4hUusp-gV75Zf`hf9{bvLE0&M zBBUyk3Zi0=E#qJgZ_jH=0IIH6z?YY@yU#5jyW#a_OdGhWpI=}3f4F@j~`_vl55flk#GajdynizqGD`QZQGdwti-^hWHY7FD_ ziZzBA+zKd{1f9A-MA0HdRE!v2qeyW8eBfx@*+FJ9tqs=jAV0edm|XgV+fIr0AeDoP z0~MG2iuR_x&~2V?rv3RnT$R@~44cuPV*pBC1Zm99%$13?UiXGh;NC5TElF&MyL^+$ z3GeQ8&~QI$HZpq}f7-313gd~HUNhzuNP-y2mT*rQ?a8OlUX(?WC)L_KjK$Q%Q07NC z&+<@dQQ6pSr~N=I`41wvg(19qu$Okcy5* z^ccr%^uJX1+J3YCA7cX-c=#4_`MbB7y0Jc&bTJnwcvH&7Kfa7E;6BgS$;$Ad{#(<% zY0tBYt5~6y(BiOz3(72n0)GhG+8=}lB{b-b4>3Wu>4f>j{$T0;jrK2**%IWjgSSQl z7Mzjk_l)@uA+s<S-NcGM7lDhbU)ksHN> z^a*)eP91~NCASZ;;CNFSi*g>Y3g|aB_?I{`E6{;lfm*LX)dTzF4-sg@o<^`UPtLSv z6SR}C**i)8S{d}nk28=j7FjacXr0SVK+REj(cP>=<=iY)HqN$BGnDFiW>!jcR-U|R z1bnU;;>Q3YSD!wtZ^1D!p?a*~)~JgJiy2iI5J&b&0=<*+EG(HwXmI-Nuv^ddrhEpg zB#Mcer-MND_LN9n^03Txy1y^|l;H(*dj#=~tC@9&*tIFTzk!X#592iv>UIRgyM_f; zTK2fi|81pfQ;Ht2xJDZE>|IVo8ZAA3Q+xdI>a{kS`<-C_7$U z`(t2XqJ}qQmyn>qh`CanrXot0u4kAn4*oo(W4(3lpl`qi%mbP+4Cj{gN)nR2X~)Am zzBn*uz$88_OWwkGN(IHT!jf91Hd^a}KzVS`SJ}L4M9}B)uuybVYR<$kdRL)RFIw7x z1}C~H_K_*x7QFed;%V+`K9l5)`U#wH2GwuI2n2@YY;#5l6Jq3hj9P|$O1Wc_?B$a+ zL)#{A$488zZ?Nst&nEJ4G|3x(Oc$w;lU$f?;6Lew#??M9SsommnSfkHcG@OUh|RF0 z{^FIj(JSaTl84iadq- zE{ZB#_qivHAWT=s1U;1vPieY|>?OyH@zk<)@6g z4L2(7k&oT~9s_+s-G**F#DkOa2DKCjYNYqq3WED-Q>vLy?vibRI_{uqWdoEV6k{hr z4_#(C<7I``Hl>HPFxD)|@uOIG%bpJ+^7kRM=@`&8;WI488#%T<^%*AWdfGLpcEkJH zCsbwKA-E+~{gP4K`!YS$batw`u^%pJZ!}jWR2)C%c;Lnv5Hi((Ho4nMGUqDnTs#C1 znmjT|CZ~cz%|uH!#-!J(8bkdvo3`!#It&aY2&2Z?27LU@P{8HZoJ|D0!UIYRp&g_M z2*S2JbZ#h3I)EcB)Lchprmh3oHU_I-bJ&6IuhA7W46U0h2{4qG-~Y(MaBTlsBf4IR zZbFFeE{on$boD{U<7{}#p6Hq=62U4QEfA&=VeM_=?6BkB!2tQWY~BK$a*a3T8BDLy ziZksv$xs6OH-#r(nc66F)(_?N{L?(N({tOXFDHy>Dp>6h7UAWz7 z{Hk$k<4$d-E^y6Wazi9dsryRLRb!f)F3`De1VVEnu3R|ekZ~-QQBRjf-}ofu7uC)t zG@q@FO&ij1#$rOxhD49Ey- zlUguS4nitGZ0rh$j#I_3^d!ptvNGIgI%ecc=E25&(FyEGBh8EopwnST0@Q#lzR>NVm6&!`TTjDaLs-3!V;^T z{fP!{EyHmUx|>0G4ty!I6YlQta>_mIb3JcO%MkF*1zyVa&6r1U^5}ZE}XLzqdE#UrwWWHQ3%couJ8qo$K%kmpLLP}VL* zd#oW>ZFO`z)6$d}PS@(NjyBlU3k$E-Q5|VjP-DtRlZ~O_+>S@rD41rAV9JIlk6eWm z?i{nUY}MTEoBNm&9p8{zRPgg&Ut168Pepr8~-UYm;vL ztnSx>a+fo1Dxd@W-4}T#8Bq$-lqQWFku97&ZmapBrh)i;f9lv%fj3~tcg@w!?U&$x zRF&y}%|c}1rol64KtNIG|G#Sp2*}dd-j4pCoq3P?vo>l!pj61{ycQfifDAm@@f_kj z@#Zh~d5VToCYohLi4ZAxu^JSVCO0Y~DQPOi`FH#4C&3Nx9M9v_G}o!m9M|JC>BV_@ z0ul?7v7uptWjPHFZ}reGFw*SMG!@-59!%7%por!GWxGM&Jju2r;Xex_3O5f2wN_J0 z3(PV2_PY@0e*poRwo`O!_6wHd>PQ2FP4B%E1Is%}j3Tepbr5l3@;|0UO{m~Tj3!&mX0hGmtPz2s;j9sWjB4?n{l^Zi;nVH+NLI7Z7$@{$E`3X zZJ^FR@@=D^q8F-DL>g#_JY5vrt-r>1YJxjgPOOnKP}Y_1>RA|B#`m&K=TPhGOu1-1 zxx%VHdki*(SEMhOj0hbB`miv}J!`9QP2GcV?@Llh(tuA-I2VohP*P$yo!Q&=iXE3{)uaxX4km99YUfgu3^GXGw^CVcTX=2~}R+HA)zqDW;dbW>0!cCqu z9{4|qG5hS`UB1Q-S;3-lqg+|9!n+HrkLz-vktbmL%E&xUUVM_5HarYH}qbja9wm`qd8cMyC7Ek>!f>!`0pqr+_qLAjvnKJ}5Nk*ueu9`~tTp z3bULrBc4pK^F!lTA8{Ahf-iB#tXCvowyx4z78&1F@EeK|so(LAyx3X&B{V`*af3*O ztoLR9t3|JcKB`Qd*FL$n@R5B!IlGN_hN8wzu`~*%I9EV@>?^cdxxHAp9eh0-rI$B+ z4OJ1g5Z~I5lN36>w*#}F27ZO&u9pq+c~-I~U^{*(=s)uzd}?m#jx*BLE7_4-+Ej>& zhtpkafD)Qc7};UHEwQ>QYou)R27hkodYT}<3m~r!!w|n@?!LAl1FAr>Any-M_oRk} zz~bzX>P;)DefU-YCxMm%*JZrDU-l#}%bw5*2ilDK z<8{>uj$)Ngp?&hJ zyv)^jK)m65#SuzG7jMI0AXiI`)X!Is41rf}JRe#uK?u$!m&f5GzmUVXhT}AS$e0qP z4m!unxnx}ltQIgDk$egYMFW_kw|l zIDV(6iUtsY6#OX(@3&rAadZv$-7%ALl^#&m5aWULG&_d0l@`mBAMP+rpU~bs4OyvE%1~zP$h^rdd&-8i<16?w6 zo|85PO_Z6ZpJp9*6k`)|6EZ1tO3Q0@ zs8^Jd>$&{(vF-F|@uIlHEZVAjpdM|QVmFJ-pq>{10%{NIlRG~R_{V6TLPQ%{ILVKD zsC*53hEV&L#Lwef{m;yxkb6%X6>2lBD%|9E46eRc1UhC@u* zt^^MS(>D~iZRB5qGc*DE`$l|-VJjfRf4F`1N~~Gy6PWZz6LL1TK=vsEF4wwBn1tWL z%UX=@gw<{I!PJpxki3`oWHZBUue|@}q9c`q8&G58lPDV2E20dA%Pj6$(^&Um1sCsO z=PlTwBM@97t(;0!0Z{9%6-A&%)+L3Dl7zGPhoN?D50)9Ib&FP*W>}HJlQ0A#9J;p0 zIpzg>1xbi(mt|y>lz?(t&>Ip6CNROXctP`sY_E6z6+Ttg=qLUdTVqgFUlAXl4@%xj zD&Nt}DCr`4(#q`H9-WLQhk_DxfMV$tZg^6jBFgU~FvSiYPBfjuCS8kiXB%&3xSOR( zY+gevjnX*Mz44-PPS-x#|Ayyx^Pmg1-Vn0V=@&C|u zoh@hAy(c-SQ8;%kcSj4WHj@E9gV+Q<6lUY&9y&Q=j1rF0Z%W;ZG{hR?Yx_I~%XjbnAEl z&lfNIv~U$#=RmzokZDtcmL@`idcvAuz0jN5GA_0wDneJh0G<23YxYJ z^3&?3s>!vmqmZM4()^zJMD$Vrr&GGonT0i_o0nW*^JU<=0>nCv+psDsA^qQC@xNa1 zpeauqt3LcApZX+2=9j-n#c(%Mf#S#dKt6`DkcU(0%Hl*z6+iV6I8csfz$ShWhe*mtx8TkKJh)Ff=+?jzpE;= zW+3Ej>e5e>;A!t)? z^}!#yQ7fk3yV{KxJ@fiIp2*Sz|9}R`aOx92`e3O*v1WXsxeAx7lh|@N{b}mO{R7mVu=}fG8R=}!8Do2 z8t`@(M@*`Ci}tA(%{c@y7pOL{YedMRp`B&E>n6bXU+x4=6ZO(f%noi9%Bhhyda5?C zO@qC-6~bhvyjLC_iB0F&h2dh@7_g)=d?#l*6mhSl0$Skyh^V(F?Z!^C^?D$+e9@p4 zx&q;KD<^Z+lu{+Xm!*o=r0yLCipy4}(1!+R1} z{xf-qsR{XctA{AJ8=x%MFgk*s0f4Mw^kGse#Bv?2FtVH^y$_PC`?L98c#nl2X$vuI zNPHaKf^TiFv{}1 zro1CIIz6KN;a1~ucPLYhCR?}p<@d;&;U^I0X`<9^ZQrcZtvG@-TUt&efoMNE*tlZm z??xHP;&Qcgr$h%bru%C(bc)EGqs%WX(*e#`mP8`vwvyUB(GbVC97xDzOp2%Da!HnK zc~6otxglw~QA(+fFnC^1WzAd7tGc)B{Ix4i?{~udhrxI2cT{7mwPe89Set>vlijI& z8^b$!WMr~2_hY2KBILL|;%^pMm#28!mp@mXKiQH*+EimhZ-#Evq0SMIv)YD)XjYpo zoGaoD5(P$ZDE8X*@IgBT8XaMCFxYG_KG6duSo6U*ZZbi5d66>#8PIKgQUKZ5Lk;i! z%Qi1g&@hWQolN8)uB%^p%4t8-amAX{i4zi^5_GkXRH#!#V&nD|ggKP^58K7ml?=mS zC1NB!dCTcokK2g!H^XVq@fk9KpA(l(u;?_8#JON-SPnx$w5B8W`^^P(P$E<&RRca< z#IPOi5Sx6SZEv?Wn>XCKWk*1e8nGrbj@IZP0*!L5ccG^4#XaKA?U8KF-RSYft>%q8 zTr1WMRQuV+0{1B=ui=d|0!swcqRVI#fnvE)~_5vJHL`No}Zua zS~?e_49$Lz660yYmN8=j57??EyOH6KtARkcdcm>1xyAzIRCE|suIb(lSo@vwI$P=B3X#|-S1vmJc8K$Du1n6(I&mRL~&H9p0#) znNmnEoo=LR z!^8YOo$4d&ELpPy8PP)R3+%@Tf#%JtT`%vN4p)3cNDFtEzyeSMawQ0>WzY}$>u-b& zb-To#&6;Xtq!*he`34vp<~uyx?>rRRHJ~v3eG#!(T4P*EQ@7`Nk^hq{)lUGE#wRNG z*&M()tdz9H?re$Jv!-f;@5`gm>-hjBdCFA#Q_8YKYHXm7FRgjv6_jvkF6N*yjhzBx z$pbycdp@YW=Sz?a)AQ&e5IhdO%tQ$~8tSmK3enBQQ@z`hmX`Q8YP1+Sg(>GO81`^P^tUBKErfH|)Bu#zA!fa~j^~t?$x9$CIWb?5&{VLHz zVFkJESGQ(R<)D)rZTG})^}P&j&FqudfH{T@SlR1N*WpVv0nDoZSd$Z3 zA$Bt-t_?k-u;@?M!!6v&FoXINB5^1@4-Q!6s&E=wKe|5dSnND?6puQiZnu!Kb$fJ| zeq>rQZ^2sk{i9S-c+DX4?N}ah*QLIlv#H>(+N||Er^d56-)GoxGx%%CT97Uu2c^Z3 zHm0ic&pl$%Y%+HHOF%SUa&dnX>#EIriINOHAe=fnYkk*aWiD9ZI|_}sC)R~xMP^8K zGidDj?bz9CFMU{@7bVh{j5$+WE=nBSpfDhNj7A26K7|0yJ|-T7t1Rz<>w@GcJ|7;up~NQhhVZ2cw!lV$Z=DfIXE`ud>V9-q|jURmN-&RlarYY~`Nn!Ir5YGg) zsSk#N%{^fsb(7&n@nd-j*UM*)j&E*PJW9K{uDbE!bk)~MX1#>&zb?jXxi0inQjQRC zblDA?dCNtHfX*9X%VSJyPgnH%UZ&ow4=*ZFB{ZCPY!x?{Co3{=f`Q`MrkKOvPW*jd#iX2RKLlG+`*SUG@A&nn_f)- zc^ivD&A~n-#qql(o_j7zV2)fQNqZdiB`{4n@Jii!X{ET) z6(NEM+1tFtl(_g-FN#sO5*zAn&?b9A=uTKoO|OWc5-dEum|8kA;=!TYq{gM12;?wl zF`#MVl@DPTm6*VJQcr2F#1tL4k7@CCpMN`DC`o{o^3TKPG{8=92TbW?G?Su-+Y%5Z zLD#=U5RG~A zTE{?l&5NV>NcHC4>2!3}kv=rptnW4h^Z?G^CLwj2i$~O{xV5+gXZ-q@eo{)+%YziB z;VFXd`vWNHvE*=^rOzuONK~v3_~ineG&KB&{KyL`;<*9&aIOw3C@3u2%D2Gz_WR!} z-}rKGPI@pPAVMf0p#Kh#l9-UFtQftmNs5~7e^wd9pIUtfRRtM%WNO_2ABjWs*h~8L z%-QfHG!cdAWam~+@hf0X_tnOqOd}x!J0$#H_jF=4%6;MGo~a@)5Axp@vHYa3eaN#`}t1JeXJ0JG?zc3 zBSajWo6I$8G^LeX+@&+T^d6mrCZCiMu~o6JUPwzYW=;XjO)_Wgq0wn213n72yiE2f zQ1p^<9sBTxH8h}ZNq}4BWd~;o(fOdoGe1U`ROo$2O#FI6PTsG(v6Q2F3PC?#8%e=kFQd#nMdZeLQY?N?HNg)A~g(2tSGNDQe8KwQI z5W<>ayr2=%Pag3j;NXBvMob(&4hy>Zj>7ilz;jzFwmIzIbL}3b>mnf|ZD8~hg zQj%LY#Xe?p6@?o;d5-GjSv$e5)>OsFfdSy?8xKV(Xxd8JW5`WF1==n6fHSu&LSUm* zu|&XTi3fDS*voZ(z;!2k+4XKExSzaL#I5?GDTEg(hoJou7hiECX|F7+BF_jv zz1BNTzLqg_J4?gZEoCz`t?xG`K7nyJxmhb+r>rFwxOwXq!8<9Po0TLY>oJw5hK>lBQ-x(D}vvti3IU`w;L(WVOIf#NF zLCKOtGD8?LGXz0NBZ4A|ARr+F5bKGoeBkQ{R^w3$@3d{!*s8*>$T$)3Z>G-{FhBHY?J+;%4>QRnd{ z%2JdS6_-}YyrPIM>o#fkvGtr?-fRu(x$9T{C}GK1tf7-&J1qG*&qFN+tF*&qoT>hA z?q3!%(Qm<+ro3i4ERWxDg*&#MQy_oS7Izyqo#jmP6a@@l3&ev5%E-*SI6TG2ua)1X zFOnM$E7e{qqq*_0uSz|FuWHLy|3QHVW?rF2EJW{|pu;$dEuwJtiG_U7!#k1z_u8~B zjY|pZf9Z37RMc*X6@RoN3wtn0Zkj4&#q(~F3#+>M`j)HV(;F=#jX8#GS2EL;D&}fk zHRC(yYa6}pS0aoTc6Osfbatguoq)%y&>qaiO&qrixW_WnhQ0XRA4R_Tq?FE<*URSJ ztYd&3=j^+!n|9qO(a^H(Wpr6`){)aD;mkG#Y752rKJf+7SlLT;9~1C*AwNOI8O$S% zFG-M%fnX8>#lfKgf1guwbM>@!^|a9Ub+^TsiGVBdGNTo>>Hw;foAQ@ugio;;!$P7x zAtOPg#v5G4MNORTnF8fanrGQ{bt+iC?CuO}R2|RCrqGc_vV8C#M&Z9Hp_Hcdi_P)v z+V<$L3ZyQ|HJet1b9`_ntH6(*k)*NI%rcFR^@|(4>2<`LV6DR|veA}S0X1Ek)|908 zMNq^0div-M37I@n<-UcP5&3xnm#fz9hK{ZjZvw9*xT&9OE~q;Vd!C11@XC#Ta+=j_ z&f|%K(!H#c(9gE32=fjkFO1=h%eG^J`}1I}9Rfxp9`{|QH?126Qw-qI?(X8^{CYmh z3ChO1hGKB_HG)!Mev6b0=|8ZTtwBx=0`Ws)kWfnb@_b{r`@kngr z;~N(esf8GL140m}m$ECS==Q;nB|ReArx)nh@6pOl1YMX~XeX#C<6>hj-PJ5Ct@B^2H`Gl2Kr}eZ72z_~V9Hy$|s`;$(hnc}>mbO`M(QLmtZF=i{jh z?B|=-6PD@}1>fVhwa?=D8%&2~Jsxy^B2?C|1HN-}m*tVb;FyhZ6?oAPP6-^G3yMre zclB!mJ_+IA?ER+zr-TRwW$$X`>4mlxahJjXSfOqv7JG9TCckdIo|f9=1|v(C#V*UM5KJ%|Md6h6uDi{EVAC z2}vrJ;sk)jEeEjBlvG?O1PY}hn;V~D7*N@XoU#1OyaLGVjqCe}A^709Y!RdYF#)at z9sv#1;0%HepxG;s(2yyk>`_YK{D!H!+8_=C411eNX{daBd_<7oE*o%{h>e>If(zi- z+l5QR{G){;1_PcUBurfyrswA72~$!8*ciwGNdy7`eEXO%kc)w(AH{#yFt8AggC_vI zFt}I&Fj z*~Dw!F8%M*Pm>GolA?!_Ejw=9lxRF}5C%(YpK&31p?(n&FXqfKAJ!pilKzwid+4nU zL(&~tblU7z=3p-a!mIGIKS$wlh)U=NpYMy}p=l$A`T!P+qSELr!-vmGZokdFzf#_i zeLR-FV>c~sk;sD4M;nR@!GUDh09F76cu`p?A&^}>Ja8g~0+f4Yn!PeUfD8TtSobzi z;L+pJo?J|S@FDso79p&A?f!lCq&1fpl)#a_-JE!g0DaJ(EBrbS!OH-_NvEhBn|!-6 zg~s?HW2!dMb_1f*C%mi+!xmS22S*Jbro3vS<$FSY+tQR;!+5$|{*wAhH+)Ukg-7GqcO9Od4yokJEF80VqI@fY?X~s$=Q{S~ z&d=7~A8{g+B%}|Nx|nm$#qT|}ishw#UcBe0+ipLvvlnnUG!`^RCT3SfLr&|u7I?%4 z4AZYObGtZ4-Yd6)6nACtq)~Y!6-?HBs=K3GE=Wk!CNis2a(|2DBs_g(6~N*H02Yt& zyXoQ)GcsHBR@ix+QF`PSt3z~f=92zfO&1}C07OL*qI<>*ny#qyfg*tZzaj_%fP<3- zL=e6o2y#YEQ51FnMwHx;wy-lG_M%+v_u%C3?D%8%LzX~_Ll5kI2)juU>WAAqwol$E zmK|1J51h$P8W!#MSny857b%b2idL$=_vvbn)ZzZJ+?B-8djs706ux}20rQ>q-HqG) zyiMH~IAf-xIOA^mU_YgWaN1Gpi|Ke4^YK)0p=xXOR%z|Sub%7?PRp3TA_R*qWH}W^ zG)A^QscFdw-UeS%=#H=x^Ej68o}SkhIDheFblQv@f~9?7m1Nqe;?$#g&so78=a&JV zGLqysm!}_TW#%k6lH`S~<=bmLs^5(0gmH5&5+RT2#nr4*Qh#W;L0OajMo4!PQ~B(2 zvGpa4B9?Gk`kEsK)heSy{BiE^Ur6GXbf)3}U7>h?!E~F%$AI z?}EIVq0wcbsvT<*%*OAS`JVtQ(DxAq0TUtl!}k#t2f%lqh>A(bNXVD~!4bbAC=GB3 zoOpOdG$cl#3kV{fr<*H+>Z`@#5z-Lq*&^%4D;{JoWe~Yc}0-uJaH3;CxmM_~WFA!wW*5LU%Uvzfj zq*&YX6(_!FAM8<;(0m#;Z|}$O;Z}&F%=nBmu}_rWK%l?J(b!3*2Fc2qiMwI#?}x~( zp70Jsk295MnX4C!O>W0t5VKG2I(6UfOINRnhO}qsrME&iTDaHZnvoM051!8?!fMGOu4rRX68Ts`M0uiVT#!g|GW z!QM16x>8-(B6pj&WNb}Q0oR)X3k4F8|Px`1+A2ZnoZE z2#tS%QT9B-TmCB!69#>CzyE^6KHsp=9dHFCQpHjcq41wr_#2*K9IQlzt-d+n!ZsLT zdjtrl&VOz88-)Hpnw|cJfXcuLK=NBW10og%e?wBZw-_AdinKj1;)ro`1%i7I4g`(}ZUBO7f#512xDo&l_D7(P2Q%S^^c7@u zVlAIEj!n`WjqN|3yzDqWGa{xDqTi|N{{aXN2fQ;q{}Wy_l!Xn&uLg@b^y!F zdhmKvAh672;6|b!vu#i8VfqAMnb!X(_5>#$Xb!N^~8Jc)Y$xJQQ~sZ+z+yo?9N)nIuwRG&$(eko{X# zB2iI58pO1(pYH-MAhRFjSpOR1{O@&U_OGrss1h;m%LXugv=_z`)S189t*SVvdjD13 zh3=`lP*B|kMUSf4n;3`DifOY`M*$81CAL(1pIfAvU4Auu;B4&#|9yGmJnw|o!VAnH zwYAK9($iZ9|fnlGJW zs$6VtZ_O81uqgJkd*|~)E!)n>C`I4+2AN>F_I+T`@LkIVv#Ek+ZSxt4ImFAMTjnD- zB7=s?qT&^9`qrIqDl4vklqMlhho0Dq)I+M3DOo3ApD_AEz7%O=Z@;7p(7zFL-`d{{7`I;OPC z%4Jb(uwm>p9?mO&me{(;P4<$KL**5LtGyBKLW-8T#Wsw}u}t390UJR@+i#FrVx3nB zC!UqhDrGW0&hmjwP{xq4vzF-db6<6yq0rM+^?c5gU#93a>X&bE{djX_x8fn{b2C&r zi-?96G(89L*hLMm<2Fm|7WFV)C%59f&}-VYeJ3rFV4u_28mc4Hivvh_?yOIv;PI@& z>w`HZtTW8}s+cSoxk>&jMSH1#3ftvjhSV4nu|GcdG`^69Qu~)k?~juA?~?g{P(3^O zEnqwb9Q{8DV0$_QD1eawpl(Qj2mbj>yab}l*LcZ2wMxm*8?-StC`0y(C%muzVo4ry6 zC(W8)6+gPPiQ5#G-KC*$SVF}SrC;b10Q@$O!Xt&meX|PKYJ59 zgrvB&48yL2FS3H-zJwL!8>dnz*fhj*)RdfEH*jj_&2#o{bK?~L5a8j+>BO;1{a9a^ zH()?^aHT9P?#sDO(|pD{%@j;IBqzlv*PL(iNeqA`C0caB&Hut@ zCt!Z=ARzC__Wuqf+>@L{0Wr`q{DH<&U{Q1*jctBKV+Mc@ywaeQM6r*pLVIaH5riBd zv$q46Ms$D2571Q=hv}VB6bED^VS53$gd|KK66LEp)_T>6Be0Q)*QC{*AlOSucJPaOeuCm zhlZ2~6X){LC>!ekMX5Ao=+Jvi@k8+0ogv{IjAM&K^7RaXd4~m$ofxsdv7jrz(r4H+ z$0xklUHr&v?g)YH^%(x{!6nq#;LR`8Eg9P^haWD3H|s$T3NL1Rw^zC4Ul z+t{fz7ANTj{6mEWOwj1<`N z;^R_$d!hqlN`sd?M z86WG$y|VK#vfKQ$H?{7q<_I#mbKxA>H9SP0XsM`i{Vg~vkW)6}Srf-LYCTJivk`kQ z<(a8?OwIfwwCeSHa3rJMlNKUAd@_gjIg zl*B(#rM^2Wd%lXQ_}3JN(l?L>AsPVl8>!-ARwawKmSwrxQFh5f$>ZVqGhZSqkvw6} z(a(}DcDR#VT+Xia(tc{PnL|}#HowcKe|4od+{4>;=+z23gLA8z7pq)&hnG2zi;btI zd{kg@Be~f3PH=`{XdcPQ=CS(gsdMq$+gVBI2lY)gHI5#GjWj{T^<^ooVPRYq+8OFk zeC(p$qZ8*(L-p=U1>8E5FULxxP8riGG{No*PLHi z`MR4vy?GyRu`M_du&R>eCB()n#53$hcY*EjHOa@fdS+J{?woCLUy-Vc#~FjsYx8bf z+S8}mJ$-FZEz2KT6rU>iHde7*wwEp*QEE+0N%AaskY=YUvvbX8uo79jYLXK=;V`$QIh7_qA0Y#>wSWy;U-aT^Buf=7b3s#hrlXZp5t;L3ET z=4dEbhoz*M(gZi&_Feo8GFC0fSh?RB3t#!cT1*m=OjgzKaf=x%`roDu@NZ#@J<1XT zq!8jiDN7t&4g+%7w=9X;Kcp-eC>nmHEQWof`ASTfJz|1=)k^*@OvpHMGK}@ojdS_O z^dEALx2N>abj_KiQ4o*7)iQ4T$q6Ldk66j`94XWEXQNp82 z_V!|oP9zI#p(#NQ9%na&nnUfJtLqblvDDm-DZQr?yxRVfFbi;KxpZRab09HSOeU6T z$noibT#MQ0VaChbCl|=AoRfAu%y&-2STjh{bzdrDdGRBvqCG7-Z97OA<*In@&St~8S!>Au)I zlR9McP-GteUG4_gI&0-!mXdOdv6Xk;{)juass>4?xZwGMx1Xm>f4P7;Ci+fKe7mP& zu_skX{O;7KEAlX*6eNn0<&kb{u7=&ED-PBbm5R*g54%hcQjQxdZVwa-P3S%-EubTy zU9cvi=|-_#L~15cjCwJlt#{b=Gl3ibMs(>t05@QXV zW0z50O_z{;UagVT-iG(Mw)*Rx*q^>RA|4NyU2uXFZEg#ME?v-*&WR^Z^C)rlcyR2o zTU_r170r&7DoMo7N?B8H)2K7oO4SK$OR9%_V)QM%Qj|L{xpw&@$jn_mb;~{9T8xq&&?Rh%DWB9yTa)b$zw}b!!agru19>UzFA17o z(+Bi>@XNioEaqV5oai6G^1%f%e`L3x5;Vlm~+yl<|TB~f-xqrekQSj|sd9@plot|Dadsb^D<)H49v3N6=x}W#*+6}ho zA@B)sDP}KHMYzv%Ckf#Dh49Ch8Tm#I^B4*it=)enMK%!ct!?;3ueK~nIwyF}MbR_@ z)%irQzVSkP;@0`eTTI^RD6ejvX=Uo?F!JOa<&KXt>OMp!>wA7Bsi;j8qN!puS{kU5eWR{Y-W&L;OuBktiDkVk?Xi;3n3je=n}d6`4@nPn+|;sy zZ&!Lo&!jJ(frC@)!%{cHwvN*-q0bSI+scZ~k5#&zMK2n|?Nx1Om@#E{J~;^ys4Rmo z1z52dA08~Y8KnFmh)OXWfyMO(b!;@Kssld%7LtNe{fR0MDEO(todDC1ECHAaBmX54 z@He?I!2^|{WC#|32>{p6;nCWy2#VI$HdA8F+H%928?_H7wk!N4^(CRv)%~8-QiP|a z$%3ZoM7H*!z6c7=6vD~}k0G(0*LVS`gT2EMd;kvsuHD3gb!|+$y!GUG)!Cz9fHJY}ivo_KygBNSqxv?e$-EZB@BD;ZRrRy~pco&7W)xUf{ zs;xNsRZK#E*3Hwgq}~d(x;J+(O>ducj!IosXV>Ksq-|%)#48depYUg$AqcC#dP+l8 z;q&RFlqMxDlsSc_6rl>4U~!xgo?H346vUybk7XTu_^jm!rSF!;r~D<9;BcX$=`Aa@ z)|QP;>oaJ@UF4ZA9S4cXo33ND+oxEy7c)Q3jk0SJpPwFL8t1~D=w;t5TuXY6c&Vd=Zn{q$A+Dghl1;e z%MzZfExO>)HLIu1MS5-$*0pY+`*lu3ptQKO;DTr(oV_~10= zo8SA|xb2zVX9#xk>f6JHe|9&Ii-Y5gvWC0bdV+4CE7A&$6cqvBXTE2dMb3QdUIgjv z{ClUrKf(BCr+DBqjsHof;9V34JN?rGync3S;_&lvUca~c{T{HNtuzA;+!1!L*`Mz6 z_}MHS`^S4ee(&J-+ai8;P;%-2!%Y%jzaD3AZvA-){?D&(xcvKqe4W$y1bh35!GH1K Kv|1?HEBz0n8J8ab literal 0 HcmV?d00001 diff --git a/Game/Assets/Supabase/supabase-storage-csharp.1.4.0/supabase-storage-csharp.1.4.0.nupkg.meta b/Game/Assets/Supabase/supabase-storage-csharp.1.4.0/supabase-storage-csharp.1.4.0.nupkg.meta new file mode 100644 index 0000000..9ca3288 --- /dev/null +++ b/Game/Assets/Supabase/supabase-storage-csharp.1.4.0/supabase-storage-csharp.1.4.0.nupkg.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 724990ebabbb45343a2211c62febcc85 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Packages/manifest.json b/Game/Packages/manifest.json index ba44e0b..35c722e 100644 --- a/Game/Packages/manifest.json +++ b/Game/Packages/manifest.json @@ -1,5 +1,6 @@ { "dependencies": { + "com.cysharp.unitask": "https://github.com/Cysharp/UniTask.git?path=src/UniTask/Assets/Plugins/UniTask", "com.unity.2d.sprite": "1.0.0", "com.unity.2d.tilemap": "1.0.0", "com.unity.ads": "4.4.2", diff --git a/Game/Packages/packages-lock.json b/Game/Packages/packages-lock.json index 55329d5..9244322 100644 --- a/Game/Packages/packages-lock.json +++ b/Game/Packages/packages-lock.json @@ -1,5 +1,12 @@ { "dependencies": { + "com.cysharp.unitask": { + "version": "https://github.com/Cysharp/UniTask.git?path=src/UniTask/Assets/Plugins/UniTask", + "depth": 0, + "source": "git", + "dependencies": {}, + "hash": "8042b29ff87dd5506d7aad72bd6d8d7405985f27" + }, "com.unity.2d.sprite": { "version": "1.0.0", "depth": 0, diff --git a/Game/ProjectSettings/ProjectSettings.asset b/Game/ProjectSettings/ProjectSettings.asset index 98ad44c..ad129ee 100644 --- a/Game/ProjectSettings/ProjectSettings.asset +++ b/Game/ProjectSettings/ProjectSettings.asset @@ -141,7 +141,9 @@ PlayerSettings: visionOSBundleVersion: 1.0 tvOSBundleVersion: 1.0 bundleVersion: 0.1 - preloadedAssets: [] + preloadedAssets: + - {fileID: -6517218471499782410, guid: 1a4c68ca72a83449f938d669337cb305, type: 2} + - {fileID: -3160651408743164439, guid: a9a6963505ddf7f4d886008c6dc86122, type: 2} metroInputSource: 0 wsaTransparentSwapchain: 0 m_HolographicPauseOnTrackingLoss: 1 diff --git a/Game/ProjectSettings/UnityConnectSettings.asset b/Game/ProjectSettings/UnityConnectSettings.asset index a88bee0..2d81664 100644 --- a/Game/ProjectSettings/UnityConnectSettings.asset +++ b/Game/ProjectSettings/UnityConnectSettings.asset @@ -4,7 +4,7 @@ UnityConnectSettings: m_ObjectHideFlags: 0 serializedVersion: 1 - m_Enabled: 0 + m_Enabled: 1 m_TestMode: 0 m_EventOldUrl: https://api.uca.cloud.unity3d.com/v1/events m_EventUrl: https://cdp.cloud.unity3d.com/v1/events @@ -23,7 +23,7 @@ UnityConnectSettings: m_Enabled: 0 m_TestMode: 0 m_InitializeOnStartup: 1 - m_PackageRequiringCoreStatsPresent: 0 + m_PackageRequiringCoreStatsPresent: 1 UnityAdsSettings: m_Enabled: 0 m_InitializeOnStartup: 1

    + + + + +

    a8oT=<|tyT=J#g`^v=)+Wr5 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

  • ^-!0M8{Bx^N|E+pEo}(c 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 + MIME type constants. Last updated on 2023-03-28T04:30:24Z. + Generated from the mime-db source + + + + ez + + + aw + + + atom + + + atomcat + + + atomdeleted + + + atomsvc + + + dwd + + + held + + + rsat + + + bdoc + + + xcs + + + ccxml + + + cdfx + + + cdmia + + + cdmic + + + cdmid + + + cdmio + + + cdmiq + + + cpl + + + cu + + + mpd + + + mpp + + + davmount + + + dbk + + + dssc + + + xdssc + + + es + + + ecma + + + emma + + + emotionml + + + epub + + + exi + + + exp + + + fdt + + + pfr + + + geojson + + + gml + + + gpx + + + gxf + + + gz + + + hjson + + + stk + + + ink + + + inkml + + + ipfix + + + its + + + jar + + + war + + + ear + + + ser + + + class + + + js + + + mjs + + + json + + + map + + + json5 + + + jsonml + + + jsonld + + + lgr + + + lostxml + + + hqx + + + cpt + + + mads + + + webmanifest + + + mrc + + + mrcx + + + ma + + + nb + + + mb + + + mathml + + + mbox + + + mpf + + + mscml + + + metalink + + + meta4 + + + mets + + + maei + + + musd + + + mods + + + m21 + + + mp21 + + + mp4s + + + m4p + + + doc + + + dot + + + mxf + + + nq + + + nt + + + cjs + + + bin + + + dms + + + lrf + + + mar + + + so + + + dist + + + distz + + + pkg + + + bpk + + + dump + + + elc + + + deploy + + + exe + + + dll + + + deb + + + dmg + + + iso + + + img + + + msi + + + msp + + + msm + + + buffer + + + oda + + + opf + + + ogx + + + omdoc + + + onetoc + + + onetoc2 + + + onetmp + + + onepkg + + + oxps + + + relo + + + xer + + + pdf + + + pgp + + + asc + + + sig + + + prf + + + p10 + + + p7m + + + p7c + + + p7s + + + p8 + + + ac + + + cer + + + crl + + + pkipath + + + pki + + + pls + + + ai + + + eps + + + ps + + + provx + + + cww + + + pskcxml + + + raml + + + rdf + + + owl + + + rif + + + rnc + + + rl + + + rld + + + rs + + + rapd + + + sls + + + rusd + + + gbr + + + mft + + + roa + + + rsd + + + rss + + + rtf + + + sbml + + + scq + + + scs + + + spq + + + spp + + + sdp + + + senmlx + + + sensmlx + + + setpay + + + setreg + + + shf + + + siv + + + sieve + + + smi + + + smil + + + rq + + + srx + + + gram + + + grxml + + + sru + + + ssdl + + + ssml + + + swidtag + + + tei + + + teicorpus + + + tfi + + + tsd + + + toml + + + trig + + + ttml + + + ubj + + + rsheet + + + td + + + 1km + + + plb + + + psb + + + pvb + + + tcap + + + pwn + + + aso + + + imp + + + acu + + + atc + + + acutc + + + air + + + fcdt + + + fxp + + + fxpl + + + xdp + + + xfdf + + + age + + + ahead + + + azf + + + azs + + + azw + + + acc + + + ami + + + apk + + + cii + + + fti + + + atx + + + mpkg + + + key + + + m3u8 + + + numbers + + + pages + + + pkpass + + + swi + + + iota + + + aep + + + bmml + + + mpm + + + bmi + + + rep + + + cdxml + + + mmd + + + cdy + + + csl + + + cla + + + rp9 + + + c4g + + + c4d + + + c4f + + + c4p + + + c4u + + + c11amc + + + c11amz + + + csp + + + cdbcmsg + + + cmc + + + clkx + + + clkk + + + clkp + + + clkt + + + clkw + + + wbs + + + pml + + + ppd + + + car + + + pcurl + + + dart + + + rdz + + + dbf + + + uvf + + + uvvf + + + uvd + + + uvvd + + + uvt + + + uvvt + + + uvx + + + uvvx + + + uvz + + + uvvz + + + fe_launch + + + dna + + + mlp + + + dpg + + + dfac + + + kpxx + + + ait + + + svc + + + geo + + + mag + + + nml + + + esf + + + msf + + + qam + + + slt + + + ssf + + + es3 + + + et3 + + + ez2 + + + ez3 + + + fdf + + + mseed + + + seed + + + dataless + + + gph + + + ftc + + + fm + + + frame + + + maker + + + book + + + fnc + + + ltf + + + fsc + + + oas + + + oa2 + + + oa3 + + + fg5 + + + bh2 + + + ddd + + + xdw + + + xbd + + + fzs + + + txd + + + ggb + + + ggt + + + gex + + + gre + + + gxt + + + g2w + + + g3w + + + gmx + + + gdoc + + + gslides + + + gsheet + + + kml + + + kmz + + + gqf + + + gqs + + + gac + + + ghf + + + gim + + + grv + + + gtm + + + tpl + + + vcg + + + hal + + + zmm + + + hbci + + + les + + + hpgl + + + hpid + + + hps + + + jlt + + + pcl + + + pclxl + + + sfd-hdstx + + + mpy + + + afp + + + listafp + + + list3820 + + + irm + + + sc + + + icc + + + icm + + + igl + + + ivp + + + ivu + + + igm + + + xpw + + + xpx + + + i2g + + + qbo + + + qfx + + + rcprofile + + + irp + + + xpr + + + fcs + + + jam + + + rms + + + jisp + + + joda + + + ktz + + + ktr + + + karbon + + + chrt + + + kfo + + + flw + + + kon + + + kpr + + + kpt + + + ksp + + + kwd + + + kwt + + + htke + + + kia + + + kne + + + knp + + + skp + + + skd + + + skt + + + skm + + + sse + + + lasxml + + + lbd + + + lbe + + + 123 + + + apr + + + pre + + + nsf + + + org + + + scm + + + lwp + + + portpkg + + + mvt + + + mcd + + + mc1 + + + cdkey + + + mwf + + + mfm + + + flo + + + igx + + + mif + + + daf + + + dis + + + mbk + + + mqy + + + msl + + + plc + + + txf + + + mpn + + + mpc + + + xul + + + cil + + + cab + + + xls + + + xlm + + + xla + + + xlc + + + xlt + + + xlw + + + xlam + + + xlsb + + + xlsm + + + xltm + + + eot + + + chm + + + ims + + + lrm + + + thmx + + + msg + + + cat + + + stl + + + ppt + + + pps + + + pot + + + ppam + + + pptm + + + sldm + + + ppsm + + + potm + + + mpt + + + docm + + + dotm + + + wps + + + wks + + + wcm + + + wdb + + + wpl + + + xps + + + mseq + + + mus + + + msty + + + taglet + + + nlu + + + ntf + + + nitf + + + nnd + + + nns + + + nnw + + + ngdat + + + n-gage + + + rpst + + + rpss + + + edm + + + edx + + + ext + + + odc + + + otc + + + odb + + + odf + + + odft + + + odg + + + otg + + + odi + + + oti + + + odp + + + otp + + + ods + + + ots + + + odt + + + odm + + + ott + + + oth + + + xo + + + dd2 + + + obgx + + + oxt + + + osm + + + pptx + + + sldx + + + ppsx + + + potx + + + xlsx + + + xltx + + + docx + + + dotx + + + mgp + + + dp + + + esa + + + pdb + + + pqa + + + oprc + + + paw + + + str + + + ei6 + + + efif + + + wg + + + plf + + + pbd + + + box + + + mgz + + + qps + + + ptid + + + qxd + + + qxt + + + qwd + + + qwt + + + qxl + + + qxb + + + rar + + + bed + + + mxl + + + musicxml + + + cryptonote + + + cod + + + rm + + + rmvb + + + link66 + + + st + + + see + + + sema + + + semd + + + semf + + + ifm + + + itp + + + iif + + + ipk + + + twd + + + twds + + + mmf + + + teacher + + + fo + + + sdkm + + + sdkd + + + dxp + + + sfs + + + sdc + + + sda + + + sdd + + + smf + + + sdw + + + vor + + + sgl + + + smzip + + + sm + + + wadl + + + sxc + + + stc + + + sxd + + + std + + + sxi + + + sti + + + sxm + + + sxw + + + sxg + + + stw + + + sus + + + susp + + + svd + + + sis + + + sisx + + + xsm + + + bdm + + + xdm + + + ddf + + + tao + + + pcap + + + cap + + + dmp + + + tmo + + + tpt + + + mxs + + + tra + + + ufd + + + ufdl + + + utz + + + umj + + + unityweb + + + uoml + + + vcx + + + vsd + + + vst + + + vss + + + vsw + + + vis + + + vsf + + + wbxml + + + wmlc + + + wmlsc + + + wtb + + + nbp + + + wpd + + + wqd + + + stf + + + xar + + + xfdl + + + hvd + + + hvs + + + hvp + + + osf + + + osfpvg + + + saf + + + spf + + + cmp + + + zir + + + zirz + + + zaz + + + vxml + + + wasm + + + wif + + + wgt + + + hlp + + + wsdl + + + wspolicy + + + 7z + + + abw + + + ace + + + arj + + + aab + + + x32 + + + u32 + + + vox + + + aam + + + aas + + + bcpio + + + torrent + + + blb + + + blorb + + + bz + + + bz2 + + + boz + + + cbr + + + cba + + + cbt + + + cbz + + + cb7 + + + vcd + + + cfs + + + chat + + + pgn + + + crx + + + cco + + + nsc + + + cpio + + + csh + + + udeb + + + dgc + + + dir + + + dcr + + + dxr + + + cst + + + cct + + + cxt + + + w3d + + + fgd + + + swa + + + wad + + + ncx + + + dtb + + + res + + + dvi + + + evy + + + eva + + + bdf + + + gsf + + + psf + + + pcf + + + snf + + + pfa + + + pfb + + + pfm + + + afm + + + arc + + + spl + + + gca + + + ulx + + + gnumeric + + + gramps + + + gtar + + + hdf + + + php + + + install + + + jardiff + + + jnlp + + + kdbx + + + latex + + + luac + + + lzh + + + lha + + + run + + + mie + + + prc + + + mobi + + + application + + + lnk + + + wmd + + + wmz + + + xbap + + + mdb + + + obd + + + crd + + + clp + + + com + + + bat + + + mvb + + + m13 + + + m14 + + + wmf + + + emf + + + emz + + + mny + + + pub + + + scd + + + trm + + + wri + + + nc + + + cdf + + + pac + + + nzb + + + pl + + + pm + + + p12 + + + pfx + + + p7b + + + spc + + + p7r + + + rpm + + + ris + + + sea + + + sh + + + shar + + + swf + + + xap + + + sql + + + sit + + + sitx + + + srt + + + sv4cpio + + + sv4crc + + + t3 + + + gam + + + tar + + + tcl + + + tk + + + tex + + + tfm + + + texinfo + + + texi + + + obj + + + ustar + + + hdd + + + ova + + + ovf + + + vbox + + + vbox-extpack + + + vdi + + + vhd + + + vmdk + + + src + + + webapp + + + der + + + crt + + + pem + + + fig + + + xlf + + + xpi + + + xz + + + z1 + + + z2 + + + z3 + + + z4 + + + z5 + + + z6 + + + z7 + + + z8 + + + xaml + + + xav + + + xca + + + xdf + + + xel + + + xns + + + xenc + + + xhtml + + + xht + + + xml + + + xsl + + + xsd + + + rng + + + dtd + + + xop + + + xpl + + + xslt + + + xspf + + + mxml + + + xhvml + + + xvml + + + xvm + + + yang + + + yin + + + zip + + + 3gpp + + + adp + + + amr + + + au + + + snd + + + mid + + + midi + + + kar + + + rmi + + + mxmf + + + mp3 + + + m4a + + + mp4a + + + mpga + + + mp2 + + + mp2a + + + m2a + + + m3a + + + oga + + + ogg + + + spx + + + opus + + + s3m + + + sil + + + uva + + + uvva + + + eol + + + dra + + + dts + + + dtshd + + + lvp + + + pya + + + ecelp4800 + + + ecelp7470 + + + ecelp9600 + + + rip + + + wav + + + weba + + + aac + + + aif + + + aiff + + + aifc + + + caf + + + flac + + + mka + + + m3u + + + wax + + + wma + + + ram + + + ra + + + rmp + + + xm + + + cdx + + + cif + + + cmdf + + + cml + + + csml + + + xyz + + + ttc + + + otf + + + ttf + + + woff + + + woff2 + + + exr + + + apng + + + avci + + + avcs + + + avif + + + bmp + + + cgm + + + drle + + + fits + + + g3 + + + gif + + + heic + + + heics + + + heif + + + heifs + + + hej2 + + + hsj2 + + + ief + + + jls + + + jp2 + + + jpg2 + + + jpeg + + + jpg + + + jpe + + + jph + + + jhc + + + jpm + + + jpx + + + jpf + + + jxr + + + jxra + + + jxrs + + + jxs + + + jxsc + + + jxsi + + + jxss + + + ktx + + + ktx2 + + + png + + + btif + + + pti + + + sgi + + + svg + + + svgz + + + t38 + + + tif + + + tiff + + + tfx + + + psd + + + azv + + + uvi + + + uvvi + + + uvg + + + uvvg + + + djvu + + + djv + + + sub + + + dwg + + + dxf + + + fbs + + + fpx + + + fst + + + mmr + + + rlc + + + ico + + + dds + + + mdi + + + wdp + + + npx + + + b16 + + + tap + + + vtf + + + wbmp + + + xif + + + pcx + + + webp + + + 3ds + + + ras + + + cmx + + + fh + + + fhc + + + fh4 + + + fh5 + + + fh7 + + + jng + + + sid + + + pic + + + pct + + + pnm + + + pbm + + + pgm + + + ppm + + + rgb + + + tga + + + xbm + + + xpm + + + xwd + + + disposition-notification + + + u8msg + + + u8dsn + + + u8mdn + + + u8hdr + + + eml + + + mime + + + wsc + + + 3mf + + + gltf + + + glb + + + igs + + + iges + + + msh + + + mesh + + + silo + + + mtl + + + stpx + + + stpz + + + stpxz + + + dae + + + dwf + + + gdl + + + gtw + + + mts + + + ogex + + + x_b + + + x_t + + + vds + + + usdz + + + bsp + + + vtu + + + wrl + + + vrml + + + x3db + + + x3dbz + + + x3dv + + + x3dvz + + + x3d + + + x3dz + + + appcache + + + manifest + + + ics + + + ifb + + + coffee + + + litcoffee + + + css + + + csv + + + html + + + htm + + + shtml + + + jade + + + jsx + + + less + + + markdown + + + md + + + mml + + + mdx + + + n3 + + + txt + + + text + + + conf + + + def + + + list + + + log + + + in + + + ini + + + dsc + + + rtx + + + sgml + + + sgm + + + shex + + + slim + + + slm + + + spdx + + + stylus + + + styl + + + tsv + + + t + + + tr + + + roff + + + man + + + me + + + ms + + + ttl + + + uri + + + uris + + + urls + + + vcard + + + curl + + + dcurl + + + mcurl + + + scurl + + + ged + + + fly + + + flx + + + gv + + + 3dml + + + spot + + + jad + + + wml + + + wmls + + + vtt + + + s + + + asm + + + c + + + cc + + + cxx + + + cpp + + + h + + + hh + + + dic + + + htc + + + f + + + for + + + f77 + + + f90 + + + hbs + + + java + + + lua + + + mkd + + + nfo + + + opml + + + p + + + pas + + + pde + + + sass + + + scss + + + etx + + + sfv + + + ymp + + + uu + + + vcs + + + vcf + + + yaml + + + yml + + + 3gp + + + 3g2 + + + h261 + + + h263 + + + h264 + + + m4s + + + jpgv + + + jpgm + + + mj2 + + + mjp2 + + + ts + + + mp4 + + + mp4v + + + mpg4 + + + mpeg + + + mpg + + + mpe + + + m1v + + + m2v + + + ogv + + + qt + + + mov + + + uvh + + + uvvh + + + uvm + + + uvvm + + + uvp + + + uvvp + + + uvs + + + uvvs + + + uvv + + + uvvv + + + dvb + + + fvt + + + mxu + + + m4u + + + pyv + + + uvu + + + uvvu + + + viv + + + webm + + + f4v + + + fli + + + flv + + + m4v + + + mkv + + + mk3d + + + mks + + + mng + + + asf + + + asx + + + vob + + + wm + + + wmv + + + wmx + + + wvx + + + avi + + + movie + + + smv + + + ice + + + File extensions + + + ez + + + aw + + + atom + + + atomcat + + + atomdeleted + + + atomsvc + + + dwd + + + held + + + rsat + + + bdoc + + + xcs + + + ccxml + + + cdfx + + + cdmia + + + cdmic + + + cdmid + + + cdmio + + + cdmiq + + + cpl + + + cu + + + mpd + + + mpp + + + davmount + + + dbk + + + dssc + + + xdssc + + + es + + + ecma + + + emma + + + emotionml + + + epub + + + exi + + + exp + + + fdt + + + pfr + + + geojson + + + gml + + + gpx + + + gxf + + + gz + + + hjson + + + stk + + + ink + + + inkml + + + ipfix + + + its + + + jar + + + war + + + ear + + + ser + + + class + + + js + + + mjs + + + json + + + map + + + json5 + + + jsonml + + + jsonld + + + lgr + + + lostxml + + + hqx + + + cpt + + + mads + + + webmanifest + + + mrc + + + mrcx + + + ma + + + nb + + + mb + + + mathml + + + mbox + + + mpf + + + mscml + + + metalink + + + meta4 + + + mets + + + maei + + + musd + + + mods + + + m21 + + + mp21 + + + mp4s + + + m4p + + + doc + + + dot + + + mxf + + + nq + + + nt + + + cjs + + + bin + + + dms + + + lrf + + + mar + + + so + + + dist + + + distz + + + pkg + + + bpk + + + dump + + + elc + + + deploy + + + exe + + + dll + + + deb + + + dmg + + + iso + + + img + + + msi + + + msp + + + msm + + + buffer + + + oda + + + opf + + + ogx + + + omdoc + + + onetoc + + + onetoc2 + + + onetmp + + + onepkg + + + oxps + + + relo + + + xer + + + pdf + + + pgp + + + asc + + + sig + + + prf + + + p10 + + + p7m + + + p7c + + + p7s + + + p8 + + + ac + + + cer + + + crl + + + pkipath + + + pki + + + pls + + + ai + + + eps + + + ps + + + provx + + + cww + + + pskcxml + + + raml + + + rdf + + + owl + + + rif + + + rnc + + + rl + + + rld + + + rs + + + rapd + + + sls + + + rusd + + + gbr + + + mft + + + roa + + + rsd + + + rss + + + rtf + + + sbml + + + scq + + + scs + + + spq + + + spp + + + sdp + + + senmlx + + + sensmlx + + + setpay + + + setreg + + + shf + + + siv + + + sieve + + + smi + + + smil + + + rq + + + srx + + + gram + + + grxml + + + sru + + + ssdl + + + ssml + + + swidtag + + + tei + + + teicorpus + + + tfi + + + tsd + + + toml + + + trig + + + ttml + + + ubj + + + rsheet + + + td + + + 1km + + + plb + + + psb + + + pvb + + + tcap + + + pwn + + + aso + + + imp + + + acu + + + atc + + + acutc + + + air + + + fcdt + + + fxp + + + fxpl + + + xdp + + + xfdf + + + age + + + ahead + + + azf + + + azs + + + azw + + + acc + + + ami + + + apk + + + cii + + + fti + + + atx + + + mpkg + + + key + + + m3u8 + + + numbers + + + pages + + + pkpass + + + swi + + + iota + + + aep + + + bmml + + + mpm + + + bmi + + + rep + + + cdxml + + + mmd + + + cdy + + + csl + + + cla + + + rp9 + + + c4g + + + c4d + + + c4f + + + c4p + + + c4u + + + c11amc + + + c11amz + + + csp + + + cdbcmsg + + + cmc + + + clkx + + + clkk + + + clkp + + + clkt + + + clkw + + + wbs + + + pml + + + ppd + + + car + + + pcurl + + + dart + + + rdz + + + dbf + + + uvf + + + uvvf + + + uvd + + + uvvd + + + uvt + + + uvvt + + + uvx + + + uvvx + + + uvz + + + uvvz + + + fe_launch + + + dna + + + mlp + + + dpg + + + dfac + + + kpxx + + + ait + + + svc + + + geo + + + mag + + + nml + + + esf + + + msf + + + qam + + + slt + + + ssf + + + es3 + + + et3 + + + ez2 + + + ez3 + + + fdf + + + mseed + + + seed + + + dataless + + + gph + + + ftc + + + fm + + + frame + + + maker + + + book + + + fnc + + + ltf + + + fsc + + + oas + + + oa2 + + + oa3 + + + fg5 + + + bh2 + + + ddd + + + xdw + + + xbd + + + fzs + + + txd + + + ggb + + + ggt + + + gex + + + gre + + + gxt + + + g2w + + + g3w + + + gmx + + + gdoc + + + gslides + + + gsheet + + + kml + + + kmz + + + gqf + + + gqs + + + gac + + + ghf + + + gim + + + grv + + + gtm + + + tpl + + + vcg + + + hal + + + zmm + + + hbci + + + les + + + hpgl + + + hpid + + + hps + + + jlt + + + pcl + + + pclxl + + + sfd-hdstx + + + mpy + + + afp + + + listafp + + + list3820 + + + irm + + + sc + + + icc + + + icm + + + igl + + + ivp + + + ivu + + + igm + + + xpw + + + xpx + + + i2g + + + qbo + + + qfx + + + rcprofile + + + irp + + + xpr + + + fcs + + + jam + + + rms + + + jisp + + + joda + + + ktz + + + ktr + + + karbon + + + chrt + + + kfo + + + flw + + + kon + + + kpr + + + kpt + + + ksp + + + kwd + + + kwt + + + htke + + + kia + + + kne + + + knp + + + skp + + + skd + + + skt + + + skm + + + sse + + + lasxml + + + lbd + + + lbe + + + 123 + + + apr + + + pre + + + nsf + + + org + + + scm + + + lwp + + + portpkg + + + mvt + + + mcd + + + mc1 + + + cdkey + + + mwf + + + mfm + + + flo + + + igx + + + mif + + + daf + + + dis + + + mbk + + + mqy + + + msl + + + plc + + + txf + + + mpn + + + mpc + + + xul + + + cil + + + cab + + + xls + + + xlm + + + xla + + + xlc + + + xlt + + + xlw + + + xlam + + + xlsb + + + xlsm + + + xltm + + + eot + + + chm + + + ims + + + lrm + + + thmx + + + msg + + + cat + + + stl + + + ppt + + + pps + + + pot + + + ppam + + + pptm + + + sldm + + + ppsm + + + potm + + + mpt + + + docm + + + dotm + + + wps + + + wks + + + wcm + + + wdb + + + wpl + + + xps + + + mseq + + + mus + + + msty + + + taglet + + + nlu + + + ntf + + + nitf + + + nnd + + + nns + + + nnw + + + ngdat + + + n-gage + + + rpst + + + rpss + + + edm + + + edx + + + ext + + + odc + + + otc + + + odb + + + odf + + + odft + + + odg + + + otg + + + odi + + + oti + + + odp + + + otp + + + ods + + + ots + + + odt + + + odm + + + ott + + + oth + + + xo + + + dd2 + + + obgx + + + oxt + + + osm + + + pptx + + + sldx + + + ppsx + + + potx + + + xlsx + + + xltx + + + docx + + + dotx + + + mgp + + + dp + + + esa + + + pdb + + + pqa + + + oprc + + + paw + + + str + + + ei6 + + + efif + + + wg + + + plf + + + pbd + + + box + + + mgz + + + qps + + + ptid + + + qxd + + + qxt + + + qwd + + + qwt + + + qxl + + + qxb + + + rar + + + bed + + + mxl + + + musicxml + + + cryptonote + + + cod + + + rm + + + rmvb + + + link66 + + + st + + + see + + + sema + + + semd + + + semf + + + ifm + + + itp + + + iif + + + ipk + + + twd + + + twds + + + mmf + + + teacher + + + fo + + + sdkm + + + sdkd + + + dxp + + + sfs + + + sdc + + + sda + + + sdd + + + smf + + + sdw + + + vor + + + sgl + + + smzip + + + sm + + + wadl + + + sxc + + + stc + + + sxd + + + std + + + sxi + + + sti + + + sxm + + + sxw + + + sxg + + + stw + + + sus + + + susp + + + svd + + + sis + + + sisx + + + xsm + + + bdm + + + xdm + + + ddf + + + tao + + + pcap + + + cap + + + dmp + + + tmo + + + tpt + + + mxs + + + tra + + + ufd + + + ufdl + + + utz + + + umj + + + unityweb + + + uoml + + + vcx + + + vsd + + + vst + + + vss + + + vsw + + + vis + + + vsf + + + wbxml + + + wmlc + + + wmlsc + + + wtb + + + nbp + + + wpd + + + wqd + + + stf + + + xar + + + xfdl + + + hvd + + + hvs + + + hvp + + + osf + + + osfpvg + + + saf + + + spf + + + cmp + + + zir + + + zirz + + + zaz + + + vxml + + + wasm + + + wif + + + wgt + + + hlp + + + wsdl + + + wspolicy + + + 7z + + + abw + + + ace + + + arj + + + aab + + + x32 + + + u32 + + + vox + + + aam + + + aas + + + bcpio + + + torrent + + + blb + + + blorb + + + bz + + + bz2 + + + boz + + + cbr + + + cba + + + cbt + + + cbz + + + cb7 + + + vcd + + + cfs + + + chat + + + pgn + + + crx + + + cco + + + nsc + + + cpio + + + csh + + + udeb + + + dgc + + + dir + + + dcr + + + dxr + + + cst + + + cct + + + cxt + + + w3d + + + fgd + + + swa + + + wad + + + ncx + + + dtb + + + res + + + dvi + + + evy + + + eva + + + bdf + + + gsf + + + psf + + + pcf + + + snf + + + pfa + + + pfb + + + pfm + + + afm + + + arc + + + spl + + + gca + + + ulx + + + gnumeric + + + gramps + + + gtar + + + hdf + + + php + + + install + + + jardiff + + + jnlp + + + kdbx + + + latex + + + luac + + + lzh + + + lha + + + run + + + mie + + + prc + + + mobi + + + application + + + lnk + + + wmd + + + wmz + + + xbap + + + mdb + + + obd + + + crd + + + clp + + + com + + + bat + + + mvb + + + m13 + + + m14 + + + wmf + + + emf + + + emz + + + mny + + + pub + + + scd + + + trm + + + wri + + + nc + + + cdf + + + pac + + + nzb + + + pl + + + pm + + + p12 + + + pfx + + + p7b + + + spc + + + p7r + + + rpm + + + ris + + + sea + + + sh + + + shar + + + swf + + + xap + + + sql + + + sit + + + sitx + + + srt + + + sv4cpio + + + sv4crc + + + t3 + + + gam + + + tar + + + tcl + + + tk + + + tex + + + tfm + + + texinfo + + + texi + + + obj + + + ustar + + + hdd + + + ova + + + ovf + + + vbox + + + vbox-extpack + + + vdi + + + vhd + + + vmdk + + + src + + + webapp + + + der + + + crt + + + pem + + + fig + + + xlf + + + xpi + + + xz + + + z1 + + + z2 + + + z3 + + + z4 + + + z5 + + + z6 + + + z7 + + + z8 + + + xaml + + + xav + + + xca + + + xdf + + + xel + + + xns + + + xenc + + + xhtml + + + xht + + + xml + + + xsl + + + xsd + + + rng + + + dtd + + + xop + + + xpl + + + xslt + + + xspf + + + mxml + + + xhvml + + + xvml + + + xvm + + + yang + + + yin + + + zip + + + 3gpp + + + adp + + + amr + + + au + + + snd + + + mid + + + midi + + + kar + + + rmi + + + mxmf + + + mp3 + + + m4a + + + mp4a + + + mpga + + + mp2 + + + mp2a + + + m2a + + + m3a + + + oga + + + ogg + + + spx + + + opus + + + s3m + + + sil + + + uva + + + uvva + + + eol + + + dra + + + dts + + + dtshd + + + lvp + + + pya + + + ecelp4800 + + + ecelp7470 + + + ecelp9600 + + + rip + + + wav + + + weba + + + aac + + + aif + + + aiff + + + aifc + + + caf + + + flac + + + mka + + + m3u + + + wax + + + wma + + + ram + + + ra + + + rmp + + + xm + + + cdx + + + cif + + + cmdf + + + cml + + + csml + + + xyz + + + ttc + + + otf + + + ttf + + + woff + + + woff2 + + + exr + + + apng + + + avci + + + avcs + + + avif + + + bmp + + + cgm + + + drle + + + fits + + + g3 + + + gif + + + heic + + + heics + + + heif + + + heifs + + + hej2 + + + hsj2 + + + ief + + + jls + + + jp2 + + + jpg2 + + + jpeg + + + jpg + + + jpe + + + jph + + + jhc + + + jpm + + + jpx + + + jpf + + + jxr + + + jxra + + + jxrs + + + jxs + + + jxsc + + + jxsi + + + jxss + + + ktx + + + ktx2 + + + png + + + btif + + + pti + + + sgi + + + svg + + + svgz + + + t38 + + + tif + + + tiff + + + tfx + + + psd + + + azv + + + uvi + + + uvvi + + + uvg + + + uvvg + + + djvu + + + djv + + + sub + + + dwg + + + dxf + + + fbs + + + fpx + + + fst + + + mmr + + + rlc + + + ico + + + dds + + + mdi + + + wdp + + + npx + + + b16 + + + tap + + + vtf + + + wbmp + + + xif + + + pcx + + + webp + + + 3ds + + + ras + + + cmx + + + fh + + + fhc + + + fh4 + + + fh5 + + + fh7 + + + jng + + + sid + + + pic + + + pct + + + pnm + + + pbm + + + pgm + + + ppm + + + rgb + + + tga + + + xbm + + + xpm + + + xwd + + + disposition-notification + + + u8msg + + + u8dsn + + + u8mdn + + + u8hdr + + + eml + + + mime + + + wsc + + + 3mf + + + gltf + + + glb + + + igs + + + iges + + + msh + + + mesh + + + silo + + + mtl + + + stpx + + + stpz + + + stpxz + + + dae + + + dwf + + + gdl + + + gtw + + + mts + + + ogex + + + x_b + + + x_t + + + vds + + + usdz + + + bsp + + + vtu + + + wrl + + + vrml + + + x3db + + + x3dbz + + + x3dv + + + x3dvz + + + x3d + + + x3dz + + + appcache + + + manifest + + + ics + + + ifb + + + coffee + + + litcoffee + + + css + + + csv + + + html + + + htm + + + shtml + + + jade + + + jsx + + + less + + + markdown + + + md + + + mml + + + mdx + + + n3 + + + txt + + + text + + + conf + + + def + + + list + + + log + + + in + + + ini + + + dsc + + + rtx + + + sgml + + + sgm + + + shex + + + slim + + + slm + + + spdx + + + stylus + + + styl + + + tsv + + + t + + + tr + + + roff + + + man + + + me + + + ms + + + ttl + + + uri + + + uris + + + urls + + + vcard + + + curl + + + dcurl + + + mcurl + + + scurl + + + ged + + + fly + + + flx + + + gv + + + 3dml + + + spot + + + jad + + + wml + + + wmls + + + vtt + + + s + + + asm + + + c + + + cc + + + cxx + + + cpp + + + h + + + hh + + + dic + + + htc + + + f + + + for + + + f77 + + + f90 + + + hbs + + + java + + + lua + + + mkd + + + nfo + + + opml + + + p + + + pas + + + pde + + + sass + + + scss + + + etx + + + sfv + + + ymp + + + uu + + + vcs + + + vcf + + + yaml + + + yml + + + 3gp + + + 3g2 + + + h261 + + + h263 + + + h264 + + + m4s + + + jpgv + + + jpgm + + + mj2 + + + mjp2 + + + ts + + + mp4 + + + mp4v + + + mpg4 + + + mpeg + + + mpg + + + mpe + + + m1v + + + m2v + + + ogv + + + qt + + + mov + + + uvh + + + uvvh + + + uvm + + + uvvm + + + uvp + + + uvvp + + + uvs + + + uvvs + + + uvv + + + uvvv + + + dvb + + + fvt + + + mxu + + + m4u + + + pyv + + + uvu + + + uvvu + + + viv + + + webm + + + f4v + + + fli + + + flv + + + m4v + + + mkv + + + mk3d + + + mks + + + mng + + + asf + + + asx + + + vob + + + wm + + + wmv + + + wmx + + + wvx + + + avi + + + movie + + + smv + + + ice + + + + MIME type utility to lookup by file extension + + + + + The "octet-stream" subtype is used to indicate that a body contains arbitrary binary data. + See application/octet-stream + + + + + Dictionary of all available types (lazy loaded on first call) + + + + The file extensions (ex: "zip"), the file name, or file path + The mime type string, returns "application/octet-stream" if no known type was found + + + The mime type string, e.g. "application/json" + One or more extensions matching the mime type or null if no match + + + diff --git a/Game/Assets/Supabase/MimeMapping.2.0.0/lib/net461/MimeMapping.xml.meta b/Game/Assets/Supabase/MimeMapping.2.0.0/lib/net461/MimeMapping.xml.meta new file mode 100644 index 0000000..8bd5292 --- /dev/null +++ b/Game/Assets/Supabase/MimeMapping.2.0.0/lib/net461/MimeMapping.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 18a003bb41ce09a49ab7e088f09cd93d +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/MimeMapping.2.0.0/lib/netstandard2.0.meta b/Game/Assets/Supabase/MimeMapping.2.0.0/lib/netstandard2.0.meta new file mode 100644 index 0000000..b978274 --- /dev/null +++ b/Game/Assets/Supabase/MimeMapping.2.0.0/lib/netstandard2.0.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 721d59ab75456594a9386c6e4897abcf +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/MimeMapping.2.0.0/lib/netstandard2.0/MimeMapping.dll b/Game/Assets/Supabase/MimeMapping.2.0.0/lib/netstandard2.0/MimeMapping.dll new file mode 100644 index 0000000..c00bf35 --- /dev/null +++ b/Game/Assets/Supabase/MimeMapping.2.0.0/lib/netstandard2.0/MimeMapping.dll @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:530d9892837057e297cd88d2c619810a84bb6aa7022c81c87396fb18133fb0a5 +size 270848 diff --git a/Game/Assets/Supabase/MimeMapping.2.0.0/lib/netstandard2.0/MimeMapping.dll.meta b/Game/Assets/Supabase/MimeMapping.2.0.0/lib/netstandard2.0/MimeMapping.dll.meta new file mode 100644 index 0000000..e50ca37 --- /dev/null +++ b/Game/Assets/Supabase/MimeMapping.2.0.0/lib/netstandard2.0/MimeMapping.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: 8311fb027b7f2c147b436f4ef2f5acc7 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/MimeMapping.2.0.0/lib/netstandard2.0/MimeMapping.xml b/Game/Assets/Supabase/MimeMapping.2.0.0/lib/netstandard2.0/MimeMapping.xml new file mode 100644 index 0000000..f66b4f7 --- /dev/null +++ b/Game/Assets/Supabase/MimeMapping.2.0.0/lib/netstandard2.0/MimeMapping.xml @@ -0,0 +1,7121 @@ + + + + MimeMapping + + + + + MIME type constants. Last updated on 2023-03-28T04:30:24Z. + Generated from the mime-db source + + + + ez + + + aw + + + atom + + + atomcat + + + atomdeleted + + + atomsvc + + + dwd + + + held + + + rsat + + + bdoc + + + xcs + + + ccxml + + + cdfx + + + cdmia + + + cdmic + + + cdmid + + + cdmio + + + cdmiq + + + cpl + + + cu + + + mpd + + + mpp + + + davmount + + + dbk + + + dssc + + + xdssc + + + es + + + ecma + + + emma + + + emotionml + + + epub + + + exi + + + exp + + + fdt + + + pfr + + + geojson + + + gml + + + gpx + + + gxf + + + gz + + + hjson + + + stk + + + ink + + + inkml + + + ipfix + + + its + + + jar + + + war + + + ear + + + ser + + + class + + + js + + + mjs + + + json + + + map + + + json5 + + + jsonml + + + jsonld + + + lgr + + + lostxml + + + hqx + + + cpt + + + mads + + + webmanifest + + + mrc + + + mrcx + + + ma + + + nb + + + mb + + + mathml + + + mbox + + + mpf + + + mscml + + + metalink + + + meta4 + + + mets + + + maei + + + musd + + + mods + + + m21 + + + mp21 + + + mp4s + + + m4p + + + doc + + + dot + + + mxf + + + nq + + + nt + + + cjs + + + bin + + + dms + + + lrf + + + mar + + + so + + + dist + + + distz + + + pkg + + + bpk + + + dump + + + elc + + + deploy + + + exe + + + dll + + + deb + + + dmg + + + iso + + + img + + + msi + + + msp + + + msm + + + buffer + + + oda + + + opf + + + ogx + + + omdoc + + + onetoc + + + onetoc2 + + + onetmp + + + onepkg + + + oxps + + + relo + + + xer + + + pdf + + + pgp + + + asc + + + sig + + + prf + + + p10 + + + p7m + + + p7c + + + p7s + + + p8 + + + ac + + + cer + + + crl + + + pkipath + + + pki + + + pls + + + ai + + + eps + + + ps + + + provx + + + cww + + + pskcxml + + + raml + + + rdf + + + owl + + + rif + + + rnc + + + rl + + + rld + + + rs + + + rapd + + + sls + + + rusd + + + gbr + + + mft + + + roa + + + rsd + + + rss + + + rtf + + + sbml + + + scq + + + scs + + + spq + + + spp + + + sdp + + + senmlx + + + sensmlx + + + setpay + + + setreg + + + shf + + + siv + + + sieve + + + smi + + + smil + + + rq + + + srx + + + gram + + + grxml + + + sru + + + ssdl + + + ssml + + + swidtag + + + tei + + + teicorpus + + + tfi + + + tsd + + + toml + + + trig + + + ttml + + + ubj + + + rsheet + + + td + + + 1km + + + plb + + + psb + + + pvb + + + tcap + + + pwn + + + aso + + + imp + + + acu + + + atc + + + acutc + + + air + + + fcdt + + + fxp + + + fxpl + + + xdp + + + xfdf + + + age + + + ahead + + + azf + + + azs + + + azw + + + acc + + + ami + + + apk + + + cii + + + fti + + + atx + + + mpkg + + + key + + + m3u8 + + + numbers + + + pages + + + pkpass + + + swi + + + iota + + + aep + + + bmml + + + mpm + + + bmi + + + rep + + + cdxml + + + mmd + + + cdy + + + csl + + + cla + + + rp9 + + + c4g + + + c4d + + + c4f + + + c4p + + + c4u + + + c11amc + + + c11amz + + + csp + + + cdbcmsg + + + cmc + + + clkx + + + clkk + + + clkp + + + clkt + + + clkw + + + wbs + + + pml + + + ppd + + + car + + + pcurl + + + dart + + + rdz + + + dbf + + + uvf + + + uvvf + + + uvd + + + uvvd + + + uvt + + + uvvt + + + uvx + + + uvvx + + + uvz + + + uvvz + + + fe_launch + + + dna + + + mlp + + + dpg + + + dfac + + + kpxx + + + ait + + + svc + + + geo + + + mag + + + nml + + + esf + + + msf + + + qam + + + slt + + + ssf + + + es3 + + + et3 + + + ez2 + + + ez3 + + + fdf + + + mseed + + + seed + + + dataless + + + gph + + + ftc + + + fm + + + frame + + + maker + + + book + + + fnc + + + ltf + + + fsc + + + oas + + + oa2 + + + oa3 + + + fg5 + + + bh2 + + + ddd + + + xdw + + + xbd + + + fzs + + + txd + + + ggb + + + ggt + + + gex + + + gre + + + gxt + + + g2w + + + g3w + + + gmx + + + gdoc + + + gslides + + + gsheet + + + kml + + + kmz + + + gqf + + + gqs + + + gac + + + ghf + + + gim + + + grv + + + gtm + + + tpl + + + vcg + + + hal + + + zmm + + + hbci + + + les + + + hpgl + + + hpid + + + hps + + + jlt + + + pcl + + + pclxl + + + sfd-hdstx + + + mpy + + + afp + + + listafp + + + list3820 + + + irm + + + sc + + + icc + + + icm + + + igl + + + ivp + + + ivu + + + igm + + + xpw + + + xpx + + + i2g + + + qbo + + + qfx + + + rcprofile + + + irp + + + xpr + + + fcs + + + jam + + + rms + + + jisp + + + joda + + + ktz + + + ktr + + + karbon + + + chrt + + + kfo + + + flw + + + kon + + + kpr + + + kpt + + + ksp + + + kwd + + + kwt + + + htke + + + kia + + + kne + + + knp + + + skp + + + skd + + + skt + + + skm + + + sse + + + lasxml + + + lbd + + + lbe + + + 123 + + + apr + + + pre + + + nsf + + + org + + + scm + + + lwp + + + portpkg + + + mvt + + + mcd + + + mc1 + + + cdkey + + + mwf + + + mfm + + + flo + + + igx + + + mif + + + daf + + + dis + + + mbk + + + mqy + + + msl + + + plc + + + txf + + + mpn + + + mpc + + + xul + + + cil + + + cab + + + xls + + + xlm + + + xla + + + xlc + + + xlt + + + xlw + + + xlam + + + xlsb + + + xlsm + + + xltm + + + eot + + + chm + + + ims + + + lrm + + + thmx + + + msg + + + cat + + + stl + + + ppt + + + pps + + + pot + + + ppam + + + pptm + + + sldm + + + ppsm + + + potm + + + mpt + + + docm + + + dotm + + + wps + + + wks + + + wcm + + + wdb + + + wpl + + + xps + + + mseq + + + mus + + + msty + + + taglet + + + nlu + + + ntf + + + nitf + + + nnd + + + nns + + + nnw + + + ngdat + + + n-gage + + + rpst + + + rpss + + + edm + + + edx + + + ext + + + odc + + + otc + + + odb + + + odf + + + odft + + + odg + + + otg + + + odi + + + oti + + + odp + + + otp + + + ods + + + ots + + + odt + + + odm + + + ott + + + oth + + + xo + + + dd2 + + + obgx + + + oxt + + + osm + + + pptx + + + sldx + + + ppsx + + + potx + + + xlsx + + + xltx + + + docx + + + dotx + + + mgp + + + dp + + + esa + + + pdb + + + pqa + + + oprc + + + paw + + + str + + + ei6 + + + efif + + + wg + + + plf + + + pbd + + + box + + + mgz + + + qps + + + ptid + + + qxd + + + qxt + + + qwd + + + qwt + + + qxl + + + qxb + + + rar + + + bed + + + mxl + + + musicxml + + + cryptonote + + + cod + + + rm + + + rmvb + + + link66 + + + st + + + see + + + sema + + + semd + + + semf + + + ifm + + + itp + + + iif + + + ipk + + + twd + + + twds + + + mmf + + + teacher + + + fo + + + sdkm + + + sdkd + + + dxp + + + sfs + + + sdc + + + sda + + + sdd + + + smf + + + sdw + + + vor + + + sgl + + + smzip + + + sm + + + wadl + + + sxc + + + stc + + + sxd + + + std + + + sxi + + + sti + + + sxm + + + sxw + + + sxg + + + stw + + + sus + + + susp + + + svd + + + sis + + + sisx + + + xsm + + + bdm + + + xdm + + + ddf + + + tao + + + pcap + + + cap + + + dmp + + + tmo + + + tpt + + + mxs + + + tra + + + ufd + + + ufdl + + + utz + + + umj + + + unityweb + + + uoml + + + vcx + + + vsd + + + vst + + + vss + + + vsw + + + vis + + + vsf + + + wbxml + + + wmlc + + + wmlsc + + + wtb + + + nbp + + + wpd + + + wqd + + + stf + + + xar + + + xfdl + + + hvd + + + hvs + + + hvp + + + osf + + + osfpvg + + + saf + + + spf + + + cmp + + + zir + + + zirz + + + zaz + + + vxml + + + wasm + + + wif + + + wgt + + + hlp + + + wsdl + + + wspolicy + + + 7z + + + abw + + + ace + + + arj + + + aab + + + x32 + + + u32 + + + vox + + + aam + + + aas + + + bcpio + + + torrent + + + blb + + + blorb + + + bz + + + bz2 + + + boz + + + cbr + + + cba + + + cbt + + + cbz + + + cb7 + + + vcd + + + cfs + + + chat + + + pgn + + + crx + + + cco + + + nsc + + + cpio + + + csh + + + udeb + + + dgc + + + dir + + + dcr + + + dxr + + + cst + + + cct + + + cxt + + + w3d + + + fgd + + + swa + + + wad + + + ncx + + + dtb + + + res + + + dvi + + + evy + + + eva + + + bdf + + + gsf + + + psf + + + pcf + + + snf + + + pfa + + + pfb + + + pfm + + + afm + + + arc + + + spl + + + gca + + + ulx + + + gnumeric + + + gramps + + + gtar + + + hdf + + + php + + + install + + + jardiff + + + jnlp + + + kdbx + + + latex + + + luac + + + lzh + + + lha + + + run + + + mie + + + prc + + + mobi + + + application + + + lnk + + + wmd + + + wmz + + + xbap + + + mdb + + + obd + + + crd + + + clp + + + com + + + bat + + + mvb + + + m13 + + + m14 + + + wmf + + + emf + + + emz + + + mny + + + pub + + + scd + + + trm + + + wri + + + nc + + + cdf + + + pac + + + nzb + + + pl + + + pm + + + p12 + + + pfx + + + p7b + + + spc + + + p7r + + + rpm + + + ris + + + sea + + + sh + + + shar + + + swf + + + xap + + + sql + + + sit + + + sitx + + + srt + + + sv4cpio + + + sv4crc + + + t3 + + + gam + + + tar + + + tcl + + + tk + + + tex + + + tfm + + + texinfo + + + texi + + + obj + + + ustar + + + hdd + + + ova + + + ovf + + + vbox + + + vbox-extpack + + + vdi + + + vhd + + + vmdk + + + src + + + webapp + + + der + + + crt + + + pem + + + fig + + + xlf + + + xpi + + + xz + + + z1 + + + z2 + + + z3 + + + z4 + + + z5 + + + z6 + + + z7 + + + z8 + + + xaml + + + xav + + + xca + + + xdf + + + xel + + + xns + + + xenc + + + xhtml + + + xht + + + xml + + + xsl + + + xsd + + + rng + + + dtd + + + xop + + + xpl + + + xslt + + + xspf + + + mxml + + + xhvml + + + xvml + + + xvm + + + yang + + + yin + + + zip + + + 3gpp + + + adp + + + amr + + + au + + + snd + + + mid + + + midi + + + kar + + + rmi + + + mxmf + + + mp3 + + + m4a + + + mp4a + + + mpga + + + mp2 + + + mp2a + + + m2a + + + m3a + + + oga + + + ogg + + + spx + + + opus + + + s3m + + + sil + + + uva + + + uvva + + + eol + + + dra + + + dts + + + dtshd + + + lvp + + + pya + + + ecelp4800 + + + ecelp7470 + + + ecelp9600 + + + rip + + + wav + + + weba + + + aac + + + aif + + + aiff + + + aifc + + + caf + + + flac + + + mka + + + m3u + + + wax + + + wma + + + ram + + + ra + + + rmp + + + xm + + + cdx + + + cif + + + cmdf + + + cml + + + csml + + + xyz + + + ttc + + + otf + + + ttf + + + woff + + + woff2 + + + exr + + + apng + + + avci + + + avcs + + + avif + + + bmp + + + cgm + + + drle + + + fits + + + g3 + + + gif + + + heic + + + heics + + + heif + + + heifs + + + hej2 + + + hsj2 + + + ief + + + jls + + + jp2 + + + jpg2 + + + jpeg + + + jpg + + + jpe + + + jph + + + jhc + + + jpm + + + jpx + + + jpf + + + jxr + + + jxra + + + jxrs + + + jxs + + + jxsc + + + jxsi + + + jxss + + + ktx + + + ktx2 + + + png + + + btif + + + pti + + + sgi + + + svg + + + svgz + + + t38 + + + tif + + + tiff + + + tfx + + + psd + + + azv + + + uvi + + + uvvi + + + uvg + + + uvvg + + + djvu + + + djv + + + sub + + + dwg + + + dxf + + + fbs + + + fpx + + + fst + + + mmr + + + rlc + + + ico + + + dds + + + mdi + + + wdp + + + npx + + + b16 + + + tap + + + vtf + + + wbmp + + + xif + + + pcx + + + webp + + + 3ds + + + ras + + + cmx + + + fh + + + fhc + + + fh4 + + + fh5 + + + fh7 + + + jng + + + sid + + + pic + + + pct + + + pnm + + + pbm + + + pgm + + + ppm + + + rgb + + + tga + + + xbm + + + xpm + + + xwd + + + disposition-notification + + + u8msg + + + u8dsn + + + u8mdn + + + u8hdr + + + eml + + + mime + + + wsc + + + 3mf + + + gltf + + + glb + + + igs + + + iges + + + msh + + + mesh + + + silo + + + mtl + + + stpx + + + stpz + + + stpxz + + + dae + + + dwf + + + gdl + + + gtw + + + mts + + + ogex + + + x_b + + + x_t + + + vds + + + usdz + + + bsp + + + vtu + + + wrl + + + vrml + + + x3db + + + x3dbz + + + x3dv + + + x3dvz + + + x3d + + + x3dz + + + appcache + + + manifest + + + ics + + + ifb + + + coffee + + + litcoffee + + + css + + + csv + + + html + + + htm + + + shtml + + + jade + + + jsx + + + less + + + markdown + + + md + + + mml + + + mdx + + + n3 + + + txt + + + text + + + conf + + + def + + + list + + + log + + + in + + + ini + + + dsc + + + rtx + + + sgml + + + sgm + + + shex + + + slim + + + slm + + + spdx + + + stylus + + + styl + + + tsv + + + t + + + tr + + + roff + + + man + + + me + + + ms + + + ttl + + + uri + + + uris + + + urls + + + vcard + + + curl + + + dcurl + + + mcurl + + + scurl + + + ged + + + fly + + + flx + + + gv + + + 3dml + + + spot + + + jad + + + wml + + + wmls + + + vtt + + + s + + + asm + + + c + + + cc + + + cxx + + + cpp + + + h + + + hh + + + dic + + + htc + + + f + + + for + + + f77 + + + f90 + + + hbs + + + java + + + lua + + + mkd + + + nfo + + + opml + + + p + + + pas + + + pde + + + sass + + + scss + + + etx + + + sfv + + + ymp + + + uu + + + vcs + + + vcf + + + yaml + + + yml + + + 3gp + + + 3g2 + + + h261 + + + h263 + + + h264 + + + m4s + + + jpgv + + + jpgm + + + mj2 + + + mjp2 + + + ts + + + mp4 + + + mp4v + + + mpg4 + + + mpeg + + + mpg + + + mpe + + + m1v + + + m2v + + + ogv + + + qt + + + mov + + + uvh + + + uvvh + + + uvm + + + uvvm + + + uvp + + + uvvp + + + uvs + + + uvvs + + + uvv + + + uvvv + + + dvb + + + fvt + + + mxu + + + m4u + + + pyv + + + uvu + + + uvvu + + + viv + + + webm + + + f4v + + + fli + + + flv + + + m4v + + + mkv + + + mk3d + + + mks + + + mng + + + asf + + + asx + + + vob + + + wm + + + wmv + + + wmx + + + wvx + + + avi + + + movie + + + smv + + + ice + + + File extensions + + + ez + + + aw + + + atom + + + atomcat + + + atomdeleted + + + atomsvc + + + dwd + + + held + + + rsat + + + bdoc + + + xcs + + + ccxml + + + cdfx + + + cdmia + + + cdmic + + + cdmid + + + cdmio + + + cdmiq + + + cpl + + + cu + + + mpd + + + mpp + + + davmount + + + dbk + + + dssc + + + xdssc + + + es + + + ecma + + + emma + + + emotionml + + + epub + + + exi + + + exp + + + fdt + + + pfr + + + geojson + + + gml + + + gpx + + + gxf + + + gz + + + hjson + + + stk + + + ink + + + inkml + + + ipfix + + + its + + + jar + + + war + + + ear + + + ser + + + class + + + js + + + mjs + + + json + + + map + + + json5 + + + jsonml + + + jsonld + + + lgr + + + lostxml + + + hqx + + + cpt + + + mads + + + webmanifest + + + mrc + + + mrcx + + + ma + + + nb + + + mb + + + mathml + + + mbox + + + mpf + + + mscml + + + metalink + + + meta4 + + + mets + + + maei + + + musd + + + mods + + + m21 + + + mp21 + + + mp4s + + + m4p + + + doc + + + dot + + + mxf + + + nq + + + nt + + + cjs + + + bin + + + dms + + + lrf + + + mar + + + so + + + dist + + + distz + + + pkg + + + bpk + + + dump + + + elc + + + deploy + + + exe + + + dll + + + deb + + + dmg + + + iso + + + img + + + msi + + + msp + + + msm + + + buffer + + + oda + + + opf + + + ogx + + + omdoc + + + onetoc + + + onetoc2 + + + onetmp + + + onepkg + + + oxps + + + relo + + + xer + + + pdf + + + pgp + + + asc + + + sig + + + prf + + + p10 + + + p7m + + + p7c + + + p7s + + + p8 + + + ac + + + cer + + + crl + + + pkipath + + + pki + + + pls + + + ai + + + eps + + + ps + + + provx + + + cww + + + pskcxml + + + raml + + + rdf + + + owl + + + rif + + + rnc + + + rl + + + rld + + + rs + + + rapd + + + sls + + + rusd + + + gbr + + + mft + + + roa + + + rsd + + + rss + + + rtf + + + sbml + + + scq + + + scs + + + spq + + + spp + + + sdp + + + senmlx + + + sensmlx + + + setpay + + + setreg + + + shf + + + siv + + + sieve + + + smi + + + smil + + + rq + + + srx + + + gram + + + grxml + + + sru + + + ssdl + + + ssml + + + swidtag + + + tei + + + teicorpus + + + tfi + + + tsd + + + toml + + + trig + + + ttml + + + ubj + + + rsheet + + + td + + + 1km + + + plb + + + psb + + + pvb + + + tcap + + + pwn + + + aso + + + imp + + + acu + + + atc + + + acutc + + + air + + + fcdt + + + fxp + + + fxpl + + + xdp + + + xfdf + + + age + + + ahead + + + azf + + + azs + + + azw + + + acc + + + ami + + + apk + + + cii + + + fti + + + atx + + + mpkg + + + key + + + m3u8 + + + numbers + + + pages + + + pkpass + + + swi + + + iota + + + aep + + + bmml + + + mpm + + + bmi + + + rep + + + cdxml + + + mmd + + + cdy + + + csl + + + cla + + + rp9 + + + c4g + + + c4d + + + c4f + + + c4p + + + c4u + + + c11amc + + + c11amz + + + csp + + + cdbcmsg + + + cmc + + + clkx + + + clkk + + + clkp + + + clkt + + + clkw + + + wbs + + + pml + + + ppd + + + car + + + pcurl + + + dart + + + rdz + + + dbf + + + uvf + + + uvvf + + + uvd + + + uvvd + + + uvt + + + uvvt + + + uvx + + + uvvx + + + uvz + + + uvvz + + + fe_launch + + + dna + + + mlp + + + dpg + + + dfac + + + kpxx + + + ait + + + svc + + + geo + + + mag + + + nml + + + esf + + + msf + + + qam + + + slt + + + ssf + + + es3 + + + et3 + + + ez2 + + + ez3 + + + fdf + + + mseed + + + seed + + + dataless + + + gph + + + ftc + + + fm + + + frame + + + maker + + + book + + + fnc + + + ltf + + + fsc + + + oas + + + oa2 + + + oa3 + + + fg5 + + + bh2 + + + ddd + + + xdw + + + xbd + + + fzs + + + txd + + + ggb + + + ggt + + + gex + + + gre + + + gxt + + + g2w + + + g3w + + + gmx + + + gdoc + + + gslides + + + gsheet + + + kml + + + kmz + + + gqf + + + gqs + + + gac + + + ghf + + + gim + + + grv + + + gtm + + + tpl + + + vcg + + + hal + + + zmm + + + hbci + + + les + + + hpgl + + + hpid + + + hps + + + jlt + + + pcl + + + pclxl + + + sfd-hdstx + + + mpy + + + afp + + + listafp + + + list3820 + + + irm + + + sc + + + icc + + + icm + + + igl + + + ivp + + + ivu + + + igm + + + xpw + + + xpx + + + i2g + + + qbo + + + qfx + + + rcprofile + + + irp + + + xpr + + + fcs + + + jam + + + rms + + + jisp + + + joda + + + ktz + + + ktr + + + karbon + + + chrt + + + kfo + + + flw + + + kon + + + kpr + + + kpt + + + ksp + + + kwd + + + kwt + + + htke + + + kia + + + kne + + + knp + + + skp + + + skd + + + skt + + + skm + + + sse + + + lasxml + + + lbd + + + lbe + + + 123 + + + apr + + + pre + + + nsf + + + org + + + scm + + + lwp + + + portpkg + + + mvt + + + mcd + + + mc1 + + + cdkey + + + mwf + + + mfm + + + flo + + + igx + + + mif + + + daf + + + dis + + + mbk + + + mqy + + + msl + + + plc + + + txf + + + mpn + + + mpc + + + xul + + + cil + + + cab + + + xls + + + xlm + + + xla + + + xlc + + + xlt + + + xlw + + + xlam + + + xlsb + + + xlsm + + + xltm + + + eot + + + chm + + + ims + + + lrm + + + thmx + + + msg + + + cat + + + stl + + + ppt + + + pps + + + pot + + + ppam + + + pptm + + + sldm + + + ppsm + + + potm + + + mpt + + + docm + + + dotm + + + wps + + + wks + + + wcm + + + wdb + + + wpl + + + xps + + + mseq + + + mus + + + msty + + + taglet + + + nlu + + + ntf + + + nitf + + + nnd + + + nns + + + nnw + + + ngdat + + + n-gage + + + rpst + + + rpss + + + edm + + + edx + + + ext + + + odc + + + otc + + + odb + + + odf + + + odft + + + odg + + + otg + + + odi + + + oti + + + odp + + + otp + + + ods + + + ots + + + odt + + + odm + + + ott + + + oth + + + xo + + + dd2 + + + obgx + + + oxt + + + osm + + + pptx + + + sldx + + + ppsx + + + potx + + + xlsx + + + xltx + + + docx + + + dotx + + + mgp + + + dp + + + esa + + + pdb + + + pqa + + + oprc + + + paw + + + str + + + ei6 + + + efif + + + wg + + + plf + + + pbd + + + box + + + mgz + + + qps + + + ptid + + + qxd + + + qxt + + + qwd + + + qwt + + + qxl + + + qxb + + + rar + + + bed + + + mxl + + + musicxml + + + cryptonote + + + cod + + + rm + + + rmvb + + + link66 + + + st + + + see + + + sema + + + semd + + + semf + + + ifm + + + itp + + + iif + + + ipk + + + twd + + + twds + + + mmf + + + teacher + + + fo + + + sdkm + + + sdkd + + + dxp + + + sfs + + + sdc + + + sda + + + sdd + + + smf + + + sdw + + + vor + + + sgl + + + smzip + + + sm + + + wadl + + + sxc + + + stc + + + sxd + + + std + + + sxi + + + sti + + + sxm + + + sxw + + + sxg + + + stw + + + sus + + + susp + + + svd + + + sis + + + sisx + + + xsm + + + bdm + + + xdm + + + ddf + + + tao + + + pcap + + + cap + + + dmp + + + tmo + + + tpt + + + mxs + + + tra + + + ufd + + + ufdl + + + utz + + + umj + + + unityweb + + + uoml + + + vcx + + + vsd + + + vst + + + vss + + + vsw + + + vis + + + vsf + + + wbxml + + + wmlc + + + wmlsc + + + wtb + + + nbp + + + wpd + + + wqd + + + stf + + + xar + + + xfdl + + + hvd + + + hvs + + + hvp + + + osf + + + osfpvg + + + saf + + + spf + + + cmp + + + zir + + + zirz + + + zaz + + + vxml + + + wasm + + + wif + + + wgt + + + hlp + + + wsdl + + + wspolicy + + + 7z + + + abw + + + ace + + + arj + + + aab + + + x32 + + + u32 + + + vox + + + aam + + + aas + + + bcpio + + + torrent + + + blb + + + blorb + + + bz + + + bz2 + + + boz + + + cbr + + + cba + + + cbt + + + cbz + + + cb7 + + + vcd + + + cfs + + + chat + + + pgn + + + crx + + + cco + + + nsc + + + cpio + + + csh + + + udeb + + + dgc + + + dir + + + dcr + + + dxr + + + cst + + + cct + + + cxt + + + w3d + + + fgd + + + swa + + + wad + + + ncx + + + dtb + + + res + + + dvi + + + evy + + + eva + + + bdf + + + gsf + + + psf + + + pcf + + + snf + + + pfa + + + pfb + + + pfm + + + afm + + + arc + + + spl + + + gca + + + ulx + + + gnumeric + + + gramps + + + gtar + + + hdf + + + php + + + install + + + jardiff + + + jnlp + + + kdbx + + + latex + + + luac + + + lzh + + + lha + + + run + + + mie + + + prc + + + mobi + + + application + + + lnk + + + wmd + + + wmz + + + xbap + + + mdb + + + obd + + + crd + + + clp + + + com + + + bat + + + mvb + + + m13 + + + m14 + + + wmf + + + emf + + + emz + + + mny + + + pub + + + scd + + + trm + + + wri + + + nc + + + cdf + + + pac + + + nzb + + + pl + + + pm + + + p12 + + + pfx + + + p7b + + + spc + + + p7r + + + rpm + + + ris + + + sea + + + sh + + + shar + + + swf + + + xap + + + sql + + + sit + + + sitx + + + srt + + + sv4cpio + + + sv4crc + + + t3 + + + gam + + + tar + + + tcl + + + tk + + + tex + + + tfm + + + texinfo + + + texi + + + obj + + + ustar + + + hdd + + + ova + + + ovf + + + vbox + + + vbox-extpack + + + vdi + + + vhd + + + vmdk + + + src + + + webapp + + + der + + + crt + + + pem + + + fig + + + xlf + + + xpi + + + xz + + + z1 + + + z2 + + + z3 + + + z4 + + + z5 + + + z6 + + + z7 + + + z8 + + + xaml + + + xav + + + xca + + + xdf + + + xel + + + xns + + + xenc + + + xhtml + + + xht + + + xml + + + xsl + + + xsd + + + rng + + + dtd + + + xop + + + xpl + + + xslt + + + xspf + + + mxml + + + xhvml + + + xvml + + + xvm + + + yang + + + yin + + + zip + + + 3gpp + + + adp + + + amr + + + au + + + snd + + + mid + + + midi + + + kar + + + rmi + + + mxmf + + + mp3 + + + m4a + + + mp4a + + + mpga + + + mp2 + + + mp2a + + + m2a + + + m3a + + + oga + + + ogg + + + spx + + + opus + + + s3m + + + sil + + + uva + + + uvva + + + eol + + + dra + + + dts + + + dtshd + + + lvp + + + pya + + + ecelp4800 + + + ecelp7470 + + + ecelp9600 + + + rip + + + wav + + + weba + + + aac + + + aif + + + aiff + + + aifc + + + caf + + + flac + + + mka + + + m3u + + + wax + + + wma + + + ram + + + ra + + + rmp + + + xm + + + cdx + + + cif + + + cmdf + + + cml + + + csml + + + xyz + + + ttc + + + otf + + + ttf + + + woff + + + woff2 + + + exr + + + apng + + + avci + + + avcs + + + avif + + + bmp + + + cgm + + + drle + + + fits + + + g3 + + + gif + + + heic + + + heics + + + heif + + + heifs + + + hej2 + + + hsj2 + + + ief + + + jls + + + jp2 + + + jpg2 + + + jpeg + + + jpg + + + jpe + + + jph + + + jhc + + + jpm + + + jpx + + + jpf + + + jxr + + + jxra + + + jxrs + + + jxs + + + jxsc + + + jxsi + + + jxss + + + ktx + + + ktx2 + + + png + + + btif + + + pti + + + sgi + + + svg + + + svgz + + + t38 + + + tif + + + tiff + + + tfx + + + psd + + + azv + + + uvi + + + uvvi + + + uvg + + + uvvg + + + djvu + + + djv + + + sub + + + dwg + + + dxf + + + fbs + + + fpx + + + fst + + + mmr + + + rlc + + + ico + + + dds + + + mdi + + + wdp + + + npx + + + b16 + + + tap + + + vtf + + + wbmp + + + xif + + + pcx + + + webp + + + 3ds + + + ras + + + cmx + + + fh + + + fhc + + + fh4 + + + fh5 + + + fh7 + + + jng + + + sid + + + pic + + + pct + + + pnm + + + pbm + + + pgm + + + ppm + + + rgb + + + tga + + + xbm + + + xpm + + + xwd + + + disposition-notification + + + u8msg + + + u8dsn + + + u8mdn + + + u8hdr + + + eml + + + mime + + + wsc + + + 3mf + + + gltf + + + glb + + + igs + + + iges + + + msh + + + mesh + + + silo + + + mtl + + + stpx + + + stpz + + + stpxz + + + dae + + + dwf + + + gdl + + + gtw + + + mts + + + ogex + + + x_b + + + x_t + + + vds + + + usdz + + + bsp + + + vtu + + + wrl + + + vrml + + + x3db + + + x3dbz + + + x3dv + + + x3dvz + + + x3d + + + x3dz + + + appcache + + + manifest + + + ics + + + ifb + + + coffee + + + litcoffee + + + css + + + csv + + + html + + + htm + + + shtml + + + jade + + + jsx + + + less + + + markdown + + + md + + + mml + + + mdx + + + n3 + + + txt + + + text + + + conf + + + def + + + list + + + log + + + in + + + ini + + + dsc + + + rtx + + + sgml + + + sgm + + + shex + + + slim + + + slm + + + spdx + + + stylus + + + styl + + + tsv + + + t + + + tr + + + roff + + + man + + + me + + + ms + + + ttl + + + uri + + + uris + + + urls + + + vcard + + + curl + + + dcurl + + + mcurl + + + scurl + + + ged + + + fly + + + flx + + + gv + + + 3dml + + + spot + + + jad + + + wml + + + wmls + + + vtt + + + s + + + asm + + + c + + + cc + + + cxx + + + cpp + + + h + + + hh + + + dic + + + htc + + + f + + + for + + + f77 + + + f90 + + + hbs + + + java + + + lua + + + mkd + + + nfo + + + opml + + + p + + + pas + + + pde + + + sass + + + scss + + + etx + + + sfv + + + ymp + + + uu + + + vcs + + + vcf + + + yaml + + + yml + + + 3gp + + + 3g2 + + + h261 + + + h263 + + + h264 + + + m4s + + + jpgv + + + jpgm + + + mj2 + + + mjp2 + + + ts + + + mp4 + + + mp4v + + + mpg4 + + + mpeg + + + mpg + + + mpe + + + m1v + + + m2v + + + ogv + + + qt + + + mov + + + uvh + + + uvvh + + + uvm + + + uvvm + + + uvp + + + uvvp + + + uvs + + + uvvs + + + uvv + + + uvvv + + + dvb + + + fvt + + + mxu + + + m4u + + + pyv + + + uvu + + + uvvu + + + viv + + + webm + + + f4v + + + fli + + + flv + + + m4v + + + mkv + + + mk3d + + + mks + + + mng + + + asf + + + asx + + + vob + + + wm + + + wmv + + + wmx + + + wvx + + + avi + + + movie + + + smv + + + ice + + + + MIME type utility to lookup by file extension + + + + + The "octet-stream" subtype is used to indicate that a body contains arbitrary binary data. + See application/octet-stream + + + + + Dictionary of all available types (lazy loaded on first call) + + + + The file extensions (ex: "zip"), the file name, or file path + The mime type string, returns "application/octet-stream" if no known type was found + + + The mime type string, e.g. "application/json" + One or more extensions matching the mime type or null if no match + + + diff --git a/Game/Assets/Supabase/MimeMapping.2.0.0/lib/netstandard2.0/MimeMapping.xml.meta b/Game/Assets/Supabase/MimeMapping.2.0.0/lib/netstandard2.0/MimeMapping.xml.meta new file mode 100644 index 0000000..7b22f5b --- /dev/null +++ b/Game/Assets/Supabase/MimeMapping.2.0.0/lib/netstandard2.0/MimeMapping.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 83ee97473ee89a649b4a97a8123b8794 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3.meta b/Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3.meta new file mode 100644 index 0000000..2ff02a1 --- /dev/null +++ b/Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a648c4dfee1ec994fa945d4a2a0e8a47 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/.signature.p7s b/Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/.signature.p7s new file mode 100644 index 0000000000000000000000000000000000000000..d88fcec9037320a4d0cabdc6d97fc68cfe4c1b4e GIT binary patch literal 24206 zcmeHvbzD_zyDf|EmX1XuITziHq|zxV-Q6g#C<&!g6p#|6k&-SY6r@8!T0ufU5D>Ww z6}P%Q-`?Ln_w4W7-%tP18SiwiIp1fD@jT;sCjd2yL`Gu?lMg$<0-?ZXL5=(XsF4>u z2myivU?HQKgvo;}5D?)(NN|ApA18vcbP%<)EnMAfoE(K9=;&M=5Izn89)JVF0RbQ! z+#Ea{uwCr(rf$|ktj?bLI-HlZbvYHK)qUmFy;!*v6#zb0J6$V?f|e@3g_f_9+7&)t zRem#3bo4AJjV}O2s0E<#nOO+%Ab5CO%+*)R#1of3#VnhAB;N)E&+hB%9fOcy_hkXW z0ML*Tv=EUA;I%X$7XX5@4Riub85=7bX$x0(u!5r*gcKk?+l@hh>*eLeVGcWF20O%I z=HvjO2WZa@ArO#%8zJfD=HY5#4pxu>t2;TlgQX<_Dq<{v4+4PzU;gM5V{yZ_zHRuQbeb{oX3<{%d$1t0 zt_kLcz^TFuNnEBP)fLPkk&)Ax=$OI8zA>@Ik*hu$29OYzeVkM-KF?>fGa?V}Z`mHx z?5La0WrD}47b+${k(dwRUo}3|CE;z9d!EgAXcsV2E+E!M-Vx0`Il)Qti5aJ=Ab709 zQKr?DH<{>@UPhFs!}z=VN?5F?7_L+IOkUiM<$dC<6%NiGSav|~R`7?Ua@*6s34g(* zfB!K76mLV2_->kzYxc@f?&K&j#G^FyI&G;q=u+4|vrl)$)RGQy=M4(%@<;Lc+Eq=J zDH}xv+qGQ}#FL0#oMtDlqZ*TVslX$E;6OQMfGL0td#RK-AkZlyB5Wds0XS#d1ZUew z00QhUfbwhyHX;!sq3rtovc32|D1==ts-S@8?yf^O4nTc&m=2KyAPW5T2|vz5*lPg6 z-N$a6TiDoMbanGJPi#4GwVdEulJdA#8os_WIytLdmHDinkhvZ!#l!$#S$AnzG+04a zH-*=R?19{x_7k6n_!Cw^A#(v}B8e+?jBMa0(JJPM1LITLg_IELHx^srujbmU6sio@ zE74fi88^I}uZy$p)-v)s7)O9=6s~51knTJbWoUa=6VU$7DeTFSx%GMwd*ZrO?NKz< z%(ZvTs#dl3O}p=??J)UJhywWi3$Hr(zQey{5w9!9FIh))Z7Rl*5>f>vFebq2sV4O|6y{1+|}JMYXcv2wj%*{`L+4 zMFIdQBFWd#MMNVZHy&-U^w5y5c1lu3{eI?R{G*`@;f4TQToA6a;Dv=Qm%w+Mfa`x3 zK_CDpY_h-*g!vnSXvj-)fxm+hX(w|Fu!fD5qm8508Jzr89Df+Dq6omoE3@)K8ODGp zkPf^!mQAY=dMWchVEMt_mt5m6Yo2$JIBH{#;-y>j4kJeRNylr7wll)=CK!sbeVB!A zycx6_esX+~>FKZ^UE)$4U2?1!^e{Vw&JtgfTh+aSnX!T1roCN#htMiALUx2bJLks=1hYa@!6L{$AH@oVNR~ z+0+i)8k<5Zt_8bELQ$3kqHNv3FL2D=MDAtga~GbF&M_nmeu-l!=sE03^#J&1vG_T5 zQ2}IF?81ZK{uJM5uusW=hzX!0qp~8yr~w550q{BhHwc920N4Ta=i2}%jKtdA-C2l} z)5*-u`3FV-q`#d7AIAUnEHl$H!f^ZHM9%Zq{q;pF$egi-v?Pa_t2+=Bbaq43h`xX~ zAe1GL#TUkNekoUbp1*q?`#+E6{`+H9&TavWC=Xl$1d!3s*gWjS9u6K6U;&uVeorX?8bHzi> z!kxp()e5X`;q2sQ0@1HR@1zHDRW>g48R>3)7L!rwUeFR^tq;Bi=X7YkBS?Utp? z8gf2i8={ZBzr7tD_U@4n4_d5MkV{K?j}rKel`rvLLWr&4t7UsMuQ=a{fa@+INeg6M ze2vTVcftqWO<|eVGrfctC#$?-q);-qaGd1FZFO%*vB2_VXjETWz&$K@gY9-N!)|hq z`MhyieeuxqwmU>x9;KomYFp8lROOJY#9uqKa7qiKsthmlrc*sW6)f_1BXI5G!qY-f zw_o%q%1vWeuMiIMBuG@_AA*)Un{8lHJ&n7;Z~$!fl=(BvXb)+#Ptycmsx)3l2`?%a zV<>HyUw;-Fy|cASC#u043=FDyDQV0ju#SXvc&?Px@N=tv!`4pNlWP4TW`7yff9RwS zs-1}o{hR|r*RaDXKvP} zT&VTp6qLVZ6@QqT=l*3oy@ReCG&wkTq zHiQS@e!_>(kUD{|*y}scMMHTgH0?!ZwxAebP<+XR%FU;j3Zoo)X%qSM$xULGw_ESY zwPPkr7m5TTMVh(&AZZMU0*~eikooD3XyVS<=~Scu6Re4&!=8SkUjX=TT>T;?h?c3RG&n+kZ1R#3zy+4 zs+M3f{j~W5Fj4W|X6?h~3Ra7K9yDQvdt{jmPizY#`(I(|K1k7KgO)$+=G+>GyHPRH zjJ&~8U)u5U1q@PSVOga2S4c&=L#}i0HVxN;AWBn#mxsakj|>wgL$CdaUjKduN%J{~ zVET{bTo8aYT|L~~VHxD-^ihuIEPaG<0|Ef#n+D}R+u;4W`H$QK6#mb-Bm7zJ2oK90 zVUnt4CDzS)wqeOoQ3Rj`Y`EXH7cg-2(1`9tPUyAIUn~&Sedw9~yws081gjIE-X+f! zAX?XclHx%5u+nFz7jJ0EcnnEI9Y>w|$-N7CH<~jGb%^w|T+6HzoZBlOd!*UAaU~Ao z%HVR$L3dF?R@{XhTo%|d$v45HJzz?+i|qYxjjnVje4sJC!?TX`#OUo+vc~nEf#=0M z62=w2mYZJP@((O^bTTz{Z)397suTc|+MB(8hKnUVDn`q^tB}5_1f%KOF@aMxaj6oq zJ{{gqYbrXcZAk2 z##es()qQ+&%XIhNStY7fY_rmpk*)Z6p?jj!a7(fb5jE*Dq^vhu6CVwkI;?X~cFidv z!aciAk<<}$KvP+XSKAP0FY! zd@s;EP9i1^Wu@jth6wv*Y;`p`_h!c88cB~?-(uri;ysPSl6d%6mvL3sAzi($M6_sg z{>mQWW^ZYXJHcvpP8AQsqEy<)WR35FKW0;PwZ`19xPi`?_I}BRGnJD4{bXS!06W)$5LWf)o&6Vdkti)FzrG) z_IMXQf3B zh$J9>b^w7u;QYWh_?P1W|B(5sYe@0{f_z{Y!*dJpfVp6z8deQ}z##ZvL-Xh(PN^5n zCEm4$qk?+m6*r~cb4Ra>2BkQ6HFSnD0-3qDttSlLuk+BO%qyu3drR*Tk5f$@4vkuo zsjFaT>wLVK))x0H2tn+!Grf7$tp(KUJlB;2b@1(^)6;gkgsFG7`sDNp@|CMVV1`}X z;i$@E)a}SuchOoc3XW0(6?nr%)kt5*(s;{qWM{I?leCjP>)K3EaF*hVIexN6v1?%+ zcmJ|76i;5=dKR~dP{;5!34ujdK&473n|!Wz2=CY-M@A9cg+cyLWXOr_{@rWjTr0ip zdj&ZN*zS2{f;A6K@E2c?)gM6Sr%RSdvL@Q-u@5!Lkj3K$ z#gq%9jX%A^rQd#PYoZyY(3Y?<|H$B#(>mi}^l0Uw0Pf0Kf86`#;bW%+QyzoH1X<=_ zJ{C)6<8rtDC`Jb4%HR=${R^bZ8`oYLaqql-{T98T9Dy~ilFz64pahl5Bj4g#!=k+E zu2&q{rRH6EABiZ zg6Uu0zoUP@il;N}B**i)m?C{9d8rXa03iTYNy*{~<2t{NtNl;;!+8w;d=Yzq;_M<| zM3}w

    _+%G(7_Fhq(W)oC_0$pE*m2PDb<=s^?}*qfpwg_A7X@ybtm`yKFTp?v@9M zt`%^-W%d9Q0sg&MnM|dVdpZ7$qx_9RhVl+cqv8sCObtXqvZ^N;O*NsfJa6#3^wA#Z z7sU>|Pq1BF2M>;_`rJ&9jBKlE%9ba&F+CAThDS>B+%zpnd%tJVbG37c+*ta9SmLRt zpy<7kv;oB#=5=Gn>?B?JQL<0tOyVc8gPvhC6y+ucyI2o4Uqxg$3C;^#nR0C4yL-G$ zqoLo?`^NU&eX*C)b==)50)+8t?`Qfo9VQLo38^Kx{Sg+DD%)v1+|>InO?2{5+|N_G z_1wvmpDk3Jte^1>NpmbpxpY9%O)%7X`&sYS$wgiR>Iea?1OCV;wCp~NHxRN@4pIX_ zm-*(50(9gtMyuNRl`FBaC{nO`DvR?lh))?WUiz-AdNu6CrWg z{La@zaq3Z$t@0sC$(J9>NG#skzQEkS@s30rg@qHh6BE^3ggd5`Ia;JI<|YPKi|}4Q zmEY~H>h-?bZ7+hARc7&G{L(y5T6@VusKEuxXZF~=U11&jjNF(gN?F4w@V2%RfV>jV z12u3%33({$f*zJbFOn+jnj*!$ypyZ~YGn7-oiX*;ld@2GnnNAoM;QnkVX}LVOdVUS z7Z^>#*1F3IKP6JGnvn~IX?tIRan@THXN`R2EcD=aXe-3_m^_x#r>whimfv&MSvmV3 zzK8FabAamhc;RQxtuFg)brtUDS5AyXm z!hdlbhE4aseI2Tbmq#IYD-v=KJF*w7H&bSDWuK)kiG)xfbrGn5zqG8Qz%P>9P7LMK%%64mG& z$V8(OnpTnFzm4BOz$L-CA@NiIsX6_oTvz7qM-HR0seHA)IqIvx@Q&`? zSYE2Ixa>s)CCHH)|Ih|86ugA*YI&i!28EfK4X2!}QD7>IBos zrl8ak=fzL=I4=vka7Vwew(7M-PxY(Q^*_~ldCFj~@h-f_j6TXRW0S)wC-}%!Jd zqI9(Mji^zBYVC>hWd#OCRg2ofI-dH7jkxcKCDUlZ1|DCLu8 zFnV93+3~VM3cAhyF7hz4_NI;<* zmK^v&1at`CB^#*MJjn$*3uOuKmr$zkJ>?4}MVYbJYPw?@6tL-0_l`I&DGAh(5-ik~ z9$`1SvWt7C4=Z2m3Z{f+S%FerrJ>wjR5Hy3*f1`ughO3)#BoSVch*i!FSm8KTAm{~ z)H*=Fn6!OcIC;litj{lb8Y^t$H3ze;4*Voe{?VFETzQa5X;RE{(w>&P4~vT*LHb!P zX}(=T3opzO9MEa+kc%N_$!f{{#qn z_Wcz(Awi8mP(2V-0|Zq8u>1Pf%Yq2jwuRheT|jM?p*`!LvJe%2qmYT8?e3f#i|@ zNE^NSWd%hZpGYB9Rf1;I|^2@W)Vi1$?sFLkg5H)HO;<(_v7)hS>ft8t+!#eB9&cBV#!J}Wbr0Vh%8av~Q7waW2;$IH`jG3_ zNOJSK;%SlXClsq!T1q`m%CFt%a1}yQG%a)(01Qs1U5?EQnAsQO;D(+J}#Ji?r^R1Sd;kZH-G?5*xWCY(5|5kwt>$8}EJ z!|sr6dT}ym$SN}rY?9!>X!4JkxkA7Duf8;neb>Kn-UjwpeH*{~uYUJm{YU$+Zov{(kFNm(P~nfLWASv_l=1O(5M)qlc&`>O)$Z}023_XWygs>6FHQDKLM{ftim5-hrTrJB)Nj2A-`d;kKX>@RimB)T ztRoK@5ms0Ip%dYA1r^p1>zvghZJ@O(V4RiXPA*zQG=9*cgVK~F!aV{-UrzQ~fvvsM!1@o_2Rp8_^o{BW-B(_)%pS384;=0t6a&8L zQI$p`1B22sccf|7lU=jrAEou(RVhG5An;<68CeZ@t@mKNg%czH%?^*q+XIBB;SYwC zB}jQM+1hB9*JW$pew#Zg`nqEJgkoaPOW!~<+G#6WRrI4LnsrE~Q}0XgEnX7}c!WN1 zd9iL5wuD(%Ds5Y(-g_;(0j7ucp8ZaA?0Yv{Z0YQ1Px0$C*_m!k2u*I+geRX|9W*E= z>A0NfRtqZ3)G0DzUZ_umRS-*IfSmjlkWu*fYw0!pC*+Dxm@Qe1u6_^5XBEVM0twGb zhg<+RtbF+S&sifoKWvlh9F5KXX3`@J2*PF(%=O|rFR*;?dVObfaq;qjHEkR$G~7)c zoX^`||HAKj62^_W3j( zisuC_M(0$dA?BPCCKwS=B%OyR4Mv=7=CQ4a}m@e!^Y z(>0hcn!U=O7u#=luN0?3^L+cz@RG-ZNscZWh#3w$M02zMjbXPDfZufKUiGkN{SdZY z8s-r9qvsXpewQH(j`jY+?|Mu$>2Nue)9s>XI;TgpEjZ?0x6=>B&0j+H&xrgBzY7)k z|J&~Zf2m=@mcD$mx!}($A+RnuSeE&n=k>WA7ghtju6MgNp~fk-P=*$C!*XnbMryvC zgah|7!2qDq-$HWyRMl`n>Ef|-Bv#Qyn~yea1C%Il#7w#;FqRFjjyr@Og@74&AXd+7 z@ROZ7Rh6$%VxmGH5H%HQ4_t7&1)^o>PqGo0^E!5QCmcV0s1nKM`!MvmwDE>XO_55R zh@>u_%5Vz9s%_*~H#P(>Ui>JlZvu)QL zx}#Pms7z@Z6Zu1WD#o_jS(f$vdlf!uK{?uC57A|N<~na>t)?Cy=ihZL>wMbQX6rKf zgdh;DvnKO-csPB7N{&Lkmu1{L*Nitx@ahHpHxe|8g(*=La1x&j`p%p(n58kXiHh45 zytC|(e6CU>afgOR;zcb1{qt!`Z=t1oCCfZ6@#BnkO9E~W^Fb<2;=)XS7;{E{2t-X0dK0N!ALDUPy&Jx`u{>-V`)R@Tnzt za93xt5%CB*%Qc4>u?_d!u>J4_T>u=$k|#XlJJ_ttW5=KeKTR3nA7P8HZWn~-56a?!l@ehb_ND(={%=wi7*=%rOj*Q#P!^1s+|G#UtQUj( zFZ(cZG-SgmgKu9g7SpVvdo_?bzC5&Qn2n7#%_*Og;w#LOVKsg2f^J)30$#!MqDtEt z+>4P^*UW5&bu)NfT7**86IEjcPZmGW5Jtk&6 zB|RMS{>9UMd3GaNk7SQeGq~C0!EJRb>Pgjd^tKxWrv{|%I|DLk(4n<|H@!a;N=XFS$g`C!1MS9L+)|BSV zr4v6lF|JK@p5u{*^^q(#o;!=Pj^?B&{Gd1-ifXmzMaq`JH?6NVG)j_tlR7L-;=Iz8 zJf5gvn^!A)RB{2CaP1l@!LSXLzxn06ICK4jM$ttNRWI~Z^)`-o3R}zMK3dk^cgzGd3TiiyEr*4hkJjS^Ce%=R6KfY#vv-AtBZK=S z{LXnP3dT#}e{#TnY|JG(gI|WT1!v!{NkIkv8kWCLCw|Fpf21RMHCqI$ThCvZXOC(Z zT0nAUM;8?U{j>j>8c_pK15~muXDNj#oEu4h)h!{%^M}m_({10&w$IJS_CQeVxj}Vi zYy|^Bfq&E3(mfvsGq#k^@8@qBTmSl&+<$_k&z&1VWMi{gh1IFVjn21JB1Nn-CKyip z*p{BJ8PdkTji!Y!tQ!b?FuA(ewZRCDbm1hKxl%K0KR$1g!Md>_Du27q?yEnttY__f;x~|Sl@o_NFNUn?F94lIF?H?&dlnksBqsJx#e};LpD24m(dnMc6L&=S~a>% zyGglg{!$n7aLKAPob&9n)O(~62x}v8{9BjRcY91|I<@6Crtp-axjJsH=q}W}6gxC7 zml}&%B#s*_YSmf{Ybj=8lYEiRt@wa%q~108Mv9Msym4>)v?$k{#~7cLe#D3Uf~U(W zydrQ-%^58AKA`C-nH8Z~0bvv)LESxnH;7hNAYLCK=8e+EPr2(p7Dd)$w7tUX=}=xB zW}-fu9j^4sp$Vb7ic4X3kBLt@z3ea8mp&|W6MC(1sdhBrS&cyJ#9NB@HQ9C2Y;#wX zuTxn&w|b$Ez`rsuX<$ATSXS2`D<-C;yR!FonD|)L?i9s~+9gFsvZwCSusxT*E~k~8 z#WJ~DP1>Oy8}g+sNviE_<5w>yOJW0M$^vmEBOy=(Pgot>6;@RTy#5iAg2(+8Reo2& z&k7m@$iBG*Fs}^j2P5ELxn(^10PA-r!(&1y05Sl!G8K`~a+{T_y}btqYS>>C+4Dq& zG-E*GPuAH{0X{PlLz6Ct45b3xXePO|W4#@Q=rdP?UA+vh-Vr>2|NE#+Vv-n*i+jG@*Iyh5iRRt#+sJL&@OhiEKo-D zX5YyXg&PUbXePSH*l{!J-3|g$15!z?0)AvcKX#q5oUM>MeT{RX<6$ zjjdU9CYKH?lVjuPHNhLoj5L~oBJZCf$O;c&r0NAK^7z`EbSs?b9 zhMpQ1N7PxdSO${6fCC?dTN=BQ`;LW`0QaP%$7oQdsAruo@E37YFBaS#BW!Gc!Qf~^ z%PE|aciioMhrsazsW*z=FWJ|| zB}MiSwbll~8IisADQ&3kD-LVUfc_E-bhu{WJ^{|b3hUa12P#a^hLqLRgJQyz`T=T* z!D;I%+H|))y1M9zm7eCz=IOlyJmR@2@|S2t!@SfTd(7I8KQY>fTvuDL1DGsUgE=jG zo*bn*OOuc`&K~C_$R-!2)z4O^3eg^4Sax2BJ6sQWnmHvGLP;db^ISJZu0lk?EK%SY z+3l;_F(fff@2d4+N_AoS&{e#8!yuOfe4__Wy0P6NGS%S5wTj}yoZpB+BFWGK=)br(TDuYtQ?qPaFbf>8Lz*_)ND*iuaIWh!F#SGg; z|JhRh<@%u?eJ+@#-1_fZ%G@w%DDYR7GCaVDj0syAiU@-8Yr=p59zp~VVxma;!j}3= z%3z{>>v{T9{QQ;m2JrrHVGx9Yi0+Kx&X!b~I@@qKdRTo~-p1+4&1vIkZsE;g>*nML z1daX}cR^i1P&*LR0>G^6A02D`i=eTRoI$8b{gb%`0+FO~rF&bpua>8|l|wWK<*x4m zL6LxGuKRytDKk9ozgn{R#kz)DI!Z`oZcYT4w`)WtR1@TlW3D7_5p?#Ia(ZxW$;MVv z9v~xST!Bs_V}@UdB|K3=G$z9-Jbb+CjvkeAF^_L~CDFDHuf)t7%SwumT$<#R&P&=i zaK|Hc87FwcoD$Q2lE#ZA-r1Jh^q~!Bo->Zn(=Wpq#cbGEXq|MUP79Tn& zEx|LsB&O^i7FC##;icweBFKi4)BNYGV>FiR0dkc)#z)t%DCy@h@6#(eEU>hwly6Vx ze$?zs7l+4%=a+o;BzF>XRG6Ix>Fzz!@2ul5u>}uCT62nO4}+-bj)O)v>$KgahMfow z)+)CV?%dpP9eN)7+dBS>FNplMj(>l;7J3ep|=Ct>fR;@o($+w{`rBFHik%St|M09>s6#__uZZ+dBSj9sjnDe_O|& zKXvrmI{s}P|F(|*Z@OXsr>x_zuGoLeI_~;-ugd7n`^g>nGAN0Ye>BI{4&=ftDH6za z>1n7QBkTW5>lnDa%FvG1*Y$dm)}?hZTMB`To(bgVcFYs4^P(Uyv7_xiXWxfz=T8I^ zeDl^7ufyJF)!K`zIEq}evP{>)e^X}fdcV|&#*#7J;?-S`!#KGVoZx;V`WEM-RTSda z7zTAsFWP{47Jf_3f}_gmWl%A(k*OT&6PZoh)+~%2*1#OJpr)^lAvDEYmvr8vKuKB>q@wV_{I{2B=(8+EadFM;+F65_70|`>u z&hCseOWC+wVyIhcIaeGL;2a2WpDBbzo+y~n73IY@Q>HY{q(mOKvoBc3P2D&4a+Rh7 zlVz^4An7Ql&SI^O)%fDFU&D#C=w0jLORTtwQcm7&)fDIA<+>kVx#uWBGi}!n23Lx5L!?hROyRXn z*x5Yjv{PShTbqY6EAAP4b+oHL5S=nbqp2hHpM0HcB3bN~PV literal 0 HcmV?d00001 diff --git a/Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/System.IdentityModel.Tokens.Jwt.7.0.3.nupkg b/Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/System.IdentityModel.Tokens.Jwt.7.0.3.nupkg new file mode 100644 index 0000000000000000000000000000000000000000..97e5698178453a7939a4a415741124e31987e0d0 GIT binary patch literal 307327 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%0Ac+kpN5)N&HNtf{! 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¬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

    MDK6_NgViarN9` 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 literal 0 HcmV?d00001 diff --git a/Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/System.IdentityModel.Tokens.Jwt.7.0.3.nupkg.meta b/Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/System.IdentityModel.Tokens.Jwt.7.0.3.nupkg.meta new file mode 100644 index 0000000..4bbc6cd --- /dev/null +++ b/Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/System.IdentityModel.Tokens.Jwt.7.0.3.nupkg.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: a106622578fc9ad42a170869a8914340 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib.meta b/Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib.meta new file mode 100644 index 0000000..1beafb9 --- /dev/null +++ b/Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 2f5e450eba703ca42bd1d73136d832a1 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/net461.meta b/Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/net461.meta new file mode 100644 index 0000000..176851a --- /dev/null +++ b/Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/net461.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7143ef04a502dc647b1c394dbd51ddfc +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/net461/System.IdentityModel.Tokens.Jwt.dll b/Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/net461/System.IdentityModel.Tokens.Jwt.dll new file mode 100644 index 0000000..755ce9a --- /dev/null +++ b/Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/net461/System.IdentityModel.Tokens.Jwt.dll @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f8b689edb4dee6f10e49b65e5acc8b716b01fb7068f7dd01926c0dba72e39076 +size 81456 diff --git a/Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/net461/System.IdentityModel.Tokens.Jwt.dll.meta b/Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/net461/System.IdentityModel.Tokens.Jwt.dll.meta new file mode 100644 index 0000000..54a3343 --- /dev/null +++ b/Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/net461/System.IdentityModel.Tokens.Jwt.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: d008705dffd0f9148ac7ccfd1491cdf2 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/net461/System.IdentityModel.Tokens.Jwt.xml b/Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/net461/System.IdentityModel.Tokens.Jwt.xml new file mode 100644 index 0000000..ad73385 --- /dev/null +++ b/Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/net461/System.IdentityModel.Tokens.Jwt.xml @@ -0,0 +1,1548 @@ + + + + System.IdentityModel.Tokens.Jwt + + + +

    + Constants that indicate how the should be evaluated. + + + + + A value that indicates the is a Json object. + + When creating a from Json if the value was not a simple type {String, Null, True, False, Number} + then will contain the Json value. If the Json was a JsonObject, the will be set to "JSON". + + + + A value that indicates the is a Json object. + + When creating a from Json if the value was not a simple type {String, Null, True, False, Number} + then will contain the Json value. If the Json was a JsonArray, the will be set to "JSON_ARRAY". + + + + A value that indicates the is Json null. + + When creating a the cannot be null. If the Json value was null, then the + will be set to and the will be set to "JSON_NULL". + + + + Constants for Json Web tokens. + + + + + Short header type. + + + + + Long header type. + + + + + Short token type. + + + + + Long token type. + + + + + JWS - Token format: 'header.payload.signature'. Signature is optional, but '.' is required. + + + + + JWE - Token format: 'protectedheader.encryptedkey.iv.cyphertext.authenticationtag'. + + + + + The number of parts in a JWE token. + + + + + The number of parts in a JWS token. + + + + + The maximum number of parts in a JWT. + + + + + JWE header alg indicating a shared symmetric key is directly used as CEK. + + + + + Initializes a new instance of which contains JSON objects representing the cryptographic operations applied to the JWT and optionally any additional properties of the JWT. + The member names within the JWT Header are referred to as Header Parameter Names. + These names MUST be unique and the values must be (s). The corresponding values are referred to as Header Parameter Values. + + + + + Initializes a new instance of the class. Default string comparer . + + + + + Initializes a new instance of the class. Default string comparer . + + + + + Initializes a new instance of . + With the Header Parameters: + { { typ, JWT }, { alg, SigningCredentials.Algorithm } } + + used creating a JWS Compact JSON. + + + + Initializes a new instance of . + With the Header Parameters: + { { typ, JWT }, { alg, EncryptingCredentials.Alg }, { enc, EncryptingCredentials.Enc } } + + used creating a JWE Compact JSON. + If 'encryptingCredentials' is null. + + + + Initializes a new instance of . + With the Header Parameters: + { { typ, JWT }, { alg, SigningCredentials.Algorithm } } + + used when creating a JWS Compact JSON. + provides a mapping for the 'alg' value so that values are within the JWT namespace. + + + + Initializes a new instance of . + With the Header Parameters: + { { typ, JWT }, { alg, SigningCredentials.Algorithm } } + + used when creating a JWS Compact JSON. + provides a mapping for the 'alg' value so that values are within the JWT namespace. + will be added as the value for the 'typ' claim in the header. If it is null or empty will be used as token type + + + + Initializes a new instance of . + With the Header Parameters: + { { typ, JWT }, { alg, SigningCredentials.Algorithm } } + + used when creating a JWS Compact JSON. + provides a mapping for the 'alg' value so that values are within the JWT namespace. + will be added as the value for the 'typ' claim in the header. If it is null or empty will be used as token type + Defines the dictionary containing any custom header claims that need to be added to the inner JWT token header. + + + + Initializes a new instance of . + With the Header Parameters: + { { typ, JWT }, { alg, EncryptingCredentials.Algorithm } } + + used when creating a JWS Compact JSON. + provides a mapping for the 'alg' value so that values are within the JWT namespace. + If 'encryptingCredentials' is null. + + + + Initializes a new instance of . + With the Header Parameters: + { { typ, JWT }, { alg, EncryptingCredentials.Algorithm } } + + used when creating a JWS Compact JSON. + provides a mapping for the 'alg' value so that values are within the JWT namespace. + provides the token type + If 'encryptingCredentials' is null. + + + + Initializes a new instance of . + With the Header Parameters: + { { typ, JWT }, { alg, EncryptingCredentials.Algorithm } } + + used when creating a JWS Compact JSON. + provides a mapping for the 'alg' value so that values are within the JWT namespace. + provides the token type + Defines the dictionary containing any custom header claims that need to be added to the outer JWT token header. + If 'encryptingCredentials' is null. + + + + Gets the signature algorithm that was used to create the signature. + + If the signature algorithm is not found, null is returned. + + + + Gets the content mime type (Cty) of the token. + + If the content mime type is not found, null is returned. + + + + Gets the encryption algorithm (Enc) of the token. + + If the content mime type is not found, null is returned. + + + + Gets the passed in the constructor. + + This value may be null. + + + + Gets the iv of symmetric key wrap. + + + + + Gets the key identifier for the security key used to sign the token + + + + + Gets the passed in the constructor. + + This value may be null. + + + + Gets the mime type (Typ) of the token. + + If the mime type is not found, null is returned. + + + + Gets the thumbprint of the certificate used to sign the token + + + + + Gets the certificate used to sign the token + + If the 'x5c' claim is not found, null is returned. + + + + Gets the 'value' of the 'zip' claim { zip, 'value' }. + + If the 'zip' claim is not found, null is returned. + + + + Deserializes Base64UrlEncoded JSON into a instance. + + Base64url encoded JSON to deserialize. + An instance of . + + + + Encodes this instance as Base64UrlEncoded JSON. + + Base64UrlEncoded JSON. + + + + Gets a standard claim from the header. + A standard claim is either a string or a value of another type serialized in JSON format. + + The key of the claim. + The standard claim string; or null if not found. + + + + Serializes this instance to JSON. + + This instance as JSON. + + + + List of header parameter names see: https://datatracker.ietf.org/doc/html/rfc7519#section-5. + + + + + See: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.1 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.10 + Also: https://datatracker.ietf.org/doc/html/rfc7519#section-5.2 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7516#section-4.1.2 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7518#section-4.7.1.1 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.2 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.3 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.4 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.9 + Also: https://datatracker.ietf.org/doc/html/rfc7519#section-5.1 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.6 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7515#page-12 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.5 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7516#section-4.1.3 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7518#section-4.6.1.1 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7518#section-4.6.1.2 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7518#section-4.6.1.3 + + + + + Initializes a new instance of which contains JSON objects representing the claims contained in the JWT. Each claim is a JSON object of the form { Name, Value }. + + + + + Initializes a new instance of the class with no claims. Default string comparer . + Creates a empty + + + + + Initializes a new instance of the class with . Default string comparer . + The claims to add. + + + + + Initializes a new instance of the class with claims added for each parameter specified. Default string comparer . + + If this value is not null, a { iss, 'issuer' } claim will be added, overwriting any 'iss' claim in 'claims' if present. + If this value is not null, a { aud, 'audience' } claim will be added, appending to any 'aud' claims in 'claims' if present. + If this value is not null then for each a { 'Claim.Type', 'Claim.Value' } is added. If duplicate claims are found then a { 'Claim.Type', List<object> } will be created to contain the duplicate values. + If notbefore.HasValue a { nbf, 'value' } claim is added, overwriting any 'nbf' claim in 'claims' if present. + If expires.HasValue a { exp, 'value' } claim is added, overwriting any 'exp' claim in 'claims' if present. + + + + Initializes a new instance of the class with claims added for each parameter specified. Default string comparer . + + If this value is not null, a { iss, 'issuer' } claim will be added, overwriting any 'iss' claim in 'claims' if present. + If this value is not null, a { aud, 'audience' } claim will be added, appending to any 'aud' claims in 'claims' if present. + If this value is not null then for each a { 'Claim.Type', 'Claim.Value' } is added. If duplicate claims are found then a { 'Claim.Type', List<object> } will be created to contain the duplicate values. + If notbefore.HasValue a { nbf, 'value' } claim is added, overwriting any 'nbf' claim in 'claims' if present. + If expires.HasValue a { exp, 'value' } claim is added, overwriting any 'exp' claim in 'claims' if present. + If issuedAt.HasValue is 'true' a { iat, 'value' } claim is added, overwriting any 'iat' claim in 'claims' if present. + Comparison is set to + The 4 parameters: 'issuer', 'audience', 'notBefore', 'expires' take precedence over (s) in 'claims'. The values will be overridden. + If 'expires' <= 'notbefore'. + + + + Initializes a new instance of the class with claims added for each parameter specified. Default string comparer . + + If this value is not null, a { iss, 'issuer' } claim will be added, overwriting any 'iss' claim in 'claims' and 'claimCollection' if present. + If this value is not null, a { aud, 'audience' } claim will be added, appending to any 'aud' claims in 'claims' or 'claimCollection' if present. + If this value is not null then for each a { 'Claim.Type', 'Claim.Value' } is added. If duplicate claims are found then a { 'Claim.Type', List<object> } will be created to contain the duplicate values. + If both and are not null then the values in claims will be combined with the values in claimsCollection. The values found in claimCollection take precedence over those found in claims, so any duplicate + values will be overridden. + If notbefore.HasValue a { nbf, 'value' } claim is added, overwriting any 'nbf' claim in 'claims' and 'claimcollection' if present. + If expires.HasValue a { exp, 'value' } claim is added, overwriting any 'exp' claim in 'claims' and 'claimcollection' if present. + If issuedAt.HasValue is 'true' a { iat, 'value' } claim is added, overwriting any 'iat' claim in 'claims' and 'claimcollection' if present. + Comparison is set to + The 4 parameters: 'issuer', 'audience', 'notBefore', 'expires' take precedence over (s) in 'claims' and 'claimcollection'. The values will be overridden. + If 'expires' <= 'notbefore'. + + + + Adds Nbf, Exp, Iat, Iss and Aud claims to payload + + If this value is not null, a { iss, 'issuer' } claim will be added, overwriting any 'iss' claim in instance. + If this value is not null, a { aud, 'audience' } claim will be added, appending to any 'aud' claims in instance. + If notbefore.HasValue a { nbf, 'value' } claim is added, overwriting any 'nbf' claim in instance. + If expires.HasValue a { exp, 'value' } claim is added, overwriting any 'exp' claim in instance. + If issuedAt.HasValue is 'true' a { iat, 'value' } claim is added, overwriting any 'iat' claim in instance. + + + + Gets the 'value' of the 'actor' claim { actort, 'value' }. + + If the 'actor' claim is not found, null is returned. + + + + Gets the 'value' of the 'acr' claim { acr, 'value' }. + + If the 'acr' claim is not found, null is returned. + + + + Gets the 'value' of the 'amr' claim { amr, 'value' } as list of strings. + + If the 'amr' claim is not found, an empty enumerable is returned. + + + + Gets the 'value' of the 'auth_time' claim { auth_time, 'value' }. + + If the 'auth_time' claim is not found OR could not be converted to , null is returned. + + + + Gets the 'value' of the 'audience' claim { aud, 'value' } as a list of strings. + + If the 'audience' claim is not found, an empty enumerable is returned. + + + + Gets the 'value' of the 'azp' claim { azp, 'value' }. + + If the 'azp' claim is not found, null is returned. + + + + Gets 'value' of the 'c_hash' claim { c_hash, 'value' }. + + If the 'c_hash' claim is not found, null is returned. + + + + Gets the 'value' of the 'expiration' claim { exp, 'value' }. + + If the 'expiration' claim is not found OR could not be converted to , null is returned. + + + + Gets the 'value' of the 'expiration' claim { exp, 'value' }. + + If the 'expiration' claim is not found OR could not be converted to , null is returned. + + + + Gets the 'value' of the 'JWT ID' claim { jti, 'value' }. + + If the 'JWT ID' claim is not found, null is returned. + + + + Gets the 'value' of the 'Issued At' claim { iat, 'value' }. + + If the 'Issued At' claim is not found OR cannot be converted to null is returned. + + + + Gets the 'value' of the 'issuer' claim { iss, 'value' }. + + If the 'issuer' claim is not found, null is returned. + + + + Gets the 'value' of the 'expiration' claim { nbf, 'value' }. + + If the 'notbefore' claim is not found OR could not be converted to , null is returned. + + + + Gets the 'value' of the 'nonce' claim { nonce, 'value' }. + + If the 'nonce' claim is not found, null is returned. + + + + Gets the 'value' of the 'notebefore' claim { nbf, 'value' }. + + If the 'notbefore' claim is not found OR could not be converted to , null is returned. + + + + Gets the 'value' of the 'subject' claim { sub, 'value' }. + + If the 'subject' claim is not found, null is returned. + + + + Gets the 'value' of the 'notbefore' claim { nbf, 'value' } converted to a assuming 'value' is seconds since UnixEpoch (UTC 1970-01-01T0:0:0Z). + + If the 'notbefore' claim is not found, then is returned. Time is returned as UTC. + + + + Gets the 'value' of the 'expiration' claim { exp, 'value' } converted to a assuming 'value' is seconds since UnixEpoch (UTC 1970-01-01T0:0:0Z). + + If the 'expiration' claim is not found, then is returned. + + + + Gets the 'value' of the 'issued at' claim { iat, 'value' } converted to a assuming 'value' is seconds since UnixEpoch (UTC 1970-01-01T0:0:0Z). + + If the 'issued at' claim is not found, then is returned. + + + + Gets a for each JSON { name, value }. + + Each (s) returned will have the translated according to the mapping found in . Adding and removing to will affect the value of the . + and will be set to the value of ( if null). + + + + Adds a JSON object representing the to the + + { 'Claim.Type', 'Claim.Value' } is added. If a JSON object is found with the name == then a { 'Claim.Type', List<object> } will be created to contain the duplicate values. + See For details on how is applied. + 'claim' is null. + + + + Adds a number of to the as JSON { name, value } pairs. + + For each a JSON pair { 'Claim.Type', 'Claim.Value' } is added. If duplicate claims are found then a { 'Claim.Type', List<object> } will be created to contain the duplicate values. + + Any in the that is null, will be ignored. + is null. + + + + Adds claims from dictionary. + + A dictionary of claims. + If a key is already present in target dictionary, its claimValue is overridden by the claimValue of the key in claimsCollection. + + + + Serializes this instance to JSON. + + This instance as JSON. + + + + Deserializes Base64UrlEncoded JSON into a . + + Base64url encoded JSON to deserialize. + An instance of . + + + + Encodes this instance as Base64UrlEncoded JSON. + + Base64UrlEncoded JSON. + + + + Deserialzes JSON into a instance. + + The JSON to deserialize. + An instance of . + + + + List of registered claims from different sources + https://datatracker.ietf.org/doc/html/rfc7519#section-4 + http://openid.net/specs/openid-connect-core-1_0.html#IDToken + + + + + + + + + http://openid.net/specs/openid-connect-core-1_0.html#IDToken + + + + + http://openid.net/specs/openid-connect-core-1_0.html#IDToken + + + + + https://datatracker.ietf.org/doc/html/rfc7519#section-4 + + + + + http://openid.net/specs/openid-connect-core-1_0.html#IDToken + + + + + http://openid.net/specs/openid-connect-core-1_0.html#IDToken + + + + + https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims + + + + + https://openid.net/specs/openid-connect-core-1_0.html#HybridIDToken + + + + + http://openid.net/specs/openid-connect-core-1_0.html#CodeIDToken + + + + + https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims + + + + + https://datatracker.ietf.org/doc/html/rfc7519#section-4 + + + + + https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims + + + + + https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims + + + + + https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims + + + + + https://datatracker.ietf.org/doc/html/rfc7519#section-4 + + + + + https://datatracker.ietf.org/doc/html/rfc7519#section-4 + + + + + https://datatracker.ietf.org/doc/html/rfc7519#section-4 + + + + + https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims + + + + + + + + + https://openid.net/specs/openid-connect-core-1_0.html#AuthRequest + + + + + https://datatracker.ietf.org/doc/html/rfc7519#section-4 + + + + + + + + + http://openid.net/specs/openid-connect-frontchannel-1_0.html#OPLogout + + + + + https://datatracker.ietf.org/doc/html/rfc7519#section-4 + + + + + https://datatracker.ietf.org/doc/html/rfc7519#section-5 + + + + + + + + + + + + + A designed for representing a JSON Web Token (JWT). + + + + + Initializes a new instance of from a string in JWS Compact serialized format. + + A JSON Web Token that has been serialized in JWS Compact serialized format. + 'jwtEncodedString' is null or contains only whitespace. + 'jwtEncodedString' contains only whitespace. + 'jwtEncodedString' is not in JWE format. + 'jwtEncodedString' is not in JWS or JWE format. + + The contents of this have not been validated, the JSON Web Token is simply decoded. Validation can be accomplished using + + + + + Initializes a new instance of the class where the contains the crypto algorithms applied to the encoded and . The jwtEncodedString is the result of those operations. + + Contains JSON objects representing the cryptographic operations applied to the JWT and optionally any additional properties of the JWT + Contains JSON objects representing the claims contained in the JWT. Each claim is a JSON object of the form { Name, Value } + base64urlencoded JwtHeader + base64urlencoded JwtPayload + base64urlencoded JwtSignature + 'header' is null. + 'payload' is null. + 'rawSignature' is null. + 'rawHeader' or 'rawPayload' is null or whitespace. + + + + Initializes an instance of where the contains the crypto algorithms applied to the innerToken . + + Defines cryptographic operations applied to the 'innerToken'. + + base64urlencoded key + base64urlencoded JwtHeader + base64urlencoded initialization vector. + base64urlencoded encrypted innerToken + base64urlencoded authentication tag. + 'header' is null. + 'innerToken' is null. + 'rawHeader' is null. + 'rawEncryptedKey' is null. + 'rawInitialVector' is null or empty. + 'rawCiphertext' is null or empty. + 'rawAuthenticationTag' is null or empty. + + + + Initializes a new instance of the class where the contains the crypto algorithms applied to the encoded and . The jwtEncodedString is the result of those operations. + + Contains JSON objects representing the cryptographic operations applied to the JWT and optionally any additional properties of the JWT + Contains JSON objects representing the claims contained in the JWT. Each claim is a JSON object of the form { Name, Value } + 'header' is null. + 'payload' is null. + + + + Initializes a new instance of the class specifying optional parameters. + + If this value is not null, a { iss, 'issuer' } claim will be added, overwriting any 'iss' claim in 'claims' if present. + If this value is not null, a { aud, 'audience' } claim will be added, appending to any 'aud' claims in 'claims' if present. + If this value is not null then for each a { 'Claim.Type', 'Claim.Value' } is added. If duplicate claims are found then a { 'Claim.Type', List<object> } will be created to contain the duplicate values. + If expires.HasValue a { exp, 'value' } claim is added, overwriting any 'exp' claim in 'claims' if present. + If notbefore.HasValue a { nbf, 'value' } claim is added, overwriting any 'nbf' claim in 'claims' if present. + The that will be used to sign the . See for details pertaining to the Header Parameter(s). + If 'expires' <= 'notbefore'. + + + + Gets the 'value' of the 'actor' claim { actort, 'value' }. + + If the 'actor' claim is not found, null is returned. + + + + Gets the list of 'audience' claim { aud, 'value' }. + + If the 'audience' claim is not found, enumeration will be empty. + + + + Gets the (s) for this token. + If this is a JWE token, this property only returns the encrypted claims; + the unencrypted claims should be read from the header seperately. + + (s) returned will NOT have the translated according to + + + + Gets the Base64UrlEncoded associated with this instance. + + + + + Gets the Base64UrlEncoded associated with this instance. + + + + + Gets the associated with this instance if the token is signed. + + + + + Gets the 'value' of the 'JWT ID' claim { jti, 'value' }. + + If the 'JWT ID' claim is not found, an empty string is returned. + + + + Gets the 'value' of the 'issuer' claim { iss, 'value' }. + + If the 'issuer' claim is not found, an empty string is returned. + + + + Gets the associated with this instance. + Note that if this JWT is nested ( != null, this property represents the payload of the most inner token. + This property can be null if the content type of the most inner token is unrecognized, in that case + the content of the token is the string returned by PlainText property. + + + + + Gets the associated with this instance. + + + + + Gets the original raw data of this instance when it was created. + + The original JSON Compact serialized format passed to one of the two constructors + or + + + + Gets the original raw data of this instance when it was created. + + The original JSON Compact serialized format passed to one of the two constructors + or + + + + Gets the original raw data of this instance when it was created. + + The original JSON Compact serialized format passed to one of the two constructors + or + + + + Gets the original raw data of this instance when it was created. + + The original JSON Compact serialized format passed to one of the two constructors + or + + + + Gets the original raw data of this instance when it was created. + + The original JSON Compact serialized format passed to one of the two constructors + or + + + + Gets the original raw data of this instance when it was created. + + The original JSON Compact serialized format passed to one of the two constructors + or + + + + Gets the original raw data of this instance when it was created. + + The original JSON Compact serialized format passed to one of the two constructors + or + + + + Gets the original raw data of this instance when it was created. + + The original JSON Compact serialized format passed to one of the two constructors + or + + + + Gets the s for this instance. + + + + + Gets the signature algorithm associated with this instance. + + If there is a associated with this instance, a value will be returned. Null otherwise. + + + + Gets the to use when writing this token. + + + + + Gets the to use when writing this token. + + + + + Gets or sets the that signed this instance. + + .ValidateSignature(...) sets this value when a is used to successfully validate a signature. + + + + Gets the "value" of the 'subject' claim { sub, 'value' }. + + If the 'subject' claim is not found, null is returned. + + + + Gets the 'value' of the 'notbefore' claim { nbf, 'value' } converted to a assuming 'value' is seconds since UnixEpoch (UTC 1970-01-01T0:0:0Z). + + If the 'notbefore' claim is not found, then is returned. + + + + Gets the 'value' of the 'expiration' claim { exp, 'value' } converted to a assuming 'value' is seconds since UnixEpoch (UTC 1970-01-01T0:0:0Z). + + If the 'expiration' claim is not found, then is returned. + + + + Gets the 'value' of the 'issued at' claim { iat, 'value' } converted to a assuming 'value' is seconds since UnixEpoch (UTC 1970-01-01T0:0:0Z). + + If the 'issued at' claim is not found, then is returned. + + + + Serializes the and + + A string containing the header and payload in JSON format. + + + + + + + Decodes the string into the header, payload and signature. + + the tokenized string. + the original token. + + + + Decodes the base64url encoded payload. + + the encoded payload. + + + + Decodes the payload and signature from the JWE parts. + + Parts of the JWE including the header. + Assumes Header has already been set. + + + + Static class to convert a to a + + + + + Initializes a new instance of a from a + + A JSON Web Token to convert from. + is null + doesn't have set. + + + + A designed for creating and validating Json Web Tokens. See: https://datatracker.ietf.org/doc/html/rfc7519 and http://www.rfc-editor.org/info/rfc7515 + + + + + Default claim type mapping for inbound claims. + + + + + Default value for the flag that determines whether or not the InboundClaimTypeMap is used. + + + + + Default claim type mapping for outbound claims. + + + + + Default claim type filter list. + + + + + Default JwtHeader algorithm mapping + + + + + Static initializer for a new object. Static initializers run before the first instance of the type is created. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the property which is used when determining whether or not to map claim types that are extracted when validating a . + If this is set to true, the is set to the JSON claim 'name' after translating using this mapping. Otherwise, no mapping occurs. + The default value is true. + + + + + Gets or sets the which is used when setting the for claims in the extracted when validating a . + The is set to the JSON claim 'name' after translating using this mapping. + The default value is ClaimTypeMapping.InboundClaimTypeMap. + + 'value' is null. + + + + Gets or sets the which is used when creating a from (s). + The JSON claim 'name' value is set to after translating using this mapping. + The default value is ClaimTypeMapping.OutboundClaimTypeMap + + This mapping is applied only when using or . Adding values directly will not result in translation. + 'value' is null. + + + + Gets the outbound algorithm map that is passed to the constructor. + + + + Gets or sets the used to filter claims when populating a claims form a . + When a is validated, claims with types found in this will not be added to the . + The default value is ClaimTypeMapping.InboundClaimFilter. + + 'value' is null. + + + + Gets or sets the property name of the will contain the original JSON claim 'name' if a mapping occurred when the (s) were created. + See for more information. + + If .IsNullOrWhiteSpace('value') is true. + + + + Gets or sets the property name of the will contain .Net type that was recognized when serialized the value to JSON. + See for more information. + + If .IsNullOrWhiteSpace('value') is true. + + + + Returns a value that indicates if this handler can validate a . + + 'true', indicating this instance can validate a . + + + + Gets the value that indicates if this instance can write a . + + 'true', indicating this instance can write a . + + + + Gets the type of the . + + The type of + + + + Determines if the string is a well formed Json Web Token (JWT). + See: https://datatracker.ietf.org/doc/html/rfc7519 + + String that should represent a valid JWT. + Uses matching one of: + JWS: @"^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$" + JWE: (dir): @"^[A-Za-z0-9-_]+\.\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$" + JWE: (wrappedkey): @"^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]$" + + + 'false' if the token is null or whitespace. + 'false' if token.Length is greater than . + 'true' if the token is in JSON compact serialization format. + + + + + Returns a Json Web Token (JWT). + + A that contains details of contents of the token. + A JWS and JWE can be returned. + If is provided, then a JWE will be created. + If is provided then a JWS will be created. + If both are provided then a JWE with an embedded JWS will be created. + + + + + Creates a JWT in 'Compact Serialization Format'. + + The issuer of the token. + The audience for this token. + The source of the (s) for this token. + The notbefore time for this token. + The expiration time for this token. + The issue time for this token. + Contains cryptographic material for generating a signature. + If is not null, then a claim { actort, 'value' } will be added to the payload. See for details on how the value is created. + See for details on how the HeaderParameters are added to the header. + See for details on how the values are added to the payload. + Each in the will map by applying . Modifying could change the outbound JWT. + If is provided, then a JWS will be created. + + A Base64UrlEncoded string in 'Compact Serialization Format'. + + + + Creates a JWT in 'Compact Serialization Format'. + + The issuer of the token. + The audience for this token. + The source of the (s) for this token. + Translated into 'epoch time' and assigned to 'nbf'. + Translated into 'epoch time' and assigned to 'exp'. + Translated into 'epoch time' and assigned to 'iat'. + Contains cryptographic material for signing. + Contains cryptographic material for encrypting. + If is not null, then a claim { actort, 'value' } will be added to the payload. for details on how the value is created. + See for details on how the HeaderParameters are added to the header. + See for details on how the values are added to the payload. + Each in the will map by applying . Modifying could change the outbound JWT. + + A Base64UrlEncoded string in 'Compact Serialization Format'. + If 'expires' <= 'notBefore'. + + + + Creates a JWT in 'Compact Serialization Format'. + + The issuer of the token. + The audience for this token. + The source of the (s) for this token. + Translated into 'epoch time' and assigned to 'nbf'. + Translated into 'epoch time' and assigned to 'exp'. + Translated into 'epoch time' and assigned to 'iat'. + Contains cryptographic material for signing. + Contains cryptographic material for encrypting. + A collection of (key,value) pairs representing (s) for this token. + If is not null, then a claim { actort, 'value' } will be added to the payload. for details on how the value is created. + See for details on how the HeaderParameters are added to the header. + See for details on how the values are added to the payload. + Each in the will map by applying . Modifying could change the outbound JWT. + + A Base64UrlEncoded string in 'Compact Serialization Format'. + If 'expires' <= 'notBefore'. + + + + Creates a Json Web Token (JWT). + + A that contains details of contents of the token. + is used to sign . + + + + Creates a + + The issuer of the token. + The audience for this token. + The source of the (s) for this token. + The notbefore time for this token. + The expiration time for this token. + The issue time for this token. + Contains cryptographic material for generating a signature. + Contains cryptographic material for encrypting the token. + If is not null, then a claim { actort, 'value' } will be added to the payload. for details on how the value is created. + See for details on how the HeaderParameters are added to the header. + See for details on how the values are added to the payload. + Each on the added will have translated according to the mapping found in + . Adding and removing to will affect the name component of the Json claim. + is used to sign . + is used to encrypt or . + + A . + If <= . + + + + Creates a + + The issuer of the token. + The audience for this token. + The source of the (s) for this token. + The notbefore time for this token. + The expiration time for this token. + The issue time for this token. + Contains cryptographic material for generating a signature. + Contains cryptographic material for encrypting the token. + A collection of (key,value) pairs representing (s) for this token. + If is not null, then a claim { actort, 'value' } will be added to the payload. for details on how the value is created. + See for details on how the HeaderParameters are added to the header. + See for details on how the values are added to the payload. + Each on the added will have translated according to the mapping found in + . Adding and removing to will affect the name component of the Json claim. + is used to sign . + is used to encrypt or . + + A . + If <= . + + + + Creates a + + The issuer of the token. + The audience for this token. + The source of the (s) for this token. + The notbefore time for this token. + The expiration time for this token. + The issue time for this token. + Contains cryptographic material for generating a signature. + If is not null, then a claim { actort, 'value' } will be added to the payload. for details on how the value is created. + See for details on how the HeaderParameters are added to the header. + See for details on how the values are added to the payload. + Each on the added will have translated according to the mapping found in + . Adding and removing to will affect the name component of the Json claim. + is used to sign . + + A . + If <= . + + + + Creates a Json Web Token (JWT). + + A that contains details of contents of the token. + is used to sign . + + + + Converts a string into an instance of . + + A 'JSON Web Token' (JWT) in JWS or JWE Compact Serialization Format. + A + is null or empty. + 'token.Length' is greater than . + + If the is in JWE Compact Serialization format, only the protected header will be deserialized. + This method is unable to decrypt the payload. Use to obtain the payload. + The token is NOT validated and no security decisions should be made about the contents. + Use to ensure the token is acceptable. + + + + Converts a string into an instance of . + + A 'JSON Web Token' (JWT) in JWS or JWE Compact Serialization Format. + A + is null or empty. + 'token.Length' is greater than . + + If the is in JWE Compact Serialization format, only the protected header will be deserialized. + This method is unable to decrypt the payload. Use to obtain the payload. + The token is NOT validated and no security decisions should be made about the contents. + Use to ensure the token is acceptable. + + + + Deserializes token with the provided . + + . + The current . + The + This method is not current supported. + + + + Reads and validates a 'JSON Web Token' (JWT) encoded as a JWS or JWE in Compact Serialized Format. + + the JWT encoded as JWE or JWS + Contains validation parameters for the . + The that was validated. + is null or whitespace. + is null. + .Length is greater than . + does not have 3 or 5 parts. + returns false. + was a JWE was not able to be decrypted. + 'kid' header claim is not null AND decryption fails. + 'enc' header claim is null or empty. + 'exp' claim is < DateTime.UtcNow. + is null or whitespace and is null. Audience is not validated if is set to false. + 'aud' claim did not match either or one of . + 'nbf' claim is > 'exp' claim. + .signature is not properly formatted. + 'exp' claim is missing and is true. + is not null and expirationTime.HasValue is false. When a TokenReplayCache is set, tokens require an expiration time. + 'nbf' claim is > DateTime.UtcNow. + could not be added to the . + is found in the cache. + A from the JWT. Does not include claims found in the JWT header. + + Many of the exceptions listed above are not thrown directly from this method. See to examine the call graph. + + + + + Private method for token validation, responsible for: + (1) Obtaining a configuration from the . + (2) Revalidating using the Last Known Good Configuration (if present), and obtaining a refreshed configuration (if necessary) and revalidating using it. + + The JWS string, or the decrypted token if the token is a JWE. + If the token being validated is a JWE, this is the that represents the outer token. + If the token is a JWS, the value of this parameter is . + + The to be used for validation. + The that was validated. + A from the JWT. Does not include claims found in the JWT header. + + + + Validates the JSON payload of a . + + The token to validate. + Contains validation parameters for the . + A from the jwt. Does not include the header claims. + + + + Serializes a into a JWT in Compact Serialization Format. + + to serialize. + + The JWT will be serialized as a JWE or JWS. + will be used to create the JWT. If there is an inner token, the inner token's payload will be used. + If either or .SigningCredentials are set, the JWT will be signed. + If is set, a JWE will be created using the JWT above as the plaintext. + + is null. + 'token' is not a not . + both and are set. + both and .EncryptingCredentials are set. + if is set and is not set. + A JWE or JWS in 'Compact Serialization Format'. + + + + Obtains a and validates the signature. + + Bytes to validate. + Signature to compare against. + to use. + Crypto algorithm to use. + The being validated. + Priority will be given to over . + 'true' if signature is valid. + + + + Validates that the signature, if found or required, is valid. + + A JWS token. + that contains signing keys. + If is null or whitespace. + If is null. + If a signature is not found and is true. + + If the has a key identifier and none of the (s) provided result in a validated signature. + This can indicate that a key refresh is required. + + If after trying all the (s), none result in a validated signature AND the does not have a key identifier. + A that has the signature validated if token was signed. + If the is signed, the signature is validated even if is false. + If the signature is validated, then the will be set to the key that signed the 'token'.It is the responsibility of to set the + + + + Creates a from a . + + The to use as a source. + The value to set + Contains parameters for validating the token. + A containing the . + + + + Creates the 'value' for the actor claim: { actort, 'value' } + + as actor. + representing the actor. + If is not null: +   If 'type' is 'string', return as string. +   if 'type' is 'BootstrapContext' and 'BootstrapContext.SecurityToken' is 'JwtSecurityToken' +     if 'JwtSecurityToken.RawData' != null, return RawData. +     else return . +   if 'BootstrapContext.Token' != null, return 'Token'. + default: new ( ( actor.Claims ). + + 'actor' is null. + + + + Determines if the audiences found in a are valid. + + The audiences found in the . + The being validated. + required for validation. + See for additional details. + + + + Validates the lifetime of a . + + The value of the 'nbf' claim if it exists in the 'jwtToken'. + The value of the 'exp' claim if it exists in the 'jwtToken'. + The being validated. + required for validation. + for additional details. + + + + Determines if the issuer found in a is valid. + + The issuer to validate + The that is being validated. + required for validation. + The issuer to use when creating the (s) in the . + for additional details. + + + + Determines if a is already validated. + + The value of the 'exp' claim if it exists in the '. + The that is being validated. + required for validation. + + + + Returns a to use when validating the signature of a token. + + The representation of the token that is being validated. + The that is being validated. + A required for validation. + Returns a to use for signature validation. + If key fails to resolve, then null is returned + + + + Returns a to use when decryption a JWE. + + The the token that is being decrypted. + The that is being decrypted. + A required for validation. + Returns a to use for signature validation. + If key fails to resolve, then null is returned + + + + Decrypts a JWE and returns the clear text + + the JWE that contains the cypher text. + contains crypto material. + the decoded / cleartext contents of the JWE. + if is null. + if is null. + if 'jwtToken.Header.enc' is null or empty. + if 'jwtToken.Header.kid' is not null AND decryption fails. + if the JWE was not able to be decrypted. + + + + Validates the is an expected value. + + The that signed the . + The to validate. + The current . + If the is a then the X509Certificate2 will be validated using the CertificateValidator. + + + + Serializes to XML a token of the type handled by this instance. + + The XML writer. + A token of type . + + + + + + + Log messages and codes + + + + diff --git a/Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/net461/System.IdentityModel.Tokens.Jwt.xml.meta b/Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/net461/System.IdentityModel.Tokens.Jwt.xml.meta new file mode 100644 index 0000000..825c0b2 --- /dev/null +++ b/Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/net461/System.IdentityModel.Tokens.Jwt.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 74c46f09cbae48a40bfe474099636015 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/net462.meta b/Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/net462.meta new file mode 100644 index 0000000..71f5c95 --- /dev/null +++ b/Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/net462.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 59fba4fcdca86f641911fd44358d4369 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/net462/System.IdentityModel.Tokens.Jwt.dll b/Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/net462/System.IdentityModel.Tokens.Jwt.dll new file mode 100644 index 0000000..2808d26 --- /dev/null +++ b/Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/net462/System.IdentityModel.Tokens.Jwt.dll @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cd80f7be03a5e0834c041c1fd572b33e46274ba54ba918b5198aa1c921c4d9aa +size 81336 diff --git a/Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/net462/System.IdentityModel.Tokens.Jwt.dll.meta b/Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/net462/System.IdentityModel.Tokens.Jwt.dll.meta new file mode 100644 index 0000000..8cf5145 --- /dev/null +++ b/Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/net462/System.IdentityModel.Tokens.Jwt.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: 411cde144403bea4887fbad759065295 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/net462/System.IdentityModel.Tokens.Jwt.xml b/Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/net462/System.IdentityModel.Tokens.Jwt.xml new file mode 100644 index 0000000..ad73385 --- /dev/null +++ b/Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/net462/System.IdentityModel.Tokens.Jwt.xml @@ -0,0 +1,1548 @@ + + + + System.IdentityModel.Tokens.Jwt + + + + + Constants that indicate how the should be evaluated. + + + + + A value that indicates the is a Json object. + + When creating a from Json if the value was not a simple type {String, Null, True, False, Number} + then will contain the Json value. If the Json was a JsonObject, the will be set to "JSON". + + + + A value that indicates the is a Json object. + + When creating a from Json if the value was not a simple type {String, Null, True, False, Number} + then will contain the Json value. If the Json was a JsonArray, the will be set to "JSON_ARRAY". + + + + A value that indicates the is Json null. + + When creating a the cannot be null. If the Json value was null, then the + will be set to and the will be set to "JSON_NULL". + + + + Constants for Json Web tokens. + + + + + Short header type. + + + + + Long header type. + + + + + Short token type. + + + + + Long token type. + + + + + JWS - Token format: 'header.payload.signature'. Signature is optional, but '.' is required. + + + + + JWE - Token format: 'protectedheader.encryptedkey.iv.cyphertext.authenticationtag'. + + + + + The number of parts in a JWE token. + + + + + The number of parts in a JWS token. + + + + + The maximum number of parts in a JWT. + + + + + JWE header alg indicating a shared symmetric key is directly used as CEK. + + + + + Initializes a new instance of which contains JSON objects representing the cryptographic operations applied to the JWT and optionally any additional properties of the JWT. + The member names within the JWT Header are referred to as Header Parameter Names. + These names MUST be unique and the values must be (s). The corresponding values are referred to as Header Parameter Values. + + + + + Initializes a new instance of the class. Default string comparer . + + + + + Initializes a new instance of the class. Default string comparer . + + + + + Initializes a new instance of . + With the Header Parameters: + { { typ, JWT }, { alg, SigningCredentials.Algorithm } } + + used creating a JWS Compact JSON. + + + + Initializes a new instance of . + With the Header Parameters: + { { typ, JWT }, { alg, EncryptingCredentials.Alg }, { enc, EncryptingCredentials.Enc } } + + used creating a JWE Compact JSON. + If 'encryptingCredentials' is null. + + + + Initializes a new instance of . + With the Header Parameters: + { { typ, JWT }, { alg, SigningCredentials.Algorithm } } + + used when creating a JWS Compact JSON. + provides a mapping for the 'alg' value so that values are within the JWT namespace. + + + + Initializes a new instance of . + With the Header Parameters: + { { typ, JWT }, { alg, SigningCredentials.Algorithm } } + + used when creating a JWS Compact JSON. + provides a mapping for the 'alg' value so that values are within the JWT namespace. + will be added as the value for the 'typ' claim in the header. If it is null or empty will be used as token type + + + + Initializes a new instance of . + With the Header Parameters: + { { typ, JWT }, { alg, SigningCredentials.Algorithm } } + + used when creating a JWS Compact JSON. + provides a mapping for the 'alg' value so that values are within the JWT namespace. + will be added as the value for the 'typ' claim in the header. If it is null or empty will be used as token type + Defines the dictionary containing any custom header claims that need to be added to the inner JWT token header. + + + + Initializes a new instance of . + With the Header Parameters: + { { typ, JWT }, { alg, EncryptingCredentials.Algorithm } } + + used when creating a JWS Compact JSON. + provides a mapping for the 'alg' value so that values are within the JWT namespace. + If 'encryptingCredentials' is null. + + + + Initializes a new instance of . + With the Header Parameters: + { { typ, JWT }, { alg, EncryptingCredentials.Algorithm } } + + used when creating a JWS Compact JSON. + provides a mapping for the 'alg' value so that values are within the JWT namespace. + provides the token type + If 'encryptingCredentials' is null. + + + + Initializes a new instance of . + With the Header Parameters: + { { typ, JWT }, { alg, EncryptingCredentials.Algorithm } } + + used when creating a JWS Compact JSON. + provides a mapping for the 'alg' value so that values are within the JWT namespace. + provides the token type + Defines the dictionary containing any custom header claims that need to be added to the outer JWT token header. + If 'encryptingCredentials' is null. + + + + Gets the signature algorithm that was used to create the signature. + + If the signature algorithm is not found, null is returned. + + + + Gets the content mime type (Cty) of the token. + + If the content mime type is not found, null is returned. + + + + Gets the encryption algorithm (Enc) of the token. + + If the content mime type is not found, null is returned. + + + + Gets the passed in the constructor. + + This value may be null. + + + + Gets the iv of symmetric key wrap. + + + + + Gets the key identifier for the security key used to sign the token + + + + + Gets the passed in the constructor. + + This value may be null. + + + + Gets the mime type (Typ) of the token. + + If the mime type is not found, null is returned. + + + + Gets the thumbprint of the certificate used to sign the token + + + + + Gets the certificate used to sign the token + + If the 'x5c' claim is not found, null is returned. + + + + Gets the 'value' of the 'zip' claim { zip, 'value' }. + + If the 'zip' claim is not found, null is returned. + + + + Deserializes Base64UrlEncoded JSON into a instance. + + Base64url encoded JSON to deserialize. + An instance of . + + + + Encodes this instance as Base64UrlEncoded JSON. + + Base64UrlEncoded JSON. + + + + Gets a standard claim from the header. + A standard claim is either a string or a value of another type serialized in JSON format. + + The key of the claim. + The standard claim string; or null if not found. + + + + Serializes this instance to JSON. + + This instance as JSON. + + + + List of header parameter names see: https://datatracker.ietf.org/doc/html/rfc7519#section-5. + + + + + See: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.1 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.10 + Also: https://datatracker.ietf.org/doc/html/rfc7519#section-5.2 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7516#section-4.1.2 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7518#section-4.7.1.1 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.2 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.3 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.4 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.9 + Also: https://datatracker.ietf.org/doc/html/rfc7519#section-5.1 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.6 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7515#page-12 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.5 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7516#section-4.1.3 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7518#section-4.6.1.1 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7518#section-4.6.1.2 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7518#section-4.6.1.3 + + + + + Initializes a new instance of which contains JSON objects representing the claims contained in the JWT. Each claim is a JSON object of the form { Name, Value }. + + + + + Initializes a new instance of the class with no claims. Default string comparer . + Creates a empty + + + + + Initializes a new instance of the class with . Default string comparer . + The claims to add. + + + + + Initializes a new instance of the class with claims added for each parameter specified. Default string comparer . + + If this value is not null, a { iss, 'issuer' } claim will be added, overwriting any 'iss' claim in 'claims' if present. + If this value is not null, a { aud, 'audience' } claim will be added, appending to any 'aud' claims in 'claims' if present. + If this value is not null then for each a { 'Claim.Type', 'Claim.Value' } is added. If duplicate claims are found then a { 'Claim.Type', List<object> } will be created to contain the duplicate values. + If notbefore.HasValue a { nbf, 'value' } claim is added, overwriting any 'nbf' claim in 'claims' if present. + If expires.HasValue a { exp, 'value' } claim is added, overwriting any 'exp' claim in 'claims' if present. + + + + Initializes a new instance of the class with claims added for each parameter specified. Default string comparer . + + If this value is not null, a { iss, 'issuer' } claim will be added, overwriting any 'iss' claim in 'claims' if present. + If this value is not null, a { aud, 'audience' } claim will be added, appending to any 'aud' claims in 'claims' if present. + If this value is not null then for each a { 'Claim.Type', 'Claim.Value' } is added. If duplicate claims are found then a { 'Claim.Type', List<object> } will be created to contain the duplicate values. + If notbefore.HasValue a { nbf, 'value' } claim is added, overwriting any 'nbf' claim in 'claims' if present. + If expires.HasValue a { exp, 'value' } claim is added, overwriting any 'exp' claim in 'claims' if present. + If issuedAt.HasValue is 'true' a { iat, 'value' } claim is added, overwriting any 'iat' claim in 'claims' if present. + Comparison is set to + The 4 parameters: 'issuer', 'audience', 'notBefore', 'expires' take precedence over (s) in 'claims'. The values will be overridden. + If 'expires' <= 'notbefore'. + + + + Initializes a new instance of the class with claims added for each parameter specified. Default string comparer . + + If this value is not null, a { iss, 'issuer' } claim will be added, overwriting any 'iss' claim in 'claims' and 'claimCollection' if present. + If this value is not null, a { aud, 'audience' } claim will be added, appending to any 'aud' claims in 'claims' or 'claimCollection' if present. + If this value is not null then for each a { 'Claim.Type', 'Claim.Value' } is added. If duplicate claims are found then a { 'Claim.Type', List<object> } will be created to contain the duplicate values. + If both and are not null then the values in claims will be combined with the values in claimsCollection. The values found in claimCollection take precedence over those found in claims, so any duplicate + values will be overridden. + If notbefore.HasValue a { nbf, 'value' } claim is added, overwriting any 'nbf' claim in 'claims' and 'claimcollection' if present. + If expires.HasValue a { exp, 'value' } claim is added, overwriting any 'exp' claim in 'claims' and 'claimcollection' if present. + If issuedAt.HasValue is 'true' a { iat, 'value' } claim is added, overwriting any 'iat' claim in 'claims' and 'claimcollection' if present. + Comparison is set to + The 4 parameters: 'issuer', 'audience', 'notBefore', 'expires' take precedence over (s) in 'claims' and 'claimcollection'. The values will be overridden. + If 'expires' <= 'notbefore'. + + + + Adds Nbf, Exp, Iat, Iss and Aud claims to payload + + If this value is not null, a { iss, 'issuer' } claim will be added, overwriting any 'iss' claim in instance. + If this value is not null, a { aud, 'audience' } claim will be added, appending to any 'aud' claims in instance. + If notbefore.HasValue a { nbf, 'value' } claim is added, overwriting any 'nbf' claim in instance. + If expires.HasValue a { exp, 'value' } claim is added, overwriting any 'exp' claim in instance. + If issuedAt.HasValue is 'true' a { iat, 'value' } claim is added, overwriting any 'iat' claim in instance. + + + + Gets the 'value' of the 'actor' claim { actort, 'value' }. + + If the 'actor' claim is not found, null is returned. + + + + Gets the 'value' of the 'acr' claim { acr, 'value' }. + + If the 'acr' claim is not found, null is returned. + + + + Gets the 'value' of the 'amr' claim { amr, 'value' } as list of strings. + + If the 'amr' claim is not found, an empty enumerable is returned. + + + + Gets the 'value' of the 'auth_time' claim { auth_time, 'value' }. + + If the 'auth_time' claim is not found OR could not be converted to , null is returned. + + + + Gets the 'value' of the 'audience' claim { aud, 'value' } as a list of strings. + + If the 'audience' claim is not found, an empty enumerable is returned. + + + + Gets the 'value' of the 'azp' claim { azp, 'value' }. + + If the 'azp' claim is not found, null is returned. + + + + Gets 'value' of the 'c_hash' claim { c_hash, 'value' }. + + If the 'c_hash' claim is not found, null is returned. + + + + Gets the 'value' of the 'expiration' claim { exp, 'value' }. + + If the 'expiration' claim is not found OR could not be converted to , null is returned. + + + + Gets the 'value' of the 'expiration' claim { exp, 'value' }. + + If the 'expiration' claim is not found OR could not be converted to , null is returned. + + + + Gets the 'value' of the 'JWT ID' claim { jti, 'value' }. + + If the 'JWT ID' claim is not found, null is returned. + + + + Gets the 'value' of the 'Issued At' claim { iat, 'value' }. + + If the 'Issued At' claim is not found OR cannot be converted to null is returned. + + + + Gets the 'value' of the 'issuer' claim { iss, 'value' }. + + If the 'issuer' claim is not found, null is returned. + + + + Gets the 'value' of the 'expiration' claim { nbf, 'value' }. + + If the 'notbefore' claim is not found OR could not be converted to , null is returned. + + + + Gets the 'value' of the 'nonce' claim { nonce, 'value' }. + + If the 'nonce' claim is not found, null is returned. + + + + Gets the 'value' of the 'notebefore' claim { nbf, 'value' }. + + If the 'notbefore' claim is not found OR could not be converted to , null is returned. + + + + Gets the 'value' of the 'subject' claim { sub, 'value' }. + + If the 'subject' claim is not found, null is returned. + + + + Gets the 'value' of the 'notbefore' claim { nbf, 'value' } converted to a assuming 'value' is seconds since UnixEpoch (UTC 1970-01-01T0:0:0Z). + + If the 'notbefore' claim is not found, then is returned. Time is returned as UTC. + + + + Gets the 'value' of the 'expiration' claim { exp, 'value' } converted to a assuming 'value' is seconds since UnixEpoch (UTC 1970-01-01T0:0:0Z). + + If the 'expiration' claim is not found, then is returned. + + + + Gets the 'value' of the 'issued at' claim { iat, 'value' } converted to a assuming 'value' is seconds since UnixEpoch (UTC 1970-01-01T0:0:0Z). + + If the 'issued at' claim is not found, then is returned. + + + + Gets a for each JSON { name, value }. + + Each (s) returned will have the translated according to the mapping found in . Adding and removing to will affect the value of the . + and will be set to the value of ( if null). + + + + Adds a JSON object representing the to the + + { 'Claim.Type', 'Claim.Value' } is added. If a JSON object is found with the name == then a { 'Claim.Type', List<object> } will be created to contain the duplicate values. + See For details on how is applied. + 'claim' is null. + + + + Adds a number of to the as JSON { name, value } pairs. + + For each a JSON pair { 'Claim.Type', 'Claim.Value' } is added. If duplicate claims are found then a { 'Claim.Type', List<object> } will be created to contain the duplicate values. + + Any in the that is null, will be ignored. + is null. + + + + Adds claims from dictionary. + + A dictionary of claims. + If a key is already present in target dictionary, its claimValue is overridden by the claimValue of the key in claimsCollection. + + + + Serializes this instance to JSON. + + This instance as JSON. + + + + Deserializes Base64UrlEncoded JSON into a . + + Base64url encoded JSON to deserialize. + An instance of . + + + + Encodes this instance as Base64UrlEncoded JSON. + + Base64UrlEncoded JSON. + + + + Deserialzes JSON into a instance. + + The JSON to deserialize. + An instance of . + + + + List of registered claims from different sources + https://datatracker.ietf.org/doc/html/rfc7519#section-4 + http://openid.net/specs/openid-connect-core-1_0.html#IDToken + + + + + + + + + http://openid.net/specs/openid-connect-core-1_0.html#IDToken + + + + + http://openid.net/specs/openid-connect-core-1_0.html#IDToken + + + + + https://datatracker.ietf.org/doc/html/rfc7519#section-4 + + + + + http://openid.net/specs/openid-connect-core-1_0.html#IDToken + + + + + http://openid.net/specs/openid-connect-core-1_0.html#IDToken + + + + + https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims + + + + + https://openid.net/specs/openid-connect-core-1_0.html#HybridIDToken + + + + + http://openid.net/specs/openid-connect-core-1_0.html#CodeIDToken + + + + + https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims + + + + + https://datatracker.ietf.org/doc/html/rfc7519#section-4 + + + + + https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims + + + + + https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims + + + + + https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims + + + + + https://datatracker.ietf.org/doc/html/rfc7519#section-4 + + + + + https://datatracker.ietf.org/doc/html/rfc7519#section-4 + + + + + https://datatracker.ietf.org/doc/html/rfc7519#section-4 + + + + + https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims + + + + + + + + + https://openid.net/specs/openid-connect-core-1_0.html#AuthRequest + + + + + https://datatracker.ietf.org/doc/html/rfc7519#section-4 + + + + + + + + + http://openid.net/specs/openid-connect-frontchannel-1_0.html#OPLogout + + + + + https://datatracker.ietf.org/doc/html/rfc7519#section-4 + + + + + https://datatracker.ietf.org/doc/html/rfc7519#section-5 + + + + + + + + + + + + + A designed for representing a JSON Web Token (JWT). + + + + + Initializes a new instance of from a string in JWS Compact serialized format. + + A JSON Web Token that has been serialized in JWS Compact serialized format. + 'jwtEncodedString' is null or contains only whitespace. + 'jwtEncodedString' contains only whitespace. + 'jwtEncodedString' is not in JWE format. + 'jwtEncodedString' is not in JWS or JWE format. + + The contents of this have not been validated, the JSON Web Token is simply decoded. Validation can be accomplished using + + + + + Initializes a new instance of the class where the contains the crypto algorithms applied to the encoded and . The jwtEncodedString is the result of those operations. + + Contains JSON objects representing the cryptographic operations applied to the JWT and optionally any additional properties of the JWT + Contains JSON objects representing the claims contained in the JWT. Each claim is a JSON object of the form { Name, Value } + base64urlencoded JwtHeader + base64urlencoded JwtPayload + base64urlencoded JwtSignature + 'header' is null. + 'payload' is null. + 'rawSignature' is null. + 'rawHeader' or 'rawPayload' is null or whitespace. + + + + Initializes an instance of where the contains the crypto algorithms applied to the innerToken . + + Defines cryptographic operations applied to the 'innerToken'. + + base64urlencoded key + base64urlencoded JwtHeader + base64urlencoded initialization vector. + base64urlencoded encrypted innerToken + base64urlencoded authentication tag. + 'header' is null. + 'innerToken' is null. + 'rawHeader' is null. + 'rawEncryptedKey' is null. + 'rawInitialVector' is null or empty. + 'rawCiphertext' is null or empty. + 'rawAuthenticationTag' is null or empty. + + + + Initializes a new instance of the class where the contains the crypto algorithms applied to the encoded and . The jwtEncodedString is the result of those operations. + + Contains JSON objects representing the cryptographic operations applied to the JWT and optionally any additional properties of the JWT + Contains JSON objects representing the claims contained in the JWT. Each claim is a JSON object of the form { Name, Value } + 'header' is null. + 'payload' is null. + + + + Initializes a new instance of the class specifying optional parameters. + + If this value is not null, a { iss, 'issuer' } claim will be added, overwriting any 'iss' claim in 'claims' if present. + If this value is not null, a { aud, 'audience' } claim will be added, appending to any 'aud' claims in 'claims' if present. + If this value is not null then for each a { 'Claim.Type', 'Claim.Value' } is added. If duplicate claims are found then a { 'Claim.Type', List<object> } will be created to contain the duplicate values. + If expires.HasValue a { exp, 'value' } claim is added, overwriting any 'exp' claim in 'claims' if present. + If notbefore.HasValue a { nbf, 'value' } claim is added, overwriting any 'nbf' claim in 'claims' if present. + The that will be used to sign the . See for details pertaining to the Header Parameter(s). + If 'expires' <= 'notbefore'. + + + + Gets the 'value' of the 'actor' claim { actort, 'value' }. + + If the 'actor' claim is not found, null is returned. + + + + Gets the list of 'audience' claim { aud, 'value' }. + + If the 'audience' claim is not found, enumeration will be empty. + + + + Gets the (s) for this token. + If this is a JWE token, this property only returns the encrypted claims; + the unencrypted claims should be read from the header seperately. + + (s) returned will NOT have the translated according to + + + + Gets the Base64UrlEncoded associated with this instance. + + + + + Gets the Base64UrlEncoded associated with this instance. + + + + + Gets the associated with this instance if the token is signed. + + + + + Gets the 'value' of the 'JWT ID' claim { jti, 'value' }. + + If the 'JWT ID' claim is not found, an empty string is returned. + + + + Gets the 'value' of the 'issuer' claim { iss, 'value' }. + + If the 'issuer' claim is not found, an empty string is returned. + + + + Gets the associated with this instance. + Note that if this JWT is nested ( != null, this property represents the payload of the most inner token. + This property can be null if the content type of the most inner token is unrecognized, in that case + the content of the token is the string returned by PlainText property. + + + + + Gets the associated with this instance. + + + + + Gets the original raw data of this instance when it was created. + + The original JSON Compact serialized format passed to one of the two constructors + or + + + + Gets the original raw data of this instance when it was created. + + The original JSON Compact serialized format passed to one of the two constructors + or + + + + Gets the original raw data of this instance when it was created. + + The original JSON Compact serialized format passed to one of the two constructors + or + + + + Gets the original raw data of this instance when it was created. + + The original JSON Compact serialized format passed to one of the two constructors + or + + + + Gets the original raw data of this instance when it was created. + + The original JSON Compact serialized format passed to one of the two constructors + or + + + + Gets the original raw data of this instance when it was created. + + The original JSON Compact serialized format passed to one of the two constructors + or + + + + Gets the original raw data of this instance when it was created. + + The original JSON Compact serialized format passed to one of the two constructors + or + + + + Gets the original raw data of this instance when it was created. + + The original JSON Compact serialized format passed to one of the two constructors + or + + + + Gets the s for this instance. + + + + + Gets the signature algorithm associated with this instance. + + If there is a associated with this instance, a value will be returned. Null otherwise. + + + + Gets the to use when writing this token. + + + + + Gets the to use when writing this token. + + + + + Gets or sets the that signed this instance. + + .ValidateSignature(...) sets this value when a is used to successfully validate a signature. + + + + Gets the "value" of the 'subject' claim { sub, 'value' }. + + If the 'subject' claim is not found, null is returned. + + + + Gets the 'value' of the 'notbefore' claim { nbf, 'value' } converted to a assuming 'value' is seconds since UnixEpoch (UTC 1970-01-01T0:0:0Z). + + If the 'notbefore' claim is not found, then is returned. + + + + Gets the 'value' of the 'expiration' claim { exp, 'value' } converted to a assuming 'value' is seconds since UnixEpoch (UTC 1970-01-01T0:0:0Z). + + If the 'expiration' claim is not found, then is returned. + + + + Gets the 'value' of the 'issued at' claim { iat, 'value' } converted to a assuming 'value' is seconds since UnixEpoch (UTC 1970-01-01T0:0:0Z). + + If the 'issued at' claim is not found, then is returned. + + + + Serializes the and + + A string containing the header and payload in JSON format. + + + + + + + Decodes the string into the header, payload and signature. + + the tokenized string. + the original token. + + + + Decodes the base64url encoded payload. + + the encoded payload. + + + + Decodes the payload and signature from the JWE parts. + + Parts of the JWE including the header. + Assumes Header has already been set. + + + + Static class to convert a to a + + + + + Initializes a new instance of a from a + + A JSON Web Token to convert from. + is null + doesn't have set. + + + + A designed for creating and validating Json Web Tokens. See: https://datatracker.ietf.org/doc/html/rfc7519 and http://www.rfc-editor.org/info/rfc7515 + + + + + Default claim type mapping for inbound claims. + + + + + Default value for the flag that determines whether or not the InboundClaimTypeMap is used. + + + + + Default claim type mapping for outbound claims. + + + + + Default claim type filter list. + + + + + Default JwtHeader algorithm mapping + + + + + Static initializer for a new object. Static initializers run before the first instance of the type is created. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the property which is used when determining whether or not to map claim types that are extracted when validating a . + If this is set to true, the is set to the JSON claim 'name' after translating using this mapping. Otherwise, no mapping occurs. + The default value is true. + + + + + Gets or sets the which is used when setting the for claims in the extracted when validating a . + The is set to the JSON claim 'name' after translating using this mapping. + The default value is ClaimTypeMapping.InboundClaimTypeMap. + + 'value' is null. + + + + Gets or sets the which is used when creating a from (s). + The JSON claim 'name' value is set to after translating using this mapping. + The default value is ClaimTypeMapping.OutboundClaimTypeMap + + This mapping is applied only when using or . Adding values directly will not result in translation. + 'value' is null. + + + + Gets the outbound algorithm map that is passed to the constructor. + + + + Gets or sets the used to filter claims when populating a claims form a . + When a is validated, claims with types found in this will not be added to the . + The default value is ClaimTypeMapping.InboundClaimFilter. + + 'value' is null. + + + + Gets or sets the property name of the will contain the original JSON claim 'name' if a mapping occurred when the (s) were created. + See for more information. + + If .IsNullOrWhiteSpace('value') is true. + + + + Gets or sets the property name of the will contain .Net type that was recognized when serialized the value to JSON. + See for more information. + + If .IsNullOrWhiteSpace('value') is true. + + + + Returns a value that indicates if this handler can validate a . + + 'true', indicating this instance can validate a . + + + + Gets the value that indicates if this instance can write a . + + 'true', indicating this instance can write a . + + + + Gets the type of the . + + The type of + + + + Determines if the string is a well formed Json Web Token (JWT). + See: https://datatracker.ietf.org/doc/html/rfc7519 + + String that should represent a valid JWT. + Uses matching one of: + JWS: @"^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$" + JWE: (dir): @"^[A-Za-z0-9-_]+\.\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$" + JWE: (wrappedkey): @"^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]$" + + + 'false' if the token is null or whitespace. + 'false' if token.Length is greater than . + 'true' if the token is in JSON compact serialization format. + + + + + Returns a Json Web Token (JWT). + + A that contains details of contents of the token. + A JWS and JWE can be returned. + If is provided, then a JWE will be created. + If is provided then a JWS will be created. + If both are provided then a JWE with an embedded JWS will be created. + + + + + Creates a JWT in 'Compact Serialization Format'. + + The issuer of the token. + The audience for this token. + The source of the (s) for this token. + The notbefore time for this token. + The expiration time for this token. + The issue time for this token. + Contains cryptographic material for generating a signature. + If is not null, then a claim { actort, 'value' } will be added to the payload. See for details on how the value is created. + See for details on how the HeaderParameters are added to the header. + See for details on how the values are added to the payload. + Each in the will map by applying . Modifying could change the outbound JWT. + If is provided, then a JWS will be created. + + A Base64UrlEncoded string in 'Compact Serialization Format'. + + + + Creates a JWT in 'Compact Serialization Format'. + + The issuer of the token. + The audience for this token. + The source of the (s) for this token. + Translated into 'epoch time' and assigned to 'nbf'. + Translated into 'epoch time' and assigned to 'exp'. + Translated into 'epoch time' and assigned to 'iat'. + Contains cryptographic material for signing. + Contains cryptographic material for encrypting. + If is not null, then a claim { actort, 'value' } will be added to the payload. for details on how the value is created. + See for details on how the HeaderParameters are added to the header. + See for details on how the values are added to the payload. + Each in the will map by applying . Modifying could change the outbound JWT. + + A Base64UrlEncoded string in 'Compact Serialization Format'. + If 'expires' <= 'notBefore'. + + + + Creates a JWT in 'Compact Serialization Format'. + + The issuer of the token. + The audience for this token. + The source of the (s) for this token. + Translated into 'epoch time' and assigned to 'nbf'. + Translated into 'epoch time' and assigned to 'exp'. + Translated into 'epoch time' and assigned to 'iat'. + Contains cryptographic material for signing. + Contains cryptographic material for encrypting. + A collection of (key,value) pairs representing (s) for this token. + If is not null, then a claim { actort, 'value' } will be added to the payload. for details on how the value is created. + See for details on how the HeaderParameters are added to the header. + See for details on how the values are added to the payload. + Each in the will map by applying . Modifying could change the outbound JWT. + + A Base64UrlEncoded string in 'Compact Serialization Format'. + If 'expires' <= 'notBefore'. + + + + Creates a Json Web Token (JWT). + + A that contains details of contents of the token. + is used to sign . + + + + Creates a + + The issuer of the token. + The audience for this token. + The source of the (s) for this token. + The notbefore time for this token. + The expiration time for this token. + The issue time for this token. + Contains cryptographic material for generating a signature. + Contains cryptographic material for encrypting the token. + If is not null, then a claim { actort, 'value' } will be added to the payload. for details on how the value is created. + See for details on how the HeaderParameters are added to the header. + See for details on how the values are added to the payload. + Each on the added will have translated according to the mapping found in + . Adding and removing to will affect the name component of the Json claim. + is used to sign . + is used to encrypt or . + + A . + If <= . + + + + Creates a + + The issuer of the token. + The audience for this token. + The source of the (s) for this token. + The notbefore time for this token. + The expiration time for this token. + The issue time for this token. + Contains cryptographic material for generating a signature. + Contains cryptographic material for encrypting the token. + A collection of (key,value) pairs representing (s) for this token. + If is not null, then a claim { actort, 'value' } will be added to the payload. for details on how the value is created. + See for details on how the HeaderParameters are added to the header. + See for details on how the values are added to the payload. + Each on the added will have translated according to the mapping found in + . Adding and removing to will affect the name component of the Json claim. + is used to sign . + is used to encrypt or . + + A . + If <= . + + + + Creates a + + The issuer of the token. + The audience for this token. + The source of the (s) for this token. + The notbefore time for this token. + The expiration time for this token. + The issue time for this token. + Contains cryptographic material for generating a signature. + If is not null, then a claim { actort, 'value' } will be added to the payload. for details on how the value is created. + See for details on how the HeaderParameters are added to the header. + See for details on how the values are added to the payload. + Each on the added will have translated according to the mapping found in + . Adding and removing to will affect the name component of the Json claim. + is used to sign . + + A . + If <= . + + + + Creates a Json Web Token (JWT). + + A that contains details of contents of the token. + is used to sign . + + + + Converts a string into an instance of . + + A 'JSON Web Token' (JWT) in JWS or JWE Compact Serialization Format. + A + is null or empty. + 'token.Length' is greater than . + + If the is in JWE Compact Serialization format, only the protected header will be deserialized. + This method is unable to decrypt the payload. Use to obtain the payload. + The token is NOT validated and no security decisions should be made about the contents. + Use to ensure the token is acceptable. + + + + Converts a string into an instance of . + + A 'JSON Web Token' (JWT) in JWS or JWE Compact Serialization Format. + A + is null or empty. + 'token.Length' is greater than . + + If the is in JWE Compact Serialization format, only the protected header will be deserialized. + This method is unable to decrypt the payload. Use to obtain the payload. + The token is NOT validated and no security decisions should be made about the contents. + Use to ensure the token is acceptable. + + + + Deserializes token with the provided . + + . + The current . + The + This method is not current supported. + + + + Reads and validates a 'JSON Web Token' (JWT) encoded as a JWS or JWE in Compact Serialized Format. + + the JWT encoded as JWE or JWS + Contains validation parameters for the . + The that was validated. + is null or whitespace. + is null. + .Length is greater than . + does not have 3 or 5 parts. + returns false. + was a JWE was not able to be decrypted. + 'kid' header claim is not null AND decryption fails. + 'enc' header claim is null or empty. + 'exp' claim is < DateTime.UtcNow. + is null or whitespace and is null. Audience is not validated if is set to false. + 'aud' claim did not match either or one of . + 'nbf' claim is > 'exp' claim. + .signature is not properly formatted. + 'exp' claim is missing and is true. + is not null and expirationTime.HasValue is false. When a TokenReplayCache is set, tokens require an expiration time. + 'nbf' claim is > DateTime.UtcNow. + could not be added to the . + is found in the cache. + A from the JWT. Does not include claims found in the JWT header. + + Many of the exceptions listed above are not thrown directly from this method. See to examine the call graph. + + + + + Private method for token validation, responsible for: + (1) Obtaining a configuration from the . + (2) Revalidating using the Last Known Good Configuration (if present), and obtaining a refreshed configuration (if necessary) and revalidating using it. + + The JWS string, or the decrypted token if the token is a JWE. + If the token being validated is a JWE, this is the that represents the outer token. + If the token is a JWS, the value of this parameter is . + + The to be used for validation. + The that was validated. + A from the JWT. Does not include claims found in the JWT header. + + + + Validates the JSON payload of a . + + The token to validate. + Contains validation parameters for the . + A from the jwt. Does not include the header claims. + + + + Serializes a into a JWT in Compact Serialization Format. + + to serialize. + + The JWT will be serialized as a JWE or JWS. + will be used to create the JWT. If there is an inner token, the inner token's payload will be used. + If either or .SigningCredentials are set, the JWT will be signed. + If is set, a JWE will be created using the JWT above as the plaintext. + + is null. + 'token' is not a not . + both and are set. + both and .EncryptingCredentials are set. + if is set and is not set. + A JWE or JWS in 'Compact Serialization Format'. + + + + Obtains a and validates the signature. + + Bytes to validate. + Signature to compare against. + to use. + Crypto algorithm to use. + The being validated. + Priority will be given to over . + 'true' if signature is valid. + + + + Validates that the signature, if found or required, is valid. + + A JWS token. + that contains signing keys. + If is null or whitespace. + If is null. + If a signature is not found and is true. + + If the has a key identifier and none of the (s) provided result in a validated signature. + This can indicate that a key refresh is required. + + If after trying all the (s), none result in a validated signature AND the does not have a key identifier. + A that has the signature validated if token was signed. + If the is signed, the signature is validated even if is false. + If the signature is validated, then the will be set to the key that signed the 'token'.It is the responsibility of to set the + + + + Creates a from a . + + The to use as a source. + The value to set + Contains parameters for validating the token. + A containing the . + + + + Creates the 'value' for the actor claim: { actort, 'value' } + + as actor. + representing the actor. + If is not null: +   If 'type' is 'string', return as string. +   if 'type' is 'BootstrapContext' and 'BootstrapContext.SecurityToken' is 'JwtSecurityToken' +     if 'JwtSecurityToken.RawData' != null, return RawData. +     else return . +   if 'BootstrapContext.Token' != null, return 'Token'. + default: new ( ( actor.Claims ). + + 'actor' is null. + + + + Determines if the audiences found in a are valid. + + The audiences found in the . + The being validated. + required for validation. + See for additional details. + + + + Validates the lifetime of a . + + The value of the 'nbf' claim if it exists in the 'jwtToken'. + The value of the 'exp' claim if it exists in the 'jwtToken'. + The being validated. + required for validation. + for additional details. + + + + Determines if the issuer found in a is valid. + + The issuer to validate + The that is being validated. + required for validation. + The issuer to use when creating the (s) in the . + for additional details. + + + + Determines if a is already validated. + + The value of the 'exp' claim if it exists in the '. + The that is being validated. + required for validation. + + + + Returns a to use when validating the signature of a token. + + The representation of the token that is being validated. + The that is being validated. + A required for validation. + Returns a to use for signature validation. + If key fails to resolve, then null is returned + + + + Returns a to use when decryption a JWE. + + The the token that is being decrypted. + The that is being decrypted. + A required for validation. + Returns a to use for signature validation. + If key fails to resolve, then null is returned + + + + Decrypts a JWE and returns the clear text + + the JWE that contains the cypher text. + contains crypto material. + the decoded / cleartext contents of the JWE. + if is null. + if is null. + if 'jwtToken.Header.enc' is null or empty. + if 'jwtToken.Header.kid' is not null AND decryption fails. + if the JWE was not able to be decrypted. + + + + Validates the is an expected value. + + The that signed the . + The to validate. + The current . + If the is a then the X509Certificate2 will be validated using the CertificateValidator. + + + + Serializes to XML a token of the type handled by this instance. + + The XML writer. + A token of type . + + + + + + + Log messages and codes + + + + diff --git a/Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/net462/System.IdentityModel.Tokens.Jwt.xml.meta b/Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/net462/System.IdentityModel.Tokens.Jwt.xml.meta new file mode 100644 index 0000000..be47e67 --- /dev/null +++ b/Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/net462/System.IdentityModel.Tokens.Jwt.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 157b77df90bf38848be0b5f0210b0e24 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/net472.meta b/Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/net472.meta new file mode 100644 index 0000000..8cbc05c --- /dev/null +++ b/Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/net472.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f06e01ecaddc89645afa463d3098ff86 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/net472/System.IdentityModel.Tokens.Jwt.dll b/Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/net472/System.IdentityModel.Tokens.Jwt.dll new file mode 100644 index 0000000..941a1a0 --- /dev/null +++ b/Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/net472/System.IdentityModel.Tokens.Jwt.dll @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e77f3b391444e550738edb40859ad2354ff2d459e168ef22c2e2753d70cf1210 +size 81952 diff --git a/Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/net472/System.IdentityModel.Tokens.Jwt.dll.meta b/Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/net472/System.IdentityModel.Tokens.Jwt.dll.meta new file mode 100644 index 0000000..657671b --- /dev/null +++ b/Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/net472/System.IdentityModel.Tokens.Jwt.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: c8edfbb07d24114458690ad86188d809 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/net472/System.IdentityModel.Tokens.Jwt.xml b/Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/net472/System.IdentityModel.Tokens.Jwt.xml new file mode 100644 index 0000000..ad73385 --- /dev/null +++ b/Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/net472/System.IdentityModel.Tokens.Jwt.xml @@ -0,0 +1,1548 @@ + + + + System.IdentityModel.Tokens.Jwt + + + + + Constants that indicate how the should be evaluated. + + + + + A value that indicates the is a Json object. + + When creating a from Json if the value was not a simple type {String, Null, True, False, Number} + then will contain the Json value. If the Json was a JsonObject, the will be set to "JSON". + + + + A value that indicates the is a Json object. + + When creating a from Json if the value was not a simple type {String, Null, True, False, Number} + then will contain the Json value. If the Json was a JsonArray, the will be set to "JSON_ARRAY". + + + + A value that indicates the is Json null. + + When creating a the cannot be null. If the Json value was null, then the + will be set to and the will be set to "JSON_NULL". + + + + Constants for Json Web tokens. + + + + + Short header type. + + + + + Long header type. + + + + + Short token type. + + + + + Long token type. + + + + + JWS - Token format: 'header.payload.signature'. Signature is optional, but '.' is required. + + + + + JWE - Token format: 'protectedheader.encryptedkey.iv.cyphertext.authenticationtag'. + + + + + The number of parts in a JWE token. + + + + + The number of parts in a JWS token. + + + + + The maximum number of parts in a JWT. + + + + + JWE header alg indicating a shared symmetric key is directly used as CEK. + + + + + Initializes a new instance of which contains JSON objects representing the cryptographic operations applied to the JWT and optionally any additional properties of the JWT. + The member names within the JWT Header are referred to as Header Parameter Names. + These names MUST be unique and the values must be (s). The corresponding values are referred to as Header Parameter Values. + + + + + Initializes a new instance of the class. Default string comparer . + + + + + Initializes a new instance of the class. Default string comparer . + + + + + Initializes a new instance of . + With the Header Parameters: + { { typ, JWT }, { alg, SigningCredentials.Algorithm } } + + used creating a JWS Compact JSON. + + + + Initializes a new instance of . + With the Header Parameters: + { { typ, JWT }, { alg, EncryptingCredentials.Alg }, { enc, EncryptingCredentials.Enc } } + + used creating a JWE Compact JSON. + If 'encryptingCredentials' is null. + + + + Initializes a new instance of . + With the Header Parameters: + { { typ, JWT }, { alg, SigningCredentials.Algorithm } } + + used when creating a JWS Compact JSON. + provides a mapping for the 'alg' value so that values are within the JWT namespace. + + + + Initializes a new instance of . + With the Header Parameters: + { { typ, JWT }, { alg, SigningCredentials.Algorithm } } + + used when creating a JWS Compact JSON. + provides a mapping for the 'alg' value so that values are within the JWT namespace. + will be added as the value for the 'typ' claim in the header. If it is null or empty will be used as token type + + + + Initializes a new instance of . + With the Header Parameters: + { { typ, JWT }, { alg, SigningCredentials.Algorithm } } + + used when creating a JWS Compact JSON. + provides a mapping for the 'alg' value so that values are within the JWT namespace. + will be added as the value for the 'typ' claim in the header. If it is null or empty will be used as token type + Defines the dictionary containing any custom header claims that need to be added to the inner JWT token header. + + + + Initializes a new instance of . + With the Header Parameters: + { { typ, JWT }, { alg, EncryptingCredentials.Algorithm } } + + used when creating a JWS Compact JSON. + provides a mapping for the 'alg' value so that values are within the JWT namespace. + If 'encryptingCredentials' is null. + + + + Initializes a new instance of . + With the Header Parameters: + { { typ, JWT }, { alg, EncryptingCredentials.Algorithm } } + + used when creating a JWS Compact JSON. + provides a mapping for the 'alg' value so that values are within the JWT namespace. + provides the token type + If 'encryptingCredentials' is null. + + + + Initializes a new instance of . + With the Header Parameters: + { { typ, JWT }, { alg, EncryptingCredentials.Algorithm } } + + used when creating a JWS Compact JSON. + provides a mapping for the 'alg' value so that values are within the JWT namespace. + provides the token type + Defines the dictionary containing any custom header claims that need to be added to the outer JWT token header. + If 'encryptingCredentials' is null. + + + + Gets the signature algorithm that was used to create the signature. + + If the signature algorithm is not found, null is returned. + + + + Gets the content mime type (Cty) of the token. + + If the content mime type is not found, null is returned. + + + + Gets the encryption algorithm (Enc) of the token. + + If the content mime type is not found, null is returned. + + + + Gets the passed in the constructor. + + This value may be null. + + + + Gets the iv of symmetric key wrap. + + + + + Gets the key identifier for the security key used to sign the token + + + + + Gets the passed in the constructor. + + This value may be null. + + + + Gets the mime type (Typ) of the token. + + If the mime type is not found, null is returned. + + + + Gets the thumbprint of the certificate used to sign the token + + + + + Gets the certificate used to sign the token + + If the 'x5c' claim is not found, null is returned. + + + + Gets the 'value' of the 'zip' claim { zip, 'value' }. + + If the 'zip' claim is not found, null is returned. + + + + Deserializes Base64UrlEncoded JSON into a instance. + + Base64url encoded JSON to deserialize. + An instance of . + + + + Encodes this instance as Base64UrlEncoded JSON. + + Base64UrlEncoded JSON. + + + + Gets a standard claim from the header. + A standard claim is either a string or a value of another type serialized in JSON format. + + The key of the claim. + The standard claim string; or null if not found. + + + + Serializes this instance to JSON. + + This instance as JSON. + + + + List of header parameter names see: https://datatracker.ietf.org/doc/html/rfc7519#section-5. + + + + + See: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.1 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.10 + Also: https://datatracker.ietf.org/doc/html/rfc7519#section-5.2 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7516#section-4.1.2 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7518#section-4.7.1.1 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.2 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.3 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.4 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.9 + Also: https://datatracker.ietf.org/doc/html/rfc7519#section-5.1 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.6 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7515#page-12 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.5 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7516#section-4.1.3 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7518#section-4.6.1.1 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7518#section-4.6.1.2 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7518#section-4.6.1.3 + + + + + Initializes a new instance of which contains JSON objects representing the claims contained in the JWT. Each claim is a JSON object of the form { Name, Value }. + + + + + Initializes a new instance of the class with no claims. Default string comparer . + Creates a empty + + + + + Initializes a new instance of the class with . Default string comparer . + The claims to add. + + + + + Initializes a new instance of the class with claims added for each parameter specified. Default string comparer . + + If this value is not null, a { iss, 'issuer' } claim will be added, overwriting any 'iss' claim in 'claims' if present. + If this value is not null, a { aud, 'audience' } claim will be added, appending to any 'aud' claims in 'claims' if present. + If this value is not null then for each a { 'Claim.Type', 'Claim.Value' } is added. If duplicate claims are found then a { 'Claim.Type', List<object> } will be created to contain the duplicate values. + If notbefore.HasValue a { nbf, 'value' } claim is added, overwriting any 'nbf' claim in 'claims' if present. + If expires.HasValue a { exp, 'value' } claim is added, overwriting any 'exp' claim in 'claims' if present. + + + + Initializes a new instance of the class with claims added for each parameter specified. Default string comparer . + + If this value is not null, a { iss, 'issuer' } claim will be added, overwriting any 'iss' claim in 'claims' if present. + If this value is not null, a { aud, 'audience' } claim will be added, appending to any 'aud' claims in 'claims' if present. + If this value is not null then for each a { 'Claim.Type', 'Claim.Value' } is added. If duplicate claims are found then a { 'Claim.Type', List<object> } will be created to contain the duplicate values. + If notbefore.HasValue a { nbf, 'value' } claim is added, overwriting any 'nbf' claim in 'claims' if present. + If expires.HasValue a { exp, 'value' } claim is added, overwriting any 'exp' claim in 'claims' if present. + If issuedAt.HasValue is 'true' a { iat, 'value' } claim is added, overwriting any 'iat' claim in 'claims' if present. + Comparison is set to + The 4 parameters: 'issuer', 'audience', 'notBefore', 'expires' take precedence over (s) in 'claims'. The values will be overridden. + If 'expires' <= 'notbefore'. + + + + Initializes a new instance of the class with claims added for each parameter specified. Default string comparer . + + If this value is not null, a { iss, 'issuer' } claim will be added, overwriting any 'iss' claim in 'claims' and 'claimCollection' if present. + If this value is not null, a { aud, 'audience' } claim will be added, appending to any 'aud' claims in 'claims' or 'claimCollection' if present. + If this value is not null then for each a { 'Claim.Type', 'Claim.Value' } is added. If duplicate claims are found then a { 'Claim.Type', List<object> } will be created to contain the duplicate values. + If both and are not null then the values in claims will be combined with the values in claimsCollection. The values found in claimCollection take precedence over those found in claims, so any duplicate + values will be overridden. + If notbefore.HasValue a { nbf, 'value' } claim is added, overwriting any 'nbf' claim in 'claims' and 'claimcollection' if present. + If expires.HasValue a { exp, 'value' } claim is added, overwriting any 'exp' claim in 'claims' and 'claimcollection' if present. + If issuedAt.HasValue is 'true' a { iat, 'value' } claim is added, overwriting any 'iat' claim in 'claims' and 'claimcollection' if present. + Comparison is set to + The 4 parameters: 'issuer', 'audience', 'notBefore', 'expires' take precedence over (s) in 'claims' and 'claimcollection'. The values will be overridden. + If 'expires' <= 'notbefore'. + + + + Adds Nbf, Exp, Iat, Iss and Aud claims to payload + + If this value is not null, a { iss, 'issuer' } claim will be added, overwriting any 'iss' claim in instance. + If this value is not null, a { aud, 'audience' } claim will be added, appending to any 'aud' claims in instance. + If notbefore.HasValue a { nbf, 'value' } claim is added, overwriting any 'nbf' claim in instance. + If expires.HasValue a { exp, 'value' } claim is added, overwriting any 'exp' claim in instance. + If issuedAt.HasValue is 'true' a { iat, 'value' } claim is added, overwriting any 'iat' claim in instance. + + + + Gets the 'value' of the 'actor' claim { actort, 'value' }. + + If the 'actor' claim is not found, null is returned. + + + + Gets the 'value' of the 'acr' claim { acr, 'value' }. + + If the 'acr' claim is not found, null is returned. + + + + Gets the 'value' of the 'amr' claim { amr, 'value' } as list of strings. + + If the 'amr' claim is not found, an empty enumerable is returned. + + + + Gets the 'value' of the 'auth_time' claim { auth_time, 'value' }. + + If the 'auth_time' claim is not found OR could not be converted to , null is returned. + + + + Gets the 'value' of the 'audience' claim { aud, 'value' } as a list of strings. + + If the 'audience' claim is not found, an empty enumerable is returned. + + + + Gets the 'value' of the 'azp' claim { azp, 'value' }. + + If the 'azp' claim is not found, null is returned. + + + + Gets 'value' of the 'c_hash' claim { c_hash, 'value' }. + + If the 'c_hash' claim is not found, null is returned. + + + + Gets the 'value' of the 'expiration' claim { exp, 'value' }. + + If the 'expiration' claim is not found OR could not be converted to , null is returned. + + + + Gets the 'value' of the 'expiration' claim { exp, 'value' }. + + If the 'expiration' claim is not found OR could not be converted to , null is returned. + + + + Gets the 'value' of the 'JWT ID' claim { jti, 'value' }. + + If the 'JWT ID' claim is not found, null is returned. + + + + Gets the 'value' of the 'Issued At' claim { iat, 'value' }. + + If the 'Issued At' claim is not found OR cannot be converted to null is returned. + + + + Gets the 'value' of the 'issuer' claim { iss, 'value' }. + + If the 'issuer' claim is not found, null is returned. + + + + Gets the 'value' of the 'expiration' claim { nbf, 'value' }. + + If the 'notbefore' claim is not found OR could not be converted to , null is returned. + + + + Gets the 'value' of the 'nonce' claim { nonce, 'value' }. + + If the 'nonce' claim is not found, null is returned. + + + + Gets the 'value' of the 'notebefore' claim { nbf, 'value' }. + + If the 'notbefore' claim is not found OR could not be converted to , null is returned. + + + + Gets the 'value' of the 'subject' claim { sub, 'value' }. + + If the 'subject' claim is not found, null is returned. + + + + Gets the 'value' of the 'notbefore' claim { nbf, 'value' } converted to a assuming 'value' is seconds since UnixEpoch (UTC 1970-01-01T0:0:0Z). + + If the 'notbefore' claim is not found, then is returned. Time is returned as UTC. + + + + Gets the 'value' of the 'expiration' claim { exp, 'value' } converted to a assuming 'value' is seconds since UnixEpoch (UTC 1970-01-01T0:0:0Z). + + If the 'expiration' claim is not found, then is returned. + + + + Gets the 'value' of the 'issued at' claim { iat, 'value' } converted to a assuming 'value' is seconds since UnixEpoch (UTC 1970-01-01T0:0:0Z). + + If the 'issued at' claim is not found, then is returned. + + + + Gets a for each JSON { name, value }. + + Each (s) returned will have the translated according to the mapping found in . Adding and removing to will affect the value of the . + and will be set to the value of ( if null). + + + + Adds a JSON object representing the to the + + { 'Claim.Type', 'Claim.Value' } is added. If a JSON object is found with the name == then a { 'Claim.Type', List<object> } will be created to contain the duplicate values. + See For details on how is applied. + 'claim' is null. + + + + Adds a number of to the as JSON { name, value } pairs. + + For each a JSON pair { 'Claim.Type', 'Claim.Value' } is added. If duplicate claims are found then a { 'Claim.Type', List<object> } will be created to contain the duplicate values. + + Any in the that is null, will be ignored. + is null. + + + + Adds claims from dictionary. + + A dictionary of claims. + If a key is already present in target dictionary, its claimValue is overridden by the claimValue of the key in claimsCollection. + + + + Serializes this instance to JSON. + + This instance as JSON. + + + + Deserializes Base64UrlEncoded JSON into a . + + Base64url encoded JSON to deserialize. + An instance of . + + + + Encodes this instance as Base64UrlEncoded JSON. + + Base64UrlEncoded JSON. + + + + Deserialzes JSON into a instance. + + The JSON to deserialize. + An instance of . + + + + List of registered claims from different sources + https://datatracker.ietf.org/doc/html/rfc7519#section-4 + http://openid.net/specs/openid-connect-core-1_0.html#IDToken + + + + + + + + + http://openid.net/specs/openid-connect-core-1_0.html#IDToken + + + + + http://openid.net/specs/openid-connect-core-1_0.html#IDToken + + + + + https://datatracker.ietf.org/doc/html/rfc7519#section-4 + + + + + http://openid.net/specs/openid-connect-core-1_0.html#IDToken + + + + + http://openid.net/specs/openid-connect-core-1_0.html#IDToken + + + + + https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims + + + + + https://openid.net/specs/openid-connect-core-1_0.html#HybridIDToken + + + + + http://openid.net/specs/openid-connect-core-1_0.html#CodeIDToken + + + + + https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims + + + + + https://datatracker.ietf.org/doc/html/rfc7519#section-4 + + + + + https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims + + + + + https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims + + + + + https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims + + + + + https://datatracker.ietf.org/doc/html/rfc7519#section-4 + + + + + https://datatracker.ietf.org/doc/html/rfc7519#section-4 + + + + + https://datatracker.ietf.org/doc/html/rfc7519#section-4 + + + + + https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims + + + + + + + + + https://openid.net/specs/openid-connect-core-1_0.html#AuthRequest + + + + + https://datatracker.ietf.org/doc/html/rfc7519#section-4 + + + + + + + + + http://openid.net/specs/openid-connect-frontchannel-1_0.html#OPLogout + + + + + https://datatracker.ietf.org/doc/html/rfc7519#section-4 + + + + + https://datatracker.ietf.org/doc/html/rfc7519#section-5 + + + + + + + + + + + + + A designed for representing a JSON Web Token (JWT). + + + + + Initializes a new instance of from a string in JWS Compact serialized format. + + A JSON Web Token that has been serialized in JWS Compact serialized format. + 'jwtEncodedString' is null or contains only whitespace. + 'jwtEncodedString' contains only whitespace. + 'jwtEncodedString' is not in JWE format. + 'jwtEncodedString' is not in JWS or JWE format. + + The contents of this have not been validated, the JSON Web Token is simply decoded. Validation can be accomplished using + + + + + Initializes a new instance of the class where the contains the crypto algorithms applied to the encoded and . The jwtEncodedString is the result of those operations. + + Contains JSON objects representing the cryptographic operations applied to the JWT and optionally any additional properties of the JWT + Contains JSON objects representing the claims contained in the JWT. Each claim is a JSON object of the form { Name, Value } + base64urlencoded JwtHeader + base64urlencoded JwtPayload + base64urlencoded JwtSignature + 'header' is null. + 'payload' is null. + 'rawSignature' is null. + 'rawHeader' or 'rawPayload' is null or whitespace. + + + + Initializes an instance of where the contains the crypto algorithms applied to the innerToken . + + Defines cryptographic operations applied to the 'innerToken'. + + base64urlencoded key + base64urlencoded JwtHeader + base64urlencoded initialization vector. + base64urlencoded encrypted innerToken + base64urlencoded authentication tag. + 'header' is null. + 'innerToken' is null. + 'rawHeader' is null. + 'rawEncryptedKey' is null. + 'rawInitialVector' is null or empty. + 'rawCiphertext' is null or empty. + 'rawAuthenticationTag' is null or empty. + + + + Initializes a new instance of the class where the contains the crypto algorithms applied to the encoded and . The jwtEncodedString is the result of those operations. + + Contains JSON objects representing the cryptographic operations applied to the JWT and optionally any additional properties of the JWT + Contains JSON objects representing the claims contained in the JWT. Each claim is a JSON object of the form { Name, Value } + 'header' is null. + 'payload' is null. + + + + Initializes a new instance of the class specifying optional parameters. + + If this value is not null, a { iss, 'issuer' } claim will be added, overwriting any 'iss' claim in 'claims' if present. + If this value is not null, a { aud, 'audience' } claim will be added, appending to any 'aud' claims in 'claims' if present. + If this value is not null then for each a { 'Claim.Type', 'Claim.Value' } is added. If duplicate claims are found then a { 'Claim.Type', List<object> } will be created to contain the duplicate values. + If expires.HasValue a { exp, 'value' } claim is added, overwriting any 'exp' claim in 'claims' if present. + If notbefore.HasValue a { nbf, 'value' } claim is added, overwriting any 'nbf' claim in 'claims' if present. + The that will be used to sign the . See for details pertaining to the Header Parameter(s). + If 'expires' <= 'notbefore'. + + + + Gets the 'value' of the 'actor' claim { actort, 'value' }. + + If the 'actor' claim is not found, null is returned. + + + + Gets the list of 'audience' claim { aud, 'value' }. + + If the 'audience' claim is not found, enumeration will be empty. + + + + Gets the (s) for this token. + If this is a JWE token, this property only returns the encrypted claims; + the unencrypted claims should be read from the header seperately. + + (s) returned will NOT have the translated according to + + + + Gets the Base64UrlEncoded associated with this instance. + + + + + Gets the Base64UrlEncoded associated with this instance. + + + + + Gets the associated with this instance if the token is signed. + + + + + Gets the 'value' of the 'JWT ID' claim { jti, 'value' }. + + If the 'JWT ID' claim is not found, an empty string is returned. + + + + Gets the 'value' of the 'issuer' claim { iss, 'value' }. + + If the 'issuer' claim is not found, an empty string is returned. + + + + Gets the associated with this instance. + Note that if this JWT is nested ( != null, this property represents the payload of the most inner token. + This property can be null if the content type of the most inner token is unrecognized, in that case + the content of the token is the string returned by PlainText property. + + + + + Gets the associated with this instance. + + + + + Gets the original raw data of this instance when it was created. + + The original JSON Compact serialized format passed to one of the two constructors + or + + + + Gets the original raw data of this instance when it was created. + + The original JSON Compact serialized format passed to one of the two constructors + or + + + + Gets the original raw data of this instance when it was created. + + The original JSON Compact serialized format passed to one of the two constructors + or + + + + Gets the original raw data of this instance when it was created. + + The original JSON Compact serialized format passed to one of the two constructors + or + + + + Gets the original raw data of this instance when it was created. + + The original JSON Compact serialized format passed to one of the two constructors + or + + + + Gets the original raw data of this instance when it was created. + + The original JSON Compact serialized format passed to one of the two constructors + or + + + + Gets the original raw data of this instance when it was created. + + The original JSON Compact serialized format passed to one of the two constructors + or + + + + Gets the original raw data of this instance when it was created. + + The original JSON Compact serialized format passed to one of the two constructors + or + + + + Gets the s for this instance. + + + + + Gets the signature algorithm associated with this instance. + + If there is a associated with this instance, a value will be returned. Null otherwise. + + + + Gets the to use when writing this token. + + + + + Gets the to use when writing this token. + + + + + Gets or sets the that signed this instance. + + .ValidateSignature(...) sets this value when a is used to successfully validate a signature. + + + + Gets the "value" of the 'subject' claim { sub, 'value' }. + + If the 'subject' claim is not found, null is returned. + + + + Gets the 'value' of the 'notbefore' claim { nbf, 'value' } converted to a assuming 'value' is seconds since UnixEpoch (UTC 1970-01-01T0:0:0Z). + + If the 'notbefore' claim is not found, then is returned. + + + + Gets the 'value' of the 'expiration' claim { exp, 'value' } converted to a assuming 'value' is seconds since UnixEpoch (UTC 1970-01-01T0:0:0Z). + + If the 'expiration' claim is not found, then is returned. + + + + Gets the 'value' of the 'issued at' claim { iat, 'value' } converted to a assuming 'value' is seconds since UnixEpoch (UTC 1970-01-01T0:0:0Z). + + If the 'issued at' claim is not found, then is returned. + + + + Serializes the and + + A string containing the header and payload in JSON format. + + + + + + + Decodes the string into the header, payload and signature. + + the tokenized string. + the original token. + + + + Decodes the base64url encoded payload. + + the encoded payload. + + + + Decodes the payload and signature from the JWE parts. + + Parts of the JWE including the header. + Assumes Header has already been set. + + + + Static class to convert a to a + + + + + Initializes a new instance of a from a + + A JSON Web Token to convert from. + is null + doesn't have set. + + + + A designed for creating and validating Json Web Tokens. See: https://datatracker.ietf.org/doc/html/rfc7519 and http://www.rfc-editor.org/info/rfc7515 + + + + + Default claim type mapping for inbound claims. + + + + + Default value for the flag that determines whether or not the InboundClaimTypeMap is used. + + + + + Default claim type mapping for outbound claims. + + + + + Default claim type filter list. + + + + + Default JwtHeader algorithm mapping + + + + + Static initializer for a new object. Static initializers run before the first instance of the type is created. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the property which is used when determining whether or not to map claim types that are extracted when validating a . + If this is set to true, the is set to the JSON claim 'name' after translating using this mapping. Otherwise, no mapping occurs. + The default value is true. + + + + + Gets or sets the which is used when setting the for claims in the extracted when validating a . + The is set to the JSON claim 'name' after translating using this mapping. + The default value is ClaimTypeMapping.InboundClaimTypeMap. + + 'value' is null. + + + + Gets or sets the which is used when creating a from (s). + The JSON claim 'name' value is set to after translating using this mapping. + The default value is ClaimTypeMapping.OutboundClaimTypeMap + + This mapping is applied only when using or . Adding values directly will not result in translation. + 'value' is null. + + + + Gets the outbound algorithm map that is passed to the constructor. + + + + Gets or sets the used to filter claims when populating a claims form a . + When a is validated, claims with types found in this will not be added to the . + The default value is ClaimTypeMapping.InboundClaimFilter. + + 'value' is null. + + + + Gets or sets the property name of the will contain the original JSON claim 'name' if a mapping occurred when the (s) were created. + See for more information. + + If .IsNullOrWhiteSpace('value') is true. + + + + Gets or sets the property name of the will contain .Net type that was recognized when serialized the value to JSON. + See for more information. + + If .IsNullOrWhiteSpace('value') is true. + + + + Returns a value that indicates if this handler can validate a . + + 'true', indicating this instance can validate a . + + + + Gets the value that indicates if this instance can write a . + + 'true', indicating this instance can write a . + + + + Gets the type of the . + + The type of + + + + Determines if the string is a well formed Json Web Token (JWT). + See: https://datatracker.ietf.org/doc/html/rfc7519 + + String that should represent a valid JWT. + Uses matching one of: + JWS: @"^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$" + JWE: (dir): @"^[A-Za-z0-9-_]+\.\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$" + JWE: (wrappedkey): @"^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]$" + + + 'false' if the token is null or whitespace. + 'false' if token.Length is greater than . + 'true' if the token is in JSON compact serialization format. + + + + + Returns a Json Web Token (JWT). + + A that contains details of contents of the token. + A JWS and JWE can be returned. + If is provided, then a JWE will be created. + If is provided then a JWS will be created. + If both are provided then a JWE with an embedded JWS will be created. + + + + + Creates a JWT in 'Compact Serialization Format'. + + The issuer of the token. + The audience for this token. + The source of the (s) for this token. + The notbefore time for this token. + The expiration time for this token. + The issue time for this token. + Contains cryptographic material for generating a signature. + If is not null, then a claim { actort, 'value' } will be added to the payload. See for details on how the value is created. + See for details on how the HeaderParameters are added to the header. + See for details on how the values are added to the payload. + Each in the will map by applying . Modifying could change the outbound JWT. + If is provided, then a JWS will be created. + + A Base64UrlEncoded string in 'Compact Serialization Format'. + + + + Creates a JWT in 'Compact Serialization Format'. + + The issuer of the token. + The audience for this token. + The source of the (s) for this token. + Translated into 'epoch time' and assigned to 'nbf'. + Translated into 'epoch time' and assigned to 'exp'. + Translated into 'epoch time' and assigned to 'iat'. + Contains cryptographic material for signing. + Contains cryptographic material for encrypting. + If is not null, then a claim { actort, 'value' } will be added to the payload. for details on how the value is created. + See for details on how the HeaderParameters are added to the header. + See for details on how the values are added to the payload. + Each in the will map by applying . Modifying could change the outbound JWT. + + A Base64UrlEncoded string in 'Compact Serialization Format'. + If 'expires' <= 'notBefore'. + + + + Creates a JWT in 'Compact Serialization Format'. + + The issuer of the token. + The audience for this token. + The source of the (s) for this token. + Translated into 'epoch time' and assigned to 'nbf'. + Translated into 'epoch time' and assigned to 'exp'. + Translated into 'epoch time' and assigned to 'iat'. + Contains cryptographic material for signing. + Contains cryptographic material for encrypting. + A collection of (key,value) pairs representing (s) for this token. + If is not null, then a claim { actort, 'value' } will be added to the payload. for details on how the value is created. + See for details on how the HeaderParameters are added to the header. + See for details on how the values are added to the payload. + Each in the will map by applying . Modifying could change the outbound JWT. + + A Base64UrlEncoded string in 'Compact Serialization Format'. + If 'expires' <= 'notBefore'. + + + + Creates a Json Web Token (JWT). + + A that contains details of contents of the token. + is used to sign . + + + + Creates a + + The issuer of the token. + The audience for this token. + The source of the (s) for this token. + The notbefore time for this token. + The expiration time for this token. + The issue time for this token. + Contains cryptographic material for generating a signature. + Contains cryptographic material for encrypting the token. + If is not null, then a claim { actort, 'value' } will be added to the payload. for details on how the value is created. + See for details on how the HeaderParameters are added to the header. + See for details on how the values are added to the payload. + Each on the added will have translated according to the mapping found in + . Adding and removing to will affect the name component of the Json claim. + is used to sign . + is used to encrypt or . + + A . + If <= . + + + + Creates a + + The issuer of the token. + The audience for this token. + The source of the (s) for this token. + The notbefore time for this token. + The expiration time for this token. + The issue time for this token. + Contains cryptographic material for generating a signature. + Contains cryptographic material for encrypting the token. + A collection of (key,value) pairs representing (s) for this token. + If is not null, then a claim { actort, 'value' } will be added to the payload. for details on how the value is created. + See for details on how the HeaderParameters are added to the header. + See for details on how the values are added to the payload. + Each on the added will have translated according to the mapping found in + . Adding and removing to will affect the name component of the Json claim. + is used to sign . + is used to encrypt or . + + A . + If <= . + + + + Creates a + + The issuer of the token. + The audience for this token. + The source of the (s) for this token. + The notbefore time for this token. + The expiration time for this token. + The issue time for this token. + Contains cryptographic material for generating a signature. + If is not null, then a claim { actort, 'value' } will be added to the payload. for details on how the value is created. + See for details on how the HeaderParameters are added to the header. + See for details on how the values are added to the payload. + Each on the added will have translated according to the mapping found in + . Adding and removing to will affect the name component of the Json claim. + is used to sign . + + A . + If <= . + + + + Creates a Json Web Token (JWT). + + A that contains details of contents of the token. + is used to sign . + + + + Converts a string into an instance of . + + A 'JSON Web Token' (JWT) in JWS or JWE Compact Serialization Format. + A + is null or empty. + 'token.Length' is greater than . + + If the is in JWE Compact Serialization format, only the protected header will be deserialized. + This method is unable to decrypt the payload. Use to obtain the payload. + The token is NOT validated and no security decisions should be made about the contents. + Use to ensure the token is acceptable. + + + + Converts a string into an instance of . + + A 'JSON Web Token' (JWT) in JWS or JWE Compact Serialization Format. + A + is null or empty. + 'token.Length' is greater than . + + If the is in JWE Compact Serialization format, only the protected header will be deserialized. + This method is unable to decrypt the payload. Use to obtain the payload. + The token is NOT validated and no security decisions should be made about the contents. + Use to ensure the token is acceptable. + + + + Deserializes token with the provided . + + . + The current . + The + This method is not current supported. + + + + Reads and validates a 'JSON Web Token' (JWT) encoded as a JWS or JWE in Compact Serialized Format. + + the JWT encoded as JWE or JWS + Contains validation parameters for the . + The that was validated. + is null or whitespace. + is null. + .Length is greater than . + does not have 3 or 5 parts. + returns false. + was a JWE was not able to be decrypted. + 'kid' header claim is not null AND decryption fails. + 'enc' header claim is null or empty. + 'exp' claim is < DateTime.UtcNow. + is null or whitespace and is null. Audience is not validated if is set to false. + 'aud' claim did not match either or one of . + 'nbf' claim is > 'exp' claim. + .signature is not properly formatted. + 'exp' claim is missing and is true. + is not null and expirationTime.HasValue is false. When a TokenReplayCache is set, tokens require an expiration time. + 'nbf' claim is > DateTime.UtcNow. + could not be added to the . + is found in the cache. + A from the JWT. Does not include claims found in the JWT header. + + Many of the exceptions listed above are not thrown directly from this method. See to examine the call graph. + + + + + Private method for token validation, responsible for: + (1) Obtaining a configuration from the . + (2) Revalidating using the Last Known Good Configuration (if present), and obtaining a refreshed configuration (if necessary) and revalidating using it. + + The JWS string, or the decrypted token if the token is a JWE. + If the token being validated is a JWE, this is the that represents the outer token. + If the token is a JWS, the value of this parameter is . + + The to be used for validation. + The that was validated. + A from the JWT. Does not include claims found in the JWT header. + + + + Validates the JSON payload of a . + + The token to validate. + Contains validation parameters for the . + A from the jwt. Does not include the header claims. + + + + Serializes a into a JWT in Compact Serialization Format. + + to serialize. + + The JWT will be serialized as a JWE or JWS. + will be used to create the JWT. If there is an inner token, the inner token's payload will be used. + If either or .SigningCredentials are set, the JWT will be signed. + If is set, a JWE will be created using the JWT above as the plaintext. + + is null. + 'token' is not a not . + both and are set. + both and .EncryptingCredentials are set. + if is set and is not set. + A JWE or JWS in 'Compact Serialization Format'. + + + + Obtains a and validates the signature. + + Bytes to validate. + Signature to compare against. + to use. + Crypto algorithm to use. + The being validated. + Priority will be given to over . + 'true' if signature is valid. + + + + Validates that the signature, if found or required, is valid. + + A JWS token. + that contains signing keys. + If is null or whitespace. + If is null. + If a signature is not found and is true. + + If the has a key identifier and none of the (s) provided result in a validated signature. + This can indicate that a key refresh is required. + + If after trying all the (s), none result in a validated signature AND the does not have a key identifier. + A that has the signature validated if token was signed. + If the is signed, the signature is validated even if is false. + If the signature is validated, then the will be set to the key that signed the 'token'.It is the responsibility of to set the + + + + Creates a from a . + + The to use as a source. + The value to set + Contains parameters for validating the token. + A containing the . + + + + Creates the 'value' for the actor claim: { actort, 'value' } + + as actor. + representing the actor. + If is not null: +   If 'type' is 'string', return as string. +   if 'type' is 'BootstrapContext' and 'BootstrapContext.SecurityToken' is 'JwtSecurityToken' +     if 'JwtSecurityToken.RawData' != null, return RawData. +     else return . +   if 'BootstrapContext.Token' != null, return 'Token'. + default: new ( ( actor.Claims ). + + 'actor' is null. + + + + Determines if the audiences found in a are valid. + + The audiences found in the . + The being validated. + required for validation. + See for additional details. + + + + Validates the lifetime of a . + + The value of the 'nbf' claim if it exists in the 'jwtToken'. + The value of the 'exp' claim if it exists in the 'jwtToken'. + The being validated. + required for validation. + for additional details. + + + + Determines if the issuer found in a is valid. + + The issuer to validate + The that is being validated. + required for validation. + The issuer to use when creating the (s) in the . + for additional details. + + + + Determines if a is already validated. + + The value of the 'exp' claim if it exists in the '. + The that is being validated. + required for validation. + + + + Returns a to use when validating the signature of a token. + + The representation of the token that is being validated. + The that is being validated. + A required for validation. + Returns a to use for signature validation. + If key fails to resolve, then null is returned + + + + Returns a to use when decryption a JWE. + + The the token that is being decrypted. + The that is being decrypted. + A required for validation. + Returns a to use for signature validation. + If key fails to resolve, then null is returned + + + + Decrypts a JWE and returns the clear text + + the JWE that contains the cypher text. + contains crypto material. + the decoded / cleartext contents of the JWE. + if is null. + if is null. + if 'jwtToken.Header.enc' is null or empty. + if 'jwtToken.Header.kid' is not null AND decryption fails. + if the JWE was not able to be decrypted. + + + + Validates the is an expected value. + + The that signed the . + The to validate. + The current . + If the is a then the X509Certificate2 will be validated using the CertificateValidator. + + + + Serializes to XML a token of the type handled by this instance. + + The XML writer. + A token of type . + + + + + + + Log messages and codes + + + + diff --git a/Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/net472/System.IdentityModel.Tokens.Jwt.xml.meta b/Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/net472/System.IdentityModel.Tokens.Jwt.xml.meta new file mode 100644 index 0000000..f65a559 --- /dev/null +++ b/Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/net472/System.IdentityModel.Tokens.Jwt.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 445e9c5cde3fd0e43a016b571ff86649 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/net6.0.meta b/Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/net6.0.meta new file mode 100644 index 0000000..cf5ac93 --- /dev/null +++ b/Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/net6.0.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 95625e64a89acfa45b2bce274d2cefe8 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/net6.0/System.IdentityModel.Tokens.Jwt.dll b/Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/net6.0/System.IdentityModel.Tokens.Jwt.dll new file mode 100644 index 0000000..1e8b61b --- /dev/null +++ b/Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/net6.0/System.IdentityModel.Tokens.Jwt.dll @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e949c6bf9aeec51106d0f937d8cb9614e16372a72f60dba29c97096815cf9d10 +size 81840 diff --git a/Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/net6.0/System.IdentityModel.Tokens.Jwt.dll.meta b/Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/net6.0/System.IdentityModel.Tokens.Jwt.dll.meta new file mode 100644 index 0000000..2046275 --- /dev/null +++ b/Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/net6.0/System.IdentityModel.Tokens.Jwt.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: ded964c75678b1f45b0fd61a9acd3f21 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/net6.0/System.IdentityModel.Tokens.Jwt.xml b/Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/net6.0/System.IdentityModel.Tokens.Jwt.xml new file mode 100644 index 0000000..ad73385 --- /dev/null +++ b/Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/net6.0/System.IdentityModel.Tokens.Jwt.xml @@ -0,0 +1,1548 @@ + + + + System.IdentityModel.Tokens.Jwt + + + + + Constants that indicate how the should be evaluated. + + + + + A value that indicates the is a Json object. + + When creating a from Json if the value was not a simple type {String, Null, True, False, Number} + then will contain the Json value. If the Json was a JsonObject, the will be set to "JSON". + + + + A value that indicates the is a Json object. + + When creating a from Json if the value was not a simple type {String, Null, True, False, Number} + then will contain the Json value. If the Json was a JsonArray, the will be set to "JSON_ARRAY". + + + + A value that indicates the is Json null. + + When creating a the cannot be null. If the Json value was null, then the + will be set to and the will be set to "JSON_NULL". + + + + Constants for Json Web tokens. + + + + + Short header type. + + + + + Long header type. + + + + + Short token type. + + + + + Long token type. + + + + + JWS - Token format: 'header.payload.signature'. Signature is optional, but '.' is required. + + + + + JWE - Token format: 'protectedheader.encryptedkey.iv.cyphertext.authenticationtag'. + + + + + The number of parts in a JWE token. + + + + + The number of parts in a JWS token. + + + + + The maximum number of parts in a JWT. + + + + + JWE header alg indicating a shared symmetric key is directly used as CEK. + + + + + Initializes a new instance of which contains JSON objects representing the cryptographic operations applied to the JWT and optionally any additional properties of the JWT. + The member names within the JWT Header are referred to as Header Parameter Names. + These names MUST be unique and the values must be (s). The corresponding values are referred to as Header Parameter Values. + + + + + Initializes a new instance of the class. Default string comparer . + + + + + Initializes a new instance of the class. Default string comparer . + + + + + Initializes a new instance of . + With the Header Parameters: + { { typ, JWT }, { alg, SigningCredentials.Algorithm } } + + used creating a JWS Compact JSON. + + + + Initializes a new instance of . + With the Header Parameters: + { { typ, JWT }, { alg, EncryptingCredentials.Alg }, { enc, EncryptingCredentials.Enc } } + + used creating a JWE Compact JSON. + If 'encryptingCredentials' is null. + + + + Initializes a new instance of . + With the Header Parameters: + { { typ, JWT }, { alg, SigningCredentials.Algorithm } } + + used when creating a JWS Compact JSON. + provides a mapping for the 'alg' value so that values are within the JWT namespace. + + + + Initializes a new instance of . + With the Header Parameters: + { { typ, JWT }, { alg, SigningCredentials.Algorithm } } + + used when creating a JWS Compact JSON. + provides a mapping for the 'alg' value so that values are within the JWT namespace. + will be added as the value for the 'typ' claim in the header. If it is null or empty will be used as token type + + + + Initializes a new instance of . + With the Header Parameters: + { { typ, JWT }, { alg, SigningCredentials.Algorithm } } + + used when creating a JWS Compact JSON. + provides a mapping for the 'alg' value so that values are within the JWT namespace. + will be added as the value for the 'typ' claim in the header. If it is null or empty will be used as token type + Defines the dictionary containing any custom header claims that need to be added to the inner JWT token header. + + + + Initializes a new instance of . + With the Header Parameters: + { { typ, JWT }, { alg, EncryptingCredentials.Algorithm } } + + used when creating a JWS Compact JSON. + provides a mapping for the 'alg' value so that values are within the JWT namespace. + If 'encryptingCredentials' is null. + + + + Initializes a new instance of . + With the Header Parameters: + { { typ, JWT }, { alg, EncryptingCredentials.Algorithm } } + + used when creating a JWS Compact JSON. + provides a mapping for the 'alg' value so that values are within the JWT namespace. + provides the token type + If 'encryptingCredentials' is null. + + + + Initializes a new instance of . + With the Header Parameters: + { { typ, JWT }, { alg, EncryptingCredentials.Algorithm } } + + used when creating a JWS Compact JSON. + provides a mapping for the 'alg' value so that values are within the JWT namespace. + provides the token type + Defines the dictionary containing any custom header claims that need to be added to the outer JWT token header. + If 'encryptingCredentials' is null. + + + + Gets the signature algorithm that was used to create the signature. + + If the signature algorithm is not found, null is returned. + + + + Gets the content mime type (Cty) of the token. + + If the content mime type is not found, null is returned. + + + + Gets the encryption algorithm (Enc) of the token. + + If the content mime type is not found, null is returned. + + + + Gets the passed in the constructor. + + This value may be null. + + + + Gets the iv of symmetric key wrap. + + + + + Gets the key identifier for the security key used to sign the token + + + + + Gets the passed in the constructor. + + This value may be null. + + + + Gets the mime type (Typ) of the token. + + If the mime type is not found, null is returned. + + + + Gets the thumbprint of the certificate used to sign the token + + + + + Gets the certificate used to sign the token + + If the 'x5c' claim is not found, null is returned. + + + + Gets the 'value' of the 'zip' claim { zip, 'value' }. + + If the 'zip' claim is not found, null is returned. + + + + Deserializes Base64UrlEncoded JSON into a instance. + + Base64url encoded JSON to deserialize. + An instance of . + + + + Encodes this instance as Base64UrlEncoded JSON. + + Base64UrlEncoded JSON. + + + + Gets a standard claim from the header. + A standard claim is either a string or a value of another type serialized in JSON format. + + The key of the claim. + The standard claim string; or null if not found. + + + + Serializes this instance to JSON. + + This instance as JSON. + + + + List of header parameter names see: https://datatracker.ietf.org/doc/html/rfc7519#section-5. + + + + + See: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.1 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.10 + Also: https://datatracker.ietf.org/doc/html/rfc7519#section-5.2 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7516#section-4.1.2 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7518#section-4.7.1.1 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.2 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.3 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.4 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.9 + Also: https://datatracker.ietf.org/doc/html/rfc7519#section-5.1 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.6 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7515#page-12 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.5 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7516#section-4.1.3 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7518#section-4.6.1.1 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7518#section-4.6.1.2 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7518#section-4.6.1.3 + + + + + Initializes a new instance of which contains JSON objects representing the claims contained in the JWT. Each claim is a JSON object of the form { Name, Value }. + + + + + Initializes a new instance of the class with no claims. Default string comparer . + Creates a empty + + + + + Initializes a new instance of the class with . Default string comparer . + The claims to add. + + + + + Initializes a new instance of the class with claims added for each parameter specified. Default string comparer . + + If this value is not null, a { iss, 'issuer' } claim will be added, overwriting any 'iss' claim in 'claims' if present. + If this value is not null, a { aud, 'audience' } claim will be added, appending to any 'aud' claims in 'claims' if present. + If this value is not null then for each a { 'Claim.Type', 'Claim.Value' } is added. If duplicate claims are found then a { 'Claim.Type', List<object> } will be created to contain the duplicate values. + If notbefore.HasValue a { nbf, 'value' } claim is added, overwriting any 'nbf' claim in 'claims' if present. + If expires.HasValue a { exp, 'value' } claim is added, overwriting any 'exp' claim in 'claims' if present. + + + + Initializes a new instance of the class with claims added for each parameter specified. Default string comparer . + + If this value is not null, a { iss, 'issuer' } claim will be added, overwriting any 'iss' claim in 'claims' if present. + If this value is not null, a { aud, 'audience' } claim will be added, appending to any 'aud' claims in 'claims' if present. + If this value is not null then for each a { 'Claim.Type', 'Claim.Value' } is added. If duplicate claims are found then a { 'Claim.Type', List<object> } will be created to contain the duplicate values. + If notbefore.HasValue a { nbf, 'value' } claim is added, overwriting any 'nbf' claim in 'claims' if present. + If expires.HasValue a { exp, 'value' } claim is added, overwriting any 'exp' claim in 'claims' if present. + If issuedAt.HasValue is 'true' a { iat, 'value' } claim is added, overwriting any 'iat' claim in 'claims' if present. + Comparison is set to + The 4 parameters: 'issuer', 'audience', 'notBefore', 'expires' take precedence over (s) in 'claims'. The values will be overridden. + If 'expires' <= 'notbefore'. + + + + Initializes a new instance of the class with claims added for each parameter specified. Default string comparer . + + If this value is not null, a { iss, 'issuer' } claim will be added, overwriting any 'iss' claim in 'claims' and 'claimCollection' if present. + If this value is not null, a { aud, 'audience' } claim will be added, appending to any 'aud' claims in 'claims' or 'claimCollection' if present. + If this value is not null then for each a { 'Claim.Type', 'Claim.Value' } is added. If duplicate claims are found then a { 'Claim.Type', List<object> } will be created to contain the duplicate values. + If both and are not null then the values in claims will be combined with the values in claimsCollection. The values found in claimCollection take precedence over those found in claims, so any duplicate + values will be overridden. + If notbefore.HasValue a { nbf, 'value' } claim is added, overwriting any 'nbf' claim in 'claims' and 'claimcollection' if present. + If expires.HasValue a { exp, 'value' } claim is added, overwriting any 'exp' claim in 'claims' and 'claimcollection' if present. + If issuedAt.HasValue is 'true' a { iat, 'value' } claim is added, overwriting any 'iat' claim in 'claims' and 'claimcollection' if present. + Comparison is set to + The 4 parameters: 'issuer', 'audience', 'notBefore', 'expires' take precedence over (s) in 'claims' and 'claimcollection'. The values will be overridden. + If 'expires' <= 'notbefore'. + + + + Adds Nbf, Exp, Iat, Iss and Aud claims to payload + + If this value is not null, a { iss, 'issuer' } claim will be added, overwriting any 'iss' claim in instance. + If this value is not null, a { aud, 'audience' } claim will be added, appending to any 'aud' claims in instance. + If notbefore.HasValue a { nbf, 'value' } claim is added, overwriting any 'nbf' claim in instance. + If expires.HasValue a { exp, 'value' } claim is added, overwriting any 'exp' claim in instance. + If issuedAt.HasValue is 'true' a { iat, 'value' } claim is added, overwriting any 'iat' claim in instance. + + + + Gets the 'value' of the 'actor' claim { actort, 'value' }. + + If the 'actor' claim is not found, null is returned. + + + + Gets the 'value' of the 'acr' claim { acr, 'value' }. + + If the 'acr' claim is not found, null is returned. + + + + Gets the 'value' of the 'amr' claim { amr, 'value' } as list of strings. + + If the 'amr' claim is not found, an empty enumerable is returned. + + + + Gets the 'value' of the 'auth_time' claim { auth_time, 'value' }. + + If the 'auth_time' claim is not found OR could not be converted to , null is returned. + + + + Gets the 'value' of the 'audience' claim { aud, 'value' } as a list of strings. + + If the 'audience' claim is not found, an empty enumerable is returned. + + + + Gets the 'value' of the 'azp' claim { azp, 'value' }. + + If the 'azp' claim is not found, null is returned. + + + + Gets 'value' of the 'c_hash' claim { c_hash, 'value' }. + + If the 'c_hash' claim is not found, null is returned. + + + + Gets the 'value' of the 'expiration' claim { exp, 'value' }. + + If the 'expiration' claim is not found OR could not be converted to , null is returned. + + + + Gets the 'value' of the 'expiration' claim { exp, 'value' }. + + If the 'expiration' claim is not found OR could not be converted to , null is returned. + + + + Gets the 'value' of the 'JWT ID' claim { jti, 'value' }. + + If the 'JWT ID' claim is not found, null is returned. + + + + Gets the 'value' of the 'Issued At' claim { iat, 'value' }. + + If the 'Issued At' claim is not found OR cannot be converted to null is returned. + + + + Gets the 'value' of the 'issuer' claim { iss, 'value' }. + + If the 'issuer' claim is not found, null is returned. + + + + Gets the 'value' of the 'expiration' claim { nbf, 'value' }. + + If the 'notbefore' claim is not found OR could not be converted to , null is returned. + + + + Gets the 'value' of the 'nonce' claim { nonce, 'value' }. + + If the 'nonce' claim is not found, null is returned. + + + + Gets the 'value' of the 'notebefore' claim { nbf, 'value' }. + + If the 'notbefore' claim is not found OR could not be converted to , null is returned. + + + + Gets the 'value' of the 'subject' claim { sub, 'value' }. + + If the 'subject' claim is not found, null is returned. + + + + Gets the 'value' of the 'notbefore' claim { nbf, 'value' } converted to a assuming 'value' is seconds since UnixEpoch (UTC 1970-01-01T0:0:0Z). + + If the 'notbefore' claim is not found, then is returned. Time is returned as UTC. + + + + Gets the 'value' of the 'expiration' claim { exp, 'value' } converted to a assuming 'value' is seconds since UnixEpoch (UTC 1970-01-01T0:0:0Z). + + If the 'expiration' claim is not found, then is returned. + + + + Gets the 'value' of the 'issued at' claim { iat, 'value' } converted to a assuming 'value' is seconds since UnixEpoch (UTC 1970-01-01T0:0:0Z). + + If the 'issued at' claim is not found, then is returned. + + + + Gets a for each JSON { name, value }. + + Each (s) returned will have the translated according to the mapping found in . Adding and removing to will affect the value of the . + and will be set to the value of ( if null). + + + + Adds a JSON object representing the to the + + { 'Claim.Type', 'Claim.Value' } is added. If a JSON object is found with the name == then a { 'Claim.Type', List<object> } will be created to contain the duplicate values. + See For details on how is applied. + 'claim' is null. + + + + Adds a number of to the as JSON { name, value } pairs. + + For each a JSON pair { 'Claim.Type', 'Claim.Value' } is added. If duplicate claims are found then a { 'Claim.Type', List<object> } will be created to contain the duplicate values. + + Any in the that is null, will be ignored. + is null. + + + + Adds claims from dictionary. + + A dictionary of claims. + If a key is already present in target dictionary, its claimValue is overridden by the claimValue of the key in claimsCollection. + + + + Serializes this instance to JSON. + + This instance as JSON. + + + + Deserializes Base64UrlEncoded JSON into a . + + Base64url encoded JSON to deserialize. + An instance of . + + + + Encodes this instance as Base64UrlEncoded JSON. + + Base64UrlEncoded JSON. + + + + Deserialzes JSON into a instance. + + The JSON to deserialize. + An instance of . + + + + List of registered claims from different sources + https://datatracker.ietf.org/doc/html/rfc7519#section-4 + http://openid.net/specs/openid-connect-core-1_0.html#IDToken + + + + + + + + + http://openid.net/specs/openid-connect-core-1_0.html#IDToken + + + + + http://openid.net/specs/openid-connect-core-1_0.html#IDToken + + + + + https://datatracker.ietf.org/doc/html/rfc7519#section-4 + + + + + http://openid.net/specs/openid-connect-core-1_0.html#IDToken + + + + + http://openid.net/specs/openid-connect-core-1_0.html#IDToken + + + + + https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims + + + + + https://openid.net/specs/openid-connect-core-1_0.html#HybridIDToken + + + + + http://openid.net/specs/openid-connect-core-1_0.html#CodeIDToken + + + + + https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims + + + + + https://datatracker.ietf.org/doc/html/rfc7519#section-4 + + + + + https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims + + + + + https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims + + + + + https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims + + + + + https://datatracker.ietf.org/doc/html/rfc7519#section-4 + + + + + https://datatracker.ietf.org/doc/html/rfc7519#section-4 + + + + + https://datatracker.ietf.org/doc/html/rfc7519#section-4 + + + + + https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims + + + + + + + + + https://openid.net/specs/openid-connect-core-1_0.html#AuthRequest + + + + + https://datatracker.ietf.org/doc/html/rfc7519#section-4 + + + + + + + + + http://openid.net/specs/openid-connect-frontchannel-1_0.html#OPLogout + + + + + https://datatracker.ietf.org/doc/html/rfc7519#section-4 + + + + + https://datatracker.ietf.org/doc/html/rfc7519#section-5 + + + + + + + + + + + + + A designed for representing a JSON Web Token (JWT). + + + + + Initializes a new instance of from a string in JWS Compact serialized format. + + A JSON Web Token that has been serialized in JWS Compact serialized format. + 'jwtEncodedString' is null or contains only whitespace. + 'jwtEncodedString' contains only whitespace. + 'jwtEncodedString' is not in JWE format. + 'jwtEncodedString' is not in JWS or JWE format. + + The contents of this have not been validated, the JSON Web Token is simply decoded. Validation can be accomplished using + + + + + Initializes a new instance of the class where the contains the crypto algorithms applied to the encoded and . The jwtEncodedString is the result of those operations. + + Contains JSON objects representing the cryptographic operations applied to the JWT and optionally any additional properties of the JWT + Contains JSON objects representing the claims contained in the JWT. Each claim is a JSON object of the form { Name, Value } + base64urlencoded JwtHeader + base64urlencoded JwtPayload + base64urlencoded JwtSignature + 'header' is null. + 'payload' is null. + 'rawSignature' is null. + 'rawHeader' or 'rawPayload' is null or whitespace. + + + + Initializes an instance of where the contains the crypto algorithms applied to the innerToken . + + Defines cryptographic operations applied to the 'innerToken'. + + base64urlencoded key + base64urlencoded JwtHeader + base64urlencoded initialization vector. + base64urlencoded encrypted innerToken + base64urlencoded authentication tag. + 'header' is null. + 'innerToken' is null. + 'rawHeader' is null. + 'rawEncryptedKey' is null. + 'rawInitialVector' is null or empty. + 'rawCiphertext' is null or empty. + 'rawAuthenticationTag' is null or empty. + + + + Initializes a new instance of the class where the contains the crypto algorithms applied to the encoded and . The jwtEncodedString is the result of those operations. + + Contains JSON objects representing the cryptographic operations applied to the JWT and optionally any additional properties of the JWT + Contains JSON objects representing the claims contained in the JWT. Each claim is a JSON object of the form { Name, Value } + 'header' is null. + 'payload' is null. + + + + Initializes a new instance of the class specifying optional parameters. + + If this value is not null, a { iss, 'issuer' } claim will be added, overwriting any 'iss' claim in 'claims' if present. + If this value is not null, a { aud, 'audience' } claim will be added, appending to any 'aud' claims in 'claims' if present. + If this value is not null then for each a { 'Claim.Type', 'Claim.Value' } is added. If duplicate claims are found then a { 'Claim.Type', List<object> } will be created to contain the duplicate values. + If expires.HasValue a { exp, 'value' } claim is added, overwriting any 'exp' claim in 'claims' if present. + If notbefore.HasValue a { nbf, 'value' } claim is added, overwriting any 'nbf' claim in 'claims' if present. + The that will be used to sign the . See for details pertaining to the Header Parameter(s). + If 'expires' <= 'notbefore'. + + + + Gets the 'value' of the 'actor' claim { actort, 'value' }. + + If the 'actor' claim is not found, null is returned. + + + + Gets the list of 'audience' claim { aud, 'value' }. + + If the 'audience' claim is not found, enumeration will be empty. + + + + Gets the (s) for this token. + If this is a JWE token, this property only returns the encrypted claims; + the unencrypted claims should be read from the header seperately. + + (s) returned will NOT have the translated according to + + + + Gets the Base64UrlEncoded associated with this instance. + + + + + Gets the Base64UrlEncoded associated with this instance. + + + + + Gets the associated with this instance if the token is signed. + + + + + Gets the 'value' of the 'JWT ID' claim { jti, 'value' }. + + If the 'JWT ID' claim is not found, an empty string is returned. + + + + Gets the 'value' of the 'issuer' claim { iss, 'value' }. + + If the 'issuer' claim is not found, an empty string is returned. + + + + Gets the associated with this instance. + Note that if this JWT is nested ( != null, this property represents the payload of the most inner token. + This property can be null if the content type of the most inner token is unrecognized, in that case + the content of the token is the string returned by PlainText property. + + + + + Gets the associated with this instance. + + + + + Gets the original raw data of this instance when it was created. + + The original JSON Compact serialized format passed to one of the two constructors + or + + + + Gets the original raw data of this instance when it was created. + + The original JSON Compact serialized format passed to one of the two constructors + or + + + + Gets the original raw data of this instance when it was created. + + The original JSON Compact serialized format passed to one of the two constructors + or + + + + Gets the original raw data of this instance when it was created. + + The original JSON Compact serialized format passed to one of the two constructors + or + + + + Gets the original raw data of this instance when it was created. + + The original JSON Compact serialized format passed to one of the two constructors + or + + + + Gets the original raw data of this instance when it was created. + + The original JSON Compact serialized format passed to one of the two constructors + or + + + + Gets the original raw data of this instance when it was created. + + The original JSON Compact serialized format passed to one of the two constructors + or + + + + Gets the original raw data of this instance when it was created. + + The original JSON Compact serialized format passed to one of the two constructors + or + + + + Gets the s for this instance. + + + + + Gets the signature algorithm associated with this instance. + + If there is a associated with this instance, a value will be returned. Null otherwise. + + + + Gets the to use when writing this token. + + + + + Gets the to use when writing this token. + + + + + Gets or sets the that signed this instance. + + .ValidateSignature(...) sets this value when a is used to successfully validate a signature. + + + + Gets the "value" of the 'subject' claim { sub, 'value' }. + + If the 'subject' claim is not found, null is returned. + + + + Gets the 'value' of the 'notbefore' claim { nbf, 'value' } converted to a assuming 'value' is seconds since UnixEpoch (UTC 1970-01-01T0:0:0Z). + + If the 'notbefore' claim is not found, then is returned. + + + + Gets the 'value' of the 'expiration' claim { exp, 'value' } converted to a assuming 'value' is seconds since UnixEpoch (UTC 1970-01-01T0:0:0Z). + + If the 'expiration' claim is not found, then is returned. + + + + Gets the 'value' of the 'issued at' claim { iat, 'value' } converted to a assuming 'value' is seconds since UnixEpoch (UTC 1970-01-01T0:0:0Z). + + If the 'issued at' claim is not found, then is returned. + + + + Serializes the and + + A string containing the header and payload in JSON format. + + + + + + + Decodes the string into the header, payload and signature. + + the tokenized string. + the original token. + + + + Decodes the base64url encoded payload. + + the encoded payload. + + + + Decodes the payload and signature from the JWE parts. + + Parts of the JWE including the header. + Assumes Header has already been set. + + + + Static class to convert a to a + + + + + Initializes a new instance of a from a + + A JSON Web Token to convert from. + is null + doesn't have set. + + + + A designed for creating and validating Json Web Tokens. See: https://datatracker.ietf.org/doc/html/rfc7519 and http://www.rfc-editor.org/info/rfc7515 + + + + + Default claim type mapping for inbound claims. + + + + + Default value for the flag that determines whether or not the InboundClaimTypeMap is used. + + + + + Default claim type mapping for outbound claims. + + + + + Default claim type filter list. + + + + + Default JwtHeader algorithm mapping + + + + + Static initializer for a new object. Static initializers run before the first instance of the type is created. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the property which is used when determining whether or not to map claim types that are extracted when validating a . + If this is set to true, the is set to the JSON claim 'name' after translating using this mapping. Otherwise, no mapping occurs. + The default value is true. + + + + + Gets or sets the which is used when setting the for claims in the extracted when validating a . + The is set to the JSON claim 'name' after translating using this mapping. + The default value is ClaimTypeMapping.InboundClaimTypeMap. + + 'value' is null. + + + + Gets or sets the which is used when creating a from (s). + The JSON claim 'name' value is set to after translating using this mapping. + The default value is ClaimTypeMapping.OutboundClaimTypeMap + + This mapping is applied only when using or . Adding values directly will not result in translation. + 'value' is null. + + + + Gets the outbound algorithm map that is passed to the constructor. + + + + Gets or sets the used to filter claims when populating a claims form a . + When a is validated, claims with types found in this will not be added to the . + The default value is ClaimTypeMapping.InboundClaimFilter. + + 'value' is null. + + + + Gets or sets the property name of the will contain the original JSON claim 'name' if a mapping occurred when the (s) were created. + See for more information. + + If .IsNullOrWhiteSpace('value') is true. + + + + Gets or sets the property name of the will contain .Net type that was recognized when serialized the value to JSON. + See for more information. + + If .IsNullOrWhiteSpace('value') is true. + + + + Returns a value that indicates if this handler can validate a . + + 'true', indicating this instance can validate a . + + + + Gets the value that indicates if this instance can write a . + + 'true', indicating this instance can write a . + + + + Gets the type of the . + + The type of + + + + Determines if the string is a well formed Json Web Token (JWT). + See: https://datatracker.ietf.org/doc/html/rfc7519 + + String that should represent a valid JWT. + Uses matching one of: + JWS: @"^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$" + JWE: (dir): @"^[A-Za-z0-9-_]+\.\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$" + JWE: (wrappedkey): @"^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]$" + + + 'false' if the token is null or whitespace. + 'false' if token.Length is greater than . + 'true' if the token is in JSON compact serialization format. + + + + + Returns a Json Web Token (JWT). + + A that contains details of contents of the token. + A JWS and JWE can be returned. + If is provided, then a JWE will be created. + If is provided then a JWS will be created. + If both are provided then a JWE with an embedded JWS will be created. + + + + + Creates a JWT in 'Compact Serialization Format'. + + The issuer of the token. + The audience for this token. + The source of the (s) for this token. + The notbefore time for this token. + The expiration time for this token. + The issue time for this token. + Contains cryptographic material for generating a signature. + If is not null, then a claim { actort, 'value' } will be added to the payload. See for details on how the value is created. + See for details on how the HeaderParameters are added to the header. + See for details on how the values are added to the payload. + Each in the will map by applying . Modifying could change the outbound JWT. + If is provided, then a JWS will be created. + + A Base64UrlEncoded string in 'Compact Serialization Format'. + + + + Creates a JWT in 'Compact Serialization Format'. + + The issuer of the token. + The audience for this token. + The source of the (s) for this token. + Translated into 'epoch time' and assigned to 'nbf'. + Translated into 'epoch time' and assigned to 'exp'. + Translated into 'epoch time' and assigned to 'iat'. + Contains cryptographic material for signing. + Contains cryptographic material for encrypting. + If is not null, then a claim { actort, 'value' } will be added to the payload. for details on how the value is created. + See for details on how the HeaderParameters are added to the header. + See for details on how the values are added to the payload. + Each in the will map by applying . Modifying could change the outbound JWT. + + A Base64UrlEncoded string in 'Compact Serialization Format'. + If 'expires' <= 'notBefore'. + + + + Creates a JWT in 'Compact Serialization Format'. + + The issuer of the token. + The audience for this token. + The source of the (s) for this token. + Translated into 'epoch time' and assigned to 'nbf'. + Translated into 'epoch time' and assigned to 'exp'. + Translated into 'epoch time' and assigned to 'iat'. + Contains cryptographic material for signing. + Contains cryptographic material for encrypting. + A collection of (key,value) pairs representing (s) for this token. + If is not null, then a claim { actort, 'value' } will be added to the payload. for details on how the value is created. + See for details on how the HeaderParameters are added to the header. + See for details on how the values are added to the payload. + Each in the will map by applying . Modifying could change the outbound JWT. + + A Base64UrlEncoded string in 'Compact Serialization Format'. + If 'expires' <= 'notBefore'. + + + + Creates a Json Web Token (JWT). + + A that contains details of contents of the token. + is used to sign . + + + + Creates a + + The issuer of the token. + The audience for this token. + The source of the (s) for this token. + The notbefore time for this token. + The expiration time for this token. + The issue time for this token. + Contains cryptographic material for generating a signature. + Contains cryptographic material for encrypting the token. + If is not null, then a claim { actort, 'value' } will be added to the payload. for details on how the value is created. + See for details on how the HeaderParameters are added to the header. + See for details on how the values are added to the payload. + Each on the added will have translated according to the mapping found in + . Adding and removing to will affect the name component of the Json claim. + is used to sign . + is used to encrypt or . + + A . + If <= . + + + + Creates a + + The issuer of the token. + The audience for this token. + The source of the (s) for this token. + The notbefore time for this token. + The expiration time for this token. + The issue time for this token. + Contains cryptographic material for generating a signature. + Contains cryptographic material for encrypting the token. + A collection of (key,value) pairs representing (s) for this token. + If is not null, then a claim { actort, 'value' } will be added to the payload. for details on how the value is created. + See for details on how the HeaderParameters are added to the header. + See for details on how the values are added to the payload. + Each on the added will have translated according to the mapping found in + . Adding and removing to will affect the name component of the Json claim. + is used to sign . + is used to encrypt or . + + A . + If <= . + + + + Creates a + + The issuer of the token. + The audience for this token. + The source of the (s) for this token. + The notbefore time for this token. + The expiration time for this token. + The issue time for this token. + Contains cryptographic material for generating a signature. + If is not null, then a claim { actort, 'value' } will be added to the payload. for details on how the value is created. + See for details on how the HeaderParameters are added to the header. + See for details on how the values are added to the payload. + Each on the added will have translated according to the mapping found in + . Adding and removing to will affect the name component of the Json claim. + is used to sign . + + A . + If <= . + + + + Creates a Json Web Token (JWT). + + A that contains details of contents of the token. + is used to sign . + + + + Converts a string into an instance of . + + A 'JSON Web Token' (JWT) in JWS or JWE Compact Serialization Format. + A + is null or empty. + 'token.Length' is greater than . + + If the is in JWE Compact Serialization format, only the protected header will be deserialized. + This method is unable to decrypt the payload. Use to obtain the payload. + The token is NOT validated and no security decisions should be made about the contents. + Use to ensure the token is acceptable. + + + + Converts a string into an instance of . + + A 'JSON Web Token' (JWT) in JWS or JWE Compact Serialization Format. + A + is null or empty. + 'token.Length' is greater than . + + If the is in JWE Compact Serialization format, only the protected header will be deserialized. + This method is unable to decrypt the payload. Use to obtain the payload. + The token is NOT validated and no security decisions should be made about the contents. + Use to ensure the token is acceptable. + + + + Deserializes token with the provided . + + . + The current . + The + This method is not current supported. + + + + Reads and validates a 'JSON Web Token' (JWT) encoded as a JWS or JWE in Compact Serialized Format. + + the JWT encoded as JWE or JWS + Contains validation parameters for the . + The that was validated. + is null or whitespace. + is null. + .Length is greater than . + does not have 3 or 5 parts. + returns false. + was a JWE was not able to be decrypted. + 'kid' header claim is not null AND decryption fails. + 'enc' header claim is null or empty. + 'exp' claim is < DateTime.UtcNow. + is null or whitespace and is null. Audience is not validated if is set to false. + 'aud' claim did not match either or one of . + 'nbf' claim is > 'exp' claim. + .signature is not properly formatted. + 'exp' claim is missing and is true. + is not null and expirationTime.HasValue is false. When a TokenReplayCache is set, tokens require an expiration time. + 'nbf' claim is > DateTime.UtcNow. + could not be added to the . + is found in the cache. + A from the JWT. Does not include claims found in the JWT header. + + Many of the exceptions listed above are not thrown directly from this method. See to examine the call graph. + + + + + Private method for token validation, responsible for: + (1) Obtaining a configuration from the . + (2) Revalidating using the Last Known Good Configuration (if present), and obtaining a refreshed configuration (if necessary) and revalidating using it. + + The JWS string, or the decrypted token if the token is a JWE. + If the token being validated is a JWE, this is the that represents the outer token. + If the token is a JWS, the value of this parameter is . + + The to be used for validation. + The that was validated. + A from the JWT. Does not include claims found in the JWT header. + + + + Validates the JSON payload of a . + + The token to validate. + Contains validation parameters for the . + A from the jwt. Does not include the header claims. + + + + Serializes a into a JWT in Compact Serialization Format. + + to serialize. + + The JWT will be serialized as a JWE or JWS. + will be used to create the JWT. If there is an inner token, the inner token's payload will be used. + If either or .SigningCredentials are set, the JWT will be signed. + If is set, a JWE will be created using the JWT above as the plaintext. + + is null. + 'token' is not a not . + both and are set. + both and .EncryptingCredentials are set. + if is set and is not set. + A JWE or JWS in 'Compact Serialization Format'. + + + + Obtains a and validates the signature. + + Bytes to validate. + Signature to compare against. + to use. + Crypto algorithm to use. + The being validated. + Priority will be given to over . + 'true' if signature is valid. + + + + Validates that the signature, if found or required, is valid. + + A JWS token. + that contains signing keys. + If is null or whitespace. + If is null. + If a signature is not found and is true. + + If the has a key identifier and none of the (s) provided result in a validated signature. + This can indicate that a key refresh is required. + + If after trying all the (s), none result in a validated signature AND the does not have a key identifier. + A that has the signature validated if token was signed. + If the is signed, the signature is validated even if is false. + If the signature is validated, then the will be set to the key that signed the 'token'.It is the responsibility of to set the + + + + Creates a from a . + + The to use as a source. + The value to set + Contains parameters for validating the token. + A containing the . + + + + Creates the 'value' for the actor claim: { actort, 'value' } + + as actor. + representing the actor. + If is not null: +   If 'type' is 'string', return as string. +   if 'type' is 'BootstrapContext' and 'BootstrapContext.SecurityToken' is 'JwtSecurityToken' +     if 'JwtSecurityToken.RawData' != null, return RawData. +     else return . +   if 'BootstrapContext.Token' != null, return 'Token'. + default: new ( ( actor.Claims ). + + 'actor' is null. + + + + Determines if the audiences found in a are valid. + + The audiences found in the . + The being validated. + required for validation. + See for additional details. + + + + Validates the lifetime of a . + + The value of the 'nbf' claim if it exists in the 'jwtToken'. + The value of the 'exp' claim if it exists in the 'jwtToken'. + The being validated. + required for validation. + for additional details. + + + + Determines if the issuer found in a is valid. + + The issuer to validate + The that is being validated. + required for validation. + The issuer to use when creating the (s) in the . + for additional details. + + + + Determines if a is already validated. + + The value of the 'exp' claim if it exists in the '. + The that is being validated. + required for validation. + + + + Returns a to use when validating the signature of a token. + + The representation of the token that is being validated. + The that is being validated. + A required for validation. + Returns a to use for signature validation. + If key fails to resolve, then null is returned + + + + Returns a to use when decryption a JWE. + + The the token that is being decrypted. + The that is being decrypted. + A required for validation. + Returns a to use for signature validation. + If key fails to resolve, then null is returned + + + + Decrypts a JWE and returns the clear text + + the JWE that contains the cypher text. + contains crypto material. + the decoded / cleartext contents of the JWE. + if is null. + if is null. + if 'jwtToken.Header.enc' is null or empty. + if 'jwtToken.Header.kid' is not null AND decryption fails. + if the JWE was not able to be decrypted. + + + + Validates the is an expected value. + + The that signed the . + The to validate. + The current . + If the is a then the X509Certificate2 will be validated using the CertificateValidator. + + + + Serializes to XML a token of the type handled by this instance. + + The XML writer. + A token of type . + + + + + + + Log messages and codes + + + + diff --git a/Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/net6.0/System.IdentityModel.Tokens.Jwt.xml.meta b/Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/net6.0/System.IdentityModel.Tokens.Jwt.xml.meta new file mode 100644 index 0000000..b039b45 --- /dev/null +++ b/Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/net6.0/System.IdentityModel.Tokens.Jwt.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: a9f345b9b62ae3f46916653debb9cfc4 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/net8.0.meta b/Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/net8.0.meta new file mode 100644 index 0000000..1fd35fc --- /dev/null +++ b/Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/net8.0.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: bad21af3305f309428ce4f766b375354 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/net8.0/System.IdentityModel.Tokens.Jwt.dll b/Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/net8.0/System.IdentityModel.Tokens.Jwt.dll new file mode 100644 index 0000000..575e2f2 --- /dev/null +++ b/Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/net8.0/System.IdentityModel.Tokens.Jwt.dll @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9bede1472b00d91eb608589386b0be09bda4448e3b632575f4a10ad33696dd8d +size 81952 diff --git a/Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/net8.0/System.IdentityModel.Tokens.Jwt.dll.meta b/Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/net8.0/System.IdentityModel.Tokens.Jwt.dll.meta new file mode 100644 index 0000000..e30ec10 --- /dev/null +++ b/Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/net8.0/System.IdentityModel.Tokens.Jwt.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: 175c4f9e99677d54f9a07eef30cd8533 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/net8.0/System.IdentityModel.Tokens.Jwt.xml b/Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/net8.0/System.IdentityModel.Tokens.Jwt.xml new file mode 100644 index 0000000..ad73385 --- /dev/null +++ b/Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/net8.0/System.IdentityModel.Tokens.Jwt.xml @@ -0,0 +1,1548 @@ + + + + System.IdentityModel.Tokens.Jwt + + + + + Constants that indicate how the should be evaluated. + + + + + A value that indicates the is a Json object. + + When creating a from Json if the value was not a simple type {String, Null, True, False, Number} + then will contain the Json value. If the Json was a JsonObject, the will be set to "JSON". + + + + A value that indicates the is a Json object. + + When creating a from Json if the value was not a simple type {String, Null, True, False, Number} + then will contain the Json value. If the Json was a JsonArray, the will be set to "JSON_ARRAY". + + + + A value that indicates the is Json null. + + When creating a the cannot be null. If the Json value was null, then the + will be set to and the will be set to "JSON_NULL". + + + + Constants for Json Web tokens. + + + + + Short header type. + + + + + Long header type. + + + + + Short token type. + + + + + Long token type. + + + + + JWS - Token format: 'header.payload.signature'. Signature is optional, but '.' is required. + + + + + JWE - Token format: 'protectedheader.encryptedkey.iv.cyphertext.authenticationtag'. + + + + + The number of parts in a JWE token. + + + + + The number of parts in a JWS token. + + + + + The maximum number of parts in a JWT. + + + + + JWE header alg indicating a shared symmetric key is directly used as CEK. + + + + + Initializes a new instance of which contains JSON objects representing the cryptographic operations applied to the JWT and optionally any additional properties of the JWT. + The member names within the JWT Header are referred to as Header Parameter Names. + These names MUST be unique and the values must be (s). The corresponding values are referred to as Header Parameter Values. + + + + + Initializes a new instance of the class. Default string comparer . + + + + + Initializes a new instance of the class. Default string comparer . + + + + + Initializes a new instance of . + With the Header Parameters: + { { typ, JWT }, { alg, SigningCredentials.Algorithm } } + + used creating a JWS Compact JSON. + + + + Initializes a new instance of . + With the Header Parameters: + { { typ, JWT }, { alg, EncryptingCredentials.Alg }, { enc, EncryptingCredentials.Enc } } + + used creating a JWE Compact JSON. + If 'encryptingCredentials' is null. + + + + Initializes a new instance of . + With the Header Parameters: + { { typ, JWT }, { alg, SigningCredentials.Algorithm } } + + used when creating a JWS Compact JSON. + provides a mapping for the 'alg' value so that values are within the JWT namespace. + + + + Initializes a new instance of . + With the Header Parameters: + { { typ, JWT }, { alg, SigningCredentials.Algorithm } } + + used when creating a JWS Compact JSON. + provides a mapping for the 'alg' value so that values are within the JWT namespace. + will be added as the value for the 'typ' claim in the header. If it is null or empty will be used as token type + + + + Initializes a new instance of . + With the Header Parameters: + { { typ, JWT }, { alg, SigningCredentials.Algorithm } } + + used when creating a JWS Compact JSON. + provides a mapping for the 'alg' value so that values are within the JWT namespace. + will be added as the value for the 'typ' claim in the header. If it is null or empty will be used as token type + Defines the dictionary containing any custom header claims that need to be added to the inner JWT token header. + + + + Initializes a new instance of . + With the Header Parameters: + { { typ, JWT }, { alg, EncryptingCredentials.Algorithm } } + + used when creating a JWS Compact JSON. + provides a mapping for the 'alg' value so that values are within the JWT namespace. + If 'encryptingCredentials' is null. + + + + Initializes a new instance of . + With the Header Parameters: + { { typ, JWT }, { alg, EncryptingCredentials.Algorithm } } + + used when creating a JWS Compact JSON. + provides a mapping for the 'alg' value so that values are within the JWT namespace. + provides the token type + If 'encryptingCredentials' is null. + + + + Initializes a new instance of . + With the Header Parameters: + { { typ, JWT }, { alg, EncryptingCredentials.Algorithm } } + + used when creating a JWS Compact JSON. + provides a mapping for the 'alg' value so that values are within the JWT namespace. + provides the token type + Defines the dictionary containing any custom header claims that need to be added to the outer JWT token header. + If 'encryptingCredentials' is null. + + + + Gets the signature algorithm that was used to create the signature. + + If the signature algorithm is not found, null is returned. + + + + Gets the content mime type (Cty) of the token. + + If the content mime type is not found, null is returned. + + + + Gets the encryption algorithm (Enc) of the token. + + If the content mime type is not found, null is returned. + + + + Gets the passed in the constructor. + + This value may be null. + + + + Gets the iv of symmetric key wrap. + + + + + Gets the key identifier for the security key used to sign the token + + + + + Gets the passed in the constructor. + + This value may be null. + + + + Gets the mime type (Typ) of the token. + + If the mime type is not found, null is returned. + + + + Gets the thumbprint of the certificate used to sign the token + + + + + Gets the certificate used to sign the token + + If the 'x5c' claim is not found, null is returned. + + + + Gets the 'value' of the 'zip' claim { zip, 'value' }. + + If the 'zip' claim is not found, null is returned. + + + + Deserializes Base64UrlEncoded JSON into a instance. + + Base64url encoded JSON to deserialize. + An instance of . + + + + Encodes this instance as Base64UrlEncoded JSON. + + Base64UrlEncoded JSON. + + + + Gets a standard claim from the header. + A standard claim is either a string or a value of another type serialized in JSON format. + + The key of the claim. + The standard claim string; or null if not found. + + + + Serializes this instance to JSON. + + This instance as JSON. + + + + List of header parameter names see: https://datatracker.ietf.org/doc/html/rfc7519#section-5. + + + + + See: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.1 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.10 + Also: https://datatracker.ietf.org/doc/html/rfc7519#section-5.2 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7516#section-4.1.2 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7518#section-4.7.1.1 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.2 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.3 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.4 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.9 + Also: https://datatracker.ietf.org/doc/html/rfc7519#section-5.1 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.6 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7515#page-12 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.5 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7516#section-4.1.3 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7518#section-4.6.1.1 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7518#section-4.6.1.2 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7518#section-4.6.1.3 + + + + + Initializes a new instance of which contains JSON objects representing the claims contained in the JWT. Each claim is a JSON object of the form { Name, Value }. + + + + + Initializes a new instance of the class with no claims. Default string comparer . + Creates a empty + + + + + Initializes a new instance of the class with . Default string comparer . + The claims to add. + + + + + Initializes a new instance of the class with claims added for each parameter specified. Default string comparer . + + If this value is not null, a { iss, 'issuer' } claim will be added, overwriting any 'iss' claim in 'claims' if present. + If this value is not null, a { aud, 'audience' } claim will be added, appending to any 'aud' claims in 'claims' if present. + If this value is not null then for each a { 'Claim.Type', 'Claim.Value' } is added. If duplicate claims are found then a { 'Claim.Type', List<object> } will be created to contain the duplicate values. + If notbefore.HasValue a { nbf, 'value' } claim is added, overwriting any 'nbf' claim in 'claims' if present. + If expires.HasValue a { exp, 'value' } claim is added, overwriting any 'exp' claim in 'claims' if present. + + + + Initializes a new instance of the class with claims added for each parameter specified. Default string comparer . + + If this value is not null, a { iss, 'issuer' } claim will be added, overwriting any 'iss' claim in 'claims' if present. + If this value is not null, a { aud, 'audience' } claim will be added, appending to any 'aud' claims in 'claims' if present. + If this value is not null then for each a { 'Claim.Type', 'Claim.Value' } is added. If duplicate claims are found then a { 'Claim.Type', List<object> } will be created to contain the duplicate values. + If notbefore.HasValue a { nbf, 'value' } claim is added, overwriting any 'nbf' claim in 'claims' if present. + If expires.HasValue a { exp, 'value' } claim is added, overwriting any 'exp' claim in 'claims' if present. + If issuedAt.HasValue is 'true' a { iat, 'value' } claim is added, overwriting any 'iat' claim in 'claims' if present. + Comparison is set to + The 4 parameters: 'issuer', 'audience', 'notBefore', 'expires' take precedence over (s) in 'claims'. The values will be overridden. + If 'expires' <= 'notbefore'. + + + + Initializes a new instance of the class with claims added for each parameter specified. Default string comparer . + + If this value is not null, a { iss, 'issuer' } claim will be added, overwriting any 'iss' claim in 'claims' and 'claimCollection' if present. + If this value is not null, a { aud, 'audience' } claim will be added, appending to any 'aud' claims in 'claims' or 'claimCollection' if present. + If this value is not null then for each a { 'Claim.Type', 'Claim.Value' } is added. If duplicate claims are found then a { 'Claim.Type', List<object> } will be created to contain the duplicate values. + If both and are not null then the values in claims will be combined with the values in claimsCollection. The values found in claimCollection take precedence over those found in claims, so any duplicate + values will be overridden. + If notbefore.HasValue a { nbf, 'value' } claim is added, overwriting any 'nbf' claim in 'claims' and 'claimcollection' if present. + If expires.HasValue a { exp, 'value' } claim is added, overwriting any 'exp' claim in 'claims' and 'claimcollection' if present. + If issuedAt.HasValue is 'true' a { iat, 'value' } claim is added, overwriting any 'iat' claim in 'claims' and 'claimcollection' if present. + Comparison is set to + The 4 parameters: 'issuer', 'audience', 'notBefore', 'expires' take precedence over (s) in 'claims' and 'claimcollection'. The values will be overridden. + If 'expires' <= 'notbefore'. + + + + Adds Nbf, Exp, Iat, Iss and Aud claims to payload + + If this value is not null, a { iss, 'issuer' } claim will be added, overwriting any 'iss' claim in instance. + If this value is not null, a { aud, 'audience' } claim will be added, appending to any 'aud' claims in instance. + If notbefore.HasValue a { nbf, 'value' } claim is added, overwriting any 'nbf' claim in instance. + If expires.HasValue a { exp, 'value' } claim is added, overwriting any 'exp' claim in instance. + If issuedAt.HasValue is 'true' a { iat, 'value' } claim is added, overwriting any 'iat' claim in instance. + + + + Gets the 'value' of the 'actor' claim { actort, 'value' }. + + If the 'actor' claim is not found, null is returned. + + + + Gets the 'value' of the 'acr' claim { acr, 'value' }. + + If the 'acr' claim is not found, null is returned. + + + + Gets the 'value' of the 'amr' claim { amr, 'value' } as list of strings. + + If the 'amr' claim is not found, an empty enumerable is returned. + + + + Gets the 'value' of the 'auth_time' claim { auth_time, 'value' }. + + If the 'auth_time' claim is not found OR could not be converted to , null is returned. + + + + Gets the 'value' of the 'audience' claim { aud, 'value' } as a list of strings. + + If the 'audience' claim is not found, an empty enumerable is returned. + + + + Gets the 'value' of the 'azp' claim { azp, 'value' }. + + If the 'azp' claim is not found, null is returned. + + + + Gets 'value' of the 'c_hash' claim { c_hash, 'value' }. + + If the 'c_hash' claim is not found, null is returned. + + + + Gets the 'value' of the 'expiration' claim { exp, 'value' }. + + If the 'expiration' claim is not found OR could not be converted to , null is returned. + + + + Gets the 'value' of the 'expiration' claim { exp, 'value' }. + + If the 'expiration' claim is not found OR could not be converted to , null is returned. + + + + Gets the 'value' of the 'JWT ID' claim { jti, 'value' }. + + If the 'JWT ID' claim is not found, null is returned. + + + + Gets the 'value' of the 'Issued At' claim { iat, 'value' }. + + If the 'Issued At' claim is not found OR cannot be converted to null is returned. + + + + Gets the 'value' of the 'issuer' claim { iss, 'value' }. + + If the 'issuer' claim is not found, null is returned. + + + + Gets the 'value' of the 'expiration' claim { nbf, 'value' }. + + If the 'notbefore' claim is not found OR could not be converted to , null is returned. + + + + Gets the 'value' of the 'nonce' claim { nonce, 'value' }. + + If the 'nonce' claim is not found, null is returned. + + + + Gets the 'value' of the 'notebefore' claim { nbf, 'value' }. + + If the 'notbefore' claim is not found OR could not be converted to , null is returned. + + + + Gets the 'value' of the 'subject' claim { sub, 'value' }. + + If the 'subject' claim is not found, null is returned. + + + + Gets the 'value' of the 'notbefore' claim { nbf, 'value' } converted to a assuming 'value' is seconds since UnixEpoch (UTC 1970-01-01T0:0:0Z). + + If the 'notbefore' claim is not found, then is returned. Time is returned as UTC. + + + + Gets the 'value' of the 'expiration' claim { exp, 'value' } converted to a assuming 'value' is seconds since UnixEpoch (UTC 1970-01-01T0:0:0Z). + + If the 'expiration' claim is not found, then is returned. + + + + Gets the 'value' of the 'issued at' claim { iat, 'value' } converted to a assuming 'value' is seconds since UnixEpoch (UTC 1970-01-01T0:0:0Z). + + If the 'issued at' claim is not found, then is returned. + + + + Gets a for each JSON { name, value }. + + Each (s) returned will have the translated according to the mapping found in . Adding and removing to will affect the value of the . + and will be set to the value of ( if null). + + + + Adds a JSON object representing the to the + + { 'Claim.Type', 'Claim.Value' } is added. If a JSON object is found with the name == then a { 'Claim.Type', List<object> } will be created to contain the duplicate values. + See For details on how is applied. + 'claim' is null. + + + + Adds a number of to the as JSON { name, value } pairs. + + For each a JSON pair { 'Claim.Type', 'Claim.Value' } is added. If duplicate claims are found then a { 'Claim.Type', List<object> } will be created to contain the duplicate values. + + Any in the that is null, will be ignored. + is null. + + + + Adds claims from dictionary. + + A dictionary of claims. + If a key is already present in target dictionary, its claimValue is overridden by the claimValue of the key in claimsCollection. + + + + Serializes this instance to JSON. + + This instance as JSON. + + + + Deserializes Base64UrlEncoded JSON into a . + + Base64url encoded JSON to deserialize. + An instance of . + + + + Encodes this instance as Base64UrlEncoded JSON. + + Base64UrlEncoded JSON. + + + + Deserialzes JSON into a instance. + + The JSON to deserialize. + An instance of . + + + + List of registered claims from different sources + https://datatracker.ietf.org/doc/html/rfc7519#section-4 + http://openid.net/specs/openid-connect-core-1_0.html#IDToken + + + + + + + + + http://openid.net/specs/openid-connect-core-1_0.html#IDToken + + + + + http://openid.net/specs/openid-connect-core-1_0.html#IDToken + + + + + https://datatracker.ietf.org/doc/html/rfc7519#section-4 + + + + + http://openid.net/specs/openid-connect-core-1_0.html#IDToken + + + + + http://openid.net/specs/openid-connect-core-1_0.html#IDToken + + + + + https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims + + + + + https://openid.net/specs/openid-connect-core-1_0.html#HybridIDToken + + + + + http://openid.net/specs/openid-connect-core-1_0.html#CodeIDToken + + + + + https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims + + + + + https://datatracker.ietf.org/doc/html/rfc7519#section-4 + + + + + https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims + + + + + https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims + + + + + https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims + + + + + https://datatracker.ietf.org/doc/html/rfc7519#section-4 + + + + + https://datatracker.ietf.org/doc/html/rfc7519#section-4 + + + + + https://datatracker.ietf.org/doc/html/rfc7519#section-4 + + + + + https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims + + + + + + + + + https://openid.net/specs/openid-connect-core-1_0.html#AuthRequest + + + + + https://datatracker.ietf.org/doc/html/rfc7519#section-4 + + + + + + + + + http://openid.net/specs/openid-connect-frontchannel-1_0.html#OPLogout + + + + + https://datatracker.ietf.org/doc/html/rfc7519#section-4 + + + + + https://datatracker.ietf.org/doc/html/rfc7519#section-5 + + + + + + + + + + + + + A designed for representing a JSON Web Token (JWT). + + + + + Initializes a new instance of from a string in JWS Compact serialized format. + + A JSON Web Token that has been serialized in JWS Compact serialized format. + 'jwtEncodedString' is null or contains only whitespace. + 'jwtEncodedString' contains only whitespace. + 'jwtEncodedString' is not in JWE format. + 'jwtEncodedString' is not in JWS or JWE format. + + The contents of this have not been validated, the JSON Web Token is simply decoded. Validation can be accomplished using + + + + + Initializes a new instance of the class where the contains the crypto algorithms applied to the encoded and . The jwtEncodedString is the result of those operations. + + Contains JSON objects representing the cryptographic operations applied to the JWT and optionally any additional properties of the JWT + Contains JSON objects representing the claims contained in the JWT. Each claim is a JSON object of the form { Name, Value } + base64urlencoded JwtHeader + base64urlencoded JwtPayload + base64urlencoded JwtSignature + 'header' is null. + 'payload' is null. + 'rawSignature' is null. + 'rawHeader' or 'rawPayload' is null or whitespace. + + + + Initializes an instance of where the contains the crypto algorithms applied to the innerToken . + + Defines cryptographic operations applied to the 'innerToken'. + + base64urlencoded key + base64urlencoded JwtHeader + base64urlencoded initialization vector. + base64urlencoded encrypted innerToken + base64urlencoded authentication tag. + 'header' is null. + 'innerToken' is null. + 'rawHeader' is null. + 'rawEncryptedKey' is null. + 'rawInitialVector' is null or empty. + 'rawCiphertext' is null or empty. + 'rawAuthenticationTag' is null or empty. + + + + Initializes a new instance of the class where the contains the crypto algorithms applied to the encoded and . The jwtEncodedString is the result of those operations. + + Contains JSON objects representing the cryptographic operations applied to the JWT and optionally any additional properties of the JWT + Contains JSON objects representing the claims contained in the JWT. Each claim is a JSON object of the form { Name, Value } + 'header' is null. + 'payload' is null. + + + + Initializes a new instance of the class specifying optional parameters. + + If this value is not null, a { iss, 'issuer' } claim will be added, overwriting any 'iss' claim in 'claims' if present. + If this value is not null, a { aud, 'audience' } claim will be added, appending to any 'aud' claims in 'claims' if present. + If this value is not null then for each a { 'Claim.Type', 'Claim.Value' } is added. If duplicate claims are found then a { 'Claim.Type', List<object> } will be created to contain the duplicate values. + If expires.HasValue a { exp, 'value' } claim is added, overwriting any 'exp' claim in 'claims' if present. + If notbefore.HasValue a { nbf, 'value' } claim is added, overwriting any 'nbf' claim in 'claims' if present. + The that will be used to sign the . See for details pertaining to the Header Parameter(s). + If 'expires' <= 'notbefore'. + + + + Gets the 'value' of the 'actor' claim { actort, 'value' }. + + If the 'actor' claim is not found, null is returned. + + + + Gets the list of 'audience' claim { aud, 'value' }. + + If the 'audience' claim is not found, enumeration will be empty. + + + + Gets the (s) for this token. + If this is a JWE token, this property only returns the encrypted claims; + the unencrypted claims should be read from the header seperately. + + (s) returned will NOT have the translated according to + + + + Gets the Base64UrlEncoded associated with this instance. + + + + + Gets the Base64UrlEncoded associated with this instance. + + + + + Gets the associated with this instance if the token is signed. + + + + + Gets the 'value' of the 'JWT ID' claim { jti, 'value' }. + + If the 'JWT ID' claim is not found, an empty string is returned. + + + + Gets the 'value' of the 'issuer' claim { iss, 'value' }. + + If the 'issuer' claim is not found, an empty string is returned. + + + + Gets the associated with this instance. + Note that if this JWT is nested ( != null, this property represents the payload of the most inner token. + This property can be null if the content type of the most inner token is unrecognized, in that case + the content of the token is the string returned by PlainText property. + + + + + Gets the associated with this instance. + + + + + Gets the original raw data of this instance when it was created. + + The original JSON Compact serialized format passed to one of the two constructors + or + + + + Gets the original raw data of this instance when it was created. + + The original JSON Compact serialized format passed to one of the two constructors + or + + + + Gets the original raw data of this instance when it was created. + + The original JSON Compact serialized format passed to one of the two constructors + or + + + + Gets the original raw data of this instance when it was created. + + The original JSON Compact serialized format passed to one of the two constructors + or + + + + Gets the original raw data of this instance when it was created. + + The original JSON Compact serialized format passed to one of the two constructors + or + + + + Gets the original raw data of this instance when it was created. + + The original JSON Compact serialized format passed to one of the two constructors + or + + + + Gets the original raw data of this instance when it was created. + + The original JSON Compact serialized format passed to one of the two constructors + or + + + + Gets the original raw data of this instance when it was created. + + The original JSON Compact serialized format passed to one of the two constructors + or + + + + Gets the s for this instance. + + + + + Gets the signature algorithm associated with this instance. + + If there is a associated with this instance, a value will be returned. Null otherwise. + + + + Gets the to use when writing this token. + + + + + Gets the to use when writing this token. + + + + + Gets or sets the that signed this instance. + + .ValidateSignature(...) sets this value when a is used to successfully validate a signature. + + + + Gets the "value" of the 'subject' claim { sub, 'value' }. + + If the 'subject' claim is not found, null is returned. + + + + Gets the 'value' of the 'notbefore' claim { nbf, 'value' } converted to a assuming 'value' is seconds since UnixEpoch (UTC 1970-01-01T0:0:0Z). + + If the 'notbefore' claim is not found, then is returned. + + + + Gets the 'value' of the 'expiration' claim { exp, 'value' } converted to a assuming 'value' is seconds since UnixEpoch (UTC 1970-01-01T0:0:0Z). + + If the 'expiration' claim is not found, then is returned. + + + + Gets the 'value' of the 'issued at' claim { iat, 'value' } converted to a assuming 'value' is seconds since UnixEpoch (UTC 1970-01-01T0:0:0Z). + + If the 'issued at' claim is not found, then is returned. + + + + Serializes the and + + A string containing the header and payload in JSON format. + + + + + + + Decodes the string into the header, payload and signature. + + the tokenized string. + the original token. + + + + Decodes the base64url encoded payload. + + the encoded payload. + + + + Decodes the payload and signature from the JWE parts. + + Parts of the JWE including the header. + Assumes Header has already been set. + + + + Static class to convert a to a + + + + + Initializes a new instance of a from a + + A JSON Web Token to convert from. + is null + doesn't have set. + + + + A designed for creating and validating Json Web Tokens. See: https://datatracker.ietf.org/doc/html/rfc7519 and http://www.rfc-editor.org/info/rfc7515 + + + + + Default claim type mapping for inbound claims. + + + + + Default value for the flag that determines whether or not the InboundClaimTypeMap is used. + + + + + Default claim type mapping for outbound claims. + + + + + Default claim type filter list. + + + + + Default JwtHeader algorithm mapping + + + + + Static initializer for a new object. Static initializers run before the first instance of the type is created. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the property which is used when determining whether or not to map claim types that are extracted when validating a . + If this is set to true, the is set to the JSON claim 'name' after translating using this mapping. Otherwise, no mapping occurs. + The default value is true. + + + + + Gets or sets the which is used when setting the for claims in the extracted when validating a . + The is set to the JSON claim 'name' after translating using this mapping. + The default value is ClaimTypeMapping.InboundClaimTypeMap. + + 'value' is null. + + + + Gets or sets the which is used when creating a from (s). + The JSON claim 'name' value is set to after translating using this mapping. + The default value is ClaimTypeMapping.OutboundClaimTypeMap + + This mapping is applied only when using or . Adding values directly will not result in translation. + 'value' is null. + + + + Gets the outbound algorithm map that is passed to the constructor. + + + + Gets or sets the used to filter claims when populating a claims form a . + When a is validated, claims with types found in this will not be added to the . + The default value is ClaimTypeMapping.InboundClaimFilter. + + 'value' is null. + + + + Gets or sets the property name of the will contain the original JSON claim 'name' if a mapping occurred when the (s) were created. + See for more information. + + If .IsNullOrWhiteSpace('value') is true. + + + + Gets or sets the property name of the will contain .Net type that was recognized when serialized the value to JSON. + See for more information. + + If .IsNullOrWhiteSpace('value') is true. + + + + Returns a value that indicates if this handler can validate a . + + 'true', indicating this instance can validate a . + + + + Gets the value that indicates if this instance can write a . + + 'true', indicating this instance can write a . + + + + Gets the type of the . + + The type of + + + + Determines if the string is a well formed Json Web Token (JWT). + See: https://datatracker.ietf.org/doc/html/rfc7519 + + String that should represent a valid JWT. + Uses matching one of: + JWS: @"^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$" + JWE: (dir): @"^[A-Za-z0-9-_]+\.\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$" + JWE: (wrappedkey): @"^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]$" + + + 'false' if the token is null or whitespace. + 'false' if token.Length is greater than . + 'true' if the token is in JSON compact serialization format. + + + + + Returns a Json Web Token (JWT). + + A that contains details of contents of the token. + A JWS and JWE can be returned. + If is provided, then a JWE will be created. + If is provided then a JWS will be created. + If both are provided then a JWE with an embedded JWS will be created. + + + + + Creates a JWT in 'Compact Serialization Format'. + + The issuer of the token. + The audience for this token. + The source of the (s) for this token. + The notbefore time for this token. + The expiration time for this token. + The issue time for this token. + Contains cryptographic material for generating a signature. + If is not null, then a claim { actort, 'value' } will be added to the payload. See for details on how the value is created. + See for details on how the HeaderParameters are added to the header. + See for details on how the values are added to the payload. + Each in the will map by applying . Modifying could change the outbound JWT. + If is provided, then a JWS will be created. + + A Base64UrlEncoded string in 'Compact Serialization Format'. + + + + Creates a JWT in 'Compact Serialization Format'. + + The issuer of the token. + The audience for this token. + The source of the (s) for this token. + Translated into 'epoch time' and assigned to 'nbf'. + Translated into 'epoch time' and assigned to 'exp'. + Translated into 'epoch time' and assigned to 'iat'. + Contains cryptographic material for signing. + Contains cryptographic material for encrypting. + If is not null, then a claim { actort, 'value' } will be added to the payload. for details on how the value is created. + See for details on how the HeaderParameters are added to the header. + See for details on how the values are added to the payload. + Each in the will map by applying . Modifying could change the outbound JWT. + + A Base64UrlEncoded string in 'Compact Serialization Format'. + If 'expires' <= 'notBefore'. + + + + Creates a JWT in 'Compact Serialization Format'. + + The issuer of the token. + The audience for this token. + The source of the (s) for this token. + Translated into 'epoch time' and assigned to 'nbf'. + Translated into 'epoch time' and assigned to 'exp'. + Translated into 'epoch time' and assigned to 'iat'. + Contains cryptographic material for signing. + Contains cryptographic material for encrypting. + A collection of (key,value) pairs representing (s) for this token. + If is not null, then a claim { actort, 'value' } will be added to the payload. for details on how the value is created. + See for details on how the HeaderParameters are added to the header. + See for details on how the values are added to the payload. + Each in the will map by applying . Modifying could change the outbound JWT. + + A Base64UrlEncoded string in 'Compact Serialization Format'. + If 'expires' <= 'notBefore'. + + + + Creates a Json Web Token (JWT). + + A that contains details of contents of the token. + is used to sign . + + + + Creates a + + The issuer of the token. + The audience for this token. + The source of the (s) for this token. + The notbefore time for this token. + The expiration time for this token. + The issue time for this token. + Contains cryptographic material for generating a signature. + Contains cryptographic material for encrypting the token. + If is not null, then a claim { actort, 'value' } will be added to the payload. for details on how the value is created. + See for details on how the HeaderParameters are added to the header. + See for details on how the values are added to the payload. + Each on the added will have translated according to the mapping found in + . Adding and removing to will affect the name component of the Json claim. + is used to sign . + is used to encrypt or . + + A . + If <= . + + + + Creates a + + The issuer of the token. + The audience for this token. + The source of the (s) for this token. + The notbefore time for this token. + The expiration time for this token. + The issue time for this token. + Contains cryptographic material for generating a signature. + Contains cryptographic material for encrypting the token. + A collection of (key,value) pairs representing (s) for this token. + If is not null, then a claim { actort, 'value' } will be added to the payload. for details on how the value is created. + See for details on how the HeaderParameters are added to the header. + See for details on how the values are added to the payload. + Each on the added will have translated according to the mapping found in + . Adding and removing to will affect the name component of the Json claim. + is used to sign . + is used to encrypt or . + + A . + If <= . + + + + Creates a + + The issuer of the token. + The audience for this token. + The source of the (s) for this token. + The notbefore time for this token. + The expiration time for this token. + The issue time for this token. + Contains cryptographic material for generating a signature. + If is not null, then a claim { actort, 'value' } will be added to the payload. for details on how the value is created. + See for details on how the HeaderParameters are added to the header. + See for details on how the values are added to the payload. + Each on the added will have translated according to the mapping found in + . Adding and removing to will affect the name component of the Json claim. + is used to sign . + + A . + If <= . + + + + Creates a Json Web Token (JWT). + + A that contains details of contents of the token. + is used to sign . + + + + Converts a string into an instance of . + + A 'JSON Web Token' (JWT) in JWS or JWE Compact Serialization Format. + A + is null or empty. + 'token.Length' is greater than . + + If the is in JWE Compact Serialization format, only the protected header will be deserialized. + This method is unable to decrypt the payload. Use to obtain the payload. + The token is NOT validated and no security decisions should be made about the contents. + Use to ensure the token is acceptable. + + + + Converts a string into an instance of . + + A 'JSON Web Token' (JWT) in JWS or JWE Compact Serialization Format. + A + is null or empty. + 'token.Length' is greater than . + + If the is in JWE Compact Serialization format, only the protected header will be deserialized. + This method is unable to decrypt the payload. Use to obtain the payload. + The token is NOT validated and no security decisions should be made about the contents. + Use to ensure the token is acceptable. + + + + Deserializes token with the provided . + + . + The current . + The + This method is not current supported. + + + + Reads and validates a 'JSON Web Token' (JWT) encoded as a JWS or JWE in Compact Serialized Format. + + the JWT encoded as JWE or JWS + Contains validation parameters for the . + The that was validated. + is null or whitespace. + is null. + .Length is greater than . + does not have 3 or 5 parts. + returns false. + was a JWE was not able to be decrypted. + 'kid' header claim is not null AND decryption fails. + 'enc' header claim is null or empty. + 'exp' claim is < DateTime.UtcNow. + is null or whitespace and is null. Audience is not validated if is set to false. + 'aud' claim did not match either or one of . + 'nbf' claim is > 'exp' claim. + .signature is not properly formatted. + 'exp' claim is missing and is true. + is not null and expirationTime.HasValue is false. When a TokenReplayCache is set, tokens require an expiration time. + 'nbf' claim is > DateTime.UtcNow. + could not be added to the . + is found in the cache. + A from the JWT. Does not include claims found in the JWT header. + + Many of the exceptions listed above are not thrown directly from this method. See to examine the call graph. + + + + + Private method for token validation, responsible for: + (1) Obtaining a configuration from the . + (2) Revalidating using the Last Known Good Configuration (if present), and obtaining a refreshed configuration (if necessary) and revalidating using it. + + The JWS string, or the decrypted token if the token is a JWE. + If the token being validated is a JWE, this is the that represents the outer token. + If the token is a JWS, the value of this parameter is . + + The to be used for validation. + The that was validated. + A from the JWT. Does not include claims found in the JWT header. + + + + Validates the JSON payload of a . + + The token to validate. + Contains validation parameters for the . + A from the jwt. Does not include the header claims. + + + + Serializes a into a JWT in Compact Serialization Format. + + to serialize. + + The JWT will be serialized as a JWE or JWS. + will be used to create the JWT. If there is an inner token, the inner token's payload will be used. + If either or .SigningCredentials are set, the JWT will be signed. + If is set, a JWE will be created using the JWT above as the plaintext. + + is null. + 'token' is not a not . + both and are set. + both and .EncryptingCredentials are set. + if is set and is not set. + A JWE or JWS in 'Compact Serialization Format'. + + + + Obtains a and validates the signature. + + Bytes to validate. + Signature to compare against. + to use. + Crypto algorithm to use. + The being validated. + Priority will be given to over . + 'true' if signature is valid. + + + + Validates that the signature, if found or required, is valid. + + A JWS token. + that contains signing keys. + If is null or whitespace. + If is null. + If a signature is not found and is true. + + If the has a key identifier and none of the (s) provided result in a validated signature. + This can indicate that a key refresh is required. + + If after trying all the (s), none result in a validated signature AND the does not have a key identifier. + A that has the signature validated if token was signed. + If the is signed, the signature is validated even if is false. + If the signature is validated, then the will be set to the key that signed the 'token'.It is the responsibility of to set the + + + + Creates a from a . + + The to use as a source. + The value to set + Contains parameters for validating the token. + A containing the . + + + + Creates the 'value' for the actor claim: { actort, 'value' } + + as actor. + representing the actor. + If is not null: +   If 'type' is 'string', return as string. +   if 'type' is 'BootstrapContext' and 'BootstrapContext.SecurityToken' is 'JwtSecurityToken' +     if 'JwtSecurityToken.RawData' != null, return RawData. +     else return . +   if 'BootstrapContext.Token' != null, return 'Token'. + default: new ( ( actor.Claims ). + + 'actor' is null. + + + + Determines if the audiences found in a are valid. + + The audiences found in the . + The being validated. + required for validation. + See for additional details. + + + + Validates the lifetime of a . + + The value of the 'nbf' claim if it exists in the 'jwtToken'. + The value of the 'exp' claim if it exists in the 'jwtToken'. + The being validated. + required for validation. + for additional details. + + + + Determines if the issuer found in a is valid. + + The issuer to validate + The that is being validated. + required for validation. + The issuer to use when creating the (s) in the . + for additional details. + + + + Determines if a is already validated. + + The value of the 'exp' claim if it exists in the '. + The that is being validated. + required for validation. + + + + Returns a to use when validating the signature of a token. + + The representation of the token that is being validated. + The that is being validated. + A required for validation. + Returns a to use for signature validation. + If key fails to resolve, then null is returned + + + + Returns a to use when decryption a JWE. + + The the token that is being decrypted. + The that is being decrypted. + A required for validation. + Returns a to use for signature validation. + If key fails to resolve, then null is returned + + + + Decrypts a JWE and returns the clear text + + the JWE that contains the cypher text. + contains crypto material. + the decoded / cleartext contents of the JWE. + if is null. + if is null. + if 'jwtToken.Header.enc' is null or empty. + if 'jwtToken.Header.kid' is not null AND decryption fails. + if the JWE was not able to be decrypted. + + + + Validates the is an expected value. + + The that signed the . + The to validate. + The current . + If the is a then the X509Certificate2 will be validated using the CertificateValidator. + + + + Serializes to XML a token of the type handled by this instance. + + The XML writer. + A token of type . + + + + + + + Log messages and codes + + + + diff --git a/Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/net8.0/System.IdentityModel.Tokens.Jwt.xml.meta b/Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/net8.0/System.IdentityModel.Tokens.Jwt.xml.meta new file mode 100644 index 0000000..91f58ce --- /dev/null +++ b/Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/net8.0/System.IdentityModel.Tokens.Jwt.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: a86e5d38d641caf48aa741956b116bb0 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/netstandard2.0.meta b/Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/netstandard2.0.meta new file mode 100644 index 0000000..a814a7a --- /dev/null +++ b/Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/netstandard2.0.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: eb7da79ea4acfec46b465a2f20ea6d3a +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/netstandard2.0/System.IdentityModel.Tokens.Jwt.dll b/Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/netstandard2.0/System.IdentityModel.Tokens.Jwt.dll new file mode 100644 index 0000000..d2948d4 --- /dev/null +++ b/Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/netstandard2.0/System.IdentityModel.Tokens.Jwt.dll @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dae14e906e948658756ca2c9688f526d450ff0785c94011bb987d900228a3b3d +size 81328 diff --git a/Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/netstandard2.0/System.IdentityModel.Tokens.Jwt.dll.meta b/Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/netstandard2.0/System.IdentityModel.Tokens.Jwt.dll.meta new file mode 100644 index 0000000..b6fd0bf --- /dev/null +++ b/Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/netstandard2.0/System.IdentityModel.Tokens.Jwt.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: 11742af85ce8a3940ba33d9db73a3aca +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/netstandard2.0/System.IdentityModel.Tokens.Jwt.xml b/Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/netstandard2.0/System.IdentityModel.Tokens.Jwt.xml new file mode 100644 index 0000000..ad73385 --- /dev/null +++ b/Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/netstandard2.0/System.IdentityModel.Tokens.Jwt.xml @@ -0,0 +1,1548 @@ + + + + System.IdentityModel.Tokens.Jwt + + + + + Constants that indicate how the should be evaluated. + + + + + A value that indicates the is a Json object. + + When creating a from Json if the value was not a simple type {String, Null, True, False, Number} + then will contain the Json value. If the Json was a JsonObject, the will be set to "JSON". + + + + A value that indicates the is a Json object. + + When creating a from Json if the value was not a simple type {String, Null, True, False, Number} + then will contain the Json value. If the Json was a JsonArray, the will be set to "JSON_ARRAY". + + + + A value that indicates the is Json null. + + When creating a the cannot be null. If the Json value was null, then the + will be set to and the will be set to "JSON_NULL". + + + + Constants for Json Web tokens. + + + + + Short header type. + + + + + Long header type. + + + + + Short token type. + + + + + Long token type. + + + + + JWS - Token format: 'header.payload.signature'. Signature is optional, but '.' is required. + + + + + JWE - Token format: 'protectedheader.encryptedkey.iv.cyphertext.authenticationtag'. + + + + + The number of parts in a JWE token. + + + + + The number of parts in a JWS token. + + + + + The maximum number of parts in a JWT. + + + + + JWE header alg indicating a shared symmetric key is directly used as CEK. + + + + + Initializes a new instance of which contains JSON objects representing the cryptographic operations applied to the JWT and optionally any additional properties of the JWT. + The member names within the JWT Header are referred to as Header Parameter Names. + These names MUST be unique and the values must be (s). The corresponding values are referred to as Header Parameter Values. + + + + + Initializes a new instance of the class. Default string comparer . + + + + + Initializes a new instance of the class. Default string comparer . + + + + + Initializes a new instance of . + With the Header Parameters: + { { typ, JWT }, { alg, SigningCredentials.Algorithm } } + + used creating a JWS Compact JSON. + + + + Initializes a new instance of . + With the Header Parameters: + { { typ, JWT }, { alg, EncryptingCredentials.Alg }, { enc, EncryptingCredentials.Enc } } + + used creating a JWE Compact JSON. + If 'encryptingCredentials' is null. + + + + Initializes a new instance of . + With the Header Parameters: + { { typ, JWT }, { alg, SigningCredentials.Algorithm } } + + used when creating a JWS Compact JSON. + provides a mapping for the 'alg' value so that values are within the JWT namespace. + + + + Initializes a new instance of . + With the Header Parameters: + { { typ, JWT }, { alg, SigningCredentials.Algorithm } } + + used when creating a JWS Compact JSON. + provides a mapping for the 'alg' value so that values are within the JWT namespace. + will be added as the value for the 'typ' claim in the header. If it is null or empty will be used as token type + + + + Initializes a new instance of . + With the Header Parameters: + { { typ, JWT }, { alg, SigningCredentials.Algorithm } } + + used when creating a JWS Compact JSON. + provides a mapping for the 'alg' value so that values are within the JWT namespace. + will be added as the value for the 'typ' claim in the header. If it is null or empty will be used as token type + Defines the dictionary containing any custom header claims that need to be added to the inner JWT token header. + + + + Initializes a new instance of . + With the Header Parameters: + { { typ, JWT }, { alg, EncryptingCredentials.Algorithm } } + + used when creating a JWS Compact JSON. + provides a mapping for the 'alg' value so that values are within the JWT namespace. + If 'encryptingCredentials' is null. + + + + Initializes a new instance of . + With the Header Parameters: + { { typ, JWT }, { alg, EncryptingCredentials.Algorithm } } + + used when creating a JWS Compact JSON. + provides a mapping for the 'alg' value so that values are within the JWT namespace. + provides the token type + If 'encryptingCredentials' is null. + + + + Initializes a new instance of . + With the Header Parameters: + { { typ, JWT }, { alg, EncryptingCredentials.Algorithm } } + + used when creating a JWS Compact JSON. + provides a mapping for the 'alg' value so that values are within the JWT namespace. + provides the token type + Defines the dictionary containing any custom header claims that need to be added to the outer JWT token header. + If 'encryptingCredentials' is null. + + + + Gets the signature algorithm that was used to create the signature. + + If the signature algorithm is not found, null is returned. + + + + Gets the content mime type (Cty) of the token. + + If the content mime type is not found, null is returned. + + + + Gets the encryption algorithm (Enc) of the token. + + If the content mime type is not found, null is returned. + + + + Gets the passed in the constructor. + + This value may be null. + + + + Gets the iv of symmetric key wrap. + + + + + Gets the key identifier for the security key used to sign the token + + + + + Gets the passed in the constructor. + + This value may be null. + + + + Gets the mime type (Typ) of the token. + + If the mime type is not found, null is returned. + + + + Gets the thumbprint of the certificate used to sign the token + + + + + Gets the certificate used to sign the token + + If the 'x5c' claim is not found, null is returned. + + + + Gets the 'value' of the 'zip' claim { zip, 'value' }. + + If the 'zip' claim is not found, null is returned. + + + + Deserializes Base64UrlEncoded JSON into a instance. + + Base64url encoded JSON to deserialize. + An instance of . + + + + Encodes this instance as Base64UrlEncoded JSON. + + Base64UrlEncoded JSON. + + + + Gets a standard claim from the header. + A standard claim is either a string or a value of another type serialized in JSON format. + + The key of the claim. + The standard claim string; or null if not found. + + + + Serializes this instance to JSON. + + This instance as JSON. + + + + List of header parameter names see: https://datatracker.ietf.org/doc/html/rfc7519#section-5. + + + + + See: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.1 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.10 + Also: https://datatracker.ietf.org/doc/html/rfc7519#section-5.2 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7516#section-4.1.2 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7518#section-4.7.1.1 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.2 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.3 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.4 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.9 + Also: https://datatracker.ietf.org/doc/html/rfc7519#section-5.1 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.6 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7515#page-12 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.5 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7516#section-4.1.3 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7518#section-4.6.1.1 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7518#section-4.6.1.2 + + + + + See: https://datatracker.ietf.org/doc/html/rfc7518#section-4.6.1.3 + + + + + Initializes a new instance of which contains JSON objects representing the claims contained in the JWT. Each claim is a JSON object of the form { Name, Value }. + + + + + Initializes a new instance of the class with no claims. Default string comparer . + Creates a empty + + + + + Initializes a new instance of the class with . Default string comparer . + The claims to add. + + + + + Initializes a new instance of the class with claims added for each parameter specified. Default string comparer . + + If this value is not null, a { iss, 'issuer' } claim will be added, overwriting any 'iss' claim in 'claims' if present. + If this value is not null, a { aud, 'audience' } claim will be added, appending to any 'aud' claims in 'claims' if present. + If this value is not null then for each a { 'Claim.Type', 'Claim.Value' } is added. If duplicate claims are found then a { 'Claim.Type', List<object> } will be created to contain the duplicate values. + If notbefore.HasValue a { nbf, 'value' } claim is added, overwriting any 'nbf' claim in 'claims' if present. + If expires.HasValue a { exp, 'value' } claim is added, overwriting any 'exp' claim in 'claims' if present. + + + + Initializes a new instance of the class with claims added for each parameter specified. Default string comparer . + + If this value is not null, a { iss, 'issuer' } claim will be added, overwriting any 'iss' claim in 'claims' if present. + If this value is not null, a { aud, 'audience' } claim will be added, appending to any 'aud' claims in 'claims' if present. + If this value is not null then for each a { 'Claim.Type', 'Claim.Value' } is added. If duplicate claims are found then a { 'Claim.Type', List<object> } will be created to contain the duplicate values. + If notbefore.HasValue a { nbf, 'value' } claim is added, overwriting any 'nbf' claim in 'claims' if present. + If expires.HasValue a { exp, 'value' } claim is added, overwriting any 'exp' claim in 'claims' if present. + If issuedAt.HasValue is 'true' a { iat, 'value' } claim is added, overwriting any 'iat' claim in 'claims' if present. + Comparison is set to + The 4 parameters: 'issuer', 'audience', 'notBefore', 'expires' take precedence over (s) in 'claims'. The values will be overridden. + If 'expires' <= 'notbefore'. + + + + Initializes a new instance of the class with claims added for each parameter specified. Default string comparer . + + If this value is not null, a { iss, 'issuer' } claim will be added, overwriting any 'iss' claim in 'claims' and 'claimCollection' if present. + If this value is not null, a { aud, 'audience' } claim will be added, appending to any 'aud' claims in 'claims' or 'claimCollection' if present. + If this value is not null then for each a { 'Claim.Type', 'Claim.Value' } is added. If duplicate claims are found then a { 'Claim.Type', List<object> } will be created to contain the duplicate values. + If both and are not null then the values in claims will be combined with the values in claimsCollection. The values found in claimCollection take precedence over those found in claims, so any duplicate + values will be overridden. + If notbefore.HasValue a { nbf, 'value' } claim is added, overwriting any 'nbf' claim in 'claims' and 'claimcollection' if present. + If expires.HasValue a { exp, 'value' } claim is added, overwriting any 'exp' claim in 'claims' and 'claimcollection' if present. + If issuedAt.HasValue is 'true' a { iat, 'value' } claim is added, overwriting any 'iat' claim in 'claims' and 'claimcollection' if present. + Comparison is set to + The 4 parameters: 'issuer', 'audience', 'notBefore', 'expires' take precedence over (s) in 'claims' and 'claimcollection'. The values will be overridden. + If 'expires' <= 'notbefore'. + + + + Adds Nbf, Exp, Iat, Iss and Aud claims to payload + + If this value is not null, a { iss, 'issuer' } claim will be added, overwriting any 'iss' claim in instance. + If this value is not null, a { aud, 'audience' } claim will be added, appending to any 'aud' claims in instance. + If notbefore.HasValue a { nbf, 'value' } claim is added, overwriting any 'nbf' claim in instance. + If expires.HasValue a { exp, 'value' } claim is added, overwriting any 'exp' claim in instance. + If issuedAt.HasValue is 'true' a { iat, 'value' } claim is added, overwriting any 'iat' claim in instance. + + + + Gets the 'value' of the 'actor' claim { actort, 'value' }. + + If the 'actor' claim is not found, null is returned. + + + + Gets the 'value' of the 'acr' claim { acr, 'value' }. + + If the 'acr' claim is not found, null is returned. + + + + Gets the 'value' of the 'amr' claim { amr, 'value' } as list of strings. + + If the 'amr' claim is not found, an empty enumerable is returned. + + + + Gets the 'value' of the 'auth_time' claim { auth_time, 'value' }. + + If the 'auth_time' claim is not found OR could not be converted to , null is returned. + + + + Gets the 'value' of the 'audience' claim { aud, 'value' } as a list of strings. + + If the 'audience' claim is not found, an empty enumerable is returned. + + + + Gets the 'value' of the 'azp' claim { azp, 'value' }. + + If the 'azp' claim is not found, null is returned. + + + + Gets 'value' of the 'c_hash' claim { c_hash, 'value' }. + + If the 'c_hash' claim is not found, null is returned. + + + + Gets the 'value' of the 'expiration' claim { exp, 'value' }. + + If the 'expiration' claim is not found OR could not be converted to , null is returned. + + + + Gets the 'value' of the 'expiration' claim { exp, 'value' }. + + If the 'expiration' claim is not found OR could not be converted to , null is returned. + + + + Gets the 'value' of the 'JWT ID' claim { jti, 'value' }. + + If the 'JWT ID' claim is not found, null is returned. + + + + Gets the 'value' of the 'Issued At' claim { iat, 'value' }. + + If the 'Issued At' claim is not found OR cannot be converted to null is returned. + + + + Gets the 'value' of the 'issuer' claim { iss, 'value' }. + + If the 'issuer' claim is not found, null is returned. + + + + Gets the 'value' of the 'expiration' claim { nbf, 'value' }. + + If the 'notbefore' claim is not found OR could not be converted to , null is returned. + + + + Gets the 'value' of the 'nonce' claim { nonce, 'value' }. + + If the 'nonce' claim is not found, null is returned. + + + + Gets the 'value' of the 'notebefore' claim { nbf, 'value' }. + + If the 'notbefore' claim is not found OR could not be converted to , null is returned. + + + + Gets the 'value' of the 'subject' claim { sub, 'value' }. + + If the 'subject' claim is not found, null is returned. + + + + Gets the 'value' of the 'notbefore' claim { nbf, 'value' } converted to a assuming 'value' is seconds since UnixEpoch (UTC 1970-01-01T0:0:0Z). + + If the 'notbefore' claim is not found, then is returned. Time is returned as UTC. + + + + Gets the 'value' of the 'expiration' claim { exp, 'value' } converted to a assuming 'value' is seconds since UnixEpoch (UTC 1970-01-01T0:0:0Z). + + If the 'expiration' claim is not found, then is returned. + + + + Gets the 'value' of the 'issued at' claim { iat, 'value' } converted to a assuming 'value' is seconds since UnixEpoch (UTC 1970-01-01T0:0:0Z). + + If the 'issued at' claim is not found, then is returned. + + + + Gets a for each JSON { name, value }. + + Each (s) returned will have the translated according to the mapping found in . Adding and removing to will affect the value of the . + and will be set to the value of ( if null). + + + + Adds a JSON object representing the to the + + { 'Claim.Type', 'Claim.Value' } is added. If a JSON object is found with the name == then a { 'Claim.Type', List<object> } will be created to contain the duplicate values. + See For details on how is applied. + 'claim' is null. + + + + Adds a number of to the as JSON { name, value } pairs. + + For each a JSON pair { 'Claim.Type', 'Claim.Value' } is added. If duplicate claims are found then a { 'Claim.Type', List<object> } will be created to contain the duplicate values. + + Any in the that is null, will be ignored. + is null. + + + + Adds claims from dictionary. + + A dictionary of claims. + If a key is already present in target dictionary, its claimValue is overridden by the claimValue of the key in claimsCollection. + + + + Serializes this instance to JSON. + + This instance as JSON. + + + + Deserializes Base64UrlEncoded JSON into a . + + Base64url encoded JSON to deserialize. + An instance of . + + + + Encodes this instance as Base64UrlEncoded JSON. + + Base64UrlEncoded JSON. + + + + Deserialzes JSON into a instance. + + The JSON to deserialize. + An instance of . + + + + List of registered claims from different sources + https://datatracker.ietf.org/doc/html/rfc7519#section-4 + http://openid.net/specs/openid-connect-core-1_0.html#IDToken + + + + + + + + + http://openid.net/specs/openid-connect-core-1_0.html#IDToken + + + + + http://openid.net/specs/openid-connect-core-1_0.html#IDToken + + + + + https://datatracker.ietf.org/doc/html/rfc7519#section-4 + + + + + http://openid.net/specs/openid-connect-core-1_0.html#IDToken + + + + + http://openid.net/specs/openid-connect-core-1_0.html#IDToken + + + + + https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims + + + + + https://openid.net/specs/openid-connect-core-1_0.html#HybridIDToken + + + + + http://openid.net/specs/openid-connect-core-1_0.html#CodeIDToken + + + + + https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims + + + + + https://datatracker.ietf.org/doc/html/rfc7519#section-4 + + + + + https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims + + + + + https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims + + + + + https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims + + + + + https://datatracker.ietf.org/doc/html/rfc7519#section-4 + + + + + https://datatracker.ietf.org/doc/html/rfc7519#section-4 + + + + + https://datatracker.ietf.org/doc/html/rfc7519#section-4 + + + + + https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims + + + + + + + + + https://openid.net/specs/openid-connect-core-1_0.html#AuthRequest + + + + + https://datatracker.ietf.org/doc/html/rfc7519#section-4 + + + + + + + + + http://openid.net/specs/openid-connect-frontchannel-1_0.html#OPLogout + + + + + https://datatracker.ietf.org/doc/html/rfc7519#section-4 + + + + + https://datatracker.ietf.org/doc/html/rfc7519#section-5 + + + + + + + + + + + + + A designed for representing a JSON Web Token (JWT). + + + + + Initializes a new instance of from a string in JWS Compact serialized format. + + A JSON Web Token that has been serialized in JWS Compact serialized format. + 'jwtEncodedString' is null or contains only whitespace. + 'jwtEncodedString' contains only whitespace. + 'jwtEncodedString' is not in JWE format. + 'jwtEncodedString' is not in JWS or JWE format. + + The contents of this have not been validated, the JSON Web Token is simply decoded. Validation can be accomplished using + + + + + Initializes a new instance of the class where the contains the crypto algorithms applied to the encoded and . The jwtEncodedString is the result of those operations. + + Contains JSON objects representing the cryptographic operations applied to the JWT and optionally any additional properties of the JWT + Contains JSON objects representing the claims contained in the JWT. Each claim is a JSON object of the form { Name, Value } + base64urlencoded JwtHeader + base64urlencoded JwtPayload + base64urlencoded JwtSignature + 'header' is null. + 'payload' is null. + 'rawSignature' is null. + 'rawHeader' or 'rawPayload' is null or whitespace. + + + + Initializes an instance of where the contains the crypto algorithms applied to the innerToken . + + Defines cryptographic operations applied to the 'innerToken'. + + base64urlencoded key + base64urlencoded JwtHeader + base64urlencoded initialization vector. + base64urlencoded encrypted innerToken + base64urlencoded authentication tag. + 'header' is null. + 'innerToken' is null. + 'rawHeader' is null. + 'rawEncryptedKey' is null. + 'rawInitialVector' is null or empty. + 'rawCiphertext' is null or empty. + 'rawAuthenticationTag' is null or empty. + + + + Initializes a new instance of the class where the contains the crypto algorithms applied to the encoded and . The jwtEncodedString is the result of those operations. + + Contains JSON objects representing the cryptographic operations applied to the JWT and optionally any additional properties of the JWT + Contains JSON objects representing the claims contained in the JWT. Each claim is a JSON object of the form { Name, Value } + 'header' is null. + 'payload' is null. + + + + Initializes a new instance of the class specifying optional parameters. + + If this value is not null, a { iss, 'issuer' } claim will be added, overwriting any 'iss' claim in 'claims' if present. + If this value is not null, a { aud, 'audience' } claim will be added, appending to any 'aud' claims in 'claims' if present. + If this value is not null then for each a { 'Claim.Type', 'Claim.Value' } is added. If duplicate claims are found then a { 'Claim.Type', List<object> } will be created to contain the duplicate values. + If expires.HasValue a { exp, 'value' } claim is added, overwriting any 'exp' claim in 'claims' if present. + If notbefore.HasValue a { nbf, 'value' } claim is added, overwriting any 'nbf' claim in 'claims' if present. + The that will be used to sign the . See for details pertaining to the Header Parameter(s). + If 'expires' <= 'notbefore'. + + + + Gets the 'value' of the 'actor' claim { actort, 'value' }. + + If the 'actor' claim is not found, null is returned. + + + + Gets the list of 'audience' claim { aud, 'value' }. + + If the 'audience' claim is not found, enumeration will be empty. + + + + Gets the (s) for this token. + If this is a JWE token, this property only returns the encrypted claims; + the unencrypted claims should be read from the header seperately. + + (s) returned will NOT have the translated according to + + + + Gets the Base64UrlEncoded associated with this instance. + + + + + Gets the Base64UrlEncoded associated with this instance. + + + + + Gets the associated with this instance if the token is signed. + + + + + Gets the 'value' of the 'JWT ID' claim { jti, 'value' }. + + If the 'JWT ID' claim is not found, an empty string is returned. + + + + Gets the 'value' of the 'issuer' claim { iss, 'value' }. + + If the 'issuer' claim is not found, an empty string is returned. + + + + Gets the associated with this instance. + Note that if this JWT is nested ( != null, this property represents the payload of the most inner token. + This property can be null if the content type of the most inner token is unrecognized, in that case + the content of the token is the string returned by PlainText property. + + + + + Gets the associated with this instance. + + + + + Gets the original raw data of this instance when it was created. + + The original JSON Compact serialized format passed to one of the two constructors + or + + + + Gets the original raw data of this instance when it was created. + + The original JSON Compact serialized format passed to one of the two constructors + or + + + + Gets the original raw data of this instance when it was created. + + The original JSON Compact serialized format passed to one of the two constructors + or + + + + Gets the original raw data of this instance when it was created. + + The original JSON Compact serialized format passed to one of the two constructors + or + + + + Gets the original raw data of this instance when it was created. + + The original JSON Compact serialized format passed to one of the two constructors + or + + + + Gets the original raw data of this instance when it was created. + + The original JSON Compact serialized format passed to one of the two constructors + or + + + + Gets the original raw data of this instance when it was created. + + The original JSON Compact serialized format passed to one of the two constructors + or + + + + Gets the original raw data of this instance when it was created. + + The original JSON Compact serialized format passed to one of the two constructors + or + + + + Gets the s for this instance. + + + + + Gets the signature algorithm associated with this instance. + + If there is a associated with this instance, a value will be returned. Null otherwise. + + + + Gets the to use when writing this token. + + + + + Gets the to use when writing this token. + + + + + Gets or sets the that signed this instance. + + .ValidateSignature(...) sets this value when a is used to successfully validate a signature. + + + + Gets the "value" of the 'subject' claim { sub, 'value' }. + + If the 'subject' claim is not found, null is returned. + + + + Gets the 'value' of the 'notbefore' claim { nbf, 'value' } converted to a assuming 'value' is seconds since UnixEpoch (UTC 1970-01-01T0:0:0Z). + + If the 'notbefore' claim is not found, then is returned. + + + + Gets the 'value' of the 'expiration' claim { exp, 'value' } converted to a assuming 'value' is seconds since UnixEpoch (UTC 1970-01-01T0:0:0Z). + + If the 'expiration' claim is not found, then is returned. + + + + Gets the 'value' of the 'issued at' claim { iat, 'value' } converted to a assuming 'value' is seconds since UnixEpoch (UTC 1970-01-01T0:0:0Z). + + If the 'issued at' claim is not found, then is returned. + + + + Serializes the and + + A string containing the header and payload in JSON format. + + + + + + + Decodes the string into the header, payload and signature. + + the tokenized string. + the original token. + + + + Decodes the base64url encoded payload. + + the encoded payload. + + + + Decodes the payload and signature from the JWE parts. + + Parts of the JWE including the header. + Assumes Header has already been set. + + + + Static class to convert a to a + + + + + Initializes a new instance of a from a + + A JSON Web Token to convert from. + is null + doesn't have set. + + + + A designed for creating and validating Json Web Tokens. See: https://datatracker.ietf.org/doc/html/rfc7519 and http://www.rfc-editor.org/info/rfc7515 + + + + + Default claim type mapping for inbound claims. + + + + + Default value for the flag that determines whether or not the InboundClaimTypeMap is used. + + + + + Default claim type mapping for outbound claims. + + + + + Default claim type filter list. + + + + + Default JwtHeader algorithm mapping + + + + + Static initializer for a new object. Static initializers run before the first instance of the type is created. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the property which is used when determining whether or not to map claim types that are extracted when validating a . + If this is set to true, the is set to the JSON claim 'name' after translating using this mapping. Otherwise, no mapping occurs. + The default value is true. + + + + + Gets or sets the which is used when setting the for claims in the extracted when validating a . + The is set to the JSON claim 'name' after translating using this mapping. + The default value is ClaimTypeMapping.InboundClaimTypeMap. + + 'value' is null. + + + + Gets or sets the which is used when creating a from (s). + The JSON claim 'name' value is set to after translating using this mapping. + The default value is ClaimTypeMapping.OutboundClaimTypeMap + + This mapping is applied only when using or . Adding values directly will not result in translation. + 'value' is null. + + + + Gets the outbound algorithm map that is passed to the constructor. + + + + Gets or sets the used to filter claims when populating a claims form a . + When a is validated, claims with types found in this will not be added to the . + The default value is ClaimTypeMapping.InboundClaimFilter. + + 'value' is null. + + + + Gets or sets the property name of the will contain the original JSON claim 'name' if a mapping occurred when the (s) were created. + See for more information. + + If .IsNullOrWhiteSpace('value') is true. + + + + Gets or sets the property name of the will contain .Net type that was recognized when serialized the value to JSON. + See for more information. + + If .IsNullOrWhiteSpace('value') is true. + + + + Returns a value that indicates if this handler can validate a . + + 'true', indicating this instance can validate a . + + + + Gets the value that indicates if this instance can write a . + + 'true', indicating this instance can write a . + + + + Gets the type of the . + + The type of + + + + Determines if the string is a well formed Json Web Token (JWT). + See: https://datatracker.ietf.org/doc/html/rfc7519 + + String that should represent a valid JWT. + Uses matching one of: + JWS: @"^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$" + JWE: (dir): @"^[A-Za-z0-9-_]+\.\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$" + JWE: (wrappedkey): @"^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]$" + + + 'false' if the token is null or whitespace. + 'false' if token.Length is greater than . + 'true' if the token is in JSON compact serialization format. + + + + + Returns a Json Web Token (JWT). + + A that contains details of contents of the token. + A JWS and JWE can be returned. + If is provided, then a JWE will be created. + If is provided then a JWS will be created. + If both are provided then a JWE with an embedded JWS will be created. + + + + + Creates a JWT in 'Compact Serialization Format'. + + The issuer of the token. + The audience for this token. + The source of the (s) for this token. + The notbefore time for this token. + The expiration time for this token. + The issue time for this token. + Contains cryptographic material for generating a signature. + If is not null, then a claim { actort, 'value' } will be added to the payload. See for details on how the value is created. + See for details on how the HeaderParameters are added to the header. + See for details on how the values are added to the payload. + Each in the will map by applying . Modifying could change the outbound JWT. + If is provided, then a JWS will be created. + + A Base64UrlEncoded string in 'Compact Serialization Format'. + + + + Creates a JWT in 'Compact Serialization Format'. + + The issuer of the token. + The audience for this token. + The source of the (s) for this token. + Translated into 'epoch time' and assigned to 'nbf'. + Translated into 'epoch time' and assigned to 'exp'. + Translated into 'epoch time' and assigned to 'iat'. + Contains cryptographic material for signing. + Contains cryptographic material for encrypting. + If is not null, then a claim { actort, 'value' } will be added to the payload. for details on how the value is created. + See for details on how the HeaderParameters are added to the header. + See for details on how the values are added to the payload. + Each in the will map by applying . Modifying could change the outbound JWT. + + A Base64UrlEncoded string in 'Compact Serialization Format'. + If 'expires' <= 'notBefore'. + + + + Creates a JWT in 'Compact Serialization Format'. + + The issuer of the token. + The audience for this token. + The source of the (s) for this token. + Translated into 'epoch time' and assigned to 'nbf'. + Translated into 'epoch time' and assigned to 'exp'. + Translated into 'epoch time' and assigned to 'iat'. + Contains cryptographic material for signing. + Contains cryptographic material for encrypting. + A collection of (key,value) pairs representing (s) for this token. + If is not null, then a claim { actort, 'value' } will be added to the payload. for details on how the value is created. + See for details on how the HeaderParameters are added to the header. + See for details on how the values are added to the payload. + Each in the will map by applying . Modifying could change the outbound JWT. + + A Base64UrlEncoded string in 'Compact Serialization Format'. + If 'expires' <= 'notBefore'. + + + + Creates a Json Web Token (JWT). + + A that contains details of contents of the token. + is used to sign . + + + + Creates a + + The issuer of the token. + The audience for this token. + The source of the (s) for this token. + The notbefore time for this token. + The expiration time for this token. + The issue time for this token. + Contains cryptographic material for generating a signature. + Contains cryptographic material for encrypting the token. + If is not null, then a claim { actort, 'value' } will be added to the payload. for details on how the value is created. + See for details on how the HeaderParameters are added to the header. + See for details on how the values are added to the payload. + Each on the added will have translated according to the mapping found in + . Adding and removing to will affect the name component of the Json claim. + is used to sign . + is used to encrypt or . + + A . + If <= . + + + + Creates a + + The issuer of the token. + The audience for this token. + The source of the (s) for this token. + The notbefore time for this token. + The expiration time for this token. + The issue time for this token. + Contains cryptographic material for generating a signature. + Contains cryptographic material for encrypting the token. + A collection of (key,value) pairs representing (s) for this token. + If is not null, then a claim { actort, 'value' } will be added to the payload. for details on how the value is created. + See for details on how the HeaderParameters are added to the header. + See for details on how the values are added to the payload. + Each on the added will have translated according to the mapping found in + . Adding and removing to will affect the name component of the Json claim. + is used to sign . + is used to encrypt or . + + A . + If <= . + + + + Creates a + + The issuer of the token. + The audience for this token. + The source of the (s) for this token. + The notbefore time for this token. + The expiration time for this token. + The issue time for this token. + Contains cryptographic material for generating a signature. + If is not null, then a claim { actort, 'value' } will be added to the payload. for details on how the value is created. + See for details on how the HeaderParameters are added to the header. + See for details on how the values are added to the payload. + Each on the added will have translated according to the mapping found in + . Adding and removing to will affect the name component of the Json claim. + is used to sign . + + A . + If <= . + + + + Creates a Json Web Token (JWT). + + A that contains details of contents of the token. + is used to sign . + + + + Converts a string into an instance of . + + A 'JSON Web Token' (JWT) in JWS or JWE Compact Serialization Format. + A + is null or empty. + 'token.Length' is greater than . + + If the is in JWE Compact Serialization format, only the protected header will be deserialized. + This method is unable to decrypt the payload. Use to obtain the payload. + The token is NOT validated and no security decisions should be made about the contents. + Use to ensure the token is acceptable. + + + + Converts a string into an instance of . + + A 'JSON Web Token' (JWT) in JWS or JWE Compact Serialization Format. + A + is null or empty. + 'token.Length' is greater than . + + If the is in JWE Compact Serialization format, only the protected header will be deserialized. + This method is unable to decrypt the payload. Use to obtain the payload. + The token is NOT validated and no security decisions should be made about the contents. + Use to ensure the token is acceptable. + + + + Deserializes token with the provided . + + . + The current . + The + This method is not current supported. + + + + Reads and validates a 'JSON Web Token' (JWT) encoded as a JWS or JWE in Compact Serialized Format. + + the JWT encoded as JWE or JWS + Contains validation parameters for the . + The that was validated. + is null or whitespace. + is null. + .Length is greater than . + does not have 3 or 5 parts. + returns false. + was a JWE was not able to be decrypted. + 'kid' header claim is not null AND decryption fails. + 'enc' header claim is null or empty. + 'exp' claim is < DateTime.UtcNow. + is null or whitespace and is null. Audience is not validated if is set to false. + 'aud' claim did not match either or one of . + 'nbf' claim is > 'exp' claim. + .signature is not properly formatted. + 'exp' claim is missing and is true. + is not null and expirationTime.HasValue is false. When a TokenReplayCache is set, tokens require an expiration time. + 'nbf' claim is > DateTime.UtcNow. + could not be added to the . + is found in the cache. + A from the JWT. Does not include claims found in the JWT header. + + Many of the exceptions listed above are not thrown directly from this method. See to examine the call graph. + + + + + Private method for token validation, responsible for: + (1) Obtaining a configuration from the . + (2) Revalidating using the Last Known Good Configuration (if present), and obtaining a refreshed configuration (if necessary) and revalidating using it. + + The JWS string, or the decrypted token if the token is a JWE. + If the token being validated is a JWE, this is the that represents the outer token. + If the token is a JWS, the value of this parameter is . + + The to be used for validation. + The that was validated. + A from the JWT. Does not include claims found in the JWT header. + + + + Validates the JSON payload of a . + + The token to validate. + Contains validation parameters for the . + A from the jwt. Does not include the header claims. + + + + Serializes a into a JWT in Compact Serialization Format. + + to serialize. + + The JWT will be serialized as a JWE or JWS. + will be used to create the JWT. If there is an inner token, the inner token's payload will be used. + If either or .SigningCredentials are set, the JWT will be signed. + If is set, a JWE will be created using the JWT above as the plaintext. + + is null. + 'token' is not a not . + both and are set. + both and .EncryptingCredentials are set. + if is set and is not set. + A JWE or JWS in 'Compact Serialization Format'. + + + + Obtains a and validates the signature. + + Bytes to validate. + Signature to compare against. + to use. + Crypto algorithm to use. + The being validated. + Priority will be given to over . + 'true' if signature is valid. + + + + Validates that the signature, if found or required, is valid. + + A JWS token. + that contains signing keys. + If is null or whitespace. + If is null. + If a signature is not found and is true. + + If the has a key identifier and none of the (s) provided result in a validated signature. + This can indicate that a key refresh is required. + + If after trying all the (s), none result in a validated signature AND the does not have a key identifier. + A that has the signature validated if token was signed. + If the is signed, the signature is validated even if is false. + If the signature is validated, then the will be set to the key that signed the 'token'.It is the responsibility of to set the + + + + Creates a from a . + + The to use as a source. + The value to set + Contains parameters for validating the token. + A containing the . + + + + Creates the 'value' for the actor claim: { actort, 'value' } + + as actor. + representing the actor. + If is not null: +   If 'type' is 'string', return as string. +   if 'type' is 'BootstrapContext' and 'BootstrapContext.SecurityToken' is 'JwtSecurityToken' +     if 'JwtSecurityToken.RawData' != null, return RawData. +     else return . +   if 'BootstrapContext.Token' != null, return 'Token'. + default: new ( ( actor.Claims ). + + 'actor' is null. + + + + Determines if the audiences found in a are valid. + + The audiences found in the . + The being validated. + required for validation. + See for additional details. + + + + Validates the lifetime of a . + + The value of the 'nbf' claim if it exists in the 'jwtToken'. + The value of the 'exp' claim if it exists in the 'jwtToken'. + The being validated. + required for validation. + for additional details. + + + + Determines if the issuer found in a is valid. + + The issuer to validate + The that is being validated. + required for validation. + The issuer to use when creating the (s) in the . + for additional details. + + + + Determines if a is already validated. + + The value of the 'exp' claim if it exists in the '. + The that is being validated. + required for validation. + + + + Returns a to use when validating the signature of a token. + + The representation of the token that is being validated. + The that is being validated. + A required for validation. + Returns a to use for signature validation. + If key fails to resolve, then null is returned + + + + Returns a to use when decryption a JWE. + + The the token that is being decrypted. + The that is being decrypted. + A required for validation. + Returns a to use for signature validation. + If key fails to resolve, then null is returned + + + + Decrypts a JWE and returns the clear text + + the JWE that contains the cypher text. + contains crypto material. + the decoded / cleartext contents of the JWE. + if is null. + if is null. + if 'jwtToken.Header.enc' is null or empty. + if 'jwtToken.Header.kid' is not null AND decryption fails. + if the JWE was not able to be decrypted. + + + + Validates the is an expected value. + + The that signed the . + The to validate. + The current . + If the is a then the X509Certificate2 will be validated using the CertificateValidator. + + + + Serializes to XML a token of the type handled by this instance. + + The XML writer. + A token of type . + + + + + + + Log messages and codes + + + + diff --git a/Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/netstandard2.0/System.IdentityModel.Tokens.Jwt.xml.meta b/Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/netstandard2.0/System.IdentityModel.Tokens.Jwt.xml.meta new file mode 100644 index 0000000..039f8f1 --- /dev/null +++ b/Game/Assets/Supabase/System.IdentityModel.Tokens.Jwt.7.0.3/lib/netstandard2.0/System.IdentityModel.Tokens.Jwt.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 5c7e3853e4360114083e035874af9bb0 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Reactive.5.0.0.meta b/Game/Assets/Supabase/System.Reactive.5.0.0.meta new file mode 100644 index 0000000..df42a60 --- /dev/null +++ b/Game/Assets/Supabase/System.Reactive.5.0.0.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ec24d436319014c4f831aa8800f76cb1 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/System.Reactive.5.0.0/.signature.p7s b/Game/Assets/Supabase/System.Reactive.5.0.0/.signature.p7s new file mode 100644 index 0000000000000000000000000000000000000000..490e31d1c3cf3b9d7160d72c9a4733c5157eb738 GIT binary patch literal 18538 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

    Jb@ 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

    QHkq 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 BjUxa6 literal 0 HcmV?d00001 diff --git a/Game/Assets/Supabase/MimeMapping.2.0.0/MimeMapping.2.0.0.nupkg.meta b/Game/Assets/Supabase/MimeMapping.2.0.0/MimeMapping.2.0.0.nupkg.meta new file mode 100644 index 0000000..8dc57ee --- /dev/null +++ b/Game/Assets/Supabase/MimeMapping.2.0.0/MimeMapping.2.0.0.nupkg.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 494de63e1de2d8c45b8c1fbbc9bb39a8 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/MimeMapping.2.0.0/README.md b/Game/Assets/Supabase/MimeMapping.2.0.0/README.md new file mode 100644 index 0000000..769489d --- /dev/null +++ b/Game/Assets/Supabase/MimeMapping.2.0.0/README.md @@ -0,0 +1,43 @@ +# MimeMapping + +[![Nuget](https://img.shields.io/nuget/v/MimeMapping)](https://www.nuget.org/packages/MimeMapping/) +[![Nuget](https://img.shields.io/nuget/dt/MimeMapping)](https://www.nuget.org/packages/MimeMapping/) +[![build](https://github.com/zone117x/MimeMapping/actions/workflows/build.yml/badge.svg)](https://github.com/zone117x/MimeMapping/actions/workflows/build.yml) +[![codecov](https://codecov.io/github/zone117x/MimeMapping/branch/master/graph/badge.svg)](https://codecov.io/github/zone117x/MimeMapping) + +Constants for (almost) all MIME types and method to determine MIME type from a file name. +Contains just over 1000 mime types. + +The Dictionary is generated from the [`jshttp/mime-db`](https://github.com/jshttp/mime-db#mime-db) `db.json`. +Works similar to .NET's [System.Web.MimeMapping.GetMimeMapping](https://learn.microsoft.com/dotnet/api/system.web.mimemapping.getmimemapping). + +It aggregates data from the following sources: + +- +- +- + +The library is just a literal C# `Dictionary` with over 1000 entries, and a helper method that can be passed a file path. + +## Example Usage + +```C# +string myFile = "myimage.jpg"; +string mimeType = MimeMapping.MimeUtility.GetMimeMapping(myFile); +Console.WriteLine(mimeType); // output: image/jpeg + +string randomFile = "data.asdf"; +string mimeType = MimeMapping.MimeUtility.GetMimeMapping(randomFile); +Console.WriteLine(mimeType); // output: application/octet-stream + +string rawExtension = "json"; +string mimeType = MimeMapping.MimeUtility.GetMimeMapping(rawExtension); +Console.WriteLine(mimeType); // output: application/json + + +// List all types.. +foreach(var kp in MimeMapping.MimeTypes.TypeMap) +{ + Console.WriteLine($"File extension: {kp.Key}, mime string: {kp.Value}"); +} +``` diff --git a/Game/Assets/Supabase/MimeMapping.2.0.0/README.md.meta b/Game/Assets/Supabase/MimeMapping.2.0.0/README.md.meta new file mode 100644 index 0000000..7c72f7b --- /dev/null +++ b/Game/Assets/Supabase/MimeMapping.2.0.0/README.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 36d78ce1b2fb7354589c60bfe4235d92 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/MimeMapping.2.0.0/lib.meta b/Game/Assets/Supabase/MimeMapping.2.0.0/lib.meta new file mode 100644 index 0000000..b96a784 --- /dev/null +++ b/Game/Assets/Supabase/MimeMapping.2.0.0/lib.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3b06c0c8a2ca79f4f9ed8836185ac285 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/MimeMapping.2.0.0/lib/net461.meta b/Game/Assets/Supabase/MimeMapping.2.0.0/lib/net461.meta new file mode 100644 index 0000000..8866473 --- /dev/null +++ b/Game/Assets/Supabase/MimeMapping.2.0.0/lib/net461.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 35629b700037c8743aee68f7a28755f8 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/MimeMapping.2.0.0/lib/net461/MimeMapping.dll b/Game/Assets/Supabase/MimeMapping.2.0.0/lib/net461/MimeMapping.dll new file mode 100644 index 0000000..b1fbf6b --- /dev/null +++ b/Game/Assets/Supabase/MimeMapping.2.0.0/lib/net461/MimeMapping.dll @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b5478409b3ece98ad59fd99f4dee0b86f1977dc649c86eff893c912f16d222f0 +size 270848 diff --git a/Game/Assets/Supabase/MimeMapping.2.0.0/lib/net461/MimeMapping.dll.meta b/Game/Assets/Supabase/MimeMapping.2.0.0/lib/net461/MimeMapping.dll.meta new file mode 100644 index 0000000..fcff709 --- /dev/null +++ b/Game/Assets/Supabase/MimeMapping.2.0.0/lib/net461/MimeMapping.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: 5b3601b10a9583240844e2f345def4ea +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Supabase/MimeMapping.2.0.0/lib/net461/MimeMapping.xml b/Game/Assets/Supabase/MimeMapping.2.0.0/lib/net461/MimeMapping.xml new file mode 100644 index 0000000..f66b4f7 --- /dev/null +++ b/Game/Assets/Supabase/MimeMapping.2.0.0/lib/net461/MimeMapping.xml @@ -0,0 +1,7121 @@ + + + + MimeMapping + + + +